@softpak/components 18.6.13 → 18.6.15

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 (191) 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 +4 -4
  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 +7 -7
  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 +53 -49
  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 +7 -7
  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 +32 -86
  51. package/spx-alert/spx-alert.component.d.ts +4 -4
  52. package/spx-helpers/input-alert.interface.d.ts +5 -0
  53. package/spx-helpers/public-api.d.ts +1 -0
  54. package/spx-inputs/spx-input-box.component.d.ts +7 -6
  55. package/spx-inputs/spx-input-time-modal.component.d.ts +1 -1
  56. package/spx-inputs/spx-input.component.d.ts +3 -3
  57. package/tailwind.css +1 -1
  58. package/esm2022/placeholder.mjs +0 -2
  59. package/esm2022/public_api.mjs +0 -2
  60. package/esm2022/softpak-components.mjs +0 -5
  61. package/esm2022/spx-alert/public-api.mjs +0 -3
  62. package/esm2022/spx-alert/softpak-components-spx-alert.mjs +0 -5
  63. package/esm2022/spx-alert/spx-alert.component.mjs +0 -203
  64. package/esm2022/spx-alert/spx-alert.interface.mjs +0 -3
  65. package/esm2022/spx-app-configuration/public-api.mjs +0 -8
  66. package/esm2022/spx-app-configuration/softpak-components-spx-app-configuration.mjs +0 -5
  67. package/esm2022/spx-app-configuration/spx-app-alert.interface.mjs +0 -2
  68. package/esm2022/spx-app-configuration/spx-app-bundle-set.interface.mjs +0 -2
  69. package/esm2022/spx-app-configuration/spx-app-channel-type.enum.mjs +0 -8
  70. package/esm2022/spx-app-configuration/spx-app-channel.interface.mjs +0 -2
  71. package/esm2022/spx-app-configuration/spx-app-config.interface.mjs +0 -2
  72. package/esm2022/spx-app-configuration/spx-app-id.enum.mjs +0 -8
  73. package/esm2022/spx-app-configuration/spx-app-lang.enum.mjs +0 -6
  74. package/esm2022/spx-app-configuration/spx-app-release-note.interface.mjs +0 -2
  75. package/esm2022/spx-app-expiry/public-api.mjs +0 -6
  76. package/esm2022/spx-app-expiry/softpak-components-spx-app-expiry.mjs +0 -5
  77. package/esm2022/spx-app-expiry/spx-app-expiry.component.mjs +0 -107
  78. package/esm2022/spx-app-expiry/spx-app-expiry.interface.mjs +0 -2
  79. package/esm2022/spx-app-expiry/spx-check-expiry-final-warning.interface.mjs +0 -5
  80. package/esm2022/spx-app-expiry/spx-check-expiry-happened.interface.mjs +0 -5
  81. package/esm2022/spx-app-expiry/spx-check-expiry-warning.interface.mjs +0 -5
  82. package/esm2022/spx-app-update/public-api.mjs +0 -2
  83. package/esm2022/spx-app-update/softpak-components-spx-app-update.mjs +0 -5
  84. package/esm2022/spx-app-update/spx-app-update.component.mjs +0 -320
  85. package/esm2022/spx-button/public-api.mjs +0 -2
  86. package/esm2022/spx-button/softpak-components-spx-button.mjs +0 -5
  87. package/esm2022/spx-button/spx-button.component.mjs +0 -142
  88. package/esm2022/spx-capitalize/public-api.mjs +0 -2
  89. package/esm2022/spx-capitalize/softpak-components-spx-capitalize.mjs +0 -5
  90. package/esm2022/spx-capitalize/spx-capitalize.pipe.mjs +0 -20
  91. package/esm2022/spx-card/public-api.mjs +0 -5
  92. package/esm2022/spx-card/softpak-components-spx-card.mjs +0 -5
  93. package/esm2022/spx-card/spx-card-grid.component.mjs +0 -46
  94. package/esm2022/spx-card/spx-card-item.component.mjs +0 -117
  95. package/esm2022/spx-card/spx-card-line.component.mjs +0 -124
  96. package/esm2022/spx-card/spx-card.component.mjs +0 -96
  97. package/esm2022/spx-change-details/public-api.mjs +0 -2
  98. package/esm2022/spx-change-details/softpak-components-spx-change-details.mjs +0 -5
  99. package/esm2022/spx-change-details/spx-change-details-value.interface.mjs +0 -2
  100. package/esm2022/spx-change-details/spx-change-details.component.mjs +0 -197
  101. package/esm2022/spx-channel-selection/public-api.mjs +0 -3
  102. package/esm2022/spx-channel-selection/softpak-components-spx-channel-selection.mjs +0 -5
  103. package/esm2022/spx-channel-selection/src/spx-channel-indicator.component.mjs +0 -45
  104. package/esm2022/spx-channel-selection/src/spx-welcome.component.mjs +0 -132
  105. package/esm2022/spx-check-digit/public-api.mjs +0 -2
  106. package/esm2022/spx-check-digit/softpak-components-spx-check-digit.mjs +0 -5
  107. package/esm2022/spx-check-digit/spx-check-digit.component.mjs +0 -91
  108. package/esm2022/spx-form-section/public-api.mjs +0 -2
  109. package/esm2022/spx-form-section/softpak-components-spx-form-section.mjs +0 -5
  110. package/esm2022/spx-form-section/spx-form-section.component.mjs +0 -42
  111. package/esm2022/spx-form-view/public-api.mjs +0 -7
  112. package/esm2022/spx-form-view/softpak-components-spx-form-view.mjs +0 -5
  113. package/esm2022/spx-form-view/spx-autocomplete-search.component.mjs +0 -117
  114. package/esm2022/spx-form-view/spx-form-button-type.enum.mjs +0 -6
  115. package/esm2022/spx-form-view/spx-form-button.interface.mjs +0 -2
  116. package/esm2022/spx-form-view/spx-form-field.interface.mjs +0 -2
  117. package/esm2022/spx-form-view/spx-form-section.interface.mjs +0 -2
  118. package/esm2022/spx-form-view/spx-form-view.component.mjs +0 -297
  119. package/esm2022/spx-form-view/spx-form.interface.mjs +0 -2
  120. package/esm2022/spx-helpers/calc-check-digit.function.mjs +0 -21
  121. package/esm2022/spx-helpers/public-api.mjs +0 -4
  122. package/esm2022/spx-helpers/softpak-components-spx-helpers.mjs +0 -5
  123. package/esm2022/spx-helpers/spx-severity.enum.mjs +0 -10
  124. package/esm2022/spx-helpers/value-pair-to-value.function.mjs +0 -7
  125. package/esm2022/spx-inputs/public-api.mjs +0 -6
  126. package/esm2022/spx-inputs/softpak-components-spx-inputs.mjs +0 -5
  127. package/esm2022/spx-inputs/spx-dropdown.component.mjs +0 -93
  128. package/esm2022/spx-inputs/spx-input-box.component.mjs +0 -299
  129. package/esm2022/spx-inputs/spx-input-date/spx-input-date.component.mjs +0 -194
  130. package/esm2022/spx-inputs/spx-input-float.component.mjs +0 -157
  131. package/esm2022/spx-inputs/spx-input-number.component.mjs +0 -87
  132. package/esm2022/spx-inputs/spx-input-radio.component.mjs +0 -129
  133. package/esm2022/spx-inputs/spx-input-text.component.mjs +0 -160
  134. package/esm2022/spx-inputs/spx-input-time-modal.component.mjs +0 -129
  135. package/esm2022/spx-inputs/spx-input-time.component.mjs +0 -163
  136. package/esm2022/spx-inputs/spx-input-type.enum.mjs +0 -17
  137. package/esm2022/spx-inputs/spx-input.component.mjs +0 -465
  138. package/esm2022/spx-inputs/spx-value-interface.mjs +0 -2
  139. package/esm2022/spx-navigation/public-api.mjs +0 -5
  140. package/esm2022/spx-navigation/softpak-components-spx-navigation.mjs +0 -5
  141. package/esm2022/spx-navigation/spx-home-tile.component.mjs +0 -71
  142. package/esm2022/spx-navigation/spx-home-tiles.component.mjs +0 -24
  143. package/esm2022/spx-navigation/spx-navigation-item.interface.mjs +0 -2
  144. package/esm2022/spx-navigation/spx-navigation.component.mjs +0 -47
  145. package/esm2022/spx-number-check/public-api.mjs +0 -2
  146. package/esm2022/spx-number-check/softpak-components-spx-number-check.mjs +0 -5
  147. package/esm2022/spx-number-check/spx-number-check.component.mjs +0 -265
  148. package/esm2022/spx-pagination/public-api.mjs +0 -2
  149. package/esm2022/spx-pagination/softpak-components-spx-pagination.mjs +0 -5
  150. package/esm2022/spx-pagination/spx-pagination.component.mjs +0 -44
  151. package/esm2022/spx-patch/patch-check.function.mjs +0 -9
  152. package/esm2022/spx-patch/public-api.mjs +0 -4
  153. package/esm2022/spx-patch/release-check.function.mjs +0 -14
  154. package/esm2022/spx-patch/softpak-components-spx-patch.mjs +0 -5
  155. package/esm2022/spx-patch/spx-patch.component.mjs +0 -54
  156. package/esm2022/spx-progress-bar/public-api.mjs +0 -2
  157. package/esm2022/spx-progress-bar/softpak-components-spx-progress-bar.mjs +0 -5
  158. package/esm2022/spx-progress-bar/spx-progress-bar.component.mjs +0 -29
  159. package/esm2022/spx-spinner/public-api.mjs +0 -2
  160. package/esm2022/spx-spinner/softpak-components-spx-spinner.mjs +0 -5
  161. package/esm2022/spx-spinner/spx-spinner.component.mjs +0 -160
  162. package/esm2022/spx-stock-info/public-api.mjs +0 -3
  163. package/esm2022/spx-stock-info/softpak-components-spx-stock-info.mjs +0 -5
  164. package/esm2022/spx-stock-info/spx-stock-info-value.interface.mjs +0 -2
  165. package/esm2022/spx-stock-info/spx-stock-info.component.mjs +0 -324
  166. package/esm2022/spx-storage/public-api.mjs +0 -3
  167. package/esm2022/spx-storage/softpak-components-spx-storage.mjs +0 -5
  168. package/esm2022/spx-storage/src/spx-storage-key.enum.mjs +0 -13
  169. package/esm2022/spx-storage/src/spx-storage.class.mjs +0 -45
  170. package/esm2022/spx-suggestion/public-api.mjs +0 -2
  171. package/esm2022/spx-suggestion/softpak-components-spx-suggestion.mjs +0 -5
  172. package/esm2022/spx-suggestion/spx-suggestion.component.mjs +0 -61
  173. package/esm2022/spx-toaster/public-api.mjs +0 -4
  174. package/esm2022/spx-toaster/softpak-components-spx-toaster.mjs +0 -5
  175. package/esm2022/spx-toaster/src/spx-toaster-autoclose-speed.mjs +0 -23
  176. package/esm2022/spx-toaster/src/spx-toaster-message.interface.mjs +0 -3
  177. package/esm2022/spx-toaster/src/spx-toaster.component.mjs +0 -168
  178. package/esm2022/spx-update/public-api.mjs +0 -3
  179. package/esm2022/spx-update/softpak-components-spx-update.mjs +0 -5
  180. package/esm2022/spx-update/src/spx-update-info.component.mjs +0 -86
  181. package/esm2022/spx-update/src/spx-update-progress.component.mjs +0 -46
  182. package/esm2022/spx-validation/max.validator.mjs +0 -17
  183. package/esm2022/spx-validation/maxlength.validator.mjs +0 -20
  184. package/esm2022/spx-validation/min.validator.mjs +0 -17
  185. package/esm2022/spx-validation/minlength.validator.mjs +0 -20
  186. package/esm2022/spx-validation/pattern.validator.mjs +0 -12
  187. package/esm2022/spx-validation/public-api.mjs +0 -9
  188. package/esm2022/spx-validation/required.validator.mjs +0 -12
  189. package/esm2022/spx-validation/softpak-components-spx-validation.mjs +0 -5
  190. package/esm2022/spx-validation/spx-validate-control.component.mjs +0 -65
  191. package/esm2022/spx-validation/year-and-month.validator.mjs +0 -42
