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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (195) hide show
  1. package/esm2022/placeholder.mjs +2 -0
  2. package/esm2022/public_api.mjs +2 -0
  3. package/esm2022/softpak-components.mjs +5 -0
  4. package/esm2022/spx-alert/public-api.mjs +3 -0
  5. package/esm2022/spx-alert/softpak-components-spx-alert.mjs +5 -0
  6. package/esm2022/spx-alert/spx-alert.component.mjs +203 -0
  7. package/esm2022/spx-alert/spx-alert.interface.mjs +3 -0
  8. package/esm2022/spx-app-configuration/public-api.mjs +8 -0
  9. package/esm2022/spx-app-configuration/softpak-components-spx-app-configuration.mjs +5 -0
  10. package/esm2022/spx-app-configuration/spx-app-alert.interface.mjs +2 -0
  11. package/esm2022/spx-app-configuration/spx-app-bundle-set.interface.mjs +2 -0
  12. package/esm2022/spx-app-configuration/spx-app-channel-type.enum.mjs +8 -0
  13. package/esm2022/spx-app-configuration/spx-app-channel.interface.mjs +2 -0
  14. package/esm2022/spx-app-configuration/spx-app-config.interface.mjs +2 -0
  15. package/esm2022/spx-app-configuration/spx-app-id.enum.mjs +8 -0
  16. package/esm2022/spx-app-configuration/spx-app-lang.enum.mjs +6 -0
  17. package/esm2022/spx-app-configuration/spx-app-release-note.interface.mjs +2 -0
  18. package/esm2022/spx-app-expiry/public-api.mjs +6 -0
  19. package/esm2022/spx-app-expiry/softpak-components-spx-app-expiry.mjs +5 -0
  20. package/esm2022/spx-app-expiry/spx-app-expiry.component.mjs +107 -0
  21. package/esm2022/spx-app-expiry/spx-app-expiry.interface.mjs +2 -0
  22. package/esm2022/spx-app-expiry/spx-check-expiry-final-warning.interface.mjs +5 -0
  23. package/esm2022/spx-app-expiry/spx-check-expiry-happened.interface.mjs +5 -0
  24. package/esm2022/spx-app-expiry/spx-check-expiry-warning.interface.mjs +5 -0
  25. package/esm2022/spx-app-update/public-api.mjs +2 -0
  26. package/esm2022/spx-app-update/softpak-components-spx-app-update.mjs +5 -0
  27. package/esm2022/spx-app-update/spx-app-update.component.mjs +323 -0
  28. package/esm2022/spx-button/public-api.mjs +2 -0
  29. package/esm2022/spx-button/softpak-components-spx-button.mjs +5 -0
  30. package/esm2022/spx-button/spx-button.component.mjs +142 -0
  31. package/esm2022/spx-capitalize/public-api.mjs +2 -0
  32. package/esm2022/spx-capitalize/softpak-components-spx-capitalize.mjs +5 -0
  33. package/esm2022/spx-capitalize/spx-capitalize.pipe.mjs +20 -0
  34. package/esm2022/spx-card/public-api.mjs +5 -0
  35. package/esm2022/spx-card/softpak-components-spx-card.mjs +5 -0
  36. package/esm2022/spx-card/spx-card-grid.component.mjs +46 -0
  37. package/esm2022/spx-card/spx-card-item.component.mjs +117 -0
  38. package/esm2022/spx-card/spx-card-line.component.mjs +124 -0
  39. package/esm2022/spx-card/spx-card.component.mjs +96 -0
  40. package/esm2022/spx-change-details/public-api.mjs +2 -0
  41. package/esm2022/spx-change-details/softpak-components-spx-change-details.mjs +5 -0
  42. package/esm2022/spx-change-details/spx-change-details-value.interface.mjs +2 -0
  43. package/esm2022/spx-change-details/spx-change-details.component.mjs +197 -0
  44. package/esm2022/spx-channel-selection/public-api.mjs +3 -0
  45. package/esm2022/spx-channel-selection/softpak-components-spx-channel-selection.mjs +5 -0
  46. package/esm2022/spx-channel-selection/src/spx-channel-indicator.component.mjs +45 -0
  47. package/esm2022/spx-channel-selection/src/spx-welcome.component.mjs +132 -0
  48. package/esm2022/spx-check-digit/public-api.mjs +2 -0
  49. package/esm2022/spx-check-digit/softpak-components-spx-check-digit.mjs +5 -0
  50. package/esm2022/spx-check-digit/spx-check-digit.component.mjs +91 -0
  51. package/esm2022/spx-form-section/public-api.mjs +2 -0
  52. package/esm2022/spx-form-section/softpak-components-spx-form-section.mjs +5 -0
  53. package/esm2022/spx-form-section/spx-form-section.component.mjs +42 -0
  54. package/esm2022/spx-form-view/public-api.mjs +7 -0
  55. package/esm2022/spx-form-view/softpak-components-spx-form-view.mjs +5 -0
  56. package/esm2022/spx-form-view/spx-autocomplete-search.component.mjs +117 -0
  57. package/esm2022/spx-form-view/spx-form-button-type.enum.mjs +6 -0
  58. package/esm2022/spx-form-view/spx-form-button.interface.mjs +2 -0
  59. package/esm2022/spx-form-view/spx-form-field.interface.mjs +2 -0
  60. package/esm2022/spx-form-view/spx-form-section.interface.mjs +2 -0
  61. package/esm2022/spx-form-view/spx-form-view.component.mjs +297 -0
  62. package/esm2022/spx-form-view/spx-form.interface.mjs +2 -0
  63. package/esm2022/spx-helpers/calc-check-digit.function.mjs +21 -0
  64. package/esm2022/spx-helpers/public-api.mjs +4 -0
  65. package/esm2022/spx-helpers/softpak-components-spx-helpers.mjs +5 -0
  66. package/esm2022/spx-helpers/spx-severity.enum.mjs +10 -0
  67. package/esm2022/spx-helpers/value-pair-to-value.function.mjs +7 -0
  68. package/esm2022/spx-inputs/public-api.mjs +6 -0
  69. package/esm2022/spx-inputs/softpak-components-spx-inputs.mjs +5 -0
  70. package/esm2022/spx-inputs/spx-dropdown.component.mjs +93 -0
  71. package/esm2022/spx-inputs/spx-input-box.component.mjs +273 -0
  72. package/esm2022/spx-inputs/spx-input-date/spx-input-date.component.mjs +194 -0
  73. package/esm2022/spx-inputs/spx-input-float.component.mjs +157 -0
  74. package/esm2022/spx-inputs/spx-input-number.component.mjs +87 -0
  75. package/esm2022/spx-inputs/spx-input-radio.component.mjs +129 -0
  76. package/esm2022/spx-inputs/spx-input-text.component.mjs +160 -0
  77. package/esm2022/spx-inputs/spx-input-time-modal.component.mjs +131 -0
  78. package/esm2022/spx-inputs/spx-input-time.component.mjs +156 -0
  79. package/esm2022/spx-inputs/spx-input-type.enum.mjs +17 -0
  80. package/esm2022/spx-inputs/spx-input.component.mjs +461 -0
  81. package/esm2022/spx-inputs/spx-value-interface.mjs +2 -0
  82. package/esm2022/spx-navigation/public-api.mjs +5 -0
  83. package/esm2022/spx-navigation/softpak-components-spx-navigation.mjs +5 -0
  84. package/esm2022/spx-navigation/spx-home-tile.component.mjs +71 -0
  85. package/esm2022/spx-navigation/spx-home-tiles.component.mjs +24 -0
  86. package/esm2022/spx-navigation/spx-navigation-item.interface.mjs +2 -0
  87. package/esm2022/spx-navigation/spx-navigation.component.mjs +47 -0
  88. package/esm2022/spx-number-check/public-api.mjs +2 -0
  89. package/esm2022/spx-number-check/softpak-components-spx-number-check.mjs +5 -0
  90. package/esm2022/spx-number-check/spx-number-check.component.mjs +265 -0
  91. package/esm2022/spx-pagination/public-api.mjs +2 -0
  92. package/esm2022/spx-pagination/softpak-components-spx-pagination.mjs +5 -0
  93. package/esm2022/spx-pagination/spx-pagination.component.mjs +44 -0
  94. package/esm2022/spx-patch/patch-check.function.mjs +9 -0
  95. package/esm2022/spx-patch/public-api.mjs +4 -0
  96. package/esm2022/spx-patch/release-check.function.mjs +14 -0
  97. package/esm2022/spx-patch/softpak-components-spx-patch.mjs +5 -0
  98. package/esm2022/spx-patch/spx-patch.component.mjs +54 -0
  99. package/esm2022/spx-progress-bar/public-api.mjs +2 -0
  100. package/esm2022/spx-progress-bar/softpak-components-spx-progress-bar.mjs +5 -0
  101. package/esm2022/spx-progress-bar/spx-progress-bar.component.mjs +29 -0
  102. package/esm2022/spx-spinner/public-api.mjs +2 -0
  103. package/esm2022/spx-spinner/softpak-components-spx-spinner.mjs +5 -0
  104. package/esm2022/spx-spinner/spx-spinner.component.mjs +160 -0
  105. package/esm2022/spx-stock-info/public-api.mjs +3 -0
  106. package/esm2022/spx-stock-info/softpak-components-spx-stock-info.mjs +5 -0
  107. package/esm2022/spx-stock-info/spx-stock-info-value.interface.mjs +2 -0
  108. package/esm2022/spx-stock-info/spx-stock-info.component.mjs +324 -0
  109. package/esm2022/spx-storage/public-api.mjs +3 -0
  110. package/esm2022/spx-storage/softpak-components-spx-storage.mjs +5 -0
  111. package/esm2022/spx-storage/src/spx-storage-key.enum.mjs +13 -0
  112. package/esm2022/spx-storage/src/spx-storage.class.mjs +45 -0
  113. package/esm2022/spx-suggestion/public-api.mjs +2 -0
  114. package/esm2022/spx-suggestion/softpak-components-spx-suggestion.mjs +5 -0
  115. package/esm2022/spx-suggestion/spx-suggestion.component.mjs +61 -0
  116. package/esm2022/spx-toaster/public-api.mjs +4 -0
  117. package/esm2022/spx-toaster/softpak-components-spx-toaster.mjs +5 -0
  118. package/esm2022/spx-toaster/src/spx-toaster-autoclose-speed.mjs +23 -0
  119. package/esm2022/spx-toaster/src/spx-toaster-message.interface.mjs +3 -0
  120. package/esm2022/spx-toaster/src/spx-toaster.component.mjs +168 -0
  121. package/esm2022/spx-update/public-api.mjs +3 -0
  122. package/esm2022/spx-update/softpak-components-spx-update.mjs +5 -0
  123. package/esm2022/spx-update/src/spx-update-info.component.mjs +86 -0
  124. package/esm2022/spx-update/src/spx-update-progress.component.mjs +46 -0
  125. package/esm2022/spx-validation/max.validator.mjs +17 -0
  126. package/esm2022/spx-validation/maxlength.validator.mjs +20 -0
  127. package/esm2022/spx-validation/min.validator.mjs +17 -0
  128. package/esm2022/spx-validation/minlength.validator.mjs +20 -0
  129. package/esm2022/spx-validation/pattern.validator.mjs +12 -0
  130. package/esm2022/spx-validation/public-api.mjs +9 -0
  131. package/esm2022/spx-validation/required.validator.mjs +12 -0
  132. package/esm2022/spx-validation/softpak-components-spx-validation.mjs +5 -0
  133. package/esm2022/spx-validation/spx-validate-control.component.mjs +65 -0
  134. package/esm2022/spx-validation/year-and-month.validator.mjs +42 -0
  135. package/fesm2022/softpak-components-spx-alert.mjs +56 -45
  136. package/fesm2022/softpak-components-spx-alert.mjs.map +1 -1
  137. package/fesm2022/softpak-components-spx-app-configuration.mjs.map +1 -1
  138. package/fesm2022/softpak-components-spx-app-expiry.mjs +59 -41
  139. package/fesm2022/softpak-components-spx-app-expiry.mjs.map +1 -1
  140. package/fesm2022/softpak-components-spx-app-update.mjs +74 -68
  141. package/fesm2022/softpak-components-spx-app-update.mjs.map +1 -1
  142. package/fesm2022/softpak-components-spx-button.mjs +5 -4
  143. package/fesm2022/softpak-components-spx-button.mjs.map +1 -1
  144. package/fesm2022/softpak-components-spx-capitalize.mjs +3 -3
  145. package/fesm2022/softpak-components-spx-capitalize.mjs.map +1 -1
  146. package/fesm2022/softpak-components-spx-card.mjs +163 -127
  147. package/fesm2022/softpak-components-spx-card.mjs.map +1 -1
  148. package/fesm2022/softpak-components-spx-change-details.mjs +5 -7
  149. package/fesm2022/softpak-components-spx-change-details.mjs.map +1 -1
  150. package/fesm2022/softpak-components-spx-channel-selection.mjs +11 -12
  151. package/fesm2022/softpak-components-spx-channel-selection.mjs.map +1 -1
  152. package/fesm2022/softpak-components-spx-check-digit.mjs +6 -9
  153. package/fesm2022/softpak-components-spx-check-digit.mjs.map +1 -1
  154. package/fesm2022/softpak-components-spx-form-section.mjs +20 -15
  155. package/fesm2022/softpak-components-spx-form-section.mjs.map +1 -1
  156. package/fesm2022/softpak-components-spx-form-view.mjs +147 -139
  157. package/fesm2022/softpak-components-spx-form-view.mjs.map +1 -1
  158. package/fesm2022/softpak-components-spx-helpers.mjs +1 -0
  159. package/fesm2022/softpak-components-spx-helpers.mjs.map +1 -1
  160. package/fesm2022/softpak-components-spx-inputs.mjs +817 -862
  161. package/fesm2022/softpak-components-spx-inputs.mjs.map +1 -1
  162. package/fesm2022/softpak-components-spx-navigation.mjs +53 -52
  163. package/fesm2022/softpak-components-spx-navigation.mjs.map +1 -1
  164. package/fesm2022/softpak-components-spx-number-check.mjs +49 -42
  165. package/fesm2022/softpak-components-spx-number-check.mjs.map +1 -1
  166. package/fesm2022/softpak-components-spx-pagination.mjs +4 -4
  167. package/fesm2022/softpak-components-spx-pagination.mjs.map +1 -1
  168. package/fesm2022/softpak-components-spx-patch.mjs +29 -22
  169. package/fesm2022/softpak-components-spx-patch.mjs.map +1 -1
  170. package/fesm2022/softpak-components-spx-progress-bar.mjs +3 -3
  171. package/fesm2022/softpak-components-spx-progress-bar.mjs.map +1 -1
  172. package/fesm2022/softpak-components-spx-spinner.mjs +144 -143
  173. package/fesm2022/softpak-components-spx-spinner.mjs.map +1 -1
  174. package/fesm2022/softpak-components-spx-stock-info.mjs +8 -11
  175. package/fesm2022/softpak-components-spx-stock-info.mjs.map +1 -1
  176. package/fesm2022/softpak-components-spx-storage.mjs.map +1 -1
  177. package/fesm2022/softpak-components-spx-suggestion.mjs +41 -49
  178. package/fesm2022/softpak-components-spx-suggestion.mjs.map +1 -1
  179. package/fesm2022/softpak-components-spx-toaster.mjs +94 -98
  180. package/fesm2022/softpak-components-spx-toaster.mjs.map +1 -1
  181. package/fesm2022/softpak-components-spx-update.mjs +11 -11
  182. package/fesm2022/softpak-components-spx-update.mjs.map +1 -1
  183. package/fesm2022/softpak-components-spx-validation.mjs +5 -8
  184. package/fesm2022/softpak-components-spx-validation.mjs.map +1 -1
  185. package/package.json +76 -23
  186. package/spx-app-update/spx-app-update.component.d.ts +3 -3
  187. package/spx-helpers/spx-severity.enum.d.ts +2 -1
  188. package/spx-inputs/spx-input-date/spx-input-date.component.d.ts +43 -0
  189. package/spx-inputs/spx-input-float.component.d.ts +5 -4
  190. package/spx-inputs/spx-input-text.component.d.ts +2 -1
  191. package/spx-inputs/spx-input-time.component.d.ts +1 -1
  192. package/spx-inputs/spx-input.component.d.ts +2 -1
  193. package/spx-suggestion/spx-suggestion.component.d.ts +5 -5
  194. package/tailwind.css +1 -1
  195. package/spx-inputs/spx-input-date.component.d.ts +0 -50
@@ -0,0 +1,42 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class SpxFormSectionComponent {
4
+ constructor() {
5
+ this.spxShowTitle = true;
6
+ }
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxFormSectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SpxFormSectionComponent, isStandalone: true, selector: "spx-form-section", inputs: { spxIndex: "spxIndex", spxIndexSecondary: "spxIndexSecondary", spxTitle: "spxTitle", spxShowTitle: "spxShowTitle" }, ngImport: i0, template: `@if (this.spxShowTitle) {
9
+ <div class="spx-form-section__title mb-3 flex gap-3 items-center">
10
+ <div class="spx-form-section__title-index flex content-center text-center text-sm h-[30px] w-[30px] font-bold rounded">{{this.spxIndex}}@if (this.spxIndexSecondary) {
11
+ {{ this.spxIndexSecondary }}
12
+ }</div>
13
+ <div class="spx-form-section__content font-bold grow text-black dark:text-white">{{this.spxTitle}}</div>
14
+ </div>
15
+ }
16
+ <div class="flex flex-col gap-3">
17
+ <ng-content></ng-content>
18
+ </div>`, isInline: true, styles: [":host{display:block}.spx-form-section__title-index{background-color:#000;display:inline-block;vertical-align:middle}.spx-form-section__title{color:var(--spx-form-section--color, #FFFFFF)}.spx-form-section__content{color:#000}@media (prefers-color-scheme: dark){.spx-form-section__title-index{background-color:var(--spx-form-section--color, #FFFFFF);color:#000}.spx-form-section__content{color:var(--spx-form-section--color, #FFFFFF)}}\n"] }); }
19
+ }
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxFormSectionComponent, decorators: [{
21
+ type: Component,
22
+ args: [{ selector: 'spx-form-section', standalone: true, imports: [], template: `@if (this.spxShowTitle) {
23
+ <div class="spx-form-section__title mb-3 flex gap-3 items-center">
24
+ <div class="spx-form-section__title-index flex content-center text-center text-sm h-[30px] w-[30px] font-bold rounded">{{this.spxIndex}}@if (this.spxIndexSecondary) {
25
+ {{ this.spxIndexSecondary }}
26
+ }</div>
27
+ <div class="spx-form-section__content font-bold grow text-black dark:text-white">{{this.spxTitle}}</div>
28
+ </div>
29
+ }
30
+ <div class="flex flex-col gap-3">
31
+ <ng-content></ng-content>
32
+ </div>`, styles: [":host{display:block}.spx-form-section__title-index{background-color:#000;display:inline-block;vertical-align:middle}.spx-form-section__title{color:var(--spx-form-section--color, #FFFFFF)}.spx-form-section__content{color:#000}@media (prefers-color-scheme: dark){.spx-form-section__title-index{background-color:var(--spx-form-section--color, #FFFFFF);color:#000}.spx-form-section__content{color:var(--spx-form-section--color, #FFFFFF)}}\n"] }]
33
+ }], propDecorators: { spxIndex: [{
34
+ type: Input
35
+ }], spxIndexSecondary: [{
36
+ type: Input
37
+ }], spxTitle: [{
38
+ type: Input
39
+ }], spxShowTitle: [{
40
+ type: Input
41
+ }] } });
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWZvcm0tc2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWZvcm0tc2VjdGlvbi9zcHgtZm9ybS1zZWN0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFnRGpELE1BQU0sT0FBTyx1QkFBdUI7SUE5Q3BDO1FBa0RXLGlCQUFZLEdBQUcsSUFBSSxDQUFDO0tBQzlCOytHQUxZLHVCQUF1QjttR0FBdkIsdUJBQXVCLDBNQTFDeEI7Ozs7Ozs7Ozs7T0FVTDs7NEZBZ0NNLHVCQUF1QjtrQkE5Q25DLFNBQVM7K0JBQ0Usa0JBQWtCLGNBQ2hCLElBQUksV0FDUCxFQUFFLFlBQ0Q7Ozs7Ozs7Ozs7T0FVTDs4QkFpQ0ksUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NweC1mb3JtLXNlY3Rpb24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXSxcbiAgdGVtcGxhdGU6IGBAaWYgKHRoaXMuc3B4U2hvd1RpdGxlKSB7XG4gIDxkaXYgY2xhc3M9XCJzcHgtZm9ybS1zZWN0aW9uX190aXRsZSBtYi0zIGZsZXggZ2FwLTMgaXRlbXMtY2VudGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cInNweC1mb3JtLXNlY3Rpb25fX3RpdGxlLWluZGV4IGZsZXggY29udGVudC1jZW50ZXIgdGV4dC1jZW50ZXIgdGV4dC1zbSBoLVszMHB4XSB3LVszMHB4XSBmb250LWJvbGQgcm91bmRlZFwiPnt7dGhpcy5zcHhJbmRleH19QGlmICh0aGlzLnNweEluZGV4U2Vjb25kYXJ5KSB7XG4gICAgICB7eyB0aGlzLnNweEluZGV4U2Vjb25kYXJ5IH19XG4gICAgfTwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJzcHgtZm9ybS1zZWN0aW9uX19jb250ZW50IGZvbnQtYm9sZCBncm93IHRleHQtYmxhY2sgZGFyazp0ZXh0LXdoaXRlXCI+e3t0aGlzLnNweFRpdGxlfX08L2Rpdj5cbiAgPC9kaXY+XG59XG48ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtM1wiPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj5gLFxuICBzdHlsZXM6IGBcbiAgOmhvc3Qge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG4gIFxuICAuc3B4LWZvcm0tc2VjdGlvbl9fdGl0bGUtaW5kZXgge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIH1cblxuICAuc3B4LWZvcm0tc2VjdGlvbl9fdGl0bGUge1xuICAgIGNvbG9yOiB2YXIoLS1zcHgtZm9ybS1zZWN0aW9uLS1jb2xvciwgI0ZGRkZGRik7XG4gIH1cblxuICAuc3B4LWZvcm0tc2VjdGlvbl9fY29udGVudCB7XG4gICAgY29sb3I6ICMwMDAwMDA7XG4gIH1cblxuICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7XG4gICAgLnNweC1mb3JtLXNlY3Rpb25fX3RpdGxlLWluZGV4IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNweC1mb3JtLXNlY3Rpb24tLWNvbG9yLCAjRkZGRkZGKTtcbiAgICAgIGNvbG9yOiAjMDAwMDAwO1xuICAgIH1cbiAgICBcbiAgICAuc3B4LWZvcm0tc2VjdGlvbl9fY29udGVudCB7XG4gICAgICBjb2xvcjogdmFyKC0tc3B4LWZvcm0tc2VjdGlvbi0tY29sb3IsICNGRkZGRkYpO1xuICAgIH1cbn1cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgU3B4Rm9ybVNlY3Rpb25Db21wb25lbnQge1xuICBASW5wdXQoKSBzcHhJbmRleD86IG51bWJlcjtcbiAgQElucHV0KCkgc3B4SW5kZXhTZWNvbmRhcnk/OiBudW1iZXI7XG4gIEBJbnB1dCgpIHNweFRpdGxlPzogc3RyaW5nO1xuICBASW5wdXQoKSBzcHhTaG93VGl0bGUgPSB0cnVlO1xufVxuIl19
@@ -0,0 +1,7 @@
1
+ export * from './spx-form-button-type.enum';
2
+ export * from './spx-form-button.interface';
3
+ export * from './spx-form-field.interface';
4
+ export * from './spx-form-section.interface';
5
+ export * from './spx-form-view.component';
6
+ export * from './spx-form.interface';
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NvZnRwYWsvY29tcG9uZW50cy9zcHgtZm9ybS12aWV3L3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3NweC1mb3JtLWJ1dHRvbi10eXBlLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9zcHgtZm9ybS1idXR0b24uaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc3B4LWZvcm0tZmllbGQuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc3B4LWZvcm0tc2VjdGlvbi5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zcHgtZm9ybS12aWV3LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NweC1mb3JtLmludGVyZmFjZSc7XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29mdHBhay1jb21wb25lbnRzLXNweC1mb3JtLXZpZXcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWZvcm0tdmlldy9zb2Z0cGFrLWNvbXBvbmVudHMtc3B4LWZvcm0tdmlldy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -0,0 +1,117 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
3
+ import { debounceTime } from 'rxjs';
4
+ import { SpxInputComponent, SpxInputTypeEnum } from '@softpak/components/spx-inputs';
5
+ import { SpxButtonComponent } from '@softpak/components/spx-button';
6
+ import { SpxSeverityEnum } from '@softpak/components/spx-helpers';
7
+ import { SpxValidateControlComponent } from '@softpak/components/spx-validation';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@angular/forms";
10
+ export const sectionAutocompleteSearch = 'autocompleteSearch';
11
+ export const ctrlQuery = 'query';
12
+ export const ctrlOptions = 'options';
13
+ export class SpxAutocompleteSearchComponent {
14
+ get ctrlQuery() { return this.formGroup.get(ctrlQuery); }
15
+ get ctrlOptions() { return this.formGroup.get(ctrlOptions); }
16
+ constructor(formBuilder) {
17
+ this.formBuilder = formBuilder;
18
+ this.spxSuggestions = [];
19
+ this.spxCancel = new EventEmitter();
20
+ this.spxSearch = new EventEmitter();
21
+ this.spxSubmit = new EventEmitter();
22
+ this.inputTypeRadio = SpxInputTypeEnum.radio;
23
+ this.inputTypeText = SpxInputTypeEnum.text;
24
+ this.severityError = SpxSeverityEnum.error;
25
+ this.severitySuccess = SpxSeverityEnum.success;
26
+ this.sections = [
27
+ {
28
+ key: sectionAutocompleteSearch,
29
+ showTitle: () => false,
30
+ fields: [
31
+ {
32
+ key: ctrlQuery,
33
+ type: () => SpxInputTypeEnum.text,
34
+ label: () => this.txtQuery,
35
+ capitalize: () => true,
36
+ },
37
+ {
38
+ key: ctrlOptions,
39
+ type: () => SpxInputTypeEnum.radio,
40
+ label: () => this.txtOptions,
41
+ },
42
+ ]
43
+ }
44
+ ];
45
+ this.createForm();
46
+ }
47
+ ngOnInit() {
48
+ this.listenToSelection();
49
+ this.listenToQuery();
50
+ this.ctrlQuery.setValue(this.spxValuePair, { emitEvent: false });
51
+ this.spxSearch.emit(this.spxValuePair);
52
+ }
53
+ ngOnDestroy() {
54
+ if (this.subSelection) {
55
+ this.subSelection.unsubscribe();
56
+ }
57
+ if (this.subQuery) {
58
+ this.subQuery.unsubscribe();
59
+ }
60
+ }
61
+ createForm() {
62
+ this.formGroup = this.formBuilder.group({
63
+ [ctrlQuery]: [null],
64
+ [ctrlOptions]: [null],
65
+ });
66
+ }
67
+ getRawValidators(formControl) {
68
+ return formControl._rawValidators;
69
+ }
70
+ onCancel() {
71
+ this.spxCancel.emit();
72
+ }
73
+ onSubmit() {
74
+ this.spxSubmit.emit(this.ctrlQuery.value);
75
+ }
76
+ listenToQuery() {
77
+ this.subQuery = this.ctrlQuery.valueChanges.pipe(debounceTime(500)).subscribe(valuePair => {
78
+ this.spxSearch.emit(valuePair);
79
+ });
80
+ }
81
+ listenToSelection() {
82
+ this.subSelection = this.ctrlOptions.valueChanges.subscribe(valuePair => {
83
+ this.ctrlQuery.setValue(valuePair);
84
+ });
85
+ }
86
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxAutocompleteSearchComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
87
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SpxAutocompleteSearchComponent, isStandalone: true, selector: "spx-autocomplete-search", inputs: { spxSuggestions: "spxSuggestions", spxField: "spxField", txtOptions: "txtOptions", txtQuery: "txtQuery", txtSubmit: "txtSubmit", spxValuePair: "spxValuePair" }, outputs: { spxCancel: "spxCancel", spxSearch: "spxSearch", spxSubmit: "spxSubmit" }, ngImport: i0, template: "<form class=\"bg-black fixed pt-16 z-50 top-0 left-0 right-0 bottom-0\" [formGroup]=\"formGroup\" (ngSubmit)=\"onSubmit()\">\n <div class=\"h-full w-full px-3 flex flex-col gap-3\">\n <div class=\"grow flex flex-col gap-3 overflow-y-auto\">\n <spx-input [formControl]=\"ctrlQuery\" [spxLabel]=\"txtQuery\" [spxType]=\"inputTypeText\">\n </spx-input>\n <spx-input [formControl]=\"ctrlOptions\" [spxLabel]=\"txtOptions\" [spxSuggestions]=\"spxSuggestions\"\n [spxType]=\"inputTypeRadio\">\n </spx-input>\n </div>\n <div class=\"py-3 flex flex-col gap-3\">\n <spx-button [spxFullWidth]=\"true\" [spxSeverity]=\"severitySuccess\">\n Save\n </spx-button>\n <spx-button [spxFullWidth]=\"true\" [spxSeverity]=\"severityError\" [spxType]=\"'button'\" (spxClick)=\"onCancel()\">\n Cancel\n </spx-button>\n </div>\n </div>\n</form>", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: SpxButtonComponent, selector: "spx-button", inputs: ["spxDisabled", "spxClass", "spxClassObject", "spxForm", "spxFullHeight", "spxFullWidth", "spxSeverity", "spxSize", "spxTabIndex", "spxType"], outputs: ["spxClick"] }, { kind: "component", type: SpxInputComponent, selector: "spx-input", inputs: ["spxLabel", "spxMax", "spxMin", "spxName", "spxReadonly", "spxAutocomplete", "spxAutofocus", "spxInputMode", "spxPattern", "spxRequired", "spxSelectMonth", "spxSelectDay", "spxShowEdit", "spxShowHelp", "spxShowLabel", "spxCompact", "spxShowClear", "spxShowSearch", "spxShowValidationMessages", "spxStep", "spxSuggestions", "spxType", "spxValidators", "value", "spxCapitalize", "spxFocused"], outputs: ["spxBlur", "spxClear", "spxChange", "spxFocus", "spxEdit", "spxHelp", "spxSearch"] }] }); }
88
+ }
89
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxAutocompleteSearchComponent, decorators: [{
90
+ type: Component,
91
+ args: [{ selector: 'spx-autocomplete-search', standalone: true, imports: [
92
+ FormsModule,
93
+ ReactiveFormsModule,
94
+ SpxButtonComponent,
95
+ SpxInputComponent,
96
+ SpxValidateControlComponent
97
+ ], template: "<form class=\"bg-black fixed pt-16 z-50 top-0 left-0 right-0 bottom-0\" [formGroup]=\"formGroup\" (ngSubmit)=\"onSubmit()\">\n <div class=\"h-full w-full px-3 flex flex-col gap-3\">\n <div class=\"grow flex flex-col gap-3 overflow-y-auto\">\n <spx-input [formControl]=\"ctrlQuery\" [spxLabel]=\"txtQuery\" [spxType]=\"inputTypeText\">\n </spx-input>\n <spx-input [formControl]=\"ctrlOptions\" [spxLabel]=\"txtOptions\" [spxSuggestions]=\"spxSuggestions\"\n [spxType]=\"inputTypeRadio\">\n </spx-input>\n </div>\n <div class=\"py-3 flex flex-col gap-3\">\n <spx-button [spxFullWidth]=\"true\" [spxSeverity]=\"severitySuccess\">\n Save\n </spx-button>\n <spx-button [spxFullWidth]=\"true\" [spxSeverity]=\"severityError\" [spxType]=\"'button'\" (spxClick)=\"onCancel()\">\n Cancel\n </spx-button>\n </div>\n </div>\n</form>" }]
98
+ }], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { spxSuggestions: [{
99
+ type: Input
100
+ }], spxField: [{
101
+ type: Input
102
+ }], txtOptions: [{
103
+ type: Input
104
+ }], txtQuery: [{
105
+ type: Input
106
+ }], txtSubmit: [{
107
+ type: Input
108
+ }], spxValuePair: [{
109
+ type: Input
110
+ }], spxCancel: [{
111
+ type: Output
112
+ }], spxSearch: [{
113
+ type: Output
114
+ }], spxSubmit: [{
115
+ type: Output
116
+ }] } });
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWF1dG9jb21wbGV0ZS1zZWFyY2guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc29mdHBhay9jb21wb25lbnRzL3NweC1mb3JtLXZpZXcvc3B4LWF1dG9jb21wbGV0ZS1zZWFyY2guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc29mdHBhay9jb21wb25lbnRzL3NweC1mb3JtLXZpZXcvc3B4LWF1dG9jb21wbGV0ZS1zZWFyY2guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUF1QyxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RyxPQUFPLEVBQWdCLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVsRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQWdCLE1BQU0sZ0NBQWdDLENBQUM7QUFDbkcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBR2xFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7QUFFakYsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsb0JBQW9CLENBQUM7QUFDOUQsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQztBQUNqQyxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDO0FBY3JDLE1BQU0sT0FBTyw4QkFBOEI7SUFvQ3pDLElBQUksU0FBUyxLQUFrQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBZ0IsQ0FBQyxDQUFDLENBQUM7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QUMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDeEYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ3RFLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3JDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0EzRlUsOEJBQThCO21HQUE5Qiw4QkFBOEIsa1ZDM0IzQyxrNEJBa0JPLDJDREVILFdBQVcsMllBQ1gsbUJBQW1CLG1XQUNuQixrQkFBa0IscU9BQ2xCLGlCQUFpQjs7NEZBSVIsOEJBQThCO2tCQVoxQyxTQUFTOytCQUNFLHlCQUF5QixjQUV2QixJQUFJLFdBQ1A7d0JBQ1AsV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLGtCQUFrQjt3QkFDbEIsaUJBQWlCO3dCQUNqQiwyQkFBMkI7cUJBQzlCO2dGQUlVLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNJLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTcHhJbnB1dENvbXBvbmVudCwgU3B4SW5wdXRUeXBlRW51bSwgU3B4VmFsdWVQYWlyIH0gZnJvbSAnQHNvZnRwYWsvY29tcG9uZW50cy9zcHgtaW5wdXRzJztcbmltcG9ydCB7IFNweEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWJ1dHRvbic7XG5pbXBvcnQgeyBTcHhTZXZlcml0eUVudW0gfSBmcm9tICdAc29mdHBhay9jb21wb25lbnRzL3NweC1oZWxwZXJzJztcbmltcG9ydCB7IFNweEZvcm1GaWVsZEkgfSBmcm9tICcuL3NweC1mb3JtLWZpZWxkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBTcHhGb3JtU2VjdGlvbkkgfSBmcm9tICcuL3NweC1mb3JtLXNlY3Rpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IFNweFZhbGlkYXRlQ29udHJvbENvbXBvbmVudCB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LXZhbGlkYXRpb24nO1xuXG5leHBvcnQgY29uc3Qgc2VjdGlvbkF1dG9jb21wbGV0ZVNlYXJjaCA9ICdhdXRvY29tcGxldGVTZWFyY2gnO1xuZXhwb3J0IGNvbnN0IGN0cmxRdWVyeSA9ICdxdWVyeSc7XG5leHBvcnQgY29uc3QgY3RybE9wdGlvbnMgPSAnb3B0aW9ucyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NweC1hdXRvY29tcGxldGUtc2VhcmNoJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NweC1hdXRvY29tcGxldGUtc2VhcmNoLmNvbXBvbmVudC5odG1sJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgU3B4QnV0dG9uQ29tcG9uZW50LFxuICAgIFNweElucHV0Q29tcG9uZW50LFxuICAgIFNweFZhbGlkYXRlQ29udHJvbENvbXBvbmVudFxuXVxufSlcbmV4cG9ydCBjbGFzcyBTcHhBdXRvY29tcGxldGVTZWFyY2hDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIGZvcm1Hcm91cCE6IEZvcm1Hcm91cDtcbiAgQElucHV0KCkgc3B4U3VnZ2VzdGlvbnM6IFNweFZhbHVlUGFpcjxhbnk+W10gPSBbXTtcbiAgQElucHV0KCkgc3B4RmllbGQhOiBTcHhGb3JtRmllbGRJO1xuICBASW5wdXQoKSB0eHRPcHRpb25zITogc3RyaW5nO1xuICBASW5wdXQoKSB0eHRRdWVyeSE6IHN0cmluZztcbiAgQElucHV0KCkgdHh0U3VibWl0ITogc3RyaW5nO1xuICBASW5wdXQoKSBzcHhWYWx1ZVBhaXIhOiBTcHhWYWx1ZVBhaXI8YW55PjtcbiAgQE91dHB1dCgpIHNweENhbmNlbDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgc3B4U2VhcmNoOiBFdmVudEVtaXR0ZXI8U3B4VmFsdWVQYWlyPGFueT4+ID0gbmV3IEV2ZW50RW1pdHRlcjxTcHhWYWx1ZVBhaXI8YW55Pj4oKTsgXG4gIEBPdXRwdXQoKSBzcHhTdWJtaXQ6IEV2ZW50RW1pdHRlcjxTcHhWYWx1ZVBhaXI8YW55Pj4gPSBuZXcgRXZlbnRFbWl0dGVyPFNweFZhbHVlUGFpcjxhbnk+PigpO1xuICBpbnB1dFR5cGVSYWRpbyA9IFNweElucHV0VHlwZUVudW0ucmFkaW87XG4gIGlucHV0VHlwZVRleHQgPSBTcHhJbnB1dFR5cGVFbnVtLnRleHQ7XG4gIHNldmVyaXR5RXJyb3IgPSBTcHhTZXZlcml0eUVudW0uZXJyb3I7XG4gIHNldmVyaXR5U3VjY2VzcyA9IFNweFNldmVyaXR5RW51bS5zdWNjZXNzO1xuIFxuICBzZWN0aW9uczogU3B4Rm9ybVNlY3Rpb25JW10gPSBbXG4gICAge1xuICAgICAga2V5OiBzZWN0aW9uQXV0b2NvbXBsZXRlU2VhcmNoLFxuICAgICAgc2hvd1RpdGxlOiAoKSA9PiBmYWxzZSxcbiAgICAgIGZpZWxkczogW1xuICAgICAgICB7XG4gICAgICAgICAga2V5OiBjdHJsUXVlcnksXG4gICAgICAgICAgdHlwZTogKCkgPT4gU3B4SW5wdXRUeXBlRW51bS50ZXh0LFxuICAgICAgICAgIGxhYmVsOiAoKSA9PiB0aGlzLnR4dFF1ZXJ5LFxuICAgICAgICAgIGNhcGl0YWxpemU6ICgpID0+IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBrZXk6IGN0cmxPcHRpb25zLFxuICAgICAgICAgIHR5cGU6ICgpID0+IFNweElucHV0VHlwZUVudW0ucmFkaW8sXG4gICAgICAgICAgbGFiZWw6ICgpID0+IHRoaXMudHh0T3B0aW9ucyxcbiAgICAgICAgfSxcbiAgICAgIF1cbiAgICB9XG4gIF07XG5cbiAgZ2V0IGN0cmxRdWVyeSgpOiBGb3JtQ29udHJvbCB7IHJldHVybiB0aGlzLmZvcm1Hcm91cC5nZXQoY3RybFF1ZXJ5KSBhcyBGb3JtQ29udHJvbDsgfVxuICBnZXQgY3RybE9wdGlvbnMoKTogRm9ybUNvbnRyb2wgeyByZXR1cm4gdGhpcy5mb3JtR3JvdXAuZ2V0KGN0cmxPcHRpb25zKSBhcyBGb3JtQ29udHJvbDsgfVxuXG4gIHByaXZhdGUgc3ViU2VsZWN0aW9uPzogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIHN1YlF1ZXJ5PzogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcikge1xuICAgIHRoaXMuY3JlYXRlRm9ybSgpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5saXN0ZW5Ub1NlbGVjdGlvbigpO1xuICAgIHRoaXMubGlzdGVuVG9RdWVyeSgpO1xuICAgIHRoaXMuY3RybFF1ZXJ5LnNldFZhbHVlKHRoaXMuc3B4VmFsdWVQYWlyLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgdGhpcy5zcHhTZWFyY2guZW1pdCh0aGlzLnNweFZhbHVlUGFpcik7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdWJTZWxlY3Rpb24pIHtcbiAgICAgIHRoaXMuc3ViU2VsZWN0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnN1YlF1ZXJ5KSB7XG4gICAgICB0aGlzLnN1YlF1ZXJ5LnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVGb3JtKCk6IHZvaWQge1xuICAgIHRoaXMuZm9ybUdyb3VwID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICBbY3RybFF1ZXJ5XTogW251bGxdLFxuICAgICAgW2N0cmxPcHRpb25zXTogW251bGxdLFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0UmF3VmFsaWRhdG9ycyhmb3JtQ29udHJvbDogRm9ybUNvbnRyb2wpIHtcbiAgICByZXR1cm4gKGZvcm1Db250cm9sIGFzIGFueSkuX3Jhd1ZhbGlkYXRvcnM7XG4gIH1cblxuICBvbkNhbmNlbCgpOiB2b2lkIHtcbiAgICB0aGlzLnNweENhbmNlbC5lbWl0KCk7XG4gIH1cbiAgXG4gIG9uU3VibWl0KCk6IHZvaWQge1xuICAgIHRoaXMuc3B4U3VibWl0LmVtaXQodGhpcy5jdHJsUXVlcnkudmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBsaXN0ZW5Ub1F1ZXJ5KCk6IHZvaWQge1xuICAgIHRoaXMuc3ViUXVlcnkgPSB0aGlzLmN0cmxRdWVyeS52YWx1ZUNoYW5nZXMucGlwZShkZWJvdW5jZVRpbWUoNTAwKSkuc3Vic2NyaWJlKHZhbHVlUGFpciA9PiB7XG4gICAgICB0aGlzLnNweFNlYXJjaC5lbWl0KHZhbHVlUGFpcik7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGxpc3RlblRvU2VsZWN0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuc3ViU2VsZWN0aW9uID0gdGhpcy5jdHJsT3B0aW9ucy52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbHVlUGFpciA9PiB7XG4gICAgICB0aGlzLmN0cmxRdWVyeS5zZXRWYWx1ZSh2YWx1ZVBhaXIpO1xuICAgIH0pO1xuICB9XG59XG4iLCI8Zm9ybSBjbGFzcz1cImJnLWJsYWNrIGZpeGVkIHB0LTE2IHotNTAgdG9wLTAgbGVmdC0wIHJpZ2h0LTAgYm90dG9tLTBcIiBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiIChuZ1N1Ym1pdCk9XCJvblN1Ym1pdCgpXCI+XG4gIDxkaXYgY2xhc3M9XCJoLWZ1bGwgdy1mdWxsIHB4LTMgZmxleCBmbGV4LWNvbCBnYXAtM1wiPlxuICAgIDxkaXYgY2xhc3M9XCJncm93IGZsZXggZmxleC1jb2wgZ2FwLTMgb3ZlcmZsb3cteS1hdXRvXCI+XG4gICAgICA8c3B4LWlucHV0IFtmb3JtQ29udHJvbF09XCJjdHJsUXVlcnlcIiBbc3B4TGFiZWxdPVwidHh0UXVlcnlcIiBbc3B4VHlwZV09XCJpbnB1dFR5cGVUZXh0XCI+XG4gICAgICA8L3NweC1pbnB1dD5cbiAgICAgIDxzcHgtaW5wdXQgW2Zvcm1Db250cm9sXT1cImN0cmxPcHRpb25zXCIgW3NweExhYmVsXT1cInR4dE9wdGlvbnNcIiBbc3B4U3VnZ2VzdGlvbnNdPVwic3B4U3VnZ2VzdGlvbnNcIlxuICAgICAgICBbc3B4VHlwZV09XCJpbnB1dFR5cGVSYWRpb1wiPlxuICAgICAgPC9zcHgtaW5wdXQ+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInB5LTMgZmxleCBmbGV4LWNvbCBnYXAtM1wiPlxuICAgICAgPHNweC1idXR0b24gW3NweEZ1bGxXaWR0aF09XCJ0cnVlXCIgW3NweFNldmVyaXR5XT1cInNldmVyaXR5U3VjY2Vzc1wiPlxuICAgICAgICBTYXZlXG4gICAgICA8L3NweC1idXR0b24+XG4gICAgICA8c3B4LWJ1dHRvbiBbc3B4RnVsbFdpZHRoXT1cInRydWVcIiBbc3B4U2V2ZXJpdHldPVwic2V2ZXJpdHlFcnJvclwiIFtzcHhUeXBlXT1cIididXR0b24nXCIgKHNweENsaWNrKT1cIm9uQ2FuY2VsKClcIj5cbiAgICAgICAgQ2FuY2VsXG4gICAgICA8L3NweC1idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9mb3JtPiJdfQ==
@@ -0,0 +1,6 @@
1
+ export var SpxFormButtonTypeEnum;
2
+ (function (SpxFormButtonTypeEnum) {
3
+ SpxFormButtonTypeEnum["button"] = "button";
4
+ SpxFormButtonTypeEnum["submit"] = "submit";
5
+ })(SpxFormButtonTypeEnum || (SpxFormButtonTypeEnum = {}));
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWZvcm0tYnV0dG9uLXR5cGUuZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NvZnRwYWsvY29tcG9uZW50cy9zcHgtZm9ybS12aWV3L3NweC1mb3JtLWJ1dHRvbi10eXBlLmVudW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVkscUJBR1g7QUFIRCxXQUFZLHFCQUFxQjtJQUM3QiwwQ0FBaUIsQ0FBQTtJQUNqQiwwQ0FBaUIsQ0FBQTtBQUNyQixDQUFDLEVBSFcscUJBQXFCLEtBQXJCLHFCQUFxQixRQUdoQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIFNweEZvcm1CdXR0b25UeXBlRW51bSB7XG4gICAgYnV0dG9uID0gJ2J1dHRvbicsXG4gICAgc3VibWl0ID0gJ3N1Ym1pdCcsXG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWZvcm0tYnV0dG9uLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NvZnRwYWsvY29tcG9uZW50cy9zcHgtZm9ybS12aWV3L3NweC1mb3JtLWJ1dHRvbi5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNweFNldmVyaXR5RW51bSB9IGZyb20gXCJAc29mdHBhay9jb21wb25lbnRzL3NweC1oZWxwZXJzXCI7XG5pbXBvcnQgeyBTcHhGb3JtQnV0dG9uVHlwZUVudW0gfSBmcm9tIFwiLi9zcHgtZm9ybS1idXR0b24tdHlwZS5lbnVtXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3B4Rm9ybUJ1dHRvbkkge1xuICAgIG9uQ2xpY2s/OiAoKSA9PiB7fTtcbiAgICBzZXZlcml0eTogU3B4U2V2ZXJpdHlFbnVtO1xuICAgIGxhYmVsPzogKCkgPT4gc3RyaW5nO1xuICAgIHR5cGU6IFNweEZvcm1CdXR0b25UeXBlRW51bTtcbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWZvcm0tZmllbGQuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc29mdHBhay9jb21wb25lbnRzL3NweC1mb3JtLXZpZXcvc3B4LWZvcm0tZmllbGQuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTcHhTZXZlcml0eUVudW0gfSBmcm9tIFwiQHNvZnRwYWsvY29tcG9uZW50cy9zcHgtaGVscGVyc1wiO1xuaW1wb3J0IHsgU3B4SW5wdXRUeXBlRW51bSwgU3B4VmFsdWVQYWlyIH0gZnJvbSBcIkBzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWlucHV0c1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNweEZvcm1GaWVsZEkge1xuICAgIGFmdGVyVmFsdWVDaGFuZ2U/OiAodmFsdWU6IFNweFZhbHVlUGFpcjxzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgYW55PikgPT4gdm9pZDtcbiAgICBhdXRvZm9jdXM/OiAoKSA9PiBib29sZWFuO1xuICAgIGNhcGl0YWxpemU/OiAoKSA9PiBib29sZWFuO1xuICAgIGRlZmF1bHRWYWx1ZT86ICgpID0+IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBhbnk7XG4gICAga2V5OiBzdHJpbmc7XG4gICAgbGFiZWw/OiAoKSA9PiBzdHJpbmc7XG4gICAgcmVhZG9ubHk/OiAoKSA9PiBib29sZWFuO1xuICAgIHNldmVyaXR5PzogKCkgPT4gU3B4U2V2ZXJpdHlFbnVtO1xuICAgIHNob3c/OiAoKSA9PiBib29sZWFuO1xuICAgIHN0ZXA/OiAoKSA9PiBudW1iZXI7XG4gICAgc3VnZ2VzdGlvbnM/OiAoKSA9PiBib29sZWFuO1xuICAgIHN1Z2dlc3Rpb25zRml4ZWQ/OiAoKSA9PiBTcHhWYWx1ZVBhaXI8c3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IGFueT5bXVxuICAgIHR5cGU6ICgpID0+IFNweElucHV0VHlwZUVudW07XG4gICAgdmFsaWRhdG9ycz86ICgpID0+IGFueVtdO1xufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWZvcm0tc2VjdGlvbi5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWZvcm0tdmlldy9zcHgtZm9ybS1zZWN0aW9uLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3B4Rm9ybUZpZWxkSSB9IGZyb20gXCIuL3NweC1mb3JtLWZpZWxkLmludGVyZmFjZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNweEZvcm1TZWN0aW9uSSB7XG4gICAgZmllbGRzOiBTcHhGb3JtRmllbGRJW107XG4gICAgaW5kZXg/OiAoKSA9PiBudW1iZXI7XG4gICAga2V5OiBzdHJpbmc7XG4gICAgc2hvdz86ICgpID0+IGJvb2xlYW47XG4gICAgc2hvd1RpdGxlPzogKCkgPT4gYm9vbGVhbjtcbiAgICB0aXRsZT86ICgpID0+IHN0cmluZztcbn1cbiJdfQ==
@@ -0,0 +1,297 @@
1
+ import { Component, EventEmitter, Input, Output, ViewChildren } from '@angular/core';
2
+ import { SpxFormSectionComponent } from '@softpak/components/spx-form-section';
3
+ import { SpxInputComponent, SpxInputTypeEnum } from '@softpak/components/spx-inputs';
4
+ import { SpxCapitalizePipe } from '@softpak/components/spx-capitalize';
5
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
6
+ import { SpxAutocompleteSearchComponent } from './spx-autocomplete-search.component';
7
+ import { SpxValidateControlComponent } from '@softpak/components/spx-validation';
8
+ import { TranslateModule } from '@ngx-translate/core';
9
+ import { SpxButtonComponent } from '@softpak/components/spx-button';
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "@angular/forms";
12
+ import * as i2 from "@ngx-translate/core";
13
+ export class SpxFormViewComponent {
14
+ setAutofocus(key) {
15
+ const field = this.spxInputs.find(input => input.spxName === key);
16
+ if (field) {
17
+ field.setFocusIn();
18
+ }
19
+ }
20
+ onBlur(field) {
21
+ this.spxBlur.emit({
22
+ field,
23
+ valuePair: this.spxFormGroup.get(field.key).value,
24
+ });
25
+ }
26
+ onClick(field) {
27
+ this.spxClick.emit({
28
+ field,
29
+ });
30
+ }
31
+ onAutocompleteCancel() {
32
+ this.autocompleteField = undefined;
33
+ }
34
+ onAutocompleteSearch(valuePair) {
35
+ if (this.autocompleteField) {
36
+ this.spxSearch.emit({
37
+ field: this.autocompleteField,
38
+ valuePair,
39
+ });
40
+ }
41
+ }
42
+ onAutocompleteSave(valuePair) {
43
+ this.spxFormGroup.get(this.autocompleteField.key)?.setValue(valuePair);
44
+ this.autocompleteField = undefined;
45
+ }
46
+ onSearch(field) {
47
+ this.autocompleteField = field;
48
+ }
49
+ getRawValidators(formControl) {
50
+ // eslint-disable-next-line no-underscore-dangle
51
+ return formControl._rawValidators;
52
+ }
53
+ hasRequiredField(abstractControl) {
54
+ if (abstractControl.validator) {
55
+ const validator = abstractControl.validator({});
56
+ if (validator && validator['required']) {
57
+ return true;
58
+ }
59
+ }
60
+ if (abstractControl['controls']) {
61
+ for (const controlName in abstractControl['controls']) {
62
+ if (abstractControl['controls'][controlName]) {
63
+ if (this.hasRequiredField(abstractControl['controls'][controlName])) {
64
+ return true;
65
+ }
66
+ }
67
+ }
68
+ }
69
+ return false;
70
+ }
71
+ static initialFormValue(sections) {
72
+ const formObject = {};
73
+ sections.forEach(section => {
74
+ section.fields.forEach(field => {
75
+ formObject[field.key] = [field.defaultValue ? field.defaultValue() : null, field.validators ? [...field.validators()] : []];
76
+ });
77
+ });
78
+ return formObject;
79
+ }
80
+ static createForm(formBuilder, sections) {
81
+ return formBuilder.group(this.initialFormValue(sections));
82
+ }
83
+ constructor(formBuilder) {
84
+ this.formBuilder = formBuilder;
85
+ this.spxBlur = new EventEmitter();
86
+ this.spxClick = new EventEmitter();
87
+ this.spxSearch = new EventEmitter();
88
+ this.typeAutocomplete = SpxInputTypeEnum.autocomplete;
89
+ this.typeButton = SpxInputTypeEnum.button;
90
+ this.typeFloat = SpxInputTypeEnum.float;
91
+ this.typeNumber = SpxInputTypeEnum.number;
92
+ this.typeRadio = SpxInputTypeEnum.radio;
93
+ this.typeText = SpxInputTypeEnum.text;
94
+ this.typeNumericKeyboard = SpxInputTypeEnum.textNumericKeyboard;
95
+ this.typeOverlay = SpxInputTypeEnum.overlay;
96
+ this.typeOverlayNumber = SpxInputTypeEnum.overlayNumber;
97
+ }
98
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxFormViewComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
99
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SpxFormViewComponent, isStandalone: true, selector: "spx-form-view", inputs: { spxFormGroup: "spxFormGroup", spxForm: "spxForm", spxSuggestions: "spxSuggestions" }, outputs: { spxBlur: "spxBlur", spxClick: "spxClick", spxSearch: "spxSearch" }, viewQueries: [{ propertyName: "spxInputs", predicate: SpxInputComponent, descendants: true }], ngImport: i0, template: `@if (autocompleteField) {
100
+ <spx-autocomplete-search
101
+ [spxField]="autocompleteField"
102
+ [spxSuggestions]="this.spxSuggestions[autocompleteField.key]"
103
+ [spxValuePair]="$any(this.spxFormGroup.get(autocompleteField.key)).value"
104
+ [txtOptions]="'Options'"
105
+ [txtQuery]="'Query'"
106
+ [txtSubmit]="'Save'"
107
+ (spxCancel)="onAutocompleteCancel()"
108
+ (spxSearch)="onAutocompleteSearch($event)"
109
+ (spxSubmit)="onAutocompleteSave($event)">
110
+ </spx-autocomplete-search>
111
+ }
112
+ <div class="flex flex-col gap-3">
113
+ @for (spxSection of spxForm.sections; track spxSection; let spxSectionIndex = $index) {
114
+ <spx-form-section
115
+ [spxShowTitle]="!spxSection.showTitle || spxSection.showTitle()"
116
+ [spxIndex]="spxSectionIndex + 1"
117
+ [spxTitle]="spxSection.title ? (spxSection.title() | translate | capitalize) : undefined">
118
+ @for (spxField of spxSection.fields; track spxField; let spxFieldIndex = $index) {
119
+ @if (spxField.show === undefined || spxField.show()) {
120
+ @if (spxField.type() === typeButton) {
121
+ <spx-button
122
+ [spxFullWidth]="true"
123
+ [spxSeverity]="spxField.severity ? spxField.severity() : undefined"
124
+ [spxType]="'button'"
125
+ (spxClick)="onClick(spxField)"
126
+ >{{ (spxField.label ? spxField.label() : spxField.key) | translate | capitalize }}</spx-button>
127
+ }
128
+ @if (spxField.type() === typeOverlay || spxField.type() === typeOverlayNumber || spxField.type() === typeFloat || spxField.type() === typeNumber || spxField.type() === typeText || spxField.type() === typeAutocomplete || spxField.type() === typeNumericKeyboard) {
129
+ <spx-input
130
+ [formControl]="$any(this.spxFormGroup.get(spxField.key))"
131
+ [spxAutofocus]="spxField.autofocus ? spxField.autofocus() : false"
132
+ [spxCapitalize]="spxField.capitalize ? spxField.capitalize() : false"
133
+ [spxLabel]="(spxField.label ? spxField.label() : spxField.key) | translate | capitalize"
134
+ [spxName]="spxField.key"
135
+ [spxPattern]="spxField.type() === typeNumericKeyboard ? '\\d*' : undefined"
136
+ [spxReadonly]="spxField.readonly ? spxField.readonly() : false"
137
+ [spxRequired]="hasRequiredField(this.spxFormGroup.get(spxField.key)!)"
138
+ [spxShowSearch]="spxField.type() === typeAutocomplete"
139
+ [spxShowHelp]="false"
140
+ [spxShowValidationMessages]="this.spxFormGroup.get(spxField.key)! && this.spxFormGroup.get(spxField.key)!.errors && this.spxFormGroup.get(spxField.key)!.touched"
141
+ [spxStep]="spxField.step ? spxField.step() : undefined"
142
+ [spxType]="spxField.type()"
143
+ [spxValidators]="getRawValidators(this.spxFormGroup.get(spxField.key)!)"
144
+ [spxSuggestions]="spxField.suggestionsFixed ? spxField.suggestionsFixed() : this.spxSuggestions[spxField.key]"
145
+ (spxBlur)="onBlur(spxField)"
146
+ (spxSearch)="onSearch(spxField)">
147
+ <spx-validate-control [control]="$any(this.spxFormGroup.get(spxField.key))" [label]="(spxField.label ? spxField.label() : spxField.key)| translate | capitalize"></spx-validate-control>
148
+ </spx-input>
149
+ }
150
+ @if (spxField.type() === typeRadio) {
151
+ <spx-input
152
+ [formControl]="$any(this.spxFormGroup.get(spxField.key))"
153
+ [spxLabel]="(spxField.label ? spxField.label() : spxField.key) | translate | capitalize"
154
+ [spxName]="spxField.key"
155
+ [spxReadonly]="spxField.readonly ? spxField.readonly() : false"
156
+ [spxRequired]="hasRequiredField(this.spxFormGroup.get(spxField.key)!)"
157
+ [spxShowHelp]="false"
158
+ [spxShowValidationMessages]="this.spxFormGroup.get(spxField.key)! && this.spxFormGroup.get(spxField.key)!.errors && this.spxFormGroup.get(spxField.key)!.touched"
159
+ [spxSuggestions]="spxField.suggestionsFixed ? spxField.suggestionsFixed() : this.spxSuggestions[spxField.key]"
160
+ [spxType]="typeRadio"
161
+ [spxValidators]="getRawValidators(this.spxFormGroup.get(spxField.key)!)">
162
+ <spx-validate-control [control]="$any(this.spxFormGroup.get(spxField.key))" [label]="(spxField.label ? spxField.label() : spxField.key) | translate | capitalize"></spx-validate-control>
163
+ </spx-input>
164
+ }
165
+ }
166
+ }
167
+ </spx-form-section>
168
+ }
169
+
170
+ @for (spxButton of spxForm.buttons; track spxButton) {
171
+ <spx-button
172
+ [spxFullWidth]="true"
173
+ [spxSeverity]="spxButton.severity"
174
+ [spxType]="spxButton.type"
175
+ (spxClick)="spxButton.onClick ? spxButton.onClick() : undefined">
176
+ {{ ((spxButton && spxButton.label) ? spxButton.label() : '') | translate | capitalize }}
177
+ </spx-button>
178
+ }
179
+ </div>
180
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: SpxAutocompleteSearchComponent, selector: "spx-autocomplete-search", inputs: ["spxSuggestions", "spxField", "txtOptions", "txtQuery", "txtSubmit", "spxValuePair"], outputs: ["spxCancel", "spxSearch", "spxSubmit"] }, { kind: "component", type: SpxButtonComponent, selector: "spx-button", inputs: ["spxDisabled", "spxClass", "spxClassObject", "spxForm", "spxFullHeight", "spxFullWidth", "spxSeverity", "spxSize", "spxTabIndex", "spxType"], outputs: ["spxClick"] }, { kind: "pipe", type: SpxCapitalizePipe, name: "capitalize" }, { kind: "component", type: SpxFormSectionComponent, selector: "spx-form-section", inputs: ["spxIndex", "spxIndexSecondary", "spxTitle", "spxShowTitle"] }, { kind: "component", type: SpxInputComponent, selector: "spx-input", inputs: ["spxLabel", "spxMax", "spxMin", "spxName", "spxReadonly", "spxAutocomplete", "spxAutofocus", "spxInputMode", "spxPattern", "spxRequired", "spxSelectMonth", "spxSelectDay", "spxShowEdit", "spxShowHelp", "spxShowLabel", "spxCompact", "spxShowClear", "spxShowSearch", "spxShowValidationMessages", "spxStep", "spxSuggestions", "spxType", "spxValidators", "value", "spxCapitalize", "spxFocused"], outputs: ["spxBlur", "spxClear", "spxChange", "spxFocus", "spxEdit", "spxHelp", "spxSearch"] }, { kind: "component", type: SpxValidateControlComponent, selector: "spx-validate-control", inputs: ["control", "label", "submitTried"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] }); }
181
+ }
182
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpxFormViewComponent, decorators: [{
183
+ type: Component,
184
+ args: [{
185
+ selector: 'spx-form-view',
186
+ standalone: true,
187
+ imports: [
188
+ FormsModule,
189
+ ReactiveFormsModule,
190
+ SpxAutocompleteSearchComponent,
191
+ SpxButtonComponent,
192
+ SpxCapitalizePipe,
193
+ SpxFormSectionComponent,
194
+ SpxInputComponent,
195
+ SpxValidateControlComponent,
196
+ TranslateModule
197
+ ],
198
+ template: `@if (autocompleteField) {
199
+ <spx-autocomplete-search
200
+ [spxField]="autocompleteField"
201
+ [spxSuggestions]="this.spxSuggestions[autocompleteField.key]"
202
+ [spxValuePair]="$any(this.spxFormGroup.get(autocompleteField.key)).value"
203
+ [txtOptions]="'Options'"
204
+ [txtQuery]="'Query'"
205
+ [txtSubmit]="'Save'"
206
+ (spxCancel)="onAutocompleteCancel()"
207
+ (spxSearch)="onAutocompleteSearch($event)"
208
+ (spxSubmit)="onAutocompleteSave($event)">
209
+ </spx-autocomplete-search>
210
+ }
211
+ <div class="flex flex-col gap-3">
212
+ @for (spxSection of spxForm.sections; track spxSection; let spxSectionIndex = $index) {
213
+ <spx-form-section
214
+ [spxShowTitle]="!spxSection.showTitle || spxSection.showTitle()"
215
+ [spxIndex]="spxSectionIndex + 1"
216
+ [spxTitle]="spxSection.title ? (spxSection.title() | translate | capitalize) : undefined">
217
+ @for (spxField of spxSection.fields; track spxField; let spxFieldIndex = $index) {
218
+ @if (spxField.show === undefined || spxField.show()) {
219
+ @if (spxField.type() === typeButton) {
220
+ <spx-button
221
+ [spxFullWidth]="true"
222
+ [spxSeverity]="spxField.severity ? spxField.severity() : undefined"
223
+ [spxType]="'button'"
224
+ (spxClick)="onClick(spxField)"
225
+ >{{ (spxField.label ? spxField.label() : spxField.key) | translate | capitalize }}</spx-button>
226
+ }
227
+ @if (spxField.type() === typeOverlay || spxField.type() === typeOverlayNumber || spxField.type() === typeFloat || spxField.type() === typeNumber || spxField.type() === typeText || spxField.type() === typeAutocomplete || spxField.type() === typeNumericKeyboard) {
228
+ <spx-input
229
+ [formControl]="$any(this.spxFormGroup.get(spxField.key))"
230
+ [spxAutofocus]="spxField.autofocus ? spxField.autofocus() : false"
231
+ [spxCapitalize]="spxField.capitalize ? spxField.capitalize() : false"
232
+ [spxLabel]="(spxField.label ? spxField.label() : spxField.key) | translate | capitalize"
233
+ [spxName]="spxField.key"
234
+ [spxPattern]="spxField.type() === typeNumericKeyboard ? '\\d*' : undefined"
235
+ [spxReadonly]="spxField.readonly ? spxField.readonly() : false"
236
+ [spxRequired]="hasRequiredField(this.spxFormGroup.get(spxField.key)!)"
237
+ [spxShowSearch]="spxField.type() === typeAutocomplete"
238
+ [spxShowHelp]="false"
239
+ [spxShowValidationMessages]="this.spxFormGroup.get(spxField.key)! && this.spxFormGroup.get(spxField.key)!.errors && this.spxFormGroup.get(spxField.key)!.touched"
240
+ [spxStep]="spxField.step ? spxField.step() : undefined"
241
+ [spxType]="spxField.type()"
242
+ [spxValidators]="getRawValidators(this.spxFormGroup.get(spxField.key)!)"
243
+ [spxSuggestions]="spxField.suggestionsFixed ? spxField.suggestionsFixed() : this.spxSuggestions[spxField.key]"
244
+ (spxBlur)="onBlur(spxField)"
245
+ (spxSearch)="onSearch(spxField)">
246
+ <spx-validate-control [control]="$any(this.spxFormGroup.get(spxField.key))" [label]="(spxField.label ? spxField.label() : spxField.key)| translate | capitalize"></spx-validate-control>
247
+ </spx-input>
248
+ }
249
+ @if (spxField.type() === typeRadio) {
250
+ <spx-input
251
+ [formControl]="$any(this.spxFormGroup.get(spxField.key))"
252
+ [spxLabel]="(spxField.label ? spxField.label() : spxField.key) | translate | capitalize"
253
+ [spxName]="spxField.key"
254
+ [spxReadonly]="spxField.readonly ? spxField.readonly() : false"
255
+ [spxRequired]="hasRequiredField(this.spxFormGroup.get(spxField.key)!)"
256
+ [spxShowHelp]="false"
257
+ [spxShowValidationMessages]="this.spxFormGroup.get(spxField.key)! && this.spxFormGroup.get(spxField.key)!.errors && this.spxFormGroup.get(spxField.key)!.touched"
258
+ [spxSuggestions]="spxField.suggestionsFixed ? spxField.suggestionsFixed() : this.spxSuggestions[spxField.key]"
259
+ [spxType]="typeRadio"
260
+ [spxValidators]="getRawValidators(this.spxFormGroup.get(spxField.key)!)">
261
+ <spx-validate-control [control]="$any(this.spxFormGroup.get(spxField.key))" [label]="(spxField.label ? spxField.label() : spxField.key) | translate | capitalize"></spx-validate-control>
262
+ </spx-input>
263
+ }
264
+ }
265
+ }
266
+ </spx-form-section>
267
+ }
268
+
269
+ @for (spxButton of spxForm.buttons; track spxButton) {
270
+ <spx-button
271
+ [spxFullWidth]="true"
272
+ [spxSeverity]="spxButton.severity"
273
+ [spxType]="spxButton.type"
274
+ (spxClick)="spxButton.onClick ? spxButton.onClick() : undefined">
275
+ {{ ((spxButton && spxButton.label) ? spxButton.label() : '') | translate | capitalize }}
276
+ </spx-button>
277
+ }
278
+ </div>
279
+ `,
280
+ }]
281
+ }], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { spxFormGroup: [{
282
+ type: Input
283
+ }], spxForm: [{
284
+ type: Input
285
+ }], spxSuggestions: [{
286
+ type: Input
287
+ }], spxBlur: [{
288
+ type: Output
289
+ }], spxClick: [{
290
+ type: Output
291
+ }], spxSearch: [{
292
+ type: Output
293
+ }], spxInputs: [{
294
+ type: ViewChildren,
295
+ args: [SpxInputComponent]
296
+ }] } });
297
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWZvcm0tdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWZvcm0tdmlldy9zcHgtZm9ybS12aWV3LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUF3QixZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0csT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFnQixNQUFNLGdDQUFnQyxDQUFDO0FBQ25HLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBMkMsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0csT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDckYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDakYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7O0FBb0dwRSxNQUFNLE9BQU8sb0JBQW9CO0lBb0IvQixZQUFZLENBQUMsR0FBVztRQUN0QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDbEUsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNyQixDQUFDO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFv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cUZOLG9CQUFvQjtrQkFqR2hDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUU7d0JBQ1AsV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLDhCQUE4Qjt3QkFDOUIsa0JBQWtCO3dCQUNsQixpQkFBaUI7d0JBQ2pCLHVCQUF1Qjt3QkFDdkIsaUJBQWlCO3dCQUNqQiwyQkFBMkI7d0JBQzNCLGVBQWU7cUJBQ2xCO29CQUNDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBaUZYO2lCQUNBO2dGQUVVLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0ksT0FBTztzQkFBaEIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQzBCLFNBQVM7c0JBQXpDLFlBQVk7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSnNvblBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFF1ZXJ5TGlzdCwgVmlld0NoaWxkLCBWaWV3Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNweEZvcm1TZWN0aW9uSSB9IGZyb20gJy4vc3B4LWZvcm0tc2VjdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU3B4Rm9ybVNlY3Rpb25Db21wb25lbnQgfSBmcm9tICdAc29mdHBhay9jb21wb25lbnRzL3NweC1mb3JtLXNlY3Rpb24nO1xuaW1wb3J0IHsgU3B4SW5wdXRDb21wb25lbnQsIFNweElucHV0VHlwZUVudW0sIFNweFZhbHVlUGFpciB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWlucHV0cyc7XG5pbXBvcnQgeyBTcHhDYXBpdGFsaXplUGlwZSB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWNhcGl0YWxpemUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFNweEZvcm1GaWVsZEkgfSBmcm9tICcuL3NweC1mb3JtLWZpZWxkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBTcHhBdXRvY29tcGxldGVTZWFyY2hDb21wb25lbnQgfSBmcm9tICcuL3NweC1hdXRvY29tcGxldGUtc2VhcmNoLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTcHhWYWxpZGF0ZUNvbnRyb2xDb21wb25lbnQgfSBmcm9tICdAc29mdHBhay9jb21wb25lbnRzL3NweC12YWxpZGF0aW9uJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgU3B4QnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQHNvZnRwYWsvY29tcG9uZW50cy9zcHgtYnV0dG9uJztcbmltcG9ydCB7IFNweEZvcm1JIH0gZnJvbSAnLi9zcHgtZm9ybS5pbnRlcmZhY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzcHgtZm9ybS12aWV3JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgU3B4QXV0b2NvbXBsZXRlU2VhcmNoQ29tcG9uZW50LFxuICAgIFNweEJ1dHRvbkNvbXBvbmVudCxcbiAgICBTcHhDYXBpdGFsaXplUGlwZSxcbiAgICBTcHhGb3JtU2VjdGlvbkNvbXBvbmVudCxcbiAgICBTcHhJbnB1dENvbXBvbmVudCxcbiAgICBTcHhWYWxpZGF0ZUNvbnRyb2xDb21wb25lbnQsXG4gICAgVHJhbnNsYXRlTW9kdWxlXG5dLFxuICB0ZW1wbGF0ZTogYEBpZiAoYXV0b2NvbXBsZXRlRmllbGQpIHtcbiAgPHNweC1hdXRvY29tcGxldGUtc2VhcmNoXG4gICAgW3NweEZpZWxkXT1cImF1dG9jb21wbGV0ZUZpZWxkXCJcbiAgICBbc3B4U3VnZ2VzdGlvbnNdPVwidGhpcy5zcHhTdWdnZXN0aW9uc1thdXRvY29tcGxldGVGaWVsZC5rZXldXCJcbiAgICBbc3B4VmFsdWVQYWlyXT1cIiRhbnkodGhpcy5zcHhGb3JtR3JvdXAuZ2V0KGF1dG9jb21wbGV0ZUZpZWxkLmtleSkpLnZhbHVlXCJcbiAgICBbdHh0T3B0aW9uc109XCInT3B0aW9ucydcIlxuICAgIFt0eHRRdWVyeV09XCInUXVlcnknXCJcbiAgICBbdHh0U3VibWl0XT1cIidTYXZlJ1wiXG4gICAgKHNweENhbmNlbCk9XCJvbkF1dG9jb21wbGV0ZUNhbmNlbCgpXCJcbiAgICAoc3B4U2VhcmNoKT1cIm9uQXV0b2NvbXBsZXRlU2VhcmNoKCRldmVudClcIlxuICAgIChzcHhTdWJtaXQpPVwib25BdXRvY29tcGxldGVTYXZlKCRldmVudClcIj5cbiAgPC9zcHgtYXV0b2NvbXBsZXRlLXNlYXJjaD5cbn1cbjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0zXCI+XG4gIEBmb3IgKHNweFNlY3Rpb24gb2Ygc3B4Rm9ybS5zZWN0aW9uczsgdHJhY2sgc3B4U2VjdGlvbjsgbGV0IHNweFNlY3Rpb25JbmRleCA9ICRpbmRleCkge1xuICAgIDxzcHgtZm9ybS1zZWN0aW9uXG4gICAgICBbc3B4U2hvd1RpdGxlXT1cIiFzcHhTZWN0aW9uLnNob3dUaXRsZSB8fCBzcHhTZWN0aW9uLnNob3dUaXRsZSgpXCJcbiAgICAgIFtzcHhJbmRleF09XCJzcHhTZWN0aW9uSW5kZXggKyAxXCJcbiAgICAgIFtzcHhUaXRsZV09XCJzcHhTZWN0aW9uLnRpdGxlID8gKHNweFNlY3Rpb24udGl0bGUoKSB8IHRyYW5zbGF0ZSB8IGNhcGl0YWxpemUpIDogdW5kZWZpbmVkXCI+XG4gICAgICBAZm9yIChzcHhGaWVsZCBvZiBzcHhTZWN0aW9uLmZpZWxkczsgdHJhY2sgc3B4RmllbGQ7IGxldCBzcHhGaWVsZEluZGV4ID0gJGluZGV4KSB7XG4gICAgICAgIEBpZiAoc3B4RmllbGQuc2hvdyA9PT0gdW5kZWZpbmVkIHx8IHNweEZpZWxkLnNob3coKSkge1xuICAgICAgICAgIEBpZiAoc3B4RmllbGQudHlwZSgpID09PSB0eXBlQnV0dG9uKSB7XG4gICAgICAgICAgICA8c3B4LWJ1dHRvblxuICAgICAgICAgICAgICBbc3B4RnVsbFdpZHRoXT1cInRydWVcIlxuICAgICAgICAgICAgICBbc3B4U2V2ZXJpdHldPVwic3B4RmllbGQuc2V2ZXJpdHkgPyBzcHhGaWVsZC5zZXZlcml0eSgpIDogdW5kZWZpbmVkXCJcbiAgICAgICAgICAgICAgW3NweFR5cGVdPVwiJ2J1dHRvbidcIlxuICAgICAgICAgICAgICAoc3B4Q2xpY2spPVwib25DbGljayhzcHhGaWVsZClcIlxuICAgICAgICAgICAgPnt7IChzcHhGaWVsZC5sYWJlbCA/IHNweEZpZWxkLmxhYmVsKCkgOiBzcHhGaWVsZC5rZXkpIHwgdHJhbnNsYXRlICB8IGNhcGl0YWxpemUgfX08L3NweC1idXR0b24+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiAoc3B4RmllbGQudHlwZSgpID09PSB0eXBlT3ZlcmxheSB8fCBzcHhGaWVsZC50eXBlKCkgPT09IHR5cGVPdmVybGF5TnVtYmVyIHx8IHNweEZpZWxkLnR5cGUoKSA9PT0gdHlwZUZsb2F0IHx8IHNweEZpZWxkLnR5cGUoKSA9PT0gdHlwZU51bWJlciB8fCBzcHhGaWVsZC50eXBlKCkgPT09IHR5cGVUZXh0IHx8IHNweEZpZWxkLnR5cGUoKSA9PT0gdHlwZUF1dG9jb21wbGV0ZSB8fCBzcHhGaWVsZC50eXBlKCkgPT09IHR5cGVOdW1lcmljS2V5Ym9hcmQpIHtcbiAgICAgICAgICAgIDxzcHgtaW5wdXRcbiAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cIiRhbnkodGhpcy5zcHhGb3JtR3JvdXAuZ2V0KHNweEZpZWxkLmtleSkpXCJcbiAgICAgICAgICAgICAgW3NweEF1dG9mb2N1c109XCJzcHhGaWVsZC5hdXRvZm9jdXMgPyBzcHhGaWVsZC5hdXRvZm9jdXMoKSA6IGZhbHNlXCJcbiAgICAgICAgICAgICAgW3NweENhcGl0YWxpemVdPVwic3B4RmllbGQuY2FwaXRhbGl6ZSA/IHNweEZpZWxkLmNhcGl0YWxpemUoKSA6IGZhbHNlXCJcbiAgICAgICAgICAgICAgW3NweExhYmVsXT1cIihzcHhGaWVsZC5sYWJlbCA/IHNweEZpZWxkLmxhYmVsKCkgOiBzcHhGaWVsZC5rZXkpIHwgdHJhbnNsYXRlICB8IGNhcGl0YWxpemVcIlxuICAgICAgICAgICAgICBbc3B4TmFtZV09XCJzcHhGaWVsZC5rZXlcIlxuICAgICAgICAgICAgICBbc3B4UGF0dGVybl09XCJzcHhGaWVsZC50eXBlKCkgPT09IHR5cGVOdW1lcmljS2V5Ym9hcmQgPyAnXFxcXGQqJyA6IHVuZGVmaW5lZFwiXG4gICAgICAgICAgICAgIFtzcHhSZWFkb25seV09XCJzcHhGaWVsZC5yZWFkb25seSA/IHNweEZpZWxkLnJlYWRvbmx5KCkgOiBmYWxzZVwiXG4gICAgICAgICAgICAgIFtzcHhSZXF1aXJlZF09XCJoYXNSZXF1aXJlZEZpZWxkKHRoaXMuc3B4Rm9ybUdyb3VwLmdldChzcHhGaWVsZC5rZXkpISlcIlxuICAgICAgICAgICAgICBbc3B4U2hvd1NlYXJjaF09XCJzcHhGaWVsZC50eXBlKCkgPT09IHR5cGVBdXRvY29tcGxldGVcIlxuICAgICAgICAgICAgICBbc3B4U2hvd0hlbHBdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICBbc3B4U2hvd1ZhbGlkYXRpb25NZXNzYWdlc109XCJ0aGlzLnNweEZvcm1Hcm91cC5nZXQoc3B4RmllbGQua2V5KSEgJiYgdGhpcy5zcHhGb3JtR3JvdXAuZ2V0KHNweEZpZWxkLmtleSkhLmVycm9ycyAmJiB0aGlzLnNweEZvcm1Hcm91cC5nZXQoc3B4RmllbGQua2V5KSEudG91Y2hlZFwiXG4gICAgICAgICAgICAgIFtzcHhTdGVwXT1cInNweEZpZWxkLnN0ZXAgPyBzcHhGaWVsZC5zdGVwKCkgOiB1bmRlZmluZWRcIlxuICAgICAgICAgICAgICBbc3B4VHlwZV09XCJzcHhGaWVsZC50eXBlKClcIlxuICAgICAgICAgICAgICBbc3B4VmFsaWRhdG9yc109XCJnZXRSYXdWYWxpZGF0b3JzKHRoaXMuc3B4Rm9ybUdyb3VwLmdldChzcHhGaWVsZC5rZXkpISlcIlxuICAgICAgICAgICAgICBbc3B4U3VnZ2VzdGlvbnNdPVwic3B4RmllbGQuc3VnZ2VzdGlvbnNGaXhlZCA/IHNweEZpZWxkLnN1Z2dlc3Rpb25zRml4ZWQoKSA6IHRoaXMuc3B4U3VnZ2VzdGlvbnNbc3B4RmllbGQua2V5XVwiXG4gICAgICAgICAgICAgIChzcHhCbHVyKT1cIm9uQmx1cihzcHhGaWVsZClcIlxuICAgICAgICAgICAgICAoc3B4U2VhcmNoKT1cIm9uU2VhcmNoKHNweEZpZWxkKVwiPlxuICAgICAgICAgICAgICA8c3B4LXZhbGlkYXRlLWNvbnRyb2wgW2NvbnRyb2xdPVwiJGFueSh0aGlzLnNweEZvcm1Hcm91cC5nZXQoc3B4RmllbGQua2V5KSlcIiBbbGFiZWxdPVwiKHNweEZpZWxkLmxhYmVsID8gc3B4RmllbGQubGFiZWwoKSA6IHNweEZpZWxkLmtleSl8IHRyYW5zbGF0ZSAgfCBjYXBpdGFsaXplXCI+PC9zcHgtdmFsaWRhdGUtY29udHJvbD5cbiAgICAgICAgICAgIDwvc3B4LWlucHV0PlxuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgKHNweEZpZWxkLnR5cGUoKSA9PT0gdHlwZVJhZGlvKSB7XG4gICAgICAgICAgICA8c3B4LWlucHV0XG4gICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCIkYW55KHRoaXMuc3B4Rm9ybUdyb3VwLmdldChzcHhGaWVsZC5rZXkpKVwiXG4gICAgICAgICAgICAgIFtzcHhMYWJlbF09XCIoc3B4RmllbGQubGFiZWwgPyBzcHhGaWVsZC5sYWJlbCgpIDogc3B4RmllbGQua2V5KSB8IHRyYW5zbGF0ZSB8IGNhcGl0YWxpemVcIlxuICAgICAgICAgICAgICBbc3B4TmFtZV09XCJzcHhGaWVsZC5rZXlcIlxuICAgICAgICAgICAgICBbc3B4UmVhZG9ubHldPVwic3B4RmllbGQucmVhZG9ubHkgPyBzcHhGaWVsZC5yZWFkb25seSgpIDogZmFsc2VcIlxuICAgICAgICAgICAgICBbc3B4UmVxdWlyZWRdPVwiaGFzUmVxdWlyZWRGaWVsZCh0aGlzLnNweEZvcm1Hcm91cC5nZXQoc3B4RmllbGQua2V5KSEpXCJcbiAgICAgICAgICAgICAgW3NweFNob3dIZWxwXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgW3NweFNob3dWYWxpZGF0aW9uTWVzc2FnZXNdPVwidGhpcy5zcHhGb3JtR3JvdXAuZ2V0KHNweEZpZWxkLmtleSkhICYmIHRoaXMuc3B4Rm9ybUdyb3VwLmdldChzcHhGaWVsZC5rZXkpIS5lcnJvcnMgJiYgdGhpcy5zcHhGb3JtR3JvdXAuZ2V0KHNweEZpZWxkLmtleSkhLnRvdWNoZWRcIlxuICAgICAgICAgICAgICBbc3B4U3VnZ2VzdGlvbnNdPVwic3B4RmllbGQuc3VnZ2VzdGlvbnNGaXhlZCA/IHNweEZpZWxkLnN1Z2dlc3Rpb25zRml4ZWQoKSA6IHRoaXMuc3B4U3VnZ2VzdGlvbnNbc3B4RmllbGQua2V5XVwiXG4gICAgICAgICAgICAgIFtzcHhUeXBlXT1cInR5cGVSYWRpb1wiXG4gICAgICAgICAgICAgIFtzcHhWYWxpZGF0b3JzXT1cImdldFJhd1ZhbGlkYXRvcnModGhpcy5zcHhGb3JtR3JvdXAuZ2V0KHNweEZpZWxkLmtleSkhKVwiPlxuICAgICAgICAgICAgICA8c3B4LXZhbGlkYXRlLWNvbnRyb2wgW2NvbnRyb2xdPVwiJGFueSh0aGlzLnNweEZvcm1Hcm91cC5nZXQoc3B4RmllbGQua2V5KSlcIiBbbGFiZWxdPVwiKHNweEZpZWxkLmxhYmVsID8gc3B4RmllbGQubGFiZWwoKSA6IHNweEZpZWxkLmtleSkgfCB0cmFuc2xhdGUgfCBjYXBpdGFsaXplXCI+PC9zcHgtdmFsaWRhdGUtY29udHJvbD5cbiAgICAgICAgICAgIDwvc3B4LWlucHV0PlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIDwvc3B4LWZvcm0tc2VjdGlvbj5cbiAgfVxuXG4gIEBmb3IgKHNweEJ1dHRvbiBvZiBzcHhGb3JtLmJ1dHRvbnM7IHRyYWNrIHNweEJ1dHRvbikge1xuICAgIDxzcHgtYnV0dG9uXG4gICAgICBbc3B4RnVsbFdpZHRoXT1cInRydWVcIlxuICAgICAgW3NweFNldmVyaXR5XT1cInNweEJ1dHRvbi5zZXZlcml0eVwiXG4gICAgICBbc3B4VHlwZV09XCJzcHhCdXR0b24udHlwZVwiXG4gICAgICAoc3B4Q2xpY2spPVwic3B4QnV0dG9uLm9uQ2xpY2sgPyBzcHhCdXR0b24ub25DbGljaygpIDogdW5kZWZpbmVkXCI+XG4gICAgICB7eyAoKHNweEJ1dHRvbiAmJiBzcHhCdXR0b24ubGFiZWwpID8gc3B4QnV0dG9uLmxhYmVsKCkgOiAnJykgfCB0cmFuc2xhdGUgfCBjYXBpdGFsaXplIH19XG4gICAgPC9zcHgtYnV0dG9uPlxuICB9XG48L2Rpdj5cbmAsXG59KVxuZXhwb3J0IGNsYXNzIFNweEZvcm1WaWV3Q29tcG9uZW50IHtcbiAgQElucHV0KCkgc3B4Rm9ybUdyb3VwITogRm9ybUdyb3VwO1xuICBASW5wdXQoKSBzcHhGb3JtITogU3B4Rm9ybUk7XG4gIEBJbnB1dCgpIHNweFN1Z2dlc3Rpb25zITogYW55O1xuICBAT3V0cHV0KCkgc3B4Qmx1cjogRXZlbnRFbWl0dGVyPHsgZmllbGQ6IFNweEZvcm1GaWVsZEksIHZhbHVlUGFpcjogU3B4VmFsdWVQYWlyPGFueT4gfT4gPSBuZXcgRXZlbnRFbWl0dGVyPHsgZmllbGQ6IFNweEZvcm1GaWVsZEksIHZhbHVlUGFpcjogU3B4VmFsdWVQYWlyPGFueT4gfT4oKTtcbiAgQE91dHB1dCgpIHNweENsaWNrOiBFdmVudEVtaXR0ZXI8eyBmaWVsZDogU3B4Rm9ybUZpZWxkSSB9PiA9IG5ldyBFdmVudEVtaXR0ZXI8eyBmaWVsZDogU3B4Rm9ybUZpZWxkSSB9PigpO1xuICBAT3V0cHV0KCkgc3B4U2VhcmNoOiBFdmVudEVtaXR0ZXI8eyBmaWVsZDogU3B4Rm9ybUZpZWxkSSwgdmFsdWVQYWlyOiBTcHhWYWx1ZVBhaXI8YW55PiB9PiA9IG5ldyBFdmVudEVtaXR0ZXI8eyBmaWVsZDogU3B4Rm9ybUZpZWxkSSwgdmFsdWVQYWlyOiBTcHhWYWx1ZVBhaXI8YW55PiB9PigpO1xuICBAVmlld0NoaWxkcmVuKFNweElucHV0Q29tcG9uZW50KSBzcHhJbnB1dHMhOiBRdWVyeUxpc3Q8U3B4SW5wdXRDb21wb25lbnQ+O1xuICBhdXRvY29tcGxldGVGaWVsZD86IFNweEZvcm1GaWVsZEk7XG5cbiAgdHlwZUF1dG9jb21wbGV0ZSA9IFNweElucHV0VHlwZUVudW0uYXV0b2NvbXBsZXRlO1xuICB0eXBlQnV0dG9uID0gU3B4SW5wdXRUeXBlRW51bS5idXR0b247XG4gIHR5cGVGbG9hdCA9IFNweElucHV0VHlwZUVudW0uZmxvYXQ7XG4gIHR5cGVOdW1iZXIgPSBTcHhJbnB1dFR5cGVFbnVtLm51bWJlcjtcbiAgdHlwZVJhZGlvID0gU3B4SW5wdXRUeXBlRW51bS5yYWRpbztcbiAgdHlwZVRleHQgPSBTcHhJbnB1dFR5cGVFbnVtLnRleHQ7XG4gIHR5cGVOdW1lcmljS2V5Ym9hcmQgPSBTcHhJbnB1dFR5cGVFbnVtLnRleHROdW1lcmljS2V5Ym9hcmQ7XG4gIHR5cGVPdmVybGF5ID0gU3B4SW5wdXRUeXBlRW51bS5vdmVybGF5O1xuICB0eXBlT3ZlcmxheU51bWJlciA9IFNweElucHV0VHlwZUVudW0ub3ZlcmxheU51bWJlcjtcblxuICBzZXRBdXRvZm9jdXMoa2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBmaWVsZCA9IHRoaXMuc3B4SW5wdXRzLmZpbmQoaW5wdXQgPT4gaW5wdXQuc3B4TmFtZSA9PT0ga2V5KTtcbiAgICBpZiAoZmllbGQpIHtcbiAgICAgIGZpZWxkLnNldEZvY3VzSW4oKTtcbiAgICB9XG4gIH1cblxuICBvbkJsdXIoZmllbGQ6IFNweEZvcm1GaWVsZEkpIHtcbiAgICB0aGlzLnNweEJsdXIuZW1pdCh7XG4gICAgICBmaWVsZCxcbiAgICAgIHZhbHVlUGFpcjogdGhpcy5zcHhGb3JtR3JvdXAuZ2V0KGZpZWxkLmtleSkhLnZhbHVlLFxuICAgIH0pO1xuICB9XG5cbiAgb25DbGljayhmaWVsZDogU3B4Rm9ybUZpZWxkSSkge1xuICAgIHRoaXMuc3B4Q2xpY2suZW1pdCh7XG4gICAgICBmaWVsZCxcbiAgICB9KTtcbiAgfVxuXG4gIG9uQXV0b2NvbXBsZXRlQ2FuY2VsKCk6IHZvaWQge1xuICAgIHRoaXMuYXV0b2NvbXBsZXRlRmllbGQgPSB1bmRlZmluZWQ7XG4gIH1cblxuICBvbkF1dG9jb21wbGV0ZVNlYXJjaCh2YWx1ZVBhaXI6IFNweFZhbHVlUGFpcjxhbnk+KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYXV0b2NvbXBsZXRlRmllbGQpIHtcbiAgICAgIHRoaXMuc3B4U2VhcmNoLmVtaXQoe1xuICAgICAgICBmaWVsZDogdGhpcy5hdXRvY29tcGxldGVGaWVsZCxcbiAgICAgICAgdmFsdWVQYWlyLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgb25BdXRvY29tcGxldGVTYXZlKHZhbHVlUGFpcjogU3B4VmFsdWVQYWlyPGFueT4pIHtcbiAgICB0aGlzLnNweEZvcm1Hcm91cC5nZXQodGhpcy5hdXRvY29tcGxldGVGaWVsZCEua2V5KT8uc2V0VmFsdWUodmFsdWVQYWlyKTtcbiAgICB0aGlzLmF1dG9jb21wbGV0ZUZpZWxkID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgb25TZWFyY2goZmllbGQ6IFNweEZvcm1GaWVsZEkpIHtcbiAgICB0aGlzLmF1dG9jb21wbGV0ZUZpZWxkID0gZmllbGQ7XG4gIH1cblxuICBnZXRSYXdWYWxpZGF0b3JzKGZvcm1Db250cm9sOiBBYnN0cmFjdENvbnRyb2wpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZXJzY29yZS1kYW5nbGVcbiAgICByZXR1cm4gKGZvcm1Db250cm9sIGFzIGFueSkuX3Jhd1ZhbGlkYXRvcnM7XG4gIH1cblxuICBoYXNSZXF1aXJlZEZpZWxkKGFic3RyYWN0Q29udHJvbDogQWJzdHJhY3RDb250cm9sKTogYm9vbGVhbiB7XG4gICAgaWYgKGFic3RyYWN0Q29udHJvbC52YWxpZGF0b3IpIHtcbiAgICAgIGNvbnN0IHZhbGlkYXRvciA9IGFic3RyYWN0Q29udHJvbC52YWxpZGF0b3Ioe30gYXMgQWJzdHJhY3RDb250cm9sKTtcbiAgICAgIGlmICh2YWxpZGF0b3IgJiYgdmFsaWRhdG9yWydyZXF1aXJlZCddKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoKGFic3RyYWN0Q29udHJvbCBhcyBhbnkpWydjb250cm9scyddKSB7XG4gICAgICBmb3IgKGNvbnN0IGNvbnRyb2xOYW1lIGluIChhYnN0cmFjdENvbnRyb2wgYXMgYW55KVsnY29udHJvbHMnXSkge1xuICAgICAgICBpZiAoKGFic3RyYWN0Q29udHJvbCBhcyBhbnkpWydjb250cm9scyddW2NvbnRyb2xOYW1lXSkge1xuICAgICAgICAgIGlmICh0aGlzLmhhc1JlcXVpcmVkRmllbGQoKGFic3RyYWN0Q29udHJvbCBhcyBhbnkpWydjb250cm9scyddW2NvbnRyb2xOYW1lXSkpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBzdGF0aWMgaW5pdGlhbEZvcm1WYWx1ZShzZWN0aW9uczogU3B4Rm9ybVNlY3Rpb25JW10pIHtcbiAgICBjb25zdCBmb3JtT2JqZWN0OiBhbnkgPSB7fTtcbiAgICBzZWN0aW9ucy5mb3JFYWNoKHNlY3Rpb24gPT4ge1xuICAgICAgc2VjdGlvbi5maWVsZHMuZm9yRWFjaChmaWVsZCA9PiB7XG4gICAgICAgIGZvcm1PYmplY3RbZmllbGQua2V5XSA9IFtmaWVsZC5kZWZhdWx0VmFsdWUgPyBmaWVsZC5kZWZhdWx0VmFsdWUoKSA6IG51bGwsIGZpZWxkLnZhbGlkYXRvcnMgPyBbLi4uZmllbGQudmFsaWRhdG9ycygpXSA6IFtdXTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiBmb3JtT2JqZWN0O1xuICB9XG5cbiAgc3RhdGljIGNyZWF0ZUZvcm0oZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLCBzZWN0aW9uczogU3B4Rm9ybVNlY3Rpb25JW10pOiBGb3JtR3JvdXAge1xuICAgIHJldHVybiBmb3JtQnVpbGRlci5ncm91cCh0aGlzLmluaXRpYWxGb3JtVmFsdWUoc2VjdGlvbnMpKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcikge1xuICB9XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWZvcm0uaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc29mdHBhay9jb21wb25lbnRzL3NweC1mb3JtLXZpZXcvc3B4LWZvcm0uaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTcHhGb3JtQnV0dG9uSSB9IGZyb20gXCIuL3NweC1mb3JtLWJ1dHRvbi5pbnRlcmZhY2VcIjtcbmltcG9ydCB7IFNweEZvcm1TZWN0aW9uSSB9IGZyb20gXCIuL3NweC1mb3JtLXNlY3Rpb24uaW50ZXJmYWNlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3B4Rm9ybUkge1xuICAgIGJ1dHRvbnM6IFNweEZvcm1CdXR0b25JW107XG4gICAgc2VjdGlvbnM6IFNweEZvcm1TZWN0aW9uSVtdO1xufVxuIl19
@@ -0,0 +1,21 @@
1
+ export const calcCheckDigit = (container) => {
2
+ container = container.toUpperCase();
3
+ const mapping = {
4
+ 0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9,
5
+ A: 10, B: 12, C: 13, D: 14, E: 15, F: 16, G: 17, H: 18, I: 19, J: 20, K: 21, L: 23, M: 24,
6
+ N: 25, O: 26, P: 27, Q: 28, R: 29, S: 30, T: 31, U: 32, V: 34, W: 35, X: 36, Y: 37, Z: 38
7
+ };
8
+ let total = 0;
9
+ for (let i = 0; i < container.length; i++) {
10
+ const cChar = container.substr(i, 1);
11
+ const value = mapping[cChar];
12
+ const multiplier = Math.pow(2, i);
13
+ total = total + (value * multiplier);
14
+ }
15
+ let outcome = total % 11;
16
+ if (outcome === 10) {
17
+ outcome = 0;
18
+ }
19
+ return outcome.toString();
20
+ };
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsYy1jaGVjay1kaWdpdC5mdW5jdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NvZnRwYWsvY29tcG9uZW50cy9zcHgtaGVscGVycy9jYWxjLWNoZWNrLWRpZ2l0LmZ1bmN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFDLFNBQWlCLEVBQVUsRUFBRTtJQUMxRCxTQUFTLEdBQUcsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBRXBDLE1BQU0sT0FBTyxHQUFHO1FBQ2QsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDMUQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDekYsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUU7S0FDMUYsQ0FBQztJQUVGLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztJQUVkLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDMUMsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDckMsTUFBTSxLQUFLLEdBQUksT0FBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLEtBQUssR0FBRyxLQUFLLEdBQUcsQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELElBQUksT0FBTyxHQUFHLEtBQUssR0FBRyxFQUFFLENBQUM7SUFDekIsSUFBSSxPQUFPLEtBQUssRUFBRSxFQUFFLENBQUM7UUFDbkIsT0FBTyxHQUFHLENBQUMsQ0FBQztJQUNkLENBQUM7SUFFRCxPQUFPLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztBQUM1QixDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgY2FsY0NoZWNrRGlnaXQgPSAoY29udGFpbmVyOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBjb250YWluZXIgPSBjb250YWluZXIudG9VcHBlckNhc2UoKTtcblxuICBjb25zdCBtYXBwaW5nID0ge1xuICAgIDA6IDAsIDE6IDEsIDI6IDIsIDM6IDMsIDQ6IDQsIDU6IDUsIDY6IDYsIDc6IDcsIDg6IDgsIDk6IDksXG4gICAgQTogMTAsIEI6IDEyLCBDOiAxMywgRDogMTQsIEU6IDE1LCBGOiAxNiwgRzogMTcsIEg6IDE4LCBJOiAxOSwgSjogMjAsIEs6IDIxLCBMOiAyMywgTTogMjQsXG4gICAgTjogMjUsIE86IDI2LCBQOiAyNywgUTogMjgsIFI6IDI5LCBTOiAzMCwgVDogMzEsIFU6IDMyLCBWOiAzNCwgVzogMzUsIFg6IDM2LCBZOiAzNywgWjogMzhcbiAgfTtcblxuICBsZXQgdG90YWwgPSAwO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgY29udGFpbmVyLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgY0NoYXIgPSBjb250YWluZXIuc3Vic3RyKGksIDEpO1xuICAgIGNvbnN0IHZhbHVlID0gKG1hcHBpbmcgYXMgYW55KVtjQ2hhcl07XG4gICAgY29uc3QgbXVsdGlwbGllciA9IE1hdGgucG93KDIsIGkpO1xuICAgIHRvdGFsID0gdG90YWwgKyAodmFsdWUgKiBtdWx0aXBsaWVyKTtcbiAgfVxuXG4gIGxldCBvdXRjb21lID0gdG90YWwgJSAxMTtcbiAgaWYgKG91dGNvbWUgPT09IDEwKSB7XG4gICAgb3V0Y29tZSA9IDA7XG4gIH1cblxuICByZXR1cm4gb3V0Y29tZS50b1N0cmluZygpO1xufVxuIl19
@@ -0,0 +1,4 @@
1
+ export * from './calc-check-digit.function';
2
+ export * from './spx-severity.enum';
3
+ export * from './value-pair-to-value.function';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NvZnRwYWsvY29tcG9uZW50cy9zcHgtaGVscGVycy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLGdDQUFnQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jYWxjLWNoZWNrLWRpZ2l0LmZ1bmN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vc3B4LXNldmVyaXR5LmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi92YWx1ZS1wYWlyLXRvLXZhbHVlLmZ1bmN0aW9uJztcbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29mdHBhay1jb21wb25lbnRzLXNweC1oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc29mdHBhay9jb21wb25lbnRzL3NweC1oZWxwZXJzL3NvZnRwYWstY29tcG9uZW50cy1zcHgtaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19