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

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 (188) hide show
  1. package/fesm2022/softpak-components-spx-alert.mjs +4 -5
  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 +4 -5
  5. package/fesm2022/softpak-components-spx-app-expiry.mjs.map +1 -1
  6. package/fesm2022/softpak-components-spx-app-update.mjs +4 -5
  7. package/fesm2022/softpak-components-spx-app-update.mjs.map +1 -1
  8. package/fesm2022/softpak-components-spx-button.mjs +4 -5
  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 +15 -18
  13. package/fesm2022/softpak-components-spx-card.mjs.map +1 -1
  14. package/fesm2022/softpak-components-spx-change-details.mjs +4 -4
  15. package/fesm2022/softpak-components-spx-change-details.mjs.map +1 -1
  16. package/fesm2022/softpak-components-spx-channel-selection.mjs +7 -9
  17. package/fesm2022/softpak-components-spx-channel-selection.mjs.map +1 -1
  18. package/fesm2022/softpak-components-spx-check-digit.mjs +4 -4
  19. package/fesm2022/softpak-components-spx-check-digit.mjs.map +1 -1
  20. package/fesm2022/softpak-components-spx-form-section.mjs +4 -4
  21. package/fesm2022/softpak-components-spx-form-section.mjs.map +1 -1
  22. package/fesm2022/softpak-components-spx-form-view.mjs +8 -9
  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 +40 -46
  26. package/fesm2022/softpak-components-spx-inputs.mjs.map +1 -1
  27. package/fesm2022/softpak-components-spx-navigation.mjs +11 -12
  28. package/fesm2022/softpak-components-spx-navigation.mjs.map +1 -1
  29. package/fesm2022/softpak-components-spx-number-check.mjs +4 -5
  30. package/fesm2022/softpak-components-spx-number-check.mjs.map +1 -1
  31. package/fesm2022/softpak-components-spx-pagination.mjs +4 -4
  32. package/fesm2022/softpak-components-spx-pagination.mjs.map +1 -1
  33. package/fesm2022/softpak-components-spx-patch.mjs +4 -5
  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 +4 -4
  38. package/fesm2022/softpak-components-spx-spinner.mjs.map +1 -1
  39. package/fesm2022/softpak-components-spx-stock-info.mjs +4 -4
  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 +5 -6
  45. package/fesm2022/softpak-components-spx-toaster.mjs.map +1 -1
  46. package/fesm2022/softpak-components-spx-update.mjs +7 -9
  47. package/fesm2022/softpak-components-spx-update.mjs.map +1 -1
  48. package/fesm2022/softpak-components-spx-validation.mjs +4 -4
  49. package/fesm2022/softpak-components-spx-validation.mjs.map +1 -1
  50. package/package.json +24 -78
  51. package/spx-alert/spx-alert.component.d.ts +4 -4
  52. package/spx-inputs/spx-input-box.component.d.ts +4 -4
  53. package/spx-inputs/spx-input-time-modal.component.d.ts +1 -1
  54. package/tailwind.css +1 -1
  55. package/esm2022/placeholder.mjs +0 -2
  56. package/esm2022/public_api.mjs +0 -2
  57. package/esm2022/softpak-components.mjs +0 -5
  58. package/esm2022/spx-alert/public-api.mjs +0 -3
  59. package/esm2022/spx-alert/softpak-components-spx-alert.mjs +0 -5
  60. package/esm2022/spx-alert/spx-alert.component.mjs +0 -203
  61. package/esm2022/spx-alert/spx-alert.interface.mjs +0 -3
  62. package/esm2022/spx-app-configuration/public-api.mjs +0 -8
  63. package/esm2022/spx-app-configuration/softpak-components-spx-app-configuration.mjs +0 -5
  64. package/esm2022/spx-app-configuration/spx-app-alert.interface.mjs +0 -2
  65. package/esm2022/spx-app-configuration/spx-app-bundle-set.interface.mjs +0 -2
  66. package/esm2022/spx-app-configuration/spx-app-channel-type.enum.mjs +0 -8
  67. package/esm2022/spx-app-configuration/spx-app-channel.interface.mjs +0 -2
  68. package/esm2022/spx-app-configuration/spx-app-config.interface.mjs +0 -2
  69. package/esm2022/spx-app-configuration/spx-app-id.enum.mjs +0 -8
  70. package/esm2022/spx-app-configuration/spx-app-lang.enum.mjs +0 -6
  71. package/esm2022/spx-app-configuration/spx-app-release-note.interface.mjs +0 -2
  72. package/esm2022/spx-app-expiry/public-api.mjs +0 -6
  73. package/esm2022/spx-app-expiry/softpak-components-spx-app-expiry.mjs +0 -5
  74. package/esm2022/spx-app-expiry/spx-app-expiry.component.mjs +0 -107
  75. package/esm2022/spx-app-expiry/spx-app-expiry.interface.mjs +0 -2
  76. package/esm2022/spx-app-expiry/spx-check-expiry-final-warning.interface.mjs +0 -5
  77. package/esm2022/spx-app-expiry/spx-check-expiry-happened.interface.mjs +0 -5
  78. package/esm2022/spx-app-expiry/spx-check-expiry-warning.interface.mjs +0 -5
  79. package/esm2022/spx-app-update/public-api.mjs +0 -2
  80. package/esm2022/spx-app-update/softpak-components-spx-app-update.mjs +0 -5
  81. package/esm2022/spx-app-update/spx-app-update.component.mjs +0 -323
  82. package/esm2022/spx-button/public-api.mjs +0 -2
  83. package/esm2022/spx-button/softpak-components-spx-button.mjs +0 -5
  84. package/esm2022/spx-button/spx-button.component.mjs +0 -142
  85. package/esm2022/spx-capitalize/public-api.mjs +0 -2
  86. package/esm2022/spx-capitalize/softpak-components-spx-capitalize.mjs +0 -5
  87. package/esm2022/spx-capitalize/spx-capitalize.pipe.mjs +0 -20
  88. package/esm2022/spx-card/public-api.mjs +0 -5
  89. package/esm2022/spx-card/softpak-components-spx-card.mjs +0 -5
  90. package/esm2022/spx-card/spx-card-grid.component.mjs +0 -46
  91. package/esm2022/spx-card/spx-card-item.component.mjs +0 -117
  92. package/esm2022/spx-card/spx-card-line.component.mjs +0 -124
  93. package/esm2022/spx-card/spx-card.component.mjs +0 -96
  94. package/esm2022/spx-change-details/public-api.mjs +0 -2
  95. package/esm2022/spx-change-details/softpak-components-spx-change-details.mjs +0 -5
  96. package/esm2022/spx-change-details/spx-change-details-value.interface.mjs +0 -2
  97. package/esm2022/spx-change-details/spx-change-details.component.mjs +0 -197
  98. package/esm2022/spx-channel-selection/public-api.mjs +0 -3
  99. package/esm2022/spx-channel-selection/softpak-components-spx-channel-selection.mjs +0 -5
  100. package/esm2022/spx-channel-selection/src/spx-channel-indicator.component.mjs +0 -45
  101. package/esm2022/spx-channel-selection/src/spx-welcome.component.mjs +0 -132
  102. package/esm2022/spx-check-digit/public-api.mjs +0 -2
  103. package/esm2022/spx-check-digit/softpak-components-spx-check-digit.mjs +0 -5
  104. package/esm2022/spx-check-digit/spx-check-digit.component.mjs +0 -91
  105. package/esm2022/spx-form-section/public-api.mjs +0 -2
  106. package/esm2022/spx-form-section/softpak-components-spx-form-section.mjs +0 -5
  107. package/esm2022/spx-form-section/spx-form-section.component.mjs +0 -42
  108. package/esm2022/spx-form-view/public-api.mjs +0 -7
  109. package/esm2022/spx-form-view/softpak-components-spx-form-view.mjs +0 -5
  110. package/esm2022/spx-form-view/spx-autocomplete-search.component.mjs +0 -117
  111. package/esm2022/spx-form-view/spx-form-button-type.enum.mjs +0 -6
  112. package/esm2022/spx-form-view/spx-form-button.interface.mjs +0 -2
  113. package/esm2022/spx-form-view/spx-form-field.interface.mjs +0 -2
  114. package/esm2022/spx-form-view/spx-form-section.interface.mjs +0 -2
  115. package/esm2022/spx-form-view/spx-form-view.component.mjs +0 -297
  116. package/esm2022/spx-form-view/spx-form.interface.mjs +0 -2
  117. package/esm2022/spx-helpers/calc-check-digit.function.mjs +0 -21
  118. package/esm2022/spx-helpers/public-api.mjs +0 -4
  119. package/esm2022/spx-helpers/softpak-components-spx-helpers.mjs +0 -5
  120. package/esm2022/spx-helpers/spx-severity.enum.mjs +0 -10
  121. package/esm2022/spx-helpers/value-pair-to-value.function.mjs +0 -7
  122. package/esm2022/spx-inputs/public-api.mjs +0 -6
  123. package/esm2022/spx-inputs/softpak-components-spx-inputs.mjs +0 -5
  124. package/esm2022/spx-inputs/spx-dropdown.component.mjs +0 -93
  125. package/esm2022/spx-inputs/spx-input-box.component.mjs +0 -273
  126. package/esm2022/spx-inputs/spx-input-date/spx-input-date.component.mjs +0 -194
  127. package/esm2022/spx-inputs/spx-input-float.component.mjs +0 -157
  128. package/esm2022/spx-inputs/spx-input-number.component.mjs +0 -87
  129. package/esm2022/spx-inputs/spx-input-radio.component.mjs +0 -129
  130. package/esm2022/spx-inputs/spx-input-text.component.mjs +0 -160
  131. package/esm2022/spx-inputs/spx-input-time-modal.component.mjs +0 -131
  132. package/esm2022/spx-inputs/spx-input-time.component.mjs +0 -156
  133. package/esm2022/spx-inputs/spx-input-type.enum.mjs +0 -17
  134. package/esm2022/spx-inputs/spx-input.component.mjs +0 -461
  135. package/esm2022/spx-inputs/spx-value-interface.mjs +0 -2
  136. package/esm2022/spx-navigation/public-api.mjs +0 -5
  137. package/esm2022/spx-navigation/softpak-components-spx-navigation.mjs +0 -5
  138. package/esm2022/spx-navigation/spx-home-tile.component.mjs +0 -71
  139. package/esm2022/spx-navigation/spx-home-tiles.component.mjs +0 -24
  140. package/esm2022/spx-navigation/spx-navigation-item.interface.mjs +0 -2
  141. package/esm2022/spx-navigation/spx-navigation.component.mjs +0 -47
  142. package/esm2022/spx-number-check/public-api.mjs +0 -2
  143. package/esm2022/spx-number-check/softpak-components-spx-number-check.mjs +0 -5
  144. package/esm2022/spx-number-check/spx-number-check.component.mjs +0 -265
  145. package/esm2022/spx-pagination/public-api.mjs +0 -2
  146. package/esm2022/spx-pagination/softpak-components-spx-pagination.mjs +0 -5
  147. package/esm2022/spx-pagination/spx-pagination.component.mjs +0 -44
  148. package/esm2022/spx-patch/patch-check.function.mjs +0 -9
  149. package/esm2022/spx-patch/public-api.mjs +0 -4
  150. package/esm2022/spx-patch/release-check.function.mjs +0 -14
  151. package/esm2022/spx-patch/softpak-components-spx-patch.mjs +0 -5
  152. package/esm2022/spx-patch/spx-patch.component.mjs +0 -54
  153. package/esm2022/spx-progress-bar/public-api.mjs +0 -2
  154. package/esm2022/spx-progress-bar/softpak-components-spx-progress-bar.mjs +0 -5
  155. package/esm2022/spx-progress-bar/spx-progress-bar.component.mjs +0 -29
  156. package/esm2022/spx-spinner/public-api.mjs +0 -2
  157. package/esm2022/spx-spinner/softpak-components-spx-spinner.mjs +0 -5
  158. package/esm2022/spx-spinner/spx-spinner.component.mjs +0 -160
  159. package/esm2022/spx-stock-info/public-api.mjs +0 -3
  160. package/esm2022/spx-stock-info/softpak-components-spx-stock-info.mjs +0 -5
  161. package/esm2022/spx-stock-info/spx-stock-info-value.interface.mjs +0 -2
  162. package/esm2022/spx-stock-info/spx-stock-info.component.mjs +0 -324
  163. package/esm2022/spx-storage/public-api.mjs +0 -3
  164. package/esm2022/spx-storage/softpak-components-spx-storage.mjs +0 -5
  165. package/esm2022/spx-storage/src/spx-storage-key.enum.mjs +0 -13
  166. package/esm2022/spx-storage/src/spx-storage.class.mjs +0 -45
  167. package/esm2022/spx-suggestion/public-api.mjs +0 -2
  168. package/esm2022/spx-suggestion/softpak-components-spx-suggestion.mjs +0 -5
  169. package/esm2022/spx-suggestion/spx-suggestion.component.mjs +0 -61
  170. package/esm2022/spx-toaster/public-api.mjs +0 -4
  171. package/esm2022/spx-toaster/softpak-components-spx-toaster.mjs +0 -5
  172. package/esm2022/spx-toaster/src/spx-toaster-autoclose-speed.mjs +0 -23
  173. package/esm2022/spx-toaster/src/spx-toaster-message.interface.mjs +0 -3
  174. package/esm2022/spx-toaster/src/spx-toaster.component.mjs +0 -168
  175. package/esm2022/spx-update/public-api.mjs +0 -3
  176. package/esm2022/spx-update/softpak-components-spx-update.mjs +0 -5
  177. package/esm2022/spx-update/src/spx-update-info.component.mjs +0 -86
  178. package/esm2022/spx-update/src/spx-update-progress.component.mjs +0 -46
  179. package/esm2022/spx-validation/max.validator.mjs +0 -17
  180. package/esm2022/spx-validation/maxlength.validator.mjs +0 -20
  181. package/esm2022/spx-validation/min.validator.mjs +0 -17
  182. package/esm2022/spx-validation/minlength.validator.mjs +0 -20
  183. package/esm2022/spx-validation/pattern.validator.mjs +0 -12
  184. package/esm2022/spx-validation/public-api.mjs +0 -9
  185. package/esm2022/spx-validation/required.validator.mjs +0 -12
  186. package/esm2022/spx-validation/softpak-components-spx-validation.mjs +0 -5
  187. package/esm2022/spx-validation/spx-validate-control.component.mjs +0 -65
  188. 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LXNldmVyaXR5LmVudW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWhlbHBlcnMvc3B4LXNldmVyaXR5LmVudW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksZUFPWDtBQVBELFdBQVksZUFBZTtJQUN6QixrQ0FBZSxDQUFBO0lBQ2YsZ0NBQWEsQ0FBQTtJQUNiLHNDQUFtQixDQUFBO0lBQ25CLHNDQUFtQixDQUFBO0lBQ25CLHNDQUFtQixDQUFBO0lBQ25CLHNDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFQVyxlQUFlLEtBQWYsZUFBZSxRQU8xQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIFNweFNldmVyaXR5RW51bSB7XG4gIGVycm9yID0gJ2Vycm9yJyxcbiAgaW5mbyA9ICdpbmZvJyxcbiAgc3VjY2VzcyA9ICdzdWNjZXNzJyxcbiAgdW5rbm93biA9ICd1bmtub3duJyxcbiAgd2FybmluZyA9ICd3YXJuaW5nJyxcbiAgcHJpbWFyeSA9ICdwcmltYXJ5Jyxcbn1cbiJdfQ==
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWUtcGFpci10by12YWx1ZS5mdW5jdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NvZnRwYWsvY29tcG9uZW50cy9zcHgtaGVscGVycy92YWx1ZS1wYWlyLXRvLXZhbHVlLmZ1bmN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsSUFBUyxFQUFFLEVBQUU7SUFDMUMsSUFBSSxJQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDLEVBQUUsQ0FBQztRQUMxRSxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBQ0QsT0FBTyxJQUFJLEVBQUUsS0FBSyxJQUFJLElBQUksRUFBRSxLQUFLLEtBQUssS0FBSyxJQUFJLElBQUksRUFBRSxLQUFLLEtBQUssSUFBSSxJQUFJLElBQUksRUFBRSxLQUFLLEtBQUssRUFBRSxJQUFJLElBQUksRUFBRSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDeEksQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IHZhbHVlUGFpclRvVmFsdWUgPSAocGFpcjogYW55KSA9PiB7XG4gICAgaWYgKHBhaXIgPT09IG51bGwgfHwgKHR5cGVvZiBwYWlyID09PSAnb2JqZWN0JyAmJiBwYWlyLnZhbHVlID09PSB1bmRlZmluZWQpKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gcGFpcj8udmFsdWUgfHwgcGFpcj8udmFsdWUgPT09IGZhbHNlIHx8IHBhaXI/LnZhbHVlID09PSBudWxsIHx8IHBhaXI/LnZhbHVlID09PSAnJyB8fCBwYWlyPy52YWx1ZSA9PT0gMCA/IHBhaXI/LnZhbHVlIDogcGFpcjtcbn07XG4iXX0=
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NvZnRwYWsvY29tcG9uZW50cy9zcHgtaW5wdXRzL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zcHgtdmFsdWUtaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc3B4LWlucHV0LWJveC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zcHgtaW5wdXQtdGV4dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zcHgtaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc3B4LWlucHV0LXR5cGUuZW51bSc7XG4iXX0=
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NvZnRwYWsvY29tcG9uZW50cy9zcHgtaW5wdXRzL3NweC1kcm9wZG93bi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFnQyxNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBRXBILE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BFLE9BQU8sRUFBZ0IsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQTBCL0MsTUFBTSxPQUFPLG9CQUFvQjtJQXhCakM7UUF5Qlksa0JBQWEsR0FBRyxDQUFDLENBQUM7UUFDbkIsbUJBQWMsR0FBOEMsRUFBRSxDQUFDO1FBQzlELGNBQVMsR0FBb0MsSUFBSSxZQUFZLEVBQXFCLENBQUM7S0F3QzlGO0lBckNDLFFBQVE7UUFDTixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQscUJBQXFCLENBQUMsU0FBa0Q7UUFDdEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRU8sYUFBYTtRQUNuQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUN0RSxJQUFLLEtBQXVCLENBQUMsR0FBRyxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUN6RSxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDO2dCQUM1QyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDekIsQ0FBQztZQUNELElBQUssS0FBdUIsQ0FBQyxHQUFHLEtBQUssV0FBVyxJQUFJLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3hHLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUM7Z0JBQzVDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN6QixDQUFDO1lBQ0QsSUFBSyxLQUF1QixDQUFDLEdBQUcsS0FBSyxPQUFPLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQy9FLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBRSxDQUFDLENBQUM7Z0JBQ3pELEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN6QixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sTUFBTSxDQUFDLFNBQWtEO1FBQy9ELElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7K0dBMUNVLG9CQUFvQjttR0FBcEIsb0JBQW9CLGdMQWxCckI7Ozs7Ozs7Ozs7Ozs7Ozs7U0FnQkgsNERBbEJMLGtCQUFrQjs7NEZBb0JULG9CQUFvQjtrQkF4QmhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGNBQWM7b0JBQ3hCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUU7d0JBQ1Asa0JBQWtCO3FCQUNyQjtvQkFDQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7U0FnQkg7aUJBQ1I7OEJBR1UsY0FBYztzQkFBdEIsS0FBSztnQkFDSSxTQUFTO3NCQUFsQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3B4VmFsdWVQYWlyIH0gZnJvbSAnLi9zcHgtdmFsdWUtaW50ZXJmYWNlJztcbmltcG9ydCB7IFNweEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWJ1dHRvbic7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzcHgtZHJvcGRvd24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgU3B4QnV0dG9uQ29tcG9uZW50XG5dLFxuICB0ZW1wbGF0ZTogYDxkaXYgY2xhc3M9XCJyZWxhdGl2ZSB0ZXh0LWJsYWNrXCI+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJhYnNvbHV0ZSBiZy1ncmF5LTEwMCBsZWZ0LTAgcmlnaHQtMCB6LTIwXCI+XG4gICAgICBAZm9yICh2YWx1ZVBhaXIgb2YgdGhpcy5zcHhTdWdnZXN0aW9uczsgdHJhY2sgdmFsdWVQYWlyOyBsZXQgaSA9ICRpbmRleCkge1xuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJ0ZXh0LWJsYWNrIGJsb2NrIHctZnVsbCBwLTIgYm9yZGVyIGJvcmRlci1ncmF5LTIwMCByb3VuZGVkLWxnIHNoYWRvdyBob3ZlcjpiZy1ncmF5LTIwMCBmbGV4IGl0ZW1zLWNlbnRlciB0ZXh0LWxlZnRcIlxuICAgICAgICAgIFtjbGFzcy5iZy1ncmF5LTEwMF09XCJpID09PSB0aGlzLmZvY3VzUG9zaXRpb25cIlxuICAgICAgICAgIFtjbGFzcy5iZy13aGl0ZV09XCJpICE9PSB0aGlzLmZvY3VzUG9zaXRpb25cIlxuICAgICAgICAgIChjbGljayk9XCJ0aGlzLmhhbmRsZVN1Z2dlc3Rpb25DbGljayh2YWx1ZVBhaXIpXCJcbiAgICAgICAgICBbYXR0ci50YWJpbmRleF09XCItMVwiXG4gICAgICAgICAgW2F0dHIudHlwZV09XCInYnV0dG9uJ1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LTEgcC0xIGZvbnQtYm9sZCB0ZXh0LWxnXCI+e3t2YWx1ZVBhaXI/LmRlc2NyaXB0aW9ufX08L2Rpdj5cbiAgICAgICAgICA8c3B4LWJ1dHRvbiAoc3B4Q2xpY2spPVwidGhpcy5oYW5kbGVTdWdnZXN0aW9uQ2xpY2sodmFsdWVQYWlyKVwiIFtzcHhUeXBlXT1cIididXR0b24nXCIgW3NweFRhYkluZGV4XT1cIi0xXCI+U2VsZWN0PC9zcHgtYnV0dG9uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgPC9kaXY+YCxcbn0pXG5leHBvcnQgY2xhc3MgU3B4RHJvcGRvd25Db21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJvdGVjdGVkIGZvY3VzUG9zaXRpb24gPSAwO1xuICBASW5wdXQoKSBzcHhTdWdnZXN0aW9uczogU3B4VmFsdWVQYWlyPGJvb2xlYW4gfCBudW1iZXIgfCBzdHJpbmc+W10gPSBbXTtcbiAgQE91dHB1dCgpIHNweFNlbGVjdDogRXZlbnRFbWl0dGVyPFNweFZhbHVlUGFpcjxhbnk+PiA9IG5ldyBFdmVudEVtaXR0ZXI8U3B4VmFsdWVQYWlyPGFueT4+KCk7XG4gIHN1YnNjcmlwdGlvbktleVVwPzogU3Vic2NyaXB0aW9uO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMubGlzdGVuVG9LZXlVcCgpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIHRoaXMuZm9jdXNQb3NpdGlvbiA9IDA7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbktleVVwPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgaGFuZGxlU3VnZ2VzdGlvbkNsaWNrKHZhbHVlUGFpcjogU3B4VmFsdWVQYWlyPHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4+KSB7XG4gICAgdGhpcy5zZWxlY3QodmFsdWVQYWlyKTtcbiAgfVxuXG4gIHByaXZhdGUgbGlzdGVuVG9LZXlVcCgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbktleVVwID0gZnJvbUV2ZW50KHdpbmRvdywgJ2tleXVwJykuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgaWYgKChldmVudCBhcyBLZXlib2FyZEV2ZW50KS5rZXkgPT09ICdBcnJvd1VwJyAmJiB0aGlzLmZvY3VzUG9zaXRpb24gPiAwKSB7XG4gICAgICAgIHRoaXMuZm9jdXNQb3NpdGlvbiA9IHRoaXMuZm9jdXNQb3NpdGlvbiAtIDE7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB9XG4gICAgICBpZiAoKGV2ZW50IGFzIEtleWJvYXJkRXZlbnQpLmtleSA9PT0gJ0Fycm93RG93bicgJiYgdGhpcy5mb2N1c1Bvc2l0aW9uIDwgdGhpcy5zcHhTdWdnZXN0aW9ucy5sZW5ndGggLSAxKSB7XG4gICAgICAgIHRoaXMuZm9jdXNQb3NpdGlvbiA9IHRoaXMuZm9jdXNQb3NpdGlvbiArIDE7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB9XG4gICAgICBpZiAoKGV2ZW50IGFzIEtleWJvYXJkRXZlbnQpLmtleSA9PT0gJ0VudGVyJyAmJiB0aGlzLnNweFN1Z2dlc3Rpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy5zZWxlY3QodGhpcy5zcHhTdWdnZXN0aW9ucy5hdCh0aGlzLmZvY3VzUG9zaXRpb24pISk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNlbGVjdCh2YWx1ZVBhaXI6IFNweFZhbHVlUGFpcjxzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuPik6IHZvaWQge1xuICAgIHRoaXMuZm9jdXNQb3NpdGlvbiA9IDA7XG4gICAgdGhpcy5zcHhTZWxlY3QuZW1pdCh2YWx1ZVBhaXIpO1xuICB9XG59XG4iXX0=
@@ -1,273 +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 * as i0 from "@angular/core";
6
- import * as i1 from "@fortawesome/angular-fontawesome";
7
- export class SpxInputBoxComponent {
8
- handleFocusIn(ev) {
9
- this.emitFocusIn();
10
- }
11
- handleFocusOut(ev) {
12
- const thisEl = this.elRef.nativeElement;
13
- const relatedElement = ev.relatedTarget;
14
- if (!relatedElement || !thisEl.contains(relatedElement)) {
15
- this.emitFocusOut();
16
- }
17
- }
18
- handleWindowClick(ev) {
19
- if (ev.composedPath().includes(this.elRef.nativeElement)) {
20
- this.emitFocusIn();
21
- }
22
- else {
23
- this.emitFocusOut();
24
- }
25
- }
26
- onClear() {
27
- this.spxClear.emit();
28
- }
29
- onSearch() {
30
- this.spxSearch.emit();
31
- }
32
- onEdit() {
33
- this.spxEdit.emit();
34
- }
35
- onHelp() {
36
- this.spxHelp.emit();
37
- }
38
- constructor(elRef) {
39
- this.elRef = elRef;
40
- this.faEdit = faEdit;
41
- this.faSearch = faSearch;
42
- this.faQuestion = faQuestion;
43
- this.faTimes = faTimes;
44
- this.spxFocused = false;
45
- this.spxReadonly = false;
46
- this.spxShowClear = true;
47
- this.spxShowLabel = true;
48
- this.spxClear = new EventEmitter();
49
- this.spxSearch = new EventEmitter();
50
- this.spxFocus = new EventEmitter();
51
- this.spxFocusOut = new EventEmitter();
52
- this.spxEdit = new EventEmitter();
53
- this.spxHelp = new EventEmitter();
54
- }
55
- emitFocusIn() {
56
- if (!this.spxFocused) {
57
- this.spxFocus.emit();
58
- }
59
- }
60
- emitFocusOut() {
61
- if (this.spxFocused) {
62
- this.spxFocusOut.emit();
63
- }
64
- }
65
- 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 }); }
66
- 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", 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"
67
- [class.rounded-none]="this.spxShowValidationMessages"
68
- [class.rounded-t]="this.spxShowValidationMessages"
69
- [class.outline-none]="this.spxFocused && !this.spxReadonly"
70
- [class.ring-2]="this.spxFocused && !this.spxReadonly"
71
- [class.ring-offset-2]="this.spxFocused && !this.spxReadonly"
72
- [class.ring-blue-500]="this.spxFocused && !this.spxReadonly"
73
- [class.bg-white]="!this.spxReadonly"
74
- [class.bg-gray-300]="this.spxReadonly"
75
- [class.cursor-not-allowed]="this.spxReadonly">
76
- <div class="flex-auto p-3"
77
- [class.p-0]="this.spxCompact"
78
- [class.flex]="this.spxCompact"
79
- [class.items-center]="this.spxCompact">
80
- @if (this.spxShowLabel) {
81
- <div class="font-bold text-sm mb-1 text-gray-800"
82
- [class.mb-0]="this.spxCompact"
83
- [class.px-3]="this.spxCompact">
84
- {{this.spxLabel}} @if (spxRequired) {
85
- <span class="text-red-800">*</span>
86
- }
87
- </div>
88
- }
89
- <ng-content select="[controls]"></ng-content>
90
- </div>
91
- <div class="flex flex-none gap-1 p-1">
92
- @if (this.spxShowEdit) {
93
- <spx-button
94
- (spxClick)="onEdit()"
95
- [spxFullHeight]="true"
96
- [spxSize]="'xl'"
97
- [spxType]="'button'">
98
- <fa-icon [icon]="faEdit" class="block text-xl"></fa-icon>
99
- </spx-button>
100
- }
101
- @if (this.spxShowHelp) {
102
- <spx-button
103
- (spxClick)="onHelp()"
104
- [spxFullHeight]="true"
105
- [spxDisabled]="this.spxReadonly"
106
- [spxSize]="'xl'"
107
- [spxTabIndex]="-1"
108
- [spxType]="'button'">
109
- <fa-icon [icon]="faQuestion" class="block text-xl"></fa-icon>
110
- </spx-button>
111
- }
112
- @if (this.spxShowSearch) {
113
- <spx-button
114
- (spxClick)="onSearch()"
115
- [spxFullHeight]="true"
116
- [spxDisabled]="this.spxReadonly"
117
- [spxSize]="'xl'"
118
- [spxTabIndex]="-1"
119
- [spxType]="'button'">
120
- <fa-icon [icon]="faSearch" class="block text-xl"></fa-icon>
121
- </spx-button>
122
- }
123
- @if (this.spxShowClear) {
124
- <spx-button
125
- (spxClick)="onClear()"
126
- [spxDisabled]="this.spxReadonly || !this.spxValue?.value"
127
- [spxFullHeight]="true"
128
- [spxSize]="'xl'"
129
- [spxTabIndex]="-1"
130
- [spxType]="'button'">
131
- <fa-icon [icon]="faTimes" class="block text-xl"></fa-icon>
132
- </spx-button>
133
- }
134
- </div>
135
- </div>
136
- @if (this.spxShowValidationMessages) {
137
- <div class="bg-red-600 rounded-b text-white p-3">
138
- <ng-content select="[validation-messages]"></ng-content>
139
- </div>
140
- }`, 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"] }] }); }
141
- }
142
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxInputBoxComponent, decorators: [{
143
- type: Component,
144
- args: [{
145
- selector: 'spx-input-box',
146
- standalone: true,
147
- imports: [
148
- SpxButtonComponent,
149
- FontAwesomeModule
150
- ],
151
- template: `<div class="flex rounded w-full gap-3"
152
- [class.rounded-none]="this.spxShowValidationMessages"
153
- [class.rounded-t]="this.spxShowValidationMessages"
154
- [class.outline-none]="this.spxFocused && !this.spxReadonly"
155
- [class.ring-2]="this.spxFocused && !this.spxReadonly"
156
- [class.ring-offset-2]="this.spxFocused && !this.spxReadonly"
157
- [class.ring-blue-500]="this.spxFocused && !this.spxReadonly"
158
- [class.bg-white]="!this.spxReadonly"
159
- [class.bg-gray-300]="this.spxReadonly"
160
- [class.cursor-not-allowed]="this.spxReadonly">
161
- <div class="flex-auto p-3"
162
- [class.p-0]="this.spxCompact"
163
- [class.flex]="this.spxCompact"
164
- [class.items-center]="this.spxCompact">
165
- @if (this.spxShowLabel) {
166
- <div class="font-bold text-sm mb-1 text-gray-800"
167
- [class.mb-0]="this.spxCompact"
168
- [class.px-3]="this.spxCompact">
169
- {{this.spxLabel}} @if (spxRequired) {
170
- <span class="text-red-800">*</span>
171
- }
172
- </div>
173
- }
174
- <ng-content select="[controls]"></ng-content>
175
- </div>
176
- <div class="flex flex-none gap-1 p-1">
177
- @if (this.spxShowEdit) {
178
- <spx-button
179
- (spxClick)="onEdit()"
180
- [spxFullHeight]="true"
181
- [spxSize]="'xl'"
182
- [spxType]="'button'">
183
- <fa-icon [icon]="faEdit" class="block text-xl"></fa-icon>
184
- </spx-button>
185
- }
186
- @if (this.spxShowHelp) {
187
- <spx-button
188
- (spxClick)="onHelp()"
189
- [spxFullHeight]="true"
190
- [spxDisabled]="this.spxReadonly"
191
- [spxSize]="'xl'"
192
- [spxTabIndex]="-1"
193
- [spxType]="'button'">
194
- <fa-icon [icon]="faQuestion" class="block text-xl"></fa-icon>
195
- </spx-button>
196
- }
197
- @if (this.spxShowSearch) {
198
- <spx-button
199
- (spxClick)="onSearch()"
200
- [spxFullHeight]="true"
201
- [spxDisabled]="this.spxReadonly"
202
- [spxSize]="'xl'"
203
- [spxTabIndex]="-1"
204
- [spxType]="'button'">
205
- <fa-icon [icon]="faSearch" class="block text-xl"></fa-icon>
206
- </spx-button>
207
- }
208
- @if (this.spxShowClear) {
209
- <spx-button
210
- (spxClick)="onClear()"
211
- [spxDisabled]="this.spxReadonly || !this.spxValue?.value"
212
- [spxFullHeight]="true"
213
- [spxSize]="'xl'"
214
- [spxTabIndex]="-1"
215
- [spxType]="'button'">
216
- <fa-icon [icon]="faTimes" class="block text-xl"></fa-icon>
217
- </spx-button>
218
- }
219
- </div>
220
- </div>
221
- @if (this.spxShowValidationMessages) {
222
- <div class="bg-red-600 rounded-b text-white p-3">
223
- <ng-content select="[validation-messages]"></ng-content>
224
- </div>
225
- }`,
226
- }]
227
- }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { spxCompact: [{
228
- type: Input
229
- }], spxFocused: [{
230
- type: Input
231
- }], spxLabel: [{
232
- type: Input
233
- }], spxReadonly: [{
234
- type: Input
235
- }], spxRequired: [{
236
- type: Input
237
- }], spxShowClear: [{
238
- type: Input
239
- }], spxShowEdit: [{
240
- type: Input
241
- }], spxShowHelp: [{
242
- type: Input
243
- }], spxShowLabel: [{
244
- type: Input
245
- }], spxShowSearch: [{
246
- type: Input
247
- }], spxShowValidationMessages: [{
248
- type: Input
249
- }], spxValue: [{
250
- type: Input
251
- }], spxClear: [{
252
- type: Output
253
- }], spxSearch: [{
254
- type: Output
255
- }], spxFocus: [{
256
- type: Output
257
- }], spxFocusOut: [{
258
- type: Output
259
- }], spxEdit: [{
260
- type: Output
261
- }], spxHelp: [{
262
- type: Output
263
- }], handleFocusIn: [{
264
- type: HostListener,
265
- args: ['focusin', ["$event"]]
266
- }], handleFocusOut: [{
267
- type: HostListener,
268
- args: ['focusout', ["$event"]]
269
- }], handleWindowClick: [{
270
- type: HostListener,
271
- args: ['document:click', ["$event"]]
272
- }] } });
273
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWlucHV0LWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWlucHV0cy9zcHgtaW5wdXQtYm94LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVwRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7OztBQXFGMUYsTUFBTSxPQUFPLG9CQUFvQjtJQXVCTSxhQUFhLENBQUMsRUFBUztRQUMxRCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUNxQyxjQUFjLENBQUMsRUFBYztRQUNqRSxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQTRCLENBQUM7UUFDdkQsTUFBTSxjQUFjLEdBQUcsRUFBRSxDQUFDLGFBQTRCLENBQUM7UUFDdkQsSUFBSSxDQUFDLGNBQWMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQztZQUN4RCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEIsQ0FBQztJQUNILENBQUM7SUFDMkMsaUJBQWlCLENBQUMsRUFBUztRQUNyRSxJQUFJLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO1lBQ3pELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNyQixD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aEIsTUFBTTtnQkFDOEIsYUFBYTtzQkFBakQsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBR0csY0FBYztzQkFBbkQsWUFBWTt1QkFBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBT1EsaUJBQWlCO3NCQUE1RCxZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTcHhCdXR0b25Db21wb25lbnQgfSBmcm9tICdAc29mdHBhay9jb21wb25lbnRzL3NweC1idXR0b24nO1xuaW1wb3J0IHsgU3B4VmFsdWVQYWlyIH0gZnJvbSAnLi9zcHgtdmFsdWUtaW50ZXJmYWNlJztcbmltcG9ydCB7IEZvbnRBd2Vzb21lTW9kdWxlIH0gZnJvbSAnQGZvcnRhd2Vzb21lL2FuZ3VsYXItZm9udGF3ZXNvbWUnO1xuaW1wb3J0IHsgZmFFZGl0LCBmYVF1ZXN0aW9uLCBmYVNlYXJjaCwgZmFUaW1lcyB9IGZyb20gJ0Bmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29ucyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NweC1pbnB1dC1ib3gnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgU3B4QnV0dG9uQ29tcG9uZW50LFxuICAgIEZvbnRBd2Vzb21lTW9kdWxlXG5dLFxuICB0ZW1wbGF0ZTogYDxkaXYgY2xhc3M9XCJmbGV4IHJvdW5kZWQgdy1mdWxsIGdhcC0zXCJcbiAgICAgIFtjbGFzcy5yb3VuZGVkLW5vbmVdPVwidGhpcy5zcHhTaG93VmFsaWRhdGlvbk1lc3NhZ2VzXCJcbiAgICAgIFtjbGFzcy5yb3VuZGVkLXRdPVwidGhpcy5zcHhTaG93VmFsaWRhdGlvbk1lc3NhZ2VzXCJcbiAgICAgIFtjbGFzcy5vdXRsaW5lLW5vbmVdPVwidGhpcy5zcHhGb2N1c2VkICYmICF0aGlzLnNweFJlYWRvbmx5XCJcbiAgICAgIFtjbGFzcy5yaW5nLTJdPVwidGhpcy5zcHhGb2N1c2VkICYmICF0aGlzLnNweFJlYWRvbmx5XCJcbiAgICAgIFtjbGFzcy5yaW5nLW9mZnNldC0yXT1cInRoaXMuc3B4Rm9jdXNlZCAmJiAhdGhpcy5zcHhSZWFkb25seVwiXG4gICAgICBbY2xhc3MucmluZy1ibHVlLTUwMF09XCJ0aGlzLnNweEZvY3VzZWQgJiYgIXRoaXMuc3B4UmVhZG9ubHlcIlxuICAgICAgW2NsYXNzLmJnLXdoaXRlXT1cIiF0aGlzLnNweFJlYWRvbmx5XCJcbiAgICAgIFtjbGFzcy5iZy1ncmF5LTMwMF09XCJ0aGlzLnNweFJlYWRvbmx5XCJcbiAgICAgIFtjbGFzcy5jdXJzb3Itbm90LWFsbG93ZWRdPVwidGhpcy5zcHhSZWFkb25seVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXgtYXV0byBwLTNcIlxuICAgICAgICBbY2xhc3MucC0wXT1cInRoaXMuc3B4Q29tcGFjdFwiXG4gICAgICAgIFtjbGFzcy5mbGV4XT1cInRoaXMuc3B4Q29tcGFjdFwiXG4gICAgICAgIFtjbGFzcy5pdGVtcy1jZW50ZXJdPVwidGhpcy5zcHhDb21wYWN0XCI+XG4gICAgICAgIEBpZiAodGhpcy5zcHhTaG93TGFiZWwpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9udC1ib2xkIHRleHQtc20gbWItMSB0ZXh0LWdyYXktODAwXCJcbiAgICAgICAgICAgIFtjbGFzcy5tYi0wXT1cInRoaXMuc3B4Q29tcGFjdFwiXG4gICAgICAgICAgICBbY2xhc3MucHgtM109XCJ0aGlzLnNweENvbXBhY3RcIj5cbiAgICAgICAgICAgIHt7dGhpcy5zcHhMYWJlbH19IEBpZiAoc3B4UmVxdWlyZWQpIHtcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1yZWQtODAwXCI+Kjwvc3Bhbj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2NvbnRyb2xzXVwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LW5vbmUgZ2FwLTEgcC0xXCI+XG4gICAgICBAaWYgKHRoaXMuc3B4U2hvd0VkaXQpIHtcbiAgICAgICAgPHNweC1idXR0b25cbiAgICAgICAgICAoc3B4Q2xpY2spPVwib25FZGl0KClcIlxuICAgICAgICAgIFtzcHhGdWxsSGVpZ2h0XT1cInRydWVcIlxuICAgICAgICAgIFtzcHhTaXplXT1cIid4bCdcIlxuICAgICAgICAgIFtzcHhUeXBlXT1cIididXR0b24nXCI+XG4gICAgICAgICAgPGZhLWljb24gW2ljb25dPVwiZmFFZGl0XCIgY2xhc3M9XCJibG9jayB0ZXh0LXhsXCI+PC9mYS1pY29uPlxuICAgICAgICA8L3NweC1idXR0b24+XG4gICAgICB9XG4gICAgICBAaWYgKHRoaXMuc3B4U2hvd0hlbHApIHtcbiAgICAgICAgPHNweC1idXR0b25cbiAgICAgICAgICAoc3B4Q2xpY2spPVwib25IZWxwKClcIlxuICAgICAgICAgIFtzcHhGdWxsSGVpZ2h0XT1cInRydWVcIlxuICAgICAgICAgIFtzcHhEaXNhYmxlZF09XCJ0aGlzLnNweFJlYWRvbmx5XCJcbiAgICAgICAgICBbc3B4U2l6ZV09XCIneGwnXCJcbiAgICAgICAgICBbc3B4VGFiSW5kZXhdPVwiLTFcIlxuICAgICAgICAgIFtzcHhUeXBlXT1cIididXR0b24nXCI+XG4gICAgICAgICAgPGZhLWljb24gW2ljb25dPVwiZmFRdWVzdGlvblwiIGNsYXNzPVwiYmxvY2sgdGV4dC14bFwiPjwvZmEtaWNvbj5cbiAgICAgICAgPC9zcHgtYnV0dG9uPlxuICAgICAgfVxuICAgICAgQGlmICh0aGlzLnNweFNob3dTZWFyY2gpIHtcbiAgICAgICAgPHNweC1idXR0b25cbiAgICAgICAgICAoc3B4Q2xpY2spPVwib25TZWFyY2goKVwiXG4gICAgICAgICAgW3NweEZ1bGxIZWlnaHRdPVwidHJ1ZVwiXG4gICAgICAgICAgW3NweERpc2FibGVkXT1cInRoaXMuc3B4UmVhZG9ubHlcIlxuICAgICAgICAgIFtzcHhTaXplXT1cIid4bCdcIlxuICAgICAgICAgIFtzcHhUYWJJbmRleF09XCItMVwiXG4gICAgICAgICAgW3NweFR5cGVdPVwiJ2J1dHRvbidcIj5cbiAgICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJmYVNlYXJjaFwiIGNsYXNzPVwiYmxvY2sgdGV4dC14bFwiPjwvZmEtaWNvbj5cbiAgICAgICAgPC9zcHgtYnV0dG9uPlxuICAgICAgfVxuICAgICAgQGlmICh0aGlzLnNweFNob3dDbGVhcikge1xuICAgICAgICA8c3B4LWJ1dHRvblxuICAgICAgICAgIChzcHhDbGljayk9XCJvbkNsZWFyKClcIlxuICAgICAgICAgIFtzcHhEaXNhYmxlZF09XCJ0aGlzLnNweFJlYWRvbmx5IHx8ICF0aGlzLnNweFZhbHVlPy52YWx1ZVwiXG4gICAgICAgICAgW3NweEZ1bGxIZWlnaHRdPVwidHJ1ZVwiXG4gICAgICAgICAgW3NweFNpemVdPVwiJ3hsJ1wiXG4gICAgICAgICAgW3NweFRhYkluZGV4XT1cIi0xXCJcbiAgICAgICAgICBbc3B4VHlwZV09XCInYnV0dG9uJ1wiPlxuICAgICAgICAgIDxmYS1pY29uIFtpY29uXT1cImZhVGltZXNcIiBjbGFzcz1cImJsb2NrIHRleHQteGxcIj48L2ZhLWljb24+XG4gICAgICAgIDwvc3B4LWJ1dHRvbj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICBAaWYgKHRoaXMuc3B4U2hvd1ZhbGlkYXRpb25NZXNzYWdlcykge1xuICAgICAgPGRpdiBjbGFzcz1cImJnLXJlZC02MDAgcm91bmRlZC1iIHRleHQtd2hpdGUgcC0zXCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlt2YWxpZGF0aW9uLW1lc3NhZ2VzXVwiPjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgIH1gLFxufSlcbmV4cG9ydCBjbGFzcyBTcHhJbnB1dEJveENvbXBvbmVudCB7XG4gIGZhRWRpdCA9IGZhRWRpdDtcbiAgZmFTZWFyY2ggPSBmYVNlYXJjaDtcbiAgZmFRdWVzdGlvbiA9IGZhUXVlc3Rpb247XG4gIGZhVGltZXMgPSBmYVRpbWVzO1xuICBASW5wdXQoKSBzcHhDb21wYWN0PzogYm9vbGVhbjtcbiAgQElucHV0KCkgc3B4Rm9jdXNlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBzcHhMYWJlbD86IHN0cmluZztcbiAgQElucHV0KCkgc3B4UmVhZG9ubHkgPSBmYWxzZTtcbiAgQElucHV0KCkgc3B4UmVxdWlyZWQ/OiBib29sZWFuO1xuICBASW5wdXQoKSBzcHhTaG93Q2xlYXIgPSB0cnVlO1xuICBASW5wdXQoKSBzcHhTaG93RWRpdD86IGJvb2xlYW47XG4gIEBJbnB1dCgpIHNweFNob3dIZWxwPzogYm9vbGVhbjtcbiAgQElucHV0KCkgc3B4U2hvd0xhYmVsID0gdHJ1ZTtcbiAgQElucHV0KCkgc3B4U2hvd1NlYXJjaD86IGJvb2xlYW47XG4gIEBJbnB1dCgpIHNweFNob3dWYWxpZGF0aW9uTWVzc2FnZXM/OiBib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgc3B4VmFsdWU/OiBTcHhWYWx1ZVBhaXI8YW55PjtcbiAgQE91dHB1dCgpIHNweENsZWFyOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBzcHhTZWFyY2g6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIHNweEZvY3VzOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBzcHhGb2N1c091dDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgc3B4RWRpdDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgc3B4SGVscDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBASG9zdExpc3RlbmVyKCdmb2N1c2luJywgW1wiJGV2ZW50XCJdKSBoYW5kbGVGb2N1c0luKGV2OiBFdmVudCkge1xuICAgIHRoaXMuZW1pdEZvY3VzSW4oKTtcbiAgfVxuICBASG9zdExpc3RlbmVyKCdmb2N1c291dCcsIFtcIiRldmVudFwiXSkgaGFuZGxlRm9jdXNPdXQoZXY6IEZvY3VzRXZlbnQpIHtcbiAgICBjb25zdCB0aGlzRWwgPSB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgY29uc3QgcmVsYXRlZEVsZW1lbnQgPSBldi5yZWxhdGVkVGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgIGlmICghcmVsYXRlZEVsZW1lbnQgfHwgIXRoaXNFbC5jb250YWlucyhyZWxhdGVkRWxlbWVudCkpIHtcbiAgICAgIHRoaXMuZW1pdEZvY3VzT3V0KCk7XG4gICAgfVxuICB9XG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgW1wiJGV2ZW50XCJdKSBoYW5kbGVXaW5kb3dDbGljayhldjogRXZlbnQpIHtcbiAgICBpZiAoZXYuY29tcG9zZWRQYXRoKCkuaW5jbHVkZXModGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50KSkge1xuICAgICAgdGhpcy5lbWl0Rm9jdXNJbigpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmVtaXRGb2N1c091dCgpO1xuICAgIH1cbiAgfVxuXG4gIG9uQ2xlYXIoKSB7XG4gICAgdGhpcy5zcHhDbGVhci5lbWl0KCk7XG4gIH1cblxuICBvblNlYXJjaCgpIHtcbiAgICB0aGlzLnNweFNlYXJjaC5lbWl0KCk7XG4gIH1cblxuICBvbkVkaXQoKSB7XG4gICAgdGhpcy5zcHhFZGl0LmVtaXQoKTtcbiAgfVxuXG4gIG9uSGVscCgpIHtcbiAgICB0aGlzLnNweEhlbHAuZW1pdCgpO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbFJlZjogRWxlbWVudFJlZikge1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0Rm9jdXNJbigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc3B4Rm9jdXNlZCkge1xuICAgICAgdGhpcy5zcHhGb2N1cy5lbWl0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBlbWl0Rm9jdXNPdXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3B4Rm9jdXNlZCkge1xuICAgICAgdGhpcy5zcHhGb2N1c091dC5lbWl0KCk7XG4gICAgfVxuICB9XG59XG4iXX0=