@@ -1,10 +0,0 @@
1
- export var SpxSeverityEnum;
2
- (function (SpxSeverityEnum) {
3
- SpxSeverityEnum["error"] = "error";
4
- SpxSeverityEnum["info"] = "info";
5
- SpxSeverityEnum["success"] = "success";
6
- SpxSeverityEnum["unknown"] = "unknown";
7
- SpxSeverityEnum["warning"] = "warning";
8
- SpxSeverityEnum["primary"] = "primary";
9
- })(SpxSeverityEnum || (SpxSeverityEnum = {}));
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LXNldmVyaXR5LmVudW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWhlbHBlcnMvc3B4LXNldmVyaXR5LmVudW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksZUFPWDtBQVBELFdBQVksZUFBZTtJQUN6QixrQ0FBZSxDQUFBO0lBQ2YsZ0NBQWEsQ0FBQTtJQUNiLHNDQUFtQixDQUFBO0lBQ25CLHNDQUFtQixDQUFBO0lBQ25CLHNDQUFtQixDQUFBO0lBQ25CLHNDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFQVyxlQUFlLEtBQWYsZUFBZSxRQU8xQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIFNweFNldmVyaXR5RW51bSB7XHJcbiAgZXJyb3IgPSAnZXJyb3InLFxyXG4gIGluZm8gPSAnaW5mbycsXHJcbiAgc3VjY2VzcyA9ICdzdWNjZXNzJyxcclxuICB1bmtub3duID0gJ3Vua25vd24nLFxyXG4gIHdhcm5pbmcgPSAnd2FybmluZycsXHJcbiAgcHJpbWFyeSA9ICdwcmltYXJ5JyxcclxufVxyXG4iXX0=
@@ -1,7 +0,0 @@
1
- export const valuePairToValue = (pair) => {
2
- if (pair === null || (typeof pair === 'object' && pair.value === undefined)) {
3
- return null;
4
- }
5
- return pair?.value || pair?.value === false || pair?.value === null || pair?.value === '' || pair?.value === 0 ? pair?.value : pair;
6
- };
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWUtcGFpci10by12YWx1ZS5mdW5jdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NvZnRwYWsvY29tcG9uZW50cy9zcHgtaGVscGVycy92YWx1ZS1wYWlyLXRvLXZhbHVlLmZ1bmN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsSUFBUyxFQUFFLEVBQUU7SUFDMUMsSUFBSSxJQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDLEVBQUUsQ0FBQztRQUMxRSxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBQ0QsT0FBTyxJQUFJLEVBQUUsS0FBSyxJQUFJLElBQUksRUFBRSxLQUFLLEtBQUssS0FBSyxJQUFJLElBQUksRUFBRSxLQUFLLEtBQUssSUFBSSxJQUFJLElBQUksRUFBRSxLQUFLLEtBQUssRUFBRSxJQUFJLElBQUksRUFBRSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDeEksQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IHZhbHVlUGFpclRvVmFsdWUgPSAocGFpcjogYW55KSA9PiB7XHJcbiAgICBpZiAocGFpciA9PT0gbnVsbCB8fCAodHlwZW9mIHBhaXIgPT09ICdvYmplY3QnICYmIHBhaXIudmFsdWUgPT09IHVuZGVmaW5lZCkpIHtcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIHJldHVybiBwYWlyPy52YWx1ZSB8fCBwYWlyPy52YWx1ZSA9PT0gZmFsc2UgfHwgcGFpcj8udmFsdWUgPT09IG51bGwgfHwgcGFpcj8udmFsdWUgPT09ICcnIHx8IHBhaXI/LnZhbHVlID09PSAwID8gcGFpcj8udmFsdWUgOiBwYWlyO1xyXG59O1xyXG4iXX0=
@@ -1,6 +0,0 @@
1
- export * from './spx-value-interface';
2
- export * from './spx-input-box.component';
3
- export * from './spx-input-text.component';
4
- export * from './spx-input.component';
5
- export * from './spx-input-type.enum';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NvZnRwYWsvY29tcG9uZW50cy9zcHgtaW5wdXRzL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zcHgtdmFsdWUtaW50ZXJmYWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9zcHgtaW5wdXQtYm94LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc3B4LWlucHV0LXRleHQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9zcHgtaW5wdXQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9zcHgtaW5wdXQtdHlwZS5lbnVtJztcclxuIl19
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public-api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29mdHBhay1jb21wb25lbnRzLXNweC1pbnB1dHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWlucHV0cy9zb2Z0cGFrLWNvbXBvbmVudHMtc3B4LWlucHV0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -1,93 +0,0 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import { SpxButtonComponent } from '@softpak/components/spx-button';
3
- import { fromEvent } from 'rxjs';
4
- import * as i0 from "@angular/core";
5
- export class SpxDropdownComponent {
6
- constructor() {
7
- this.focusPosition = 0;
8
- this.spxSuggestions = [];
9
- this.spxSelect = new EventEmitter();
10
- }
11
- ngOnInit() {
12
- this.listenToKeyUp();
13
- }
14
- ngOnChanges(changes) {
15
- this.focusPosition = 0;
16
- }
17
- ngOnDestroy() {
18
- this.subscriptionKeyUp?.unsubscribe();
19
- }
20
- handleSuggestionClick(valuePair) {
21
- this.select(valuePair);
22
- }
23
- listenToKeyUp() {
24
- this.subscriptionKeyUp = fromEvent(window, 'keyup').subscribe((event) => {
25
- if (event.key === 'ArrowUp' && this.focusPosition > 0) {
26
- this.focusPosition = this.focusPosition - 1;
27
- event.preventDefault();
28
- }
29
- if (event.key === 'ArrowDown' && this.focusPosition < this.spxSuggestions.length - 1) {
30
- this.focusPosition = this.focusPosition + 1;
31
- event.preventDefault();
32
- }
33
- if (event.key === 'Enter' && this.spxSuggestions.length > 0) {
34
- this.select(this.spxSuggestions.at(this.focusPosition));
35
- event.preventDefault();
36
- }
37
- });
38
- }
39
- select(valuePair) {
40
- this.focusPosition = 0;
41
- this.spxSelect.emit(valuePair);
42
- }
43
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
44
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SpxDropdownComponent, isStandalone: true, selector: "spx-dropdown", inputs: { spxSuggestions: "spxSuggestions" }, outputs: { spxSelect: "spxSelect" }, usesOnChanges: true, ngImport: i0, template: `<div class="relative text-black">
45
- <div
46
- class="absolute bg-gray-100 left-0 right-0 z-20">
47
- @for (valuePair of this.spxSuggestions; track valuePair; let i = $index) {
48
- <button
49
- class="text-black block w-full p-2 border border-gray-200 rounded-lg shadow hover:bg-gray-200 flex items-center text-left"
50
- [class.bg-gray-100]="i === this.focusPosition"
51
- [class.bg-white]="i !== this.focusPosition"
52
- (click)="this.handleSuggestionClick(valuePair)"
53
- [attr.tabindex]="-1"
54
- [attr.type]="'button'">
55
- <div class="flex-1 p-1 font-bold text-lg">{{valuePair?.description}}</div>
56
- <spx-button (spxClick)="this.handleSuggestionClick(valuePair)" [spxType]="'button'" [spxTabIndex]="-1">Select</spx-button>
57
- </button>
58
- }
59
- </div>
60
- </div>`, isInline: true, dependencies: [{ kind: "component", type: SpxButtonComponent, selector: "spx-button", inputs: ["spxDisabled", "spxClass", "spxClassObject", "spxForm", "spxFullHeight", "spxFullWidth", "spxSeverity", "spxSize", "spxTabIndex", "spxType"], outputs: ["spxClick"] }] }); }
61
- }
62
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxDropdownComponent, decorators: [{
63
- type: Component,
64
- args: [{
65
- selector: 'spx-dropdown',
66
- standalone: true,
67
- imports: [
68
- SpxButtonComponent
69
- ],
70
- template: `<div class="relative text-black">
71
- <div
72
- class="absolute bg-gray-100 left-0 right-0 z-20">
73
- @for (valuePair of this.spxSuggestions; track valuePair; let i = $index) {
74
- <button
75
- class="text-black block w-full p-2 border border-gray-200 rounded-lg shadow hover:bg-gray-200 flex items-center text-left"
76
- [class.bg-gray-100]="i === this.focusPosition"
77
- [class.bg-white]="i !== this.focusPosition"
78
- (click)="this.handleSuggestionClick(valuePair)"
79
- [attr.tabindex]="-1"
80
- [attr.type]="'button'">
81
- <div class="flex-1 p-1 font-bold text-lg">{{valuePair?.description}}</div>
82
- <spx-button (spxClick)="this.handleSuggestionClick(valuePair)" [spxType]="'button'" [spxTabIndex]="-1">Select</spx-button>
83
- </button>
84
- }
85
- </div>
86
- </div>`,
87
- }]
88
- }], propDecorators: { spxSuggestions: [{
89
- type: Input
90
- }], spxSelect: [{
91
- type: Output
92
- }] } });
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NvZnRwYWsvY29tcG9uZW50cy9zcHgtaW5wdXRzL3NweC1kcm9wZG93bi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFnQyxNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBRXBILE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BFLE9BQU8sRUFBZ0IsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQTBCL0MsTUFBTSxPQUFPLG9CQUFvQjtJQXhCakM7UUF5Qlksa0JBQWEsR0FBRyxDQUFDLENBQUM7UUFDbkIsbUJBQWMsR0FBOEMsRUFBRSxDQUFDO1FBQzlELGNBQVMsR0FBb0MsSUFBSSxZQUFZLEVBQXFCLENBQUM7S0F3QzlGO0lBckNDLFFBQVE7UUFDTixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQscUJBQXFCLENBQUMsU0FBa0Q7UUFDdEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRU8sYUFBYTtRQUNuQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUN0RSxJQUFLLEtBQXVCLENBQUMsR0FBRyxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUN6RSxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDO2dCQUM1QyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDekIsQ0FBQztZQUNELElBQUssS0FBdUIsQ0FBQyxHQUFHLEtBQUssV0FBVyxJQUFJLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3hHLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUM7Z0JBQzVDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN6QixDQUFDO1lBQ0QsSUFBSyxLQUF1QixDQUFDLEdBQUcsS0FBSyxPQUFPLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQy9FLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBRSxDQUFDLENBQUM7Z0JBQ3pELEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN6QixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sTUFBTSxDQUFDLFNBQWtEO1FBQy9ELElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7K0dBMUNVLG9CQUFvQjttR0FBcEIsb0JBQW9CLGdMQWxCckI7Ozs7Ozs7Ozs7Ozs7Ozs7U0FnQkgsNERBbEJMLGtCQUFrQjs7NEZBb0JULG9CQUFvQjtrQkF4QmhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGNBQWM7b0JBQ3hCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUU7d0JBQ1Asa0JBQWtCO3FCQUNyQjtvQkFDQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7U0FnQkg7aUJBQ1I7OEJBR1UsY0FBYztzQkFBdEIsS0FBSztnQkFDSSxTQUFTO3NCQUFsQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFNweFZhbHVlUGFpciB9IGZyb20gJy4vc3B4LXZhbHVlLWludGVyZmFjZSc7XHJcbmltcG9ydCB7IFNweEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWJ1dHRvbic7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NweC1kcm9wZG93bicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBTcHhCdXR0b25Db21wb25lbnRcclxuXSxcclxuICB0ZW1wbGF0ZTogYDxkaXYgY2xhc3M9XCJyZWxhdGl2ZSB0ZXh0LWJsYWNrXCI+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwiYWJzb2x1dGUgYmctZ3JheS0xMDAgbGVmdC0wIHJpZ2h0LTAgei0yMFwiPlxyXG4gICAgICBAZm9yICh2YWx1ZVBhaXIgb2YgdGhpcy5zcHhTdWdnZXN0aW9uczsgdHJhY2sgdmFsdWVQYWlyOyBsZXQgaSA9ICRpbmRleCkge1xyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgIGNsYXNzPVwidGV4dC1ibGFjayBibG9jayB3LWZ1bGwgcC0yIGJvcmRlciBib3JkZXItZ3JheS0yMDAgcm91bmRlZC1sZyBzaGFkb3cgaG92ZXI6YmctZ3JheS0yMDAgZmxleCBpdGVtcy1jZW50ZXIgdGV4dC1sZWZ0XCJcclxuICAgICAgICAgIFtjbGFzcy5iZy1ncmF5LTEwMF09XCJpID09PSB0aGlzLmZvY3VzUG9zaXRpb25cIlxyXG4gICAgICAgICAgW2NsYXNzLmJnLXdoaXRlXT1cImkgIT09IHRoaXMuZm9jdXNQb3NpdGlvblwiXHJcbiAgICAgICAgICAoY2xpY2spPVwidGhpcy5oYW5kbGVTdWdnZXN0aW9uQ2xpY2sodmFsdWVQYWlyKVwiXHJcbiAgICAgICAgICBbYXR0ci50YWJpbmRleF09XCItMVwiXHJcbiAgICAgICAgICBbYXR0ci50eXBlXT1cIididXR0b24nXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC0xIHAtMSBmb250LWJvbGQgdGV4dC1sZ1wiPnt7dmFsdWVQYWlyPy5kZXNjcmlwdGlvbn19PC9kaXY+XHJcbiAgICAgICAgICA8c3B4LWJ1dHRvbiAoc3B4Q2xpY2spPVwidGhpcy5oYW5kbGVTdWdnZXN0aW9uQ2xpY2sodmFsdWVQYWlyKVwiIFtzcHhUeXBlXT1cIididXR0b24nXCIgW3NweFRhYkluZGV4XT1cIi0xXCI+U2VsZWN0PC9zcHgtYnV0dG9uPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICB9XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5gLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3B4RHJvcGRvd25Db21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBwcm90ZWN0ZWQgZm9jdXNQb3NpdGlvbiA9IDA7XHJcbiAgQElucHV0KCkgc3B4U3VnZ2VzdGlvbnM6IFNweFZhbHVlUGFpcjxib29sZWFuIHwgbnVtYmVyIHwgc3RyaW5nPltdID0gW107XHJcbiAgQE91dHB1dCgpIHNweFNlbGVjdDogRXZlbnRFbWl0dGVyPFNweFZhbHVlUGFpcjxhbnk+PiA9IG5ldyBFdmVudEVtaXR0ZXI8U3B4VmFsdWVQYWlyPGFueT4+KCk7XHJcbiAgc3Vic2NyaXB0aW9uS2V5VXA/OiBTdWJzY3JpcHRpb247XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5saXN0ZW5Ub0tleVVwKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvY3VzUG9zaXRpb24gPSAwO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbktleVVwPy51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlU3VnZ2VzdGlvbkNsaWNrKHZhbHVlUGFpcjogU3B4VmFsdWVQYWlyPHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4+KSB7XHJcbiAgICB0aGlzLnNlbGVjdCh2YWx1ZVBhaXIpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBsaXN0ZW5Ub0tleVVwKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25LZXlVcCA9IGZyb21FdmVudCh3aW5kb3csICdrZXl1cCcpLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcclxuICAgICAgaWYgKChldmVudCBhcyBLZXlib2FyZEV2ZW50KS5rZXkgPT09ICdBcnJvd1VwJyAmJiB0aGlzLmZvY3VzUG9zaXRpb24gPiAwKSB7XHJcbiAgICAgICAgdGhpcy5mb2N1c1Bvc2l0aW9uID0gdGhpcy5mb2N1c1Bvc2l0aW9uIC0gMTtcclxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICgoZXZlbnQgYXMgS2V5Ym9hcmRFdmVudCkua2V5ID09PSAnQXJyb3dEb3duJyAmJiB0aGlzLmZvY3VzUG9zaXRpb24gPCB0aGlzLnNweFN1Z2dlc3Rpb25zLmxlbmd0aCAtIDEpIHtcclxuICAgICAgICB0aGlzLmZvY3VzUG9zaXRpb24gPSB0aGlzLmZvY3VzUG9zaXRpb24gKyAxO1xyXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKChldmVudCBhcyBLZXlib2FyZEV2ZW50KS5rZXkgPT09ICdFbnRlcicgJiYgdGhpcy5zcHhTdWdnZXN0aW9ucy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3QodGhpcy5zcHhTdWdnZXN0aW9ucy5hdCh0aGlzLmZvY3VzUG9zaXRpb24pISk7XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNlbGVjdCh2YWx1ZVBhaXI6IFNweFZhbHVlUGFpcjxzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuPik6IHZvaWQge1xyXG4gICAgdGhpcy5mb2N1c1Bvc2l0aW9uID0gMDtcclxuICAgIHRoaXMuc3B4U2VsZWN0LmVtaXQodmFsdWVQYWlyKTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,299 +0,0 @@
1
- import { Component, EventEmitter, HostListener, Input, Output } from '@angular/core';
2
- import { SpxButtonComponent } from '@softpak/components/spx-button';
3
- import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
4
- import { faEdit, faQuestion, faSearch, faTimes } from '@fortawesome/free-solid-svg-icons';
5
- import { SpxSeverityEnum } from '@softpak/components/spx-helpers';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@fortawesome/angular-fontawesome";
8
- export class SpxInputBoxComponent {
9
- handleFocusIn(ev) {
10
- this.emitFocusIn();
11
- }
12
- handleFocusOut(ev) {
13
- const thisEl = this.elRef.nativeElement;
14
- const relatedElement = ev.relatedTarget;
15
- if (!relatedElement || !thisEl.contains(relatedElement)) {
16
- this.emitFocusOut();
17
- }
18
- }
19
- handleWindowClick(ev) {
20
- if (ev.composedPath().includes(this.elRef.nativeElement)) {
21
- this.emitFocusIn();
22
- }
23
- else {
24
- this.emitFocusOut();
25
- }
26
- }
27
- onClear() {
28
- this.spxClear.emit();
29
- }
30
- onSearch() {
31
- this.spxSearch.emit();
32
- }
33
- onEdit() {
34
- this.spxEdit.emit();
35
- }
36
- onHelp() {
37
- this.spxHelp.emit();
38
- }
39
- constructor(elRef) {
40
- this.elRef = elRef;
41
- this.faEdit = faEdit;
42
- this.faSearch = faSearch;
43
- this.faQuestion = faQuestion;
44
- this.faTimes = faTimes;
45
- this.spxSeverityEnum = SpxSeverityEnum;
46
- this.spxFocused = false;
47
- this.spxReadonly = false;
48
- this.spxShowClear = true;
49
- this.spxShowLabel = true;
50
- this.spxClear = new EventEmitter();
51
- this.spxSearch = new EventEmitter();
52
- this.spxFocus = new EventEmitter();
53
- this.spxFocusOut = new EventEmitter();
54
- this.spxEdit = new EventEmitter();
55
- this.spxHelp = new EventEmitter();
56
- }
57
- emitFocusIn() {
58
- if (!this.spxFocused) {
59
- this.spxFocus.emit();
60
- }
61
- }
62
- emitFocusOut() {
63
- if (this.spxFocused) {
64
- this.spxFocusOut.emit();
65
- }
66
- }
67
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputBoxComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
68
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SpxInputBoxComponent, isStandalone: true, selector: "spx-input-box", inputs: { spxCompact: "spxCompact", spxFocused: "spxFocused", spxLabel: "spxLabel", spxReadonly: "spxReadonly", spxRequired: "spxRequired", spxShowClear: "spxShowClear", spxShowEdit: "spxShowEdit", spxShowHelp: "spxShowHelp", spxShowLabel: "spxShowLabel", spxShowSearch: "spxShowSearch", spxAlertMessageSeverity: "spxAlertMessageSeverity", spxShowValidationMessages: "spxShowValidationMessages", spxValue: "spxValue" }, outputs: { spxClear: "spxClear", spxSearch: "spxSearch", spxFocus: "spxFocus", spxFocusOut: "spxFocusOut", spxEdit: "spxEdit", spxHelp: "spxHelp" }, host: { listeners: { "focusin": "handleFocusIn($event)", "focusout": "handleFocusOut($event)", "document:click": "handleWindowClick($event)" } }, ngImport: i0, template: `<div class="flex rounded w-full gap-3"
69
- [class.rounded-none]="this.spxShowValidationMessages"
70
- [class.rounded-t]="this.spxShowValidationMessages"
71
- [class.outline-none]="this.spxFocused && !this.spxReadonly"
72
- [class.ring-2]="this.spxFocused && !this.spxReadonly"
73
- [class.ring-offset-2]="this.spxFocused && !this.spxReadonly"
74
- [class.ring-blue-500]="this.spxFocused && !this.spxReadonly"
75
- [class.bg-white]="!this.spxReadonly"
76
- [class.bg-gray-300]="this.spxReadonly"
77
- [class.cursor-not-allowed]="this.spxReadonly">
78
- <div class="flex-auto p-3"
79
- [class.p-0]="this.spxCompact"
80
- [class.flex]="this.spxCompact"
81
- [class.items-center]="this.spxCompact">
82
- @if (this.spxShowLabel) {
83
- <div class="font-bold text-sm mb-1 text-gray-800"
84
- [class.mb-0]="this.spxCompact"
85
- [class.px-3]="this.spxCompact">
86
- {{this.spxLabel}} @if (spxRequired) {
87
- <span class="text-red-800">*</span>
88
- }
89
- </div>
90
- }
91
- <ng-content select="[controls]"></ng-content>
92
- </div>
93
- <div class="flex flex-none gap-1 p-1">
94
- @if (this.spxShowEdit) {
95
- <spx-button
96
- (spxClick)="onEdit()"
97
- [spxFullHeight]="true"
98
- [spxSize]="'xl'"
99
- [spxType]="'button'">
100
- <fa-icon [icon]="faEdit" class="block text-xl"></fa-icon>
101
- </spx-button>
102
- }
103
- @if (this.spxShowHelp) {
104
- <spx-button
105
- (spxClick)="onHelp()"
106
- [spxFullHeight]="true"
107
- [spxDisabled]="this.spxReadonly"
108
- [spxSize]="'xl'"
109
- [spxTabIndex]="-1"
110
- [spxType]="'button'">
111
- <fa-icon [icon]="faQuestion" class="block text-xl"></fa-icon>
112
- </spx-button>
113
- }
114
- @if (this.spxShowSearch) {
115
- <spx-button
116
- (spxClick)="onSearch()"
117
- [spxFullHeight]="true"
118
- [spxDisabled]="this.spxReadonly"
119
- [spxSize]="'xl'"
120
- [spxTabIndex]="-1"
121
- [spxType]="'button'">
122
- <fa-icon [icon]="faSearch" class="block text-xl"></fa-icon>
123
- </spx-button>
124
- }
125
- @if (this.spxShowClear) {
126
- <spx-button
127
- (spxClick)="onClear()"
128
- [spxDisabled]="this.spxReadonly || !this.spxValue?.value"
129
- [spxFullHeight]="true"
130
- [spxSize]="'xl'"
131
- [spxTabIndex]="-1"
132
- [spxType]="'button'">
133
- <fa-icon [icon]="faTimes" class="block text-xl"></fa-icon>
134
- </spx-button>
135
- }
136
- </div>
137
- </div>
138
- @if (this.spxShowValidationMessages) {
139
- <div class="bg-red-600 rounded-b text-white p-3">
140
- <ng-content select="[validation-messages]"></ng-content>
141
- </div>
142
- }
143
- @else if(this.spxAlertMessageSeverity) {
144
- <div [class.bg-red-700]="this.spxAlertMessageSeverity === spxSeverityEnum.error"
145
- [class.bg-green-700]="this.spxAlertMessageSeverity === spxSeverityEnum.success"
146
- [class.bg-blue-700]="this.spxAlertMessageSeverity === spxSeverityEnum.info"
147
- [class.bg-gray-400]="this.spxAlertMessageSeverity === spxSeverityEnum.unknown"
148
- [class.bg-amber-700]="this.spxAlertMessageSeverity === spxSeverityEnum.warning"
149
- class="rounded-b text-white p-3">
150
- <ng-content select="[validation-messages]"></ng-content>
151
- </div>
152
- }
153
- `, isInline: true, dependencies: [{ 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: i1.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }] }); }
154
- }
155
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputBoxComponent, decorators: [{
156
- type: Component,
157
- args: [{
158
- selector: 'spx-input-box',
159
- standalone: true,
160
- imports: [
161
- SpxButtonComponent,
162
- FontAwesomeModule
163
- ],
164
- template: `<div class="flex rounded w-full gap-3"
165
- [class.rounded-none]="this.spxShowValidationMessages"
166
- [class.rounded-t]="this.spxShowValidationMessages"
167
- [class.outline-none]="this.spxFocused && !this.spxReadonly"
168
- [class.ring-2]="this.spxFocused && !this.spxReadonly"
169
- [class.ring-offset-2]="this.spxFocused && !this.spxReadonly"
170
- [class.ring-blue-500]="this.spxFocused && !this.spxReadonly"
171
- [class.bg-white]="!this.spxReadonly"
172
- [class.bg-gray-300]="this.spxReadonly"
173
- [class.cursor-not-allowed]="this.spxReadonly">
174
- <div class="flex-auto p-3"
175
- [class.p-0]="this.spxCompact"
176
- [class.flex]="this.spxCompact"
177
- [class.items-center]="this.spxCompact">
178
- @if (this.spxShowLabel) {
179
- <div class="font-bold text-sm mb-1 text-gray-800"
180
- [class.mb-0]="this.spxCompact"
181
- [class.px-3]="this.spxCompact">
182
- {{this.spxLabel}} @if (spxRequired) {
183
- <span class="text-red-800">*</span>
184
- }
185
- </div>
186
- }
187
- <ng-content select="[controls]"></ng-content>
188
- </div>
189
- <div class="flex flex-none gap-1 p-1">
190
- @if (this.spxShowEdit) {
191
- <spx-button
192
- (spxClick)="onEdit()"
193
- [spxFullHeight]="true"
194
- [spxSize]="'xl'"
195
- [spxType]="'button'">
196
- <fa-icon [icon]="faEdit" class="block text-xl"></fa-icon>
197
- </spx-button>
198
- }
199
- @if (this.spxShowHelp) {
200
- <spx-button
201
- (spxClick)="onHelp()"
202
- [spxFullHeight]="true"
203
- [spxDisabled]="this.spxReadonly"
204
- [spxSize]="'xl'"
205
- [spxTabIndex]="-1"
206
- [spxType]="'button'">
207
- <fa-icon [icon]="faQuestion" class="block text-xl"></fa-icon>
208
- </spx-button>
209
- }
210
- @if (this.spxShowSearch) {
211
- <spx-button
212
- (spxClick)="onSearch()"
213
- [spxFullHeight]="true"
214
- [spxDisabled]="this.spxReadonly"
215
- [spxSize]="'xl'"
216
- [spxTabIndex]="-1"
217
- [spxType]="'button'">
218
- <fa-icon [icon]="faSearch" class="block text-xl"></fa-icon>
219
- </spx-button>
220
- }
221
- @if (this.spxShowClear) {
222
- <spx-button
223
- (spxClick)="onClear()"
224
- [spxDisabled]="this.spxReadonly || !this.spxValue?.value"
225
- [spxFullHeight]="true"
226
- [spxSize]="'xl'"
227
- [spxTabIndex]="-1"
228
- [spxType]="'button'">
229
- <fa-icon [icon]="faTimes" class="block text-xl"></fa-icon>
230
- </spx-button>
231
- }
232
- </div>
233
- </div>
234
- @if (this.spxShowValidationMessages) {
235
- <div class="bg-red-600 rounded-b text-white p-3">
236
- <ng-content select="[validation-messages]"></ng-content>
237
- </div>
238
- }
239
- @else if(this.spxAlertMessageSeverity) {
240
- <div [class.bg-red-700]="this.spxAlertMessageSeverity === spxSeverityEnum.error"
241
- [class.bg-green-700]="this.spxAlertMessageSeverity === spxSeverityEnum.success"
242
- [class.bg-blue-700]="this.spxAlertMessageSeverity === spxSeverityEnum.info"
243
- [class.bg-gray-400]="this.spxAlertMessageSeverity === spxSeverityEnum.unknown"
244
- [class.bg-amber-700]="this.spxAlertMessageSeverity === spxSeverityEnum.warning"
245
- class="rounded-b text-white p-3">
246
- <ng-content select="[validation-messages]"></ng-content>
247
- </div>
248
- }
249
- `,
250
- }]
251
- }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { spxCompact: [{
252
- type: Input
253
- }], spxFocused: [{
254
- type: Input
255
- }], spxLabel: [{
256
- type: Input
257
- }], spxReadonly: [{
258
- type: Input
259
- }], spxRequired: [{
260
- type: Input
261
- }], spxShowClear: [{
262
- type: Input
263
- }], spxShowEdit: [{
264
- type: Input
265
- }], spxShowHelp: [{
266
- type: Input
267
- }], spxShowLabel: [{
268
- type: Input
269
- }], spxShowSearch: [{
270
- type: Input
271
- }], spxAlertMessageSeverity: [{
272
- type: Input
273
- }], spxShowValidationMessages: [{
274
- type: Input
275
- }], spxValue: [{
276
- type: Input
277
- }], spxClear: [{
278
- type: Output
279
- }], spxSearch: [{
280
- type: Output
281
- }], spxFocus: [{
282
- type: Output
283
- }], spxFocusOut: [{
284
- type: Output
285
- }], spxEdit: [{
286
- type: Output
287
- }], spxHelp: [{
288
- type: Output
289
- }], handleFocusIn: [{
290
- type: HostListener,
291
- args: ['focusin', ["$event"]]
292
- }], handleFocusOut: [{
293
- type: HostListener,
294
- args: ['focusout', ["$event"]]
295
- }], handleWindowClick: [{
296
- type: HostListener,
297
- args: ['document:click', ["$event"]]
298
- }] } });
299
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWlucHV0LWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWlucHV0cy9zcHgtaW5wdXQtYm94LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVwRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDMUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7QUFnR2xFLE1BQU0sT0FBTyxvQkFBb0I7SUF5Qk0sYUFBYSxDQUFDLEVBQVM7UUFDMUQsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFDcUMsY0FBYyxDQUFDLEVBQWM7UUFDakUsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUE0QixDQUFDO1FBQ3ZELE1BQU0sY0FBYyxHQUFHLEVBQUUsQ0FBQyxhQUE0QixDQUFDO1FBQ3ZELElBQUksQ0FBQyxjQUFjLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7WUFDeEQsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3RCLENBQUM7SUFDSCxDQUFDO0lBQzJDLGlCQUFpQixDQUFDLEVBQVM7UUFDckUsSUFBSSxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEVBQUUs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QkFBakIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLE9BQU87c0JBQWhCLE1BQU07Z0JBQzhCLGFBQWE7c0JBQWpELFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQUdHLGNBQWM7c0JBQW5ELFlBQVk7dUJBQUMsVUFBVSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQU9RLGlCQUFpQjtzQkFBNUQsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFNweEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWJ1dHRvbic7XHJcbmltcG9ydCB7IFNweFZhbHVlUGFpciB9IGZyb20gJy4vc3B4LXZhbHVlLWludGVyZmFjZSc7XHJcbmltcG9ydCB7IEZvbnRBd2Vzb21lTW9kdWxlIH0gZnJvbSAnQGZvcnRhd2Vzb21lL2FuZ3VsYXItZm9udGF3ZXNvbWUnO1xyXG5pbXBvcnQgeyBmYUVkaXQsIGZhUXVlc3Rpb24sIGZhU2VhcmNoLCBmYVRpbWVzIH0gZnJvbSAnQGZvcnRhd2Vzb21lL2ZyZWUtc29saWQtc3ZnLWljb25zJztcclxuaW1wb3J0IHsgU3B4U2V2ZXJpdHlFbnVtIH0gZnJvbSAnQHNvZnRwYWsvY29tcG9uZW50cy9zcHgtaGVscGVycyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NweC1pbnB1dC1ib3gnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgU3B4QnV0dG9uQ29tcG9uZW50LFxyXG4gICAgRm9udEF3ZXNvbWVNb2R1bGVcclxuXSxcclxuICB0ZW1wbGF0ZTogYDxkaXYgY2xhc3M9XCJmbGV4IHJvdW5kZWQgdy1mdWxsIGdhcC0zXCJcclxuICAgICAgW2NsYXNzLnJvdW5kZWQtbm9uZV09XCJ0aGlzLnNweFNob3dWYWxpZGF0aW9uTWVzc2FnZXNcIlxyXG4gICAgICBbY2xhc3Mucm91bmRlZC10XT1cInRoaXMuc3B4U2hvd1ZhbGlkYXRpb25NZXNzYWdlc1wiXHJcbiAgICAgIFtjbGFzcy5vdXRsaW5lLW5vbmVdPVwidGhpcy5zcHhGb2N1c2VkICYmICF0aGlzLnNweFJlYWRvbmx5XCJcclxuICAgICAgW2NsYXNzLnJpbmctMl09XCJ0aGlzLnNweEZvY3VzZWQgJiYgIXRoaXMuc3B4UmVhZG9ubHlcIlxyXG4gICAgICBbY2xhc3MucmluZy1vZmZzZXQtMl09XCJ0aGlzLnNweEZvY3VzZWQgJiYgIXRoaXMuc3B4UmVhZG9ubHlcIlxyXG4gICAgICBbY2xhc3MucmluZy1ibHVlLTUwMF09XCJ0aGlzLnNweEZvY3VzZWQgJiYgIXRoaXMuc3B4UmVhZG9ubHlcIlxyXG4gICAgICBbY2xhc3MuYmctd2hpdGVdPVwiIXRoaXMuc3B4UmVhZG9ubHlcIlxyXG4gICAgICBbY2xhc3MuYmctZ3JheS0zMDBdPVwidGhpcy5zcHhSZWFkb25seVwiXHJcbiAgICAgIFtjbGFzcy5jdXJzb3Itbm90LWFsbG93ZWRdPVwidGhpcy5zcHhSZWFkb25seVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleC1hdXRvIHAtM1wiXHJcbiAgICAgICAgW2NsYXNzLnAtMF09XCJ0aGlzLnNweENvbXBhY3RcIlxyXG4gICAgICAgIFtjbGFzcy5mbGV4XT1cInRoaXMuc3B4Q29tcGFjdFwiXHJcbiAgICAgICAgW2NsYXNzLml0ZW1zLWNlbnRlcl09XCJ0aGlzLnNweENvbXBhY3RcIj5cclxuICAgICAgICBAaWYgKHRoaXMuc3B4U2hvd0xhYmVsKSB7XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9udC1ib2xkIHRleHQtc20gbWItMSB0ZXh0LWdyYXktODAwXCJcclxuICAgICAgICAgICAgW2NsYXNzLm1iLTBdPVwidGhpcy5zcHhDb21wYWN0XCJcclxuICAgICAgICAgICAgW2NsYXNzLnB4LTNdPVwidGhpcy5zcHhDb21wYWN0XCI+XHJcbiAgICAgICAgICAgIHt7dGhpcy5zcHhMYWJlbH19IEBpZiAoc3B4UmVxdWlyZWQpIHtcclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXJlZC04MDBcIj4qPC9zcGFuPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICB9XHJcbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltjb250cm9sc11cIj48L25nLWNvbnRlbnQ+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtbm9uZSBnYXAtMSBwLTFcIj5cclxuICAgICAgQGlmICh0aGlzLnNweFNob3dFZGl0KSB7XHJcbiAgICAgICAgPHNweC1idXR0b25cclxuICAgICAgICAgIChzcHhDbGljayk9XCJvbkVkaXQoKVwiXHJcbiAgICAgICAgICBbc3B4RnVsbEhlaWdodF09XCJ0cnVlXCJcclxuICAgICAgICAgIFtzcHhTaXplXT1cIid4bCdcIlxyXG4gICAgICAgICAgW3NweFR5cGVdPVwiJ2J1dHRvbidcIj5cclxuICAgICAgICAgIDxmYS1pY29uIFtpY29uXT1cImZhRWRpdFwiIGNsYXNzPVwiYmxvY2sgdGV4dC14bFwiPjwvZmEtaWNvbj5cclxuICAgICAgICA8L3NweC1idXR0b24+XHJcbiAgICAgIH1cclxuICAgICAgQGlmICh0aGlzLnNweFNob3dIZWxwKSB7XHJcbiAgICAgICAgPHNweC1idXR0b25cclxuICAgICAgICAgIChzcHhDbGljayk9XCJvbkhlbHAoKVwiXHJcbiAgICAgICAgICBbc3B4RnVsbEhlaWdodF09XCJ0cnVlXCJcclxuICAgICAgICAgIFtzcHhEaXNhYmxlZF09XCJ0aGlzLnNweFJlYWRvbmx5XCJcclxuICAgICAgICAgIFtzcHhTaXplXT1cIid4bCdcIlxyXG4gICAgICAgICAgW3NweFRhYkluZGV4XT1cIi0xXCJcclxuICAgICAgICAgIFtzcHhUeXBlXT1cIididXR0b24nXCI+XHJcbiAgICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJmYVF1ZXN0aW9uXCIgY2xhc3M9XCJibG9jayB0ZXh0LXhsXCI+PC9mYS1pY29uPlxyXG4gICAgICAgIDwvc3B4LWJ1dHRvbj5cclxuICAgICAgfVxyXG4gICAgICBAaWYgKHRoaXMuc3B4U2hvd1NlYXJjaCkge1xyXG4gICAgICAgIDxzcHgtYnV0dG9uXHJcbiAgICAgICAgICAoc3B4Q2xpY2spPVwib25TZWFyY2goKVwiXHJcbiAgICAgICAgICBbc3B4RnVsbEhlaWdodF09XCJ0cnVlXCJcclxuICAgICAgICAgIFtzcHhEaXNhYmxlZF09XCJ0aGlzLnNweFJlYWRvbmx5XCJcclxuICAgICAgICAgIFtzcHhTaXplXT1cIid4bCdcIlxyXG4gICAgICAgICAgW3NweFRhYkluZGV4XT1cIi0xXCJcclxuICAgICAgICAgIFtzcHhUeXBlXT1cIididXR0b24nXCI+XHJcbiAgICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJmYVNlYXJjaFwiIGNsYXNzPVwiYmxvY2sgdGV4dC14bFwiPjwvZmEtaWNvbj5cclxuICAgICAgICA8L3NweC1idXR0b24+XHJcbiAgICAgIH1cclxuICAgICAgQGlmICh0aGlzLnNweFNob3dDbGVhcikge1xyXG4gICAgICAgIDxzcHgtYnV0dG9uXHJcbiAgICAgICAgICAoc3B4Q2xpY2spPVwib25DbGVhcigpXCJcclxuICAgICAgICAgIFtzcHhEaXNhYmxlZF09XCJ0aGlzLnNweFJlYWRvbmx5IHx8ICF0aGlzLnNweFZhbHVlPy52YWx1ZVwiXHJcbiAgICAgICAgICBbc3B4RnVsbEhlaWdodF09XCJ0cnVlXCJcclxuICAgICAgICAgIFtzcHhTaXplXT1cIid4bCdcIlxyXG4gICAgICAgICAgW3NweFRhYkluZGV4XT1cIi0xXCJcclxuICAgICAgICAgIFtzcHhUeXBlXT1cIididXR0b24nXCI+XHJcbiAgICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJmYVRpbWVzXCIgY2xhc3M9XCJibG9jayB0ZXh0LXhsXCI+PC9mYS1pY29uPlxyXG4gICAgICAgIDwvc3B4LWJ1dHRvbj5cclxuICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIEBpZiAodGhpcy5zcHhTaG93VmFsaWRhdGlvbk1lc3NhZ2VzKSB7XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJiZy1yZWQtNjAwIHJvdW5kZWQtYiB0ZXh0LXdoaXRlIHAtM1wiPlxyXG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlt2YWxpZGF0aW9uLW1lc3NhZ2VzXVwiPjwvbmctY29udGVudD5cclxuICAgICAgPC9kaXY+XHJcbiAgICB9XHJcbiAgICBAZWxzZSBpZih0aGlzLnNweEFsZXJ0TWVzc2FnZVNldmVyaXR5KSB7XHJcbiAgICAgIDxkaXYgIFtjbGFzcy5iZy1yZWQtNzAwXT1cInRoaXMuc3B4QWxlcnRNZXNzYWdlU2V2ZXJpdHkgPT09IHNweFNldmVyaXR5RW51bS5lcnJvclwiXHJcbiAgICAgICAgICAgIFtjbGFzcy5iZy1ncmVlbi03MDBdPVwidGhpcy5zcHhBbGVydE1lc3NhZ2VTZXZlcml0eSA9PT0gc3B4U2V2ZXJpdHlFbnVtLnN1Y2Nlc3NcIlxyXG4gICAgICAgICAgICBbY2xhc3MuYmctYmx1ZS03MDBdPVwidGhpcy5zcHhBbGVydE1lc3NhZ2VTZXZlcml0eSA9PT0gc3B4U2V2ZXJpdHlFbnVtLmluZm9cIlxyXG4gICAgICAgICAgICBbY2xhc3MuYmctZ3JheS00MDBdPVwidGhpcy5zcHhBbGVydE1lc3NhZ2VTZXZlcml0eSA9PT0gc3B4U2V2ZXJpdHlFbnVtLnVua25vd25cIlxyXG4gICAgICAgICAgICBbY2xhc3MuYmctYW1iZXItNzAwXT1cInRoaXMuc3B4QWxlcnRNZXNzYWdlU2V2ZXJpdHkgPT09IHNweFNldmVyaXR5RW51bS53YXJuaW5nXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJyb3VuZGVkLWIgdGV4dC13aGl0ZSBwLTNcIj5cclxuICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlt2YWxpZGF0aW9uLW1lc3NhZ2VzXVwiPjwvbmctY29udGVudD5cclxuICAgICAgPC9kaXY+XHJcbiAgICB9XHJcbiAgICBgLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3B4SW5wdXRCb3hDb21wb25lbnQge1xyXG4gIGZhRWRpdCA9IGZhRWRpdDtcclxuICBmYVNlYXJjaCA9IGZhU2VhcmNoO1xyXG4gIGZhUXVlc3Rpb24gPSBmYVF1ZXN0aW9uO1xyXG4gIGZhVGltZXMgPSBmYVRpbWVzO1xyXG4gIHNweFNldmVyaXR5RW51bSA9IFNweFNldmVyaXR5RW51bTtcclxuICBASW5wdXQoKSBzcHhDb21wYWN0PzogYm9vbGVhbjtcclxuICBASW5wdXQoKSBzcHhGb2N1c2VkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc3B4TGFiZWw/OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc3B4UmVhZG9ubHkgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzcHhSZXF1aXJlZD86IGJvb2xlYW47XHJcbiAgQElucHV0KCkgc3B4U2hvd0NsZWFyID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzcHhTaG93RWRpdD86IGJvb2xlYW47XHJcbiAgQElucHV0KCkgc3B4U2hvd0hlbHA/OiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHNweFNob3dMYWJlbCA9IHRydWU7XHJcbiAgQElucHV0KCkgc3B4U2hvd1NlYXJjaD86IGJvb2xlYW47XHJcbiAgQElucHV0KCkgc3B4QWxlcnRNZXNzYWdlU2V2ZXJpdHk/OiBTcHhTZXZlcml0eUVudW07XHJcbiAgQElucHV0KCkgc3B4U2hvd1ZhbGlkYXRpb25NZXNzYWdlcz86IGJvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIHNweFZhbHVlPzogU3B4VmFsdWVQYWlyPGFueT47XHJcbiAgQE91dHB1dCgpIHNweENsZWFyOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgQE91dHB1dCgpIHNweFNlYXJjaDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gIEBPdXRwdXQoKSBzcHhGb2N1czogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gIEBPdXRwdXQoKSBzcHhGb2N1c091dDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gIEBPdXRwdXQoKSBzcHhFZGl0OiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgQE91dHB1dCgpIHNweEhlbHA6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICBASG9zdExpc3RlbmVyKCdmb2N1c2luJywgW1wiJGV2ZW50XCJdKSBoYW5kbGVGb2N1c0luKGV2OiBFdmVudCkge1xyXG4gICAgdGhpcy5lbWl0Rm9jdXNJbigpO1xyXG4gIH1cclxuICBASG9zdExpc3RlbmVyKCdmb2N1c291dCcsIFtcIiRldmVudFwiXSkgaGFuZGxlRm9jdXNPdXQoZXY6IEZvY3VzRXZlbnQpIHtcclxuICAgIGNvbnN0IHRoaXNFbCA9IHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcclxuICAgIGNvbnN0IHJlbGF0ZWRFbGVtZW50ID0gZXYucmVsYXRlZFRhcmdldCBhcyBIVE1MRWxlbWVudDtcclxuICAgIGlmICghcmVsYXRlZEVsZW1lbnQgfHwgIXRoaXNFbC5jb250YWlucyhyZWxhdGVkRWxlbWVudCkpIHtcclxuICAgICAgdGhpcy5lbWl0Rm9jdXNPdXQoKTtcclxuICAgIH1cclxuICB9XHJcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbXCIkZXZlbnRcIl0pIGhhbmRsZVdpbmRvd0NsaWNrKGV2OiBFdmVudCkge1xyXG4gICAgaWYgKGV2LmNvbXBvc2VkUGF0aCgpLmluY2x1ZGVzKHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCkpIHtcclxuICAgICAgdGhpcy5lbWl0Rm9jdXNJbigpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5lbWl0Rm9jdXNPdXQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQ2xlYXIoKSB7XHJcbiAgICB0aGlzLnNweENsZWFyLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIG9uU2VhcmNoKCkge1xyXG4gICAgdGhpcy5zcHhTZWFyY2guZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgb25FZGl0KCkge1xyXG4gICAgdGhpcy5zcHhFZGl0LmVtaXQoKTtcclxuICB9XHJcblxyXG4gIG9uSGVscCgpIHtcclxuICAgIHRoaXMuc3B4SGVscC5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsUmVmOiBFbGVtZW50UmVmKSB7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGVtaXRGb2N1c0luKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLnNweEZvY3VzZWQpIHtcclxuICAgICAgdGhpcy5zcHhGb2N1cy5lbWl0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGVtaXRGb2N1c091dCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnNweEZvY3VzZWQpIHtcclxuICAgICAgdGhpcy5zcHhGb2N1c091dC5lbWl0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==