@softheon/armature 15.21.2 → 17.1.0

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 (428) hide show
  1. package/README.md +142 -18
  2. package/assets/styles/_utility.scss +35 -0
  3. package/assets/styles/material-overrides.scss +0 -1
  4. package/assets/styles/sof-styles.scss +8 -7
  5. package/{esm2020 → esm2022}/lib/alert-banner/alert-banner-api.mjs +9 -9
  6. package/{esm2020 → esm2022}/lib/alert-banner/alert-banner.module.mjs +41 -41
  7. package/{esm2020 → esm2022}/lib/alert-banner/components/alert-banner/alert-banner.component.mjs +83 -83
  8. package/{esm2020 → esm2022}/lib/alert-banner/models/alert-banner-config.mjs +1 -1
  9. package/{esm2020 → esm2022}/lib/alert-banner/models/alert-banner-context.mjs +1 -1
  10. package/{esm2020 → esm2022}/lib/alert-banner/models/constants.mjs +15 -15
  11. package/{esm2020 → esm2022}/lib/alert-banner/services/alert-banner.service.mjs +44 -44
  12. package/esm2022/lib/armature.module.mjs +176 -0
  13. package/{esm2020 → esm2022}/lib/base-components/base-component-api.mjs +14 -14
  14. package/{esm2020 → esm2022}/lib/base-components/base-component.module.mjs +123 -123
  15. package/{esm2020 → esm2022}/lib/base-components/sof-alert/sof-alert.component.mjs +79 -79
  16. package/{esm2020 → esm2022}/lib/base-components/sof-badge/sof-badge.component.mjs +49 -49
  17. package/esm2022/lib/base-components/sof-banner/sof-banner.component.mjs +49 -0
  18. package/{esm2020 → esm2022}/lib/base-components/sof-button-toggle-group/sof-button-toggle-group.component.mjs +188 -188
  19. package/{esm2020 → esm2022}/lib/base-components/sof-confirm-address/sof-confirm-address.component.mjs +59 -59
  20. package/esm2022/lib/base-components/sof-image-checkbox/sof-image-checkbox.component.mjs +58 -0
  21. package/esm2022/lib/base-components/sof-modal/sof-modal.component.mjs +57 -0
  22. package/esm2022/lib/base-components/sof-progress-bar/sof-progress-bar.component.mjs +79 -0
  23. package/{esm2020 → esm2022}/lib/base-components/sof-radio-card/sof-radio-card.component.mjs +35 -35
  24. package/{esm2020 → esm2022}/lib/base-components/sof-simple-alert/sof-simple-alert.component.mjs +49 -49
  25. package/esm2022/lib/base-components/sof-star-rating/sof-star-rating.component.mjs +40 -0
  26. package/{esm2020 → esm2022}/lib/component-save-print/components/component-save-print/component-save-print.component.mjs +91 -91
  27. package/{esm2020 → esm2022}/lib/component-save-print/services/component-save-print.service.mjs +30 -30
  28. package/esm2022/lib/component-save-print/sof-ar-component-save-print.module.mjs +29 -0
  29. package/{esm2020 → esm2022}/lib/core/client-generated/api/session.service.mjs +242 -242
  30. package/{esm2020 → esm2022}/lib/core/client-generated/configuration.mjs +58 -58
  31. package/{esm2020 → esm2022}/lib/core/client-generated/encoder.mjs +16 -16
  32. package/{esm2020 → esm2022}/lib/core/client-generated/model/applicationUserModel.mjs +19 -19
  33. package/{esm2020 → esm2022}/lib/core/client-generated/model/assertedUserModel.mjs +1 -1
  34. package/{esm2020 → esm2022}/lib/core/client-generated/model/brandingModel.mjs +1 -1
  35. package/{esm2020 → esm2022}/lib/core/client-generated/model/errorModel.mjs +12 -12
  36. package/{esm2020 → esm2022}/lib/core/client-generated/model/folderLink.mjs +12 -12
  37. package/{esm2020 → esm2022}/lib/core/client-generated/model/identityProfile.mjs +1 -1
  38. package/{esm2020 → esm2022}/lib/core/client-generated/model/models.mjs +19 -19
  39. package/{esm2020 → esm2022}/lib/core/client-generated/model/oAuthModel.mjs +12 -12
  40. package/{esm2020 → esm2022}/lib/core/client-generated/model/preferencesRow.mjs +12 -12
  41. package/{esm2020 → esm2022}/lib/core/client-generated/model/rolesRow.mjs +12 -12
  42. package/{esm2020 → esm2022}/lib/core/client-generated/model/sessionGetResponseModel.mjs +1 -1
  43. package/{esm2020 → esm2022}/lib/core/client-generated/model/sessionPostRequestModel.mjs +1 -1
  44. package/{esm2020 → esm2022}/lib/core/client-generated/model/sessionPostResponseModel.mjs +1 -1
  45. package/{esm2020 → esm2022}/lib/core/client-generated/model/sessionPutRequestModel.mjs +1 -1
  46. package/{esm2020 → esm2022}/lib/core/client-generated/model/sessionPutResponseModel.mjs +1 -1
  47. package/{esm2020 → esm2022}/lib/core/client-generated/model/sessionResponseModel.mjs +1 -1
  48. package/{esm2020 → esm2022}/lib/core/client-generated/model/settingsProfile.mjs +1 -1
  49. package/{esm2020 → esm2022}/lib/core/client-generated/model/themePaletteColorsModel.mjs +12 -12
  50. package/{esm2020 → esm2022}/lib/core/client-generated/model/themePaletteModel.mjs +1 -1
  51. package/{esm2020 → esm2022}/lib/core/client-generated/model/trackingModel.mjs +12 -12
  52. package/{esm2020 → esm2022}/lib/core/client-generated/model/validationRecordsRow.mjs +12 -12
  53. package/{esm2020 → esm2022}/lib/core/client-generated/variables.mjs +8 -8
  54. package/{esm2020 → esm2022}/lib/core/components/app-template/app-template.component.mjs +250 -250
  55. package/{esm2020 → esm2022}/lib/core/functions/guid.mjs +10 -10
  56. package/{esm2020 → esm2022}/lib/core/functions/naming-convention.mjs +32 -32
  57. package/{esm2020 → esm2022}/lib/core/functions/route-to-pre-login-route.mjs +12 -12
  58. package/{esm2020 → esm2022}/lib/core/initializer/abstract-startup-service.mjs +3 -3
  59. package/{esm2020 → esm2022}/lib/core/initializer/initializer.service.mjs +286 -286
  60. package/{esm2020 → esm2022}/lib/core/interceptors/armature-auth-token-append.interceptor.mjs +73 -73
  61. package/{esm2020 → esm2022}/lib/core/models/base-config.mjs +1 -1
  62. package/{esm2020 → esm2022}/lib/core/models/constants.mjs +12 -12
  63. package/{esm2020 → esm2022}/lib/core/models/data-store-config.mjs +3 -3
  64. package/{esm2020 → esm2022}/lib/core/models/header-config.mjs +1 -1
  65. package/{esm2020 → esm2022}/lib/core/models/http-verbs.mjs +8 -8
  66. package/{esm2020 → esm2022}/lib/core/models/navigation-config.mjs +1 -1
  67. package/{esm2020 → esm2022}/lib/core/models/oidc-auth-settings.mjs +1 -1
  68. package/{esm2020 → esm2022}/lib/core/models/route-path.mjs +6 -6
  69. package/{esm2020 → esm2022}/lib/core/models/session-config.mjs +3 -3
  70. package/{esm2020 → esm2022}/lib/core/models/styles.mjs +1 -1
  71. package/{esm2020 → esm2022}/lib/core/models/subdomain-config.mjs +1 -1
  72. package/{esm2020 → esm2022}/lib/core/models/typed-session.mjs +3 -3
  73. package/{esm2020 → esm2022}/lib/core/models/user-entity-service-config.mjs +11 -11
  74. package/{esm2020 → esm2022}/lib/core/services/authorization.service.mjs +175 -175
  75. package/{esm2020 → esm2022}/lib/core/services/banner.service.mjs +43 -43
  76. package/{esm2020 → esm2022}/lib/core/services/base-config.service.mjs +32 -32
  77. package/{esm2020 → esm2022}/lib/core/services/custom-auth-config.service.mjs +3 -3
  78. package/{esm2020 → esm2022}/lib/core/services/default-config.service.mjs +19 -19
  79. package/{esm2020 → esm2022}/lib/core/services/session.service.mjs +385 -385
  80. package/{esm2020 → esm2022}/lib/core/services/user-entity.service.mjs +140 -140
  81. package/{esm2020 → esm2022}/lib/distributed-cache/client-generated/api/api.mjs +3 -3
  82. package/{esm2020 → esm2022}/lib/distributed-cache/client-generated/api/cache.service.mjs +213 -213
  83. package/{esm2020 → esm2022}/lib/distributed-cache/client-generated/configuration.mjs +58 -58
  84. package/{esm2020 → esm2022}/lib/distributed-cache/client-generated/encoder.mjs +16 -16
  85. package/{esm2020 → esm2022}/lib/distributed-cache/client-generated/model/cacheExpirationType.mjs +15 -15
  86. package/{esm2020 → esm2022}/lib/distributed-cache/client-generated/model/createCacheEntryRequestModel.mjs +1 -1
  87. package/{esm2020 → esm2022}/lib/distributed-cache/client-generated/model/models.mjs +4 -4
  88. package/{esm2020 → esm2022}/lib/distributed-cache/client-generated/model/retrieveCacheEntryResponseModel.mjs +12 -12
  89. package/{esm2020 → esm2022}/lib/distributed-cache/client-generated/model/updateCacheEntryRequestModel.mjs +12 -12
  90. package/{esm2020 → esm2022}/lib/distributed-cache/client-generated/variables.mjs +8 -8
  91. package/{esm2020 → esm2022}/lib/distributed-cache/distributed-cache-api.mjs +7 -7
  92. package/esm2022/lib/distributed-cache/distributed-cache.module.mjs +38 -0
  93. package/{esm2020 → esm2022}/lib/distributed-cache/models/constants.mjs +2 -2
  94. package/{esm2020 → esm2022}/lib/distributed-cache/models/policy-person.mjs +8 -8
  95. package/{esm2020 → esm2022}/lib/distributed-cache/services/server-cache.service.mjs +48 -48
  96. package/{esm2020 → esm2022}/lib/error/components/error-common/error-common.component.mjs +25 -25
  97. package/{esm2020 → esm2022}/lib/error/error-api.mjs +6 -6
  98. package/{esm2020 → esm2022}/lib/error/error.module.mjs +31 -31
  99. package/{esm2020 → esm2022}/lib/error/models/error-common-config.mjs +7 -7
  100. package/esm2022/lib/faq/components/faq/faq.component.mjs +40 -0
  101. package/{esm2020 → esm2022}/lib/faq/faq-api.mjs +7 -7
  102. package/{esm2020 → esm2022}/lib/faq/faq.module.mjs +41 -41
  103. package/{esm2020 → esm2022}/lib/faq/models/faq-config.mjs +3 -3
  104. package/{esm2020 → esm2022}/lib/faq/models/faq.mjs +7 -7
  105. package/esm2022/lib/feedback-tool/components/feedback-tool/feedback-tool.component.mjs +81 -0
  106. package/esm2022/lib/feedback-tool/feedback-tool-api.mjs +5 -0
  107. package/esm2022/lib/feedback-tool/feedback-tool.module.mjs +44 -0
  108. package/esm2022/lib/footer/components/footer/footer.component.mjs +25 -0
  109. package/{esm2020 → esm2022}/lib/footer/components/site-map/site-map.component.mjs +25 -25
  110. package/{esm2020 → esm2022}/lib/footer/footer-api.mjs +9 -9
  111. package/{esm2020 → esm2022}/lib/footer/footer.module.mjs +45 -45
  112. package/{esm2020 → esm2022}/lib/footer/models/enum/site-map-direction.mjs +14 -14
  113. package/{esm2020 → esm2022}/lib/footer/models/footer-config.mjs +3 -3
  114. package/{esm2020 → esm2022}/lib/footer/models/site-map-models.mjs +1 -1
  115. package/{esm2020 → esm2022}/lib/forms/components/sof-address/sof-address.component.mjs +110 -110
  116. package/{esm2020 → esm2022}/lib/forms/directives/alphanumeric/alphanumeric.directive.mjs +78 -78
  117. package/{esm2020 → esm2022}/lib/forms/directives/input-trim/input-trim.directive.mjs +110 -110
  118. package/{esm2020 → esm2022}/lib/forms/directives/letters-characters/letters-characters.directive.mjs +87 -87
  119. package/{esm2020 → esm2022}/lib/forms/directives/letters-only/letters-only.directive.mjs +85 -85
  120. package/{esm2020 → esm2022}/lib/forms/directives/numbers-only/numbers-only.directive.mjs +55 -55
  121. package/{esm2020 → esm2022}/lib/forms/forms-api.mjs +19 -19
  122. package/{esm2020 → esm2022}/lib/forms/forms.module.mjs +87 -87
  123. package/{esm2020 → esm2022}/lib/forms/models/address.mjs +1 -1
  124. package/esm2022/lib/forms/models/constants.mjs +10 -0
  125. package/{esm2020 → esm2022}/lib/forms/models/county.mjs +1 -1
  126. package/{esm2020 → esm2022}/lib/forms/models/enums/states.mjs +65 -65
  127. package/{esm2020 → esm2022}/lib/forms/pipes/phone-format.pipe.mjs +33 -33
  128. package/{esm2020 → esm2022}/lib/forms/services/alert.service.mjs +167 -167
  129. package/esm2022/lib/header/components/header/header.component.mjs +161 -0
  130. package/{esm2020 → esm2022}/lib/header/components/mobile-header-menu/mobile-header-menu.component.mjs +39 -39
  131. package/{esm2020 → esm2022}/lib/header/header-api.mjs +11 -11
  132. package/{esm2020 → esm2022}/lib/header/header.module.mjs +85 -85
  133. package/{esm2020 → esm2022}/lib/header/models/header-auth.settings.mjs +31 -31
  134. package/{esm2020 → esm2022}/lib/header/models/header-language.settings.mjs +1 -1
  135. package/{esm2020 → esm2022}/lib/header/models/header-theme.settings.mjs +1 -1
  136. package/{esm2020 → esm2022}/lib/header/models/header.settings.mjs +1 -1
  137. package/{esm2020 → esm2022}/lib/header/models/mobile-header-nav.settings.mjs +1 -1
  138. package/esm2022/lib/navigation/components/navigation/navigation.component.mjs +556 -0
  139. package/{esm2020 → esm2022}/lib/navigation/models/nav-theme.settings.mjs +1 -1
  140. package/{esm2020 → esm2022}/lib/navigation/models/nav.settings.mjs +1 -1
  141. package/{esm2020 → esm2022}/lib/navigation/models/navigation.mjs +1 -1
  142. package/{esm2020 → esm2022}/lib/navigation/navigation-api.mjs +8 -8
  143. package/{esm2020 → esm2022}/lib/navigation/navigation.module.mjs +126 -126
  144. package/{esm2020 → esm2022}/lib/oauth/models/constants.mjs +5 -5
  145. package/{esm2020 → esm2022}/lib/oauth/models/generated/accountManagementAssertionModel.mjs +1 -1
  146. package/{esm2020 → esm2022}/lib/oauth/models/generated/accountManagementRefreshRequestModel.mjs +1 -1
  147. package/{esm2020 → esm2022}/lib/oauth/models/generated/accountManagementResponseModel.mjs +1 -1
  148. package/{esm2020 → esm2022}/lib/oauth/models/generated/coverageDetail.mjs +18 -18
  149. package/{esm2020 → esm2022}/lib/oauth/models/generated/finance.mjs +12 -12
  150. package/{esm2020 → esm2022}/lib/oauth/models/generated/iSsoResponseModel.mjs +12 -12
  151. package/{esm2020 → esm2022}/lib/oauth/models/generated/iSsoResponseModelAccountManagementAssertionModel.mjs +1 -1
  152. package/{esm2020 → esm2022}/lib/oauth/models/generated/person.mjs +12 -12
  153. package/{esm2020 → esm2022}/lib/oauth/models/generated/policy.mjs +1 -1
  154. package/{esm2020 → esm2022}/lib/oauth/models/generated/refreshResponseModel.mjs +12 -12
  155. package/{esm2020 → esm2022}/lib/oauth/models/hybrid-saml-oauth-config.mjs +3 -3
  156. package/{esm2020 → esm2022}/lib/oauth/oauth-api.mjs +14 -14
  157. package/{esm2020 → esm2022}/lib/oauth/oauth.module.mjs +29 -29
  158. package/{esm2020 → esm2022}/lib/oauth/services/hybrid-saml-oauth.service.mjs +201 -201
  159. package/{esm2020 → esm2022}/lib/rbac/directives/rbac-action.directive.mjs +50 -50
  160. package/{esm2020 → esm2022}/lib/rbac/models/access-token-claims.mjs +22 -22
  161. package/{esm2020 → esm2022}/lib/rbac/models/constants.mjs +3 -3
  162. package/{esm2020 → esm2022}/lib/rbac/models/decoded-access-token.mjs +68 -68
  163. package/{esm2020 → esm2022}/lib/rbac/models/rbac-config.mjs +3 -3
  164. package/{esm2020 → esm2022}/lib/rbac/models/role-access.mjs +9 -9
  165. package/{esm2020 → esm2022}/lib/rbac/rbac-api.mjs +14 -14
  166. package/{esm2020 → esm2022}/lib/rbac/rbac.module.mjs +51 -51
  167. package/{esm2020 → esm2022}/lib/rbac/services/ar-role-nav.service.mjs +104 -104
  168. package/{esm2020 → esm2022}/lib/rbac/services/oauth2-role.service.mjs +114 -114
  169. package/{esm2020 → esm2022}/lib/rbac/services/role-nav.service.mjs +3 -3
  170. package/{esm2020 → esm2022}/lib/rbac/services/tokens.mjs +3 -3
  171. package/{esm2020 → esm2022}/lib/resize-panels/components/resize-panels/resize-panels.component.mjs +156 -156
  172. package/{esm2020 → esm2022}/lib/resize-panels/models/resize-event.mjs +1 -1
  173. package/{esm2020 → esm2022}/lib/resize-panels/resize-panels-api.mjs +4 -4
  174. package/{esm2020 → esm2022}/lib/resize-panels/resize-panels.module.mjs +23 -23
  175. package/{esm2020 → esm2022}/lib/rum/models/arm-error.mjs +28 -28
  176. package/{esm2020 → esm2022}/lib/rum/models/rum-config.mjs +3 -3
  177. package/{esm2020 → esm2022}/lib/rum/rum-api.mjs +9 -9
  178. package/{esm2020 → esm2022}/lib/rum/rum.module.mjs +48 -48
  179. package/{esm2020 → esm2022}/lib/rum/services/rum.service.mjs +115 -115
  180. package/{esm2020 → esm2022}/lib/rum/services/shared-error.service.mjs +45 -45
  181. package/{esm2020 → esm2022}/lib/rum/services/softheon-error-handler.service.mjs +76 -76
  182. package/{esm2020 → esm2022}/lib/saml/components/redirect-saml/redirect-saml.component.mjs +79 -79
  183. package/{esm2020 → esm2022}/lib/saml/models/i-saml-request.mjs +1 -1
  184. package/{esm2020 → esm2022}/lib/saml/models/i-saml-response.mjs +1 -1
  185. package/{esm2020 → esm2022}/lib/saml/models/redirect-saml-request.mjs +3 -3
  186. package/{esm2020 → esm2022}/lib/saml/models/sso-gateway-model.mjs +3 -3
  187. package/{esm2020 → esm2022}/lib/saml/saml-api.mjs +14 -14
  188. package/{esm2020 → esm2022}/lib/saml/saml.module.mjs +43 -43
  189. package/{esm2020 → esm2022}/lib/saml/services/entry/abstract-saml-entry.service.mjs +3 -3
  190. package/{esm2020 → esm2022}/lib/saml/services/entry/sso-gateway-entry.service.mjs +36 -36
  191. package/{esm2020 → esm2022}/lib/saml/services/send-off/abstract-saml.service.mjs +3 -3
  192. package/{esm2020 → esm2022}/lib/saml/services/send-off/saml.service.mjs +39 -39
  193. package/{esm2020 → esm2022}/lib/sof-pipe/constants/constants.mjs +16 -16
  194. package/{esm2020 → esm2022}/lib/sof-pipe/models/sof-date-pipe-format.mjs +1 -1
  195. package/{esm2020 → esm2022}/lib/sof-pipe/pipes/sof-blank/sof-blank.pipe.mjs +39 -39
  196. package/{esm2020 → esm2022}/lib/sof-pipe/pipes/sof-date/sof-date.pipe.mjs +59 -59
  197. package/{esm2020 → esm2022}/lib/sof-pipe/pipes/sof-ssn/sof-ssn.pipe.mjs +28 -28
  198. package/{esm2020 → esm2022}/lib/sof-pipe/sof-pipe.api.mjs +8 -8
  199. package/{esm2020 → esm2022}/lib/sof-pipe/sof-pipe.module.mjs +39 -39
  200. package/{esm2020 → esm2022}/lib/theming/directives/css-override.directive.mjs +69 -69
  201. package/{esm2020 → esm2022}/lib/theming/models/css-override.mjs +10 -10
  202. package/{esm2020 → esm2022}/lib/theming/services/theme.service.mjs +169 -169
  203. package/{esm2020 → esm2022}/lib/theming/theme-api.mjs +5 -5
  204. package/{esm2020 → esm2022}/lib/theming/theme.module.mjs +31 -31
  205. package/{esm2020 → esm2022}/public-api.mjs +52 -51
  206. package/{esm2020 → esm2022}/softheon-armature.mjs +4 -4
  207. package/fesm2022/softheon-armature.mjs +7439 -0
  208. package/fesm2022/softheon-armature.mjs.map +1 -0
  209. package/index.d.ts +5 -5
  210. package/lib/alert-banner/alert-banner-api.d.ts +7 -7
  211. package/lib/alert-banner/alert-banner.module.d.ts +11 -11
  212. package/lib/alert-banner/components/alert-banner/alert-banner.component.d.ts +40 -40
  213. package/lib/alert-banner/models/alert-banner-config.d.ts +20 -20
  214. package/lib/alert-banner/models/alert-banner-context.d.ts +18 -18
  215. package/lib/alert-banner/models/constants.d.ts +15 -15
  216. package/lib/alert-banner/services/alert-banner.service.d.ts +28 -28
  217. package/lib/armature.module.d.ts +46 -46
  218. package/lib/base-components/base-component-api.d.ts +13 -13
  219. package/lib/base-components/base-component.module.d.ts +35 -35
  220. package/lib/base-components/sof-alert/sof-alert.component.d.ts +40 -40
  221. package/lib/base-components/sof-badge/sof-badge.component.d.ts +26 -26
  222. package/lib/base-components/sof-banner/sof-banner.component.d.ts +34 -34
  223. package/lib/base-components/sof-button-toggle-group/sof-button-toggle-group.component.d.ts +100 -100
  224. package/lib/base-components/sof-confirm-address/sof-confirm-address.component.d.ts +61 -61
  225. package/lib/base-components/sof-image-checkbox/sof-image-checkbox.component.d.ts +28 -28
  226. package/lib/base-components/sof-modal/sof-modal.component.d.ts +51 -51
  227. package/lib/base-components/sof-progress-bar/sof-progress-bar.component.d.ts +40 -40
  228. package/lib/base-components/sof-radio-card/sof-radio-card.component.d.ts +20 -20
  229. package/lib/base-components/sof-simple-alert/sof-simple-alert.component.d.ts +29 -29
  230. package/lib/base-components/sof-star-rating/sof-star-rating.component.d.ts +25 -25
  231. package/lib/component-save-print/components/component-save-print/component-save-print.component.d.ts +46 -46
  232. package/lib/component-save-print/services/component-save-print.service.d.ts +18 -18
  233. package/lib/component-save-print/sof-ar-component-save-print.module.d.ts +9 -9
  234. package/lib/core/client-generated/api/session.service.d.ts +94 -94
  235. package/lib/core/client-generated/configuration.d.ts +48 -48
  236. package/lib/core/client-generated/encoder.d.ts +10 -10
  237. package/lib/core/client-generated/model/applicationUserModel.d.ts +54 -54
  238. package/lib/core/client-generated/model/assertedUserModel.d.ts +25 -25
  239. package/lib/core/client-generated/model/brandingModel.d.ts +33 -33
  240. package/lib/core/client-generated/model/errorModel.d.ts +24 -24
  241. package/lib/core/client-generated/model/folderLink.d.ts +34 -34
  242. package/lib/core/client-generated/model/identityProfile.d.ts +82 -82
  243. package/lib/core/client-generated/model/models.d.ts +19 -19
  244. package/lib/core/client-generated/model/oAuthModel.d.ts +28 -28
  245. package/lib/core/client-generated/model/preferencesRow.d.ts +15 -15
  246. package/lib/core/client-generated/model/rolesRow.d.ts +17 -17
  247. package/lib/core/client-generated/model/sessionGetResponseModel.d.ts +23 -23
  248. package/lib/core/client-generated/model/sessionPostRequestModel.d.ts +39 -39
  249. package/lib/core/client-generated/model/sessionPostResponseModel.d.ts +23 -23
  250. package/lib/core/client-generated/model/sessionPutRequestModel.d.ts +39 -39
  251. package/lib/core/client-generated/model/sessionPutResponseModel.d.ts +23 -23
  252. package/lib/core/client-generated/model/sessionResponseModel.d.ts +43 -43
  253. package/lib/core/client-generated/model/settingsProfile.d.ts +21 -21
  254. package/lib/core/client-generated/model/themePaletteColorsModel.d.ts +72 -72
  255. package/lib/core/client-generated/model/themePaletteModel.d.ts +65 -65
  256. package/lib/core/client-generated/model/trackingModel.d.ts +24 -24
  257. package/lib/core/client-generated/model/validationRecordsRow.d.ts +17 -17
  258. package/lib/core/client-generated/variables.d.ts +8 -8
  259. package/lib/core/components/app-template/app-template.component.d.ts +61 -61
  260. package/lib/core/functions/guid.d.ts +4 -4
  261. package/lib/core/functions/naming-convention.d.ts +6 -6
  262. package/lib/core/functions/route-to-pre-login-route.d.ts +6 -6
  263. package/lib/core/initializer/abstract-startup-service.d.ts +5 -5
  264. package/lib/core/initializer/initializer.service.d.ts +79 -79
  265. package/lib/core/interceptors/armature-auth-token-append.interceptor.d.ts +31 -31
  266. package/lib/core/models/base-config.d.ts +18 -18
  267. package/lib/core/models/constants.d.ts +13 -13
  268. package/lib/core/models/data-store-config.d.ts +27 -27
  269. package/lib/core/models/header-config.d.ts +9 -9
  270. package/lib/core/models/http-verbs.d.ts +10 -10
  271. package/lib/core/models/navigation-config.d.ts +14 -14
  272. package/lib/core/models/oidc-auth-settings.d.ts +11 -11
  273. package/lib/core/models/route-path.d.ts +5 -5
  274. package/lib/core/models/session-config.d.ts +18 -18
  275. package/lib/core/models/styles.d.ts +11 -11
  276. package/lib/core/models/subdomain-config.d.ts +7 -7
  277. package/lib/core/models/typed-session.d.ts +17 -17
  278. package/lib/core/models/user-entity-service-config.d.ts +14 -14
  279. package/lib/core/services/authorization.service.d.ts +54 -54
  280. package/lib/core/services/banner.service.d.ts +31 -31
  281. package/lib/core/services/base-config.service.d.ts +21 -21
  282. package/lib/core/services/custom-auth-config.service.d.ts +6 -6
  283. package/lib/core/services/default-config.service.d.ts +8 -8
  284. package/lib/core/services/session.service.d.ts +127 -127
  285. package/lib/core/services/user-entity.service.d.ts +47 -47
  286. package/lib/distributed-cache/client-generated/api/api.d.ts +3 -3
  287. package/lib/distributed-cache/client-generated/api/cache.service.d.ts +72 -72
  288. package/lib/distributed-cache/client-generated/configuration.d.ts +48 -48
  289. package/lib/distributed-cache/client-generated/encoder.d.ts +10 -10
  290. package/lib/distributed-cache/client-generated/model/cacheExpirationType.d.ts +19 -19
  291. package/lib/distributed-cache/client-generated/model/createCacheEntryRequestModel.d.ts +33 -33
  292. package/lib/distributed-cache/client-generated/model/models.d.ts +4 -4
  293. package/lib/distributed-cache/client-generated/model/retrieveCacheEntryResponseModel.d.ts +20 -20
  294. package/lib/distributed-cache/client-generated/model/updateCacheEntryRequestModel.d.ts +20 -20
  295. package/lib/distributed-cache/client-generated/variables.d.ts +8 -8
  296. package/lib/distributed-cache/distributed-cache-api.d.ts +7 -7
  297. package/lib/distributed-cache/distributed-cache.module.d.ts +8 -8
  298. package/lib/distributed-cache/models/constants.d.ts +2 -2
  299. package/lib/distributed-cache/models/policy-person.d.ts +19 -19
  300. package/lib/distributed-cache/services/server-cache.service.d.ts +72 -72
  301. package/lib/error/components/error-common/error-common.component.d.ts +14 -14
  302. package/lib/error/error-api.d.ts +4 -4
  303. package/lib/error/error.module.d.ts +11 -11
  304. package/lib/error/models/error-common-config.d.ts +21 -21
  305. package/lib/faq/components/faq/faq.component.d.ts +19 -19
  306. package/lib/faq/faq-api.d.ts +5 -5
  307. package/lib/faq/faq.module.d.ts +15 -15
  308. package/lib/faq/models/faq-config.d.ts +13 -13
  309. package/lib/faq/models/faq.d.ts +9 -9
  310. package/lib/feedback-tool/components/feedback-tool/feedback-tool.component.d.ts +62 -0
  311. package/lib/feedback-tool/feedback-tool-api.d.ts +3 -0
  312. package/lib/feedback-tool/feedback-tool.module.d.ts +14 -0
  313. package/lib/footer/components/footer/footer.component.d.ts +14 -14
  314. package/lib/footer/components/site-map/site-map.component.d.ts +13 -13
  315. package/lib/footer/footer-api.d.ts +7 -7
  316. package/lib/footer/footer.module.d.ts +14 -14
  317. package/lib/footer/models/enum/site-map-direction.d.ts +13 -13
  318. package/lib/footer/models/footer-config.d.ts +7 -7
  319. package/lib/footer/models/site-map-models.d.ts +41 -41
  320. package/lib/forms/components/sof-address/sof-address.component.d.ts +53 -53
  321. package/lib/forms/directives/alphanumeric/alphanumeric.directive.d.ts +31 -31
  322. package/lib/forms/directives/input-trim/input-trim.directive.d.ts +58 -58
  323. package/lib/forms/directives/letters-characters/letters-characters.directive.d.ts +27 -27
  324. package/lib/forms/directives/letters-only/letters-only.directive.d.ts +27 -27
  325. package/lib/forms/directives/numbers-only/numbers-only.directive.d.ts +22 -22
  326. package/lib/forms/forms-api.d.ts +14 -14
  327. package/lib/forms/forms.module.d.ts +21 -21
  328. package/lib/forms/models/address.d.ts +14 -14
  329. package/lib/forms/models/constants.d.ts +9 -9
  330. package/lib/forms/models/county.d.ts +13 -13
  331. package/lib/forms/models/enums/states.d.ts +64 -64
  332. package/lib/forms/pipes/phone-format.pipe.d.ts +10 -10
  333. package/lib/forms/services/alert.service.d.ts +60 -60
  334. package/lib/header/components/header/header.component.d.ts +120 -120
  335. package/lib/header/components/mobile-header-menu/mobile-header-menu.component.d.ts +26 -26
  336. package/lib/header/header-api.d.ts +9 -9
  337. package/lib/header/header.module.d.ts +20 -20
  338. package/lib/header/models/header-auth.settings.d.ts +30 -30
  339. package/lib/header/models/header-language.settings.d.ts +10 -10
  340. package/lib/header/models/header-theme.settings.d.ts +19 -19
  341. package/lib/header/models/header.settings.d.ts +53 -53
  342. package/lib/header/models/mobile-header-nav.settings.d.ts +11 -11
  343. package/lib/navigation/components/navigation/navigation.component.d.ts +200 -200
  344. package/lib/navigation/models/nav-theme.settings.d.ts +25 -25
  345. package/lib/navigation/models/nav.settings.d.ts +64 -64
  346. package/lib/navigation/models/navigation.d.ts +40 -40
  347. package/lib/navigation/navigation-api.d.ts +6 -6
  348. package/lib/navigation/navigation.module.d.ts +25 -25
  349. package/lib/oauth/models/constants.d.ts +6 -6
  350. package/lib/oauth/models/generated/accountManagementAssertionModel.d.ts +49 -49
  351. package/lib/oauth/models/generated/accountManagementRefreshRequestModel.d.ts +21 -21
  352. package/lib/oauth/models/generated/accountManagementResponseModel.d.ts +45 -45
  353. package/lib/oauth/models/generated/coverageDetail.d.ts +67 -67
  354. package/lib/oauth/models/generated/finance.d.ts +36 -36
  355. package/lib/oauth/models/generated/iSsoResponseModel.d.ts +44 -44
  356. package/lib/oauth/models/generated/iSsoResponseModelAccountManagementAssertionModel.d.ts +45 -45
  357. package/lib/oauth/models/generated/person.d.ts +53 -53
  358. package/lib/oauth/models/generated/policy.d.ts +51 -51
  359. package/lib/oauth/models/generated/refreshResponseModel.d.ts +20 -20
  360. package/lib/oauth/models/hybrid-saml-oauth-config.d.ts +14 -14
  361. package/lib/oauth/oauth-api.d.ts +12 -12
  362. package/lib/oauth/oauth.module.d.ts +9 -9
  363. package/lib/oauth/services/hybrid-saml-oauth.service.d.ts +59 -59
  364. package/lib/rbac/directives/rbac-action.directive.d.ts +27 -27
  365. package/lib/rbac/models/access-token-claims.d.ts +18 -18
  366. package/lib/rbac/models/constants.d.ts +4 -4
  367. package/lib/rbac/models/decoded-access-token.d.ts +43 -43
  368. package/lib/rbac/models/rbac-config.d.ts +15 -15
  369. package/lib/rbac/models/role-access.d.ts +7 -7
  370. package/lib/rbac/rbac-api.d.ts +11 -11
  371. package/lib/rbac/rbac.module.d.ts +19 -19
  372. package/lib/rbac/services/ar-role-nav.service.d.ts +25 -25
  373. package/lib/rbac/services/oauth2-role.service.d.ts +51 -51
  374. package/lib/rbac/services/role-nav.service.d.ts +12 -12
  375. package/lib/rbac/services/tokens.d.ts +3 -3
  376. package/lib/resize-panels/components/resize-panels/resize-panels.component.d.ts +64 -64
  377. package/lib/resize-panels/models/resize-event.d.ts +6 -6
  378. package/lib/resize-panels/resize-panels-api.d.ts +4 -4
  379. package/lib/resize-panels/resize-panels.module.d.ts +9 -9
  380. package/lib/rum/models/arm-error.d.ts +27 -27
  381. package/lib/rum/models/rum-config.d.ts +9 -9
  382. package/lib/rum/rum-api.d.ts +7 -7
  383. package/lib/rum/rum.module.d.ts +14 -14
  384. package/lib/rum/services/rum.service.d.ts +47 -47
  385. package/lib/rum/services/shared-error.service.d.ts +27 -27
  386. package/lib/rum/services/softheon-error-handler.service.d.ts +32 -32
  387. package/lib/saml/components/redirect-saml/redirect-saml.component.d.ts +41 -41
  388. package/lib/saml/models/i-saml-request.d.ts +4 -4
  389. package/lib/saml/models/i-saml-response.d.ts +4 -4
  390. package/lib/saml/models/redirect-saml-request.d.ts +24 -24
  391. package/lib/saml/models/sso-gateway-model.d.ts +17 -17
  392. package/lib/saml/saml-api.d.ts +11 -11
  393. package/lib/saml/saml.module.d.ts +9 -9
  394. package/lib/saml/services/entry/abstract-saml-entry.service.d.ts +16 -16
  395. package/lib/saml/services/entry/sso-gateway-entry.service.d.ts +22 -22
  396. package/lib/saml/services/send-off/abstract-saml.service.d.ts +20 -20
  397. package/lib/saml/services/send-off/saml.service.d.ts +32 -32
  398. package/lib/sof-pipe/constants/constants.d.ts +8 -8
  399. package/lib/sof-pipe/models/sof-date-pipe-format.d.ts +7 -7
  400. package/lib/sof-pipe/pipes/sof-blank/sof-blank.pipe.d.ts +19 -19
  401. package/lib/sof-pipe/pipes/sof-date/sof-date.pipe.d.ts +21 -21
  402. package/lib/sof-pipe/pipes/sof-ssn/sof-ssn.pipe.d.ts +12 -12
  403. package/lib/sof-pipe/sof-pipe.api.d.ts +7 -7
  404. package/lib/sof-pipe/sof-pipe.module.d.ts +10 -10
  405. package/lib/theming/directives/css-override.directive.d.ts +20 -20
  406. package/lib/theming/models/css-override.d.ts +15 -15
  407. package/lib/theming/services/theme.service.d.ts +48 -48
  408. package/lib/theming/theme-api.d.ts +5 -5
  409. package/lib/theming/theme.module.d.ts +9 -9
  410. package/package.json +17 -23
  411. package/public-api.d.ts +49 -48
  412. package/esm2020/lib/armature.module.mjs +0 -176
  413. package/esm2020/lib/base-components/sof-banner/sof-banner.component.mjs +0 -49
  414. package/esm2020/lib/base-components/sof-image-checkbox/sof-image-checkbox.component.mjs +0 -58
  415. package/esm2020/lib/base-components/sof-modal/sof-modal.component.mjs +0 -58
  416. package/esm2020/lib/base-components/sof-progress-bar/sof-progress-bar.component.mjs +0 -79
  417. package/esm2020/lib/base-components/sof-star-rating/sof-star-rating.component.mjs +0 -40
  418. package/esm2020/lib/component-save-print/sof-ar-component-save-print.module.mjs +0 -32
  419. package/esm2020/lib/distributed-cache/distributed-cache.module.mjs +0 -38
  420. package/esm2020/lib/faq/components/faq/faq.component.mjs +0 -40
  421. package/esm2020/lib/footer/components/footer/footer.component.mjs +0 -25
  422. package/esm2020/lib/forms/models/constants.mjs +0 -10
  423. package/esm2020/lib/header/components/header/header.component.mjs +0 -161
  424. package/esm2020/lib/navigation/components/navigation/navigation.component.mjs +0 -556
  425. package/fesm2015/softheon-armature.mjs +0 -7275
  426. package/fesm2015/softheon-armature.mjs.map +0 -1
  427. package/fesm2020/softheon-armature.mjs +0 -7332
  428. package/fesm2020/softheon-armature.mjs.map +0 -1
@@ -1,15 +1,15 @@
1
- /**
2
- * Site Map Direction
3
- */
4
- export var SiteMapDirection;
5
- (function (SiteMapDirection) {
6
- /**
7
- * Horizontal
8
- */
9
- SiteMapDirection["Horizontal"] = "Horizontal";
10
- /**
11
- * Vertical
12
- */
13
- SiteMapDirection["Vertical"] = "Vertical";
14
- })(SiteMapDirection || (SiteMapDirection = {}));
1
+ /**
2
+ * Site Map Direction
3
+ */
4
+ export var SiteMapDirection;
5
+ (function (SiteMapDirection) {
6
+ /**
7
+ * Horizontal
8
+ */
9
+ SiteMapDirection["Horizontal"] = "Horizontal";
10
+ /**
11
+ * Vertical
12
+ */
13
+ SiteMapDirection["Vertical"] = "Vertical";
14
+ })(SiteMapDirection || (SiteMapDirection = {}));
15
15
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2l0ZS1tYXAtZGlyZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJtYXR1cmUvc3JjL2xpYi9mb290ZXIvbW9kZWxzL2VudW0vc2l0ZS1tYXAtZGlyZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFOLElBQVksZ0JBVVg7QUFWRCxXQUFZLGdCQUFnQjtJQUN4Qjs7T0FFRztJQUNGLDZDQUF5QixDQUFBO0lBRTFCOztPQUVHO0lBQ0gseUNBQXFCLENBQUE7QUFDekIsQ0FBQyxFQVZXLGdCQUFnQixLQUFoQixnQkFBZ0IsUUFVM0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogU2l0ZSBNYXAgRGlyZWN0aW9uXHJcbiAqL1xyXG5leHBvcnQgZW51bSBTaXRlTWFwRGlyZWN0aW9uIHtcclxuICAgIC8qKlxyXG4gICAgICogSG9yaXpvbnRhbFxyXG4gICAgICovXHJcbiAgICAgSG9yaXpvbnRhbCA9ICdIb3Jpem9udGFsJyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcnRpY2FsXHJcbiAgICAgKi9cclxuICAgIFZlcnRpY2FsID0gJ1ZlcnRpY2FsJ1xyXG59Il19
@@ -1,4 +1,4 @@
1
- /** The footer configurations */
2
- export class FooterConfig {
3
- }
1
+ /** The footer configurations */
2
+ export class FooterConfig {
3
+ }
4
4
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9vdGVyLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FybWF0dXJlL3NyYy9saWIvZm9vdGVyL21vZGVscy9mb290ZXItY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGdDQUFnQztBQUNoQyxNQUFNLE9BQU8sWUFBWTtDQU14QiIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBUaGUgZm9vdGVyIGNvbmZpZ3VyYXRpb25zICovXHJcbmV4cG9ydCBjbGFzcyBGb290ZXJDb25maWcge1xyXG4gICAgLyoqIFRydWUgaWYgc2hvd2luZyBwcmUgY29udGVudCAxICovXHJcbiAgICBwdWJsaWMgc2hvd1ByZUNvbnRlbnQxOiBib29sZWFuO1xyXG5cclxuICAgIC8qKiBUcnVlIGlmIHNob3dpbmcgcHJlIGNvbnRlbnQgMiAqL1xyXG4gICAgcHVibGljIHNob3dQcmVDb250ZW50MjogYm9vbGVhbjtcclxufVxyXG4iXX0=
@@ -1,2 +1,2 @@
1
- export {};
1
+ export {};
2
2
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2l0ZS1tYXAtbW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJtYXR1cmUvc3JjL2xpYi9mb290ZXIvbW9kZWxzL3NpdGUtbWFwLW1vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2l0ZU1hcERpcmVjdGlvbiB9IGZyb20gJy4vZW51bS9zaXRlLW1hcC1kaXJlY3Rpb24nO1xyXG5pbXBvcnQgeyBSb3V0ZVBhdGggfSBmcm9tICcuLi8uLi9jb3JlL21vZGVscy9yb3V0ZS1wYXRoJztcclxuXHJcbi8qKlxyXG4gKiBTaXRlIE1hcCBDb25maWdcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2l0ZU1hcENvbmZpZyB7XHJcbiAgICAvKiogU2VjdGlvbiB0aXRsZSBjbGFzcyBzdHlsZSAqL1xyXG4gICAgc2VjdGlvblRpdGxlQ2xhc3M/OiBzdHJpbmc7XHJcblxyXG4gICAgLyoqIEdsb2JhbCBjbGFzcyBzdHlsZSBmb3IgbGlua3MgKi9cclxuICAgIGxpbmtDbGFzcz86IHN0cmluZztcclxuXHJcbiAgICAvKiogU2l0ZSBtYXAgZ3JhcGggKi9cclxuICAgIGdyYXBoPzogQXJyYXk8QXJyYXk8U2l0ZU1hcE5vZGU+PjtcclxufVxyXG5cclxuLyoqXHJcbiAqIFNpdGUgTWFwIE5vZGUuXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFNpdGVNYXBOb2RlIHtcclxuICAgIC8qKiBUaGUgU2VjdGlvbiBUaXRsZSAqL1xyXG4gICAgc2VjdGlvblRpdGxlPzogc3RyaW5nO1xyXG5cclxuICAgIC8qKiBUaGUgRGlyZWN0aW9uICovXHJcbiAgICBkaXJlY3Rpb24/OiBTaXRlTWFwRGlyZWN0aW9uO1xyXG5cclxuICAgIC8qKiBTaXRlIE1hcCBMaW5rICovXHJcbiAgICBsaW5rcz86IEFycmF5PFNpdGVNYXBMaW5rPjtcclxuICAgIFxyXG4gICAgLyoqIFdoZXRoZXIgb3Igbm90IGlmIHRoZSBsaW5rcyBhcmUgaWNvbnMgKi9cclxuICAgIGljb25MaW5rcz86IGJvb2xlYW47XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBTaXRlIE1hcCBMaW5rXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFNpdGVNYXBMaW5rIHtcclxuICAgIC8qKiBUaGUgVGV4dCAqL1xyXG4gICAgdGV4dD86IHN0cmluZztcclxuXHJcbiAgICAvKiogVGhlIFJvdXRlciBMaW5rICovXHJcbiAgICByb3V0ZXJMaW5rPzogc3RyaW5nO1xyXG5cclxuICAgIC8qKiBUaGUgcm91dGUgcGF0aCAqL1xyXG4gICAgcm91dGVQYXRoPzogUm91dGVQYXRoOyAgICBcclxuXHJcbiAgICAvKiogU3BlY2lmaWMgY2xhc3Mgc3R5bGUgZm9yIGxpbmsgKi9cclxuICAgIGxpbmtDbGFzcz86IHN0cmluZztcclxuXHJcbiAgICAvKiogTG9nbyBzdHlsZSBjbGFzcyBmb3IgbG9nbyBsaW5rcyAqL1xyXG4gICAgbG9nb0NsYXNzPzogc3RyaW5nO1xyXG59Il19
@@ -1,110 +1,110 @@
1
- import { Component, Input } from '@angular/core';
2
- import { FormControl, Validators } from '@angular/forms';
3
- import { States } from '../../models/enums/states';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/forms";
6
- import * as i2 from "@angular/common";
7
- import * as i3 from "@angular/flex-layout/flex";
8
- import * as i4 from "@angular/material/input";
9
- import * as i5 from "@angular/material/form-field";
10
- import * as i6 from "@angular/material/select";
11
- import * as i7 from "@angular/material/core";
12
- import * as i8 from "../../directives/numbers-only/numbers-only.directive";
13
- /** Address component */
14
- export class SofAddressComponent {
15
- /**
16
- * Constructor for the component
17
- * @param formBuilder The form builder
18
- */
19
- constructor(formBuilder) {
20
- this.formBuilder = formBuilder;
21
- /** Identifier for this address component */
22
- this.id = '';
23
- /** Verbiage for street 1 */
24
- this.street1Verbiage = 'Street 1';
25
- /** Verbiage for street 2 */
26
- this.street2Verbiage = 'Street 2';
27
- /** Verbiage for city */
28
- this.cityVerbiage = 'City';
29
- /** Verbiage for ZIP Code */
30
- this.zipCodeVerbiage = 'Zip Code';
31
- /** Verbiage for the state input */
32
- this.stateVerbiage = 'State';
33
- /** Verbiage for the required input verbiage */
34
- this.requiredErrorVerbiage = 'Field is required';
35
- /** The state options */
36
- this.states = Object.keys(States);
37
- /** Form control for street 1 */
38
- this.street1FC = new FormControl(undefined, Validators.required);
39
- /** Form control for street 2 */
40
- this.street2FC = new FormControl();
41
- /** Form control for city */
42
- this.cityFC = new FormControl(undefined, Validators.required);
43
- /** Form control for state */
44
- this.stateFC = new FormControl(undefined, Validators.required);
45
- /** Form control for zip code */
46
- this.zipCodeFC = new FormControl(undefined, [Validators.required, Validators.maxLength(5), Validators.minLength(5)]);
47
- }
48
- /** Actions to take upon initialization */
49
- ngOnInit() {
50
- this.createAddressGroup();
51
- }
52
- /** Creates the address form group */
53
- createAddressGroup() {
54
- if (this.addressFG) {
55
- return this.addressFG;
56
- }
57
- this.addressFG = this.formBuilder.group({
58
- street1: this.street1FC,
59
- street2: this.street2FC,
60
- city: this.cityFC,
61
- state: this.stateFC,
62
- zipCode: this.zipCodeFC
63
- });
64
- return this.addressFG;
65
- }
66
- /** Maps and returns the address */
67
- getAddress() {
68
- if (!this.addressFG.valid) {
69
- return undefined;
70
- }
71
- const county = {
72
- zipCode: this.zipCodeFC.value,
73
- state: this.stateFC.value
74
- };
75
- const address = {
76
- street1: this.street1FC.value,
77
- street2: this.street2FC.value,
78
- city: this.cityFC.value,
79
- county
80
- };
81
- return address;
82
- }
83
- /** Checks if the form is valid */
84
- isValid() {
85
- return this.addressFG && this.addressFG.valid;
86
- }
87
- }
88
- SofAddressComponentfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: SofAddressComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
89
- SofAddressComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: SofAddressComponent, selector: "sof-ar-address", inputs: { id: "id", street1Verbiage: "street1Verbiage", street2Verbiage: "street2Verbiage", cityVerbiage: "cityVerbiage", zipCodeVerbiage: "zipCodeVerbiage", stateVerbiage: "stateVerbiage", titleVerbiage: "titleVerbiage", requiredErrorVerbiage: "requiredErrorVerbiage" }, ngImport: i0, template: "<p class=\"address-title\" *ngIf=\"titleVerbiage && titleVerbiage != ''\" [innerHtml]=\"titleVerbiage\"></p>\r\n<form [formGroup]=\"addressFG\">\r\n <div fxLayout=\"row wrap\" fxLayoutGap=\"1% grid\">\r\n <!-- Address 1 -->\r\n <mat-form-field class=\"address-input\" fxFlex=\"auto\">\r\n <input matInput formControlName=\"street1\" id=\"{{id}}street1\" placeholder=\"{{street1Verbiage}}\" required>\r\n <mat-error *ngIf=\"street1FC?.errors?.required\">{{requiredErrorVerbiage}}</mat-error>\r\n </mat-form-field>\r\n <!-- Address 2 -->\r\n <mat-form-field class=\"address-input\" fxFlex=\"auto\">\r\n <input matInput formControlName=\"street2\" id=\"{{id}}street2\" placeholder=\"{{street2Verbiage}}\">\r\n </mat-form-field>\r\n </div>\r\n <div fxLayout=\"row wrap\" fxLayoutGap=\"1%\">\r\n <!-- City -->\r\n <mat-form-field fxFlex=\"49.5%\" fxFlex.lt-md=\"60%\">\r\n <input matInput formControlName=\"city\" id=\"{{id}}city\" placeholder=\"{{cityVerbiage}}\" required>\r\n <mat-error *ngIf=\"cityFC?.errors?.required\">{{requiredErrorVerbiage}}</mat-error>\r\n </mat-form-field>\r\n <!-- State -->\r\n <mat-form-field fxFlex=\"20%\" fxFlex.lt-md=\"auto\">\r\n <mat-label>{{stateVerbiage}}</mat-label>\r\n <mat-select formControlName=\"state\" required>\r\n <mat-option *ngFor=\"let state of states\" id=\"{{id}}{{state}}\" [value]=\"state\">{{state}}</mat-option>\r\n </mat-select>\r\n <mat-error *ngIf=\"stateFC?.errors?.required\">{{requiredErrorVerbiage}}</mat-error>\r\n </mat-form-field>\r\n <!-- Zip Code -->\r\n <mat-form-field fxFlex=\"28.5%\" fxFlex.lt-md=\"50%\">\r\n <input matInput formControlName=\"zipCode\" id=\"{{id}}zipCode\" mask=\"00000\" [sofArNumbersOnly]\r\n placeholder=\"{{zipCodeVerbiage}}\" required minlength=\"5\" maxlength=\"5\">\r\n <mat-error *ngIf=\"zipCodeFC?.errors?.required\">{{requiredErrorVerbiage}}</mat-error>\r\n </mat-form-field>\r\n </div>\r\n</form>\r\n", styles: [".address-input{min-width:350px}.address-title{font-size:large}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i3.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i3.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "directive", type: i5.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i6.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "component", type: i7.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i8.NumbersOnlyDirective, selector: "[sofArNumbersOnly]", inputs: ["sofArNumbersOnly"] }] });
90
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: SofAddressComponent, decorators: [{
91
- type: Component,
92
- args: [{ selector: 'sof-ar-address', template: "<p class=\"address-title\" *ngIf=\"titleVerbiage && titleVerbiage != ''\" [innerHtml]=\"titleVerbiage\"></p>\r\n<form [formGroup]=\"addressFG\">\r\n <div fxLayout=\"row wrap\" fxLayoutGap=\"1% grid\">\r\n <!-- Address 1 -->\r\n <mat-form-field class=\"address-input\" fxFlex=\"auto\">\r\n <input matInput formControlName=\"street1\" id=\"{{id}}street1\" placeholder=\"{{street1Verbiage}}\" required>\r\n <mat-error *ngIf=\"street1FC?.errors?.required\">{{requiredErrorVerbiage}}</mat-error>\r\n </mat-form-field>\r\n <!-- Address 2 -->\r\n <mat-form-field class=\"address-input\" fxFlex=\"auto\">\r\n <input matInput formControlName=\"street2\" id=\"{{id}}street2\" placeholder=\"{{street2Verbiage}}\">\r\n </mat-form-field>\r\n </div>\r\n <div fxLayout=\"row wrap\" fxLayoutGap=\"1%\">\r\n <!-- City -->\r\n <mat-form-field fxFlex=\"49.5%\" fxFlex.lt-md=\"60%\">\r\n <input matInput formControlName=\"city\" id=\"{{id}}city\" placeholder=\"{{cityVerbiage}}\" required>\r\n <mat-error *ngIf=\"cityFC?.errors?.required\">{{requiredErrorVerbiage}}</mat-error>\r\n </mat-form-field>\r\n <!-- State -->\r\n <mat-form-field fxFlex=\"20%\" fxFlex.lt-md=\"auto\">\r\n <mat-label>{{stateVerbiage}}</mat-label>\r\n <mat-select formControlName=\"state\" required>\r\n <mat-option *ngFor=\"let state of states\" id=\"{{id}}{{state}}\" [value]=\"state\">{{state}}</mat-option>\r\n </mat-select>\r\n <mat-error *ngIf=\"stateFC?.errors?.required\">{{requiredErrorVerbiage}}</mat-error>\r\n </mat-form-field>\r\n <!-- Zip Code -->\r\n <mat-form-field fxFlex=\"28.5%\" fxFlex.lt-md=\"50%\">\r\n <input matInput formControlName=\"zipCode\" id=\"{{id}}zipCode\" mask=\"00000\" [sofArNumbersOnly]\r\n placeholder=\"{{zipCodeVerbiage}}\" required minlength=\"5\" maxlength=\"5\">\r\n <mat-error *ngIf=\"zipCodeFC?.errors?.required\">{{requiredErrorVerbiage}}</mat-error>\r\n </mat-form-field>\r\n </div>\r\n</form>\r\n", styles: [".address-input{min-width:350px}.address-title{font-size:large}\n"] }]
93
- }], ctorParameters: function () { return [{ type: i1.FormBuilder }]; }, propDecorators: { id: [{
94
- type: Input
95
- }], street1Verbiage: [{
96
- type: Input
97
- }], street2Verbiage: [{
98
- type: Input
99
- }], cityVerbiage: [{
100
- type: Input
101
- }], zipCodeVerbiage: [{
102
- type: Input
103
- }], stateVerbiage: [{
104
- type: Input
105
- }], titleVerbiage: [{
106
- type: Input
107
- }], requiredErrorVerbiage: [{
108
- type: Input
109
- }] } });
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29mLWFkZHJlc3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJtYXR1cmUvc3JjL2xpYi9mb3Jtcy9jb21wb25lbnRzL3NvZi1hZGRyZXNzL3NvZi1hZGRyZXNzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FybWF0dXJlL3NyYy9saWIvZm9ybXMvY29tcG9uZW50cy9zb2YtYWRkcmVzcy9zb2YtYWRkcmVzcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBMEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7Ozs7QUFJbkQsd0JBQXdCO0FBTXhCLE1BQU0sT0FBTyxtQkFBbUI7SUFrRDlCOzs7T0FHRztJQUNILFlBQTZCLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBcERyRCw0Q0FBNEM7UUFDNUIsT0FBRSxHQUFXLEVBQUUsQ0FBQztRQUVoQyw0QkFBNEI7UUFDWixvQkFBZSxHQUFXLFVBQVUsQ0FBQztRQUVyRCw0QkFBNEI7UUFDWixvQkFBZSxHQUFXLFVBQVUsQ0FBQztRQUVyRCx3QkFBd0I7UUFDUixpQkFBWSxHQUFXLE1BQU0sQ0FBQztRQUU5Qyw0QkFBNEI7UUFDWixvQkFBZSxHQUFXLFVBQVUsQ0FBQztRQUVyRCxtQ0FBbUM7UUFDbkIsa0JBQWEsR0FBVyxPQUFPLENBQUM7UUFLaEQsK0NBQStDO1FBQy9CLDBCQUFxQixHQUFXLG1CQUFtQixDQUFDO1FBS3BFLHdCQUF3QjtRQUNSLFdBQU0sR0FBa0IsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUU1RCxnQ0FBZ0M7UUFDaEIsY0FBUyxHQUFnQixJQUFJLFdBQVcsQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXpGLGdDQUFnQztRQUNmLGNBQVMsR0FBZ0IsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUU1RCw0QkFBNEI7UUFDWixXQUFNLEdBQWdCLElBQUksV0FBVyxDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFdEYsNkJBQTZCO1FBQ2IsWUFBTyxHQUFnQixJQUFJLFdBQVcsQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXZGLGdDQUFnQztRQUNoQixjQUFTLEdBQWdCLElBQUksV0FBVyxDQUN0RCxTQUFTLEVBQ1QsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUN4RSxDQUFDO0lBTXVELENBQUM7SUFFMUQsMENBQTBDO0lBQ25DLFFBQVE7UUFDYixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQscUNBQXFDO0lBQzlCLGtCQUFrQjtRQUN2QixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO1NBQ3ZCO1FBRUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztZQUN0QyxPQUFPLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDdkIsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3ZCLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNqQixLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDbkIsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTO1NBQ3hCLENBQUMsQ0FBQztRQUVILE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRUQsbUNBQW1DO0lBQzVCLFVBQVU7UUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUU7WUFDekIsT0FBTyxTQUFTLENBQUM7U0FDbEI7UUFFRCxNQUFNLE1BQU0sR0FBVztZQUNyQixPQUFPLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLO1lBQzdCLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUs7U0FDMUIsQ0FBQztRQUNGLE1BQU0sT0FBTyxHQUFZO1lBQ3ZCLE9BQU8sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUs7WUFDN0IsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSztZQUM3QixJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLO1lBQ3ZCLE1BQU07U0FDUCxDQUFDO1FBRUYsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELGtDQUFrQztJQUMzQixPQUFPO1FBQ1osT0FBTyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO0lBQ2hELENBQUM7O2dIQXJHVSxtQkFBbUI7b0dBQW5CLG1CQUFtQixzVUNiaEMsbytEQW1DQTsyRkR0QmEsbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLGdCQUFnQjtrR0FPVixFQUFFO3NCQUFqQixLQUFLO2dCQUdVLGVBQWU7c0JBQTlCLEtBQUs7Z0JBR1UsZUFBZTtzQkFBOUIsS0FBSztnQkFHVSxZQUFZO3NCQUEzQixLQUFLO2dCQUdVLGVBQWU7c0JBQTlCLEtBQUs7Z0JBR1UsYUFBYTtzQkFBNUIsS0FBSztnQkFHVSxhQUFhO3NCQUE1QixLQUFLO2dCQUdVLHFCQUFxQjtzQkFBcEMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgVmFsaWRhdG9ycywgRm9ybUdyb3VwLCBGb3JtQnVpbGRlciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7IFN0YXRlcyB9IGZyb20gJy4uLy4uL21vZGVscy9lbnVtcy9zdGF0ZXMnO1xyXG5pbXBvcnQgeyBBZGRyZXNzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2FkZHJlc3MnO1xyXG5pbXBvcnQgeyBDb3VudHkgfSBmcm9tICcuLi8uLi9tb2RlbHMvY291bnR5JztcclxuXHJcbi8qKiBBZGRyZXNzIGNvbXBvbmVudCAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NvZi1hci1hZGRyZXNzJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc29mLWFkZHJlc3MuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NvZi1hZGRyZXNzLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFNvZkFkZHJlc3NDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICAvKiogSWRlbnRpZmllciBmb3IgdGhpcyBhZGRyZXNzIGNvbXBvbmVudCAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBpZDogc3RyaW5nID0gJyc7XHJcblxyXG4gIC8qKiBWZXJiaWFnZSBmb3Igc3RyZWV0IDEgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgc3RyZWV0MVZlcmJpYWdlOiBzdHJpbmcgPSAnU3RyZWV0IDEnO1xyXG5cclxuICAvKiogVmVyYmlhZ2UgZm9yIHN0cmVldCAyICovXHJcbiAgQElucHV0KCkgcHVibGljIHN0cmVldDJWZXJiaWFnZTogc3RyaW5nID0gJ1N0cmVldCAyJztcclxuXHJcbiAgLyoqIFZlcmJpYWdlIGZvciBjaXR5ICovXHJcbiAgQElucHV0KCkgcHVibGljIGNpdHlWZXJiaWFnZTogc3RyaW5nID0gJ0NpdHknO1xyXG5cclxuICAvKiogVmVyYmlhZ2UgZm9yIFpJUCBDb2RlICovXHJcbiAgQElucHV0KCkgcHVibGljIHppcENvZGVWZXJiaWFnZTogc3RyaW5nID0gJ1ppcCBDb2RlJztcclxuXHJcbiAgLyoqIFZlcmJpYWdlIGZvciB0aGUgc3RhdGUgaW5wdXQgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgc3RhdGVWZXJiaWFnZTogc3RyaW5nID0gJ1N0YXRlJztcclxuXHJcbiAgLyoqIFZlcmJpYWdlIGZvciB0aGUgdGl0bGUgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgdGl0bGVWZXJiaWFnZTogc3RyaW5nO1xyXG5cclxuICAvKiogVmVyYmlhZ2UgZm9yIHRoZSByZXF1aXJlZCBpbnB1dCB2ZXJiaWFnZSAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyByZXF1aXJlZEVycm9yVmVyYmlhZ2U6IHN0cmluZyA9ICdGaWVsZCBpcyByZXF1aXJlZCc7XHJcblxyXG4gIC8qKiBBZGRyZXNzIEZvcm0gZ3JvdXAgKi9cclxuICBwdWJsaWMgYWRkcmVzc0ZHOiBGb3JtR3JvdXA7XHJcblxyXG4gIC8qKiBUaGUgc3RhdGUgb3B0aW9ucyAqL1xyXG4gIHB1YmxpYyByZWFkb25seSBzdGF0ZXM6IEFycmF5PHN0cmluZz4gPSBPYmplY3Qua2V5cyhTdGF0ZXMpO1xyXG5cclxuICAvKiogRm9ybSBjb250cm9sIGZvciBzdHJlZXQgMSAqL1xyXG4gIHB1YmxpYyByZWFkb25seSBzdHJlZXQxRkM6IEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKHVuZGVmaW5lZCwgVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcblxyXG4gIC8qKiBGb3JtIGNvbnRyb2wgZm9yIHN0cmVldCAyICovXHJcbiAgcHJpdmF0ZSByZWFkb25seSBzdHJlZXQyRkM6IEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XHJcblxyXG4gIC8qKiBGb3JtIGNvbnRyb2wgZm9yIGNpdHkgKi9cclxuICBwdWJsaWMgcmVhZG9ubHkgY2l0eUZDOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCh1bmRlZmluZWQsIFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG5cclxuICAvKiogRm9ybSBjb250cm9sIGZvciBzdGF0ZSAqL1xyXG4gIHB1YmxpYyByZWFkb25seSBzdGF0ZUZDOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCh1bmRlZmluZWQsIFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG5cclxuICAvKiogRm9ybSBjb250cm9sIGZvciB6aXAgY29kZSAqL1xyXG4gIHB1YmxpYyByZWFkb25seSB6aXBDb2RlRkM6IEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKFxyXG4gICAgdW5kZWZpbmVkLFxyXG4gICAgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDUpLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCg1KV1cclxuICApO1xyXG5cclxuICAvKipcclxuICAgKiBDb25zdHJ1Y3RvciBmb3IgdGhlIGNvbXBvbmVudFxyXG4gICAqIEBwYXJhbSBmb3JtQnVpbGRlciBUaGUgZm9ybSBidWlsZGVyXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIpIHsgfVxyXG5cclxuICAvKiogQWN0aW9ucyB0byB0YWtlIHVwb24gaW5pdGlhbGl6YXRpb24gKi9cclxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNyZWF0ZUFkZHJlc3NHcm91cCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqIENyZWF0ZXMgdGhlIGFkZHJlc3MgZm9ybSBncm91cCAqL1xyXG4gIHB1YmxpYyBjcmVhdGVBZGRyZXNzR3JvdXAoKTogRm9ybUdyb3VwIHtcclxuICAgIGlmICh0aGlzLmFkZHJlc3NGRykge1xyXG4gICAgICByZXR1cm4gdGhpcy5hZGRyZXNzRkc7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5hZGRyZXNzRkcgPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcclxuICAgICAgc3RyZWV0MTogdGhpcy5zdHJlZXQxRkMsXHJcbiAgICAgIHN0cmVldDI6IHRoaXMuc3RyZWV0MkZDLFxyXG4gICAgICBjaXR5OiB0aGlzLmNpdHlGQyxcclxuICAgICAgc3RhdGU6IHRoaXMuc3RhdGVGQyxcclxuICAgICAgemlwQ29kZTogdGhpcy56aXBDb2RlRkNcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmFkZHJlc3NGRztcclxuICB9XHJcblxyXG4gIC8qKiBNYXBzIGFuZCByZXR1cm5zIHRoZSBhZGRyZXNzICovXHJcbiAgcHVibGljIGdldEFkZHJlc3MoKTogQWRkcmVzcyB7XHJcbiAgICBpZiAoIXRoaXMuYWRkcmVzc0ZHLnZhbGlkKSB7XHJcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgY291bnR5OiBDb3VudHkgPSB7XHJcbiAgICAgIHppcENvZGU6IHRoaXMuemlwQ29kZUZDLnZhbHVlLFxyXG4gICAgICBzdGF0ZTogdGhpcy5zdGF0ZUZDLnZhbHVlXHJcbiAgICB9O1xyXG4gICAgY29uc3QgYWRkcmVzczogQWRkcmVzcyA9IHtcclxuICAgICAgc3RyZWV0MTogdGhpcy5zdHJlZXQxRkMudmFsdWUsXHJcbiAgICAgIHN0cmVldDI6IHRoaXMuc3RyZWV0MkZDLnZhbHVlLFxyXG4gICAgICBjaXR5OiB0aGlzLmNpdHlGQy52YWx1ZSxcclxuICAgICAgY291bnR5XHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBhZGRyZXNzO1xyXG4gIH1cclxuXHJcbiAgLyoqIENoZWNrcyBpZiB0aGUgZm9ybSBpcyB2YWxpZCAqL1xyXG4gIHB1YmxpYyBpc1ZhbGlkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkcmVzc0ZHICYmIHRoaXMuYWRkcmVzc0ZHLnZhbGlkO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPHAgY2xhc3M9XCJhZGRyZXNzLXRpdGxlXCIgKm5nSWY9XCJ0aXRsZVZlcmJpYWdlICYmIHRpdGxlVmVyYmlhZ2UgIT0gJydcIiBbaW5uZXJIdG1sXT1cInRpdGxlVmVyYmlhZ2VcIj48L3A+XHJcbjxmb3JtIFtmb3JtR3JvdXBdPVwiYWRkcmVzc0ZHXCI+XHJcbiAgPGRpdiBmeExheW91dD1cInJvdyB3cmFwXCIgZnhMYXlvdXRHYXA9XCIxJSBncmlkXCI+XHJcbiAgICA8IS0tIEFkZHJlc3MgMSAtLT5cclxuICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImFkZHJlc3MtaW5wdXRcIiBmeEZsZXg9XCJhdXRvXCI+XHJcbiAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJzdHJlZXQxXCIgaWQ9XCJ7e2lkfX1zdHJlZXQxXCIgcGxhY2Vob2xkZXI9XCJ7e3N0cmVldDFWZXJiaWFnZX19XCIgcmVxdWlyZWQ+XHJcbiAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJzdHJlZXQxRkM/LmVycm9ycz8ucmVxdWlyZWRcIj57e3JlcXVpcmVkRXJyb3JWZXJiaWFnZX19PC9tYXQtZXJyb3I+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgPCEtLSBBZGRyZXNzIDIgLS0+XHJcbiAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJhZGRyZXNzLWlucHV0XCIgZnhGbGV4PVwiYXV0b1wiPlxyXG4gICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwic3RyZWV0MlwiIGlkPVwie3tpZH19c3RyZWV0MlwiIHBsYWNlaG9sZGVyPVwie3tzdHJlZXQyVmVyYmlhZ2V9fVwiPlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGZ4TGF5b3V0PVwicm93IHdyYXBcIiBmeExheW91dEdhcD1cIjElXCI+XHJcbiAgICA8IS0tIENpdHkgLS0+XHJcbiAgICA8bWF0LWZvcm0tZmllbGQgZnhGbGV4PVwiNDkuNSVcIiBmeEZsZXgubHQtbWQ9XCI2MCVcIj5cclxuICAgICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cImNpdHlcIiBpZD1cInt7aWR9fWNpdHlcIiBwbGFjZWhvbGRlcj1cInt7Y2l0eVZlcmJpYWdlfX1cIiByZXF1aXJlZD5cclxuICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImNpdHlGQz8uZXJyb3JzPy5yZXF1aXJlZFwiPnt7cmVxdWlyZWRFcnJvclZlcmJpYWdlfX08L21hdC1lcnJvcj5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8IS0tIFN0YXRlIC0tPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkIGZ4RmxleD1cIjIwJVwiIGZ4RmxleC5sdC1tZD1cImF1dG9cIj5cclxuICAgICAgPG1hdC1sYWJlbD57e3N0YXRlVmVyYmlhZ2V9fTwvbWF0LWxhYmVsPlxyXG4gICAgICA8bWF0LXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJzdGF0ZVwiIHJlcXVpcmVkPlxyXG4gICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBzdGF0ZSBvZiBzdGF0ZXNcIiBpZD1cInt7aWR9fXt7c3RhdGV9fVwiIFt2YWx1ZV09XCJzdGF0ZVwiPnt7c3RhdGV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICA8bWF0LWVycm9yICpuZ0lmPVwic3RhdGVGQz8uZXJyb3JzPy5yZXF1aXJlZFwiPnt7cmVxdWlyZWRFcnJvclZlcmJpYWdlfX08L21hdC1lcnJvcj5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8IS0tIFppcCBDb2RlIC0tPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkIGZ4RmxleD1cIjI4LjUlXCIgZnhGbGV4Lmx0LW1kPVwiNTAlXCI+XHJcbiAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJ6aXBDb2RlXCIgaWQ9XCJ7e2lkfX16aXBDb2RlXCIgbWFzaz1cIjAwMDAwXCIgW3NvZkFyTnVtYmVyc09ubHldXHJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJ7e3ppcENvZGVWZXJiaWFnZX19XCIgcmVxdWlyZWQgbWlubGVuZ3RoPVwiNVwiIG1heGxlbmd0aD1cIjVcIj5cclxuICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiemlwQ29kZUZDPy5lcnJvcnM/LnJlcXVpcmVkXCI+e3tyZXF1aXJlZEVycm9yVmVyYmlhZ2V9fTwvbWF0LWVycm9yPlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICA8L2Rpdj5cclxuPC9mb3JtPlxyXG4iXX0=
1
+ import { Component, Input } from '@angular/core';
2
+ import { FormControl, Validators } from '@angular/forms';
3
+ import { States } from '../../models/enums/states';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/forms";
6
+ import * as i2 from "@angular/common";
7
+ import * as i3 from "@angular/flex-layout/flex";
8
+ import * as i4 from "@angular/material/input";
9
+ import * as i5 from "@angular/material/form-field";
10
+ import * as i6 from "@angular/material/select";
11
+ import * as i7 from "@angular/material/core";
12
+ import * as i8 from "../../directives/numbers-only/numbers-only.directive";
13
+ /** Address component */
14
+ export class SofAddressComponent {
15
+ /**
16
+ * Constructor for the component
17
+ * @param formBuilder The form builder
18
+ */
19
+ constructor(formBuilder) {
20
+ this.formBuilder = formBuilder;
21
+ /** Identifier for this address component */
22
+ this.id = '';
23
+ /** Verbiage for street 1 */
24
+ this.street1Verbiage = 'Street 1';
25
+ /** Verbiage for street 2 */
26
+ this.street2Verbiage = 'Street 2';
27
+ /** Verbiage for city */
28
+ this.cityVerbiage = 'City';
29
+ /** Verbiage for ZIP Code */
30
+ this.zipCodeVerbiage = 'Zip Code';
31
+ /** Verbiage for the state input */
32
+ this.stateVerbiage = 'State';
33
+ /** Verbiage for the required input verbiage */
34
+ this.requiredErrorVerbiage = 'Field is required';
35
+ /** The state options */
36
+ this.states = Object.keys(States);
37
+ /** Form control for street 1 */
38
+ this.street1FC = new FormControl(undefined, Validators.required);
39
+ /** Form control for street 2 */
40
+ this.street2FC = new FormControl();
41
+ /** Form control for city */
42
+ this.cityFC = new FormControl(undefined, Validators.required);
43
+ /** Form control for state */
44
+ this.stateFC = new FormControl(undefined, Validators.required);
45
+ /** Form control for zip code */
46
+ this.zipCodeFC = new FormControl(undefined, [Validators.required, Validators.maxLength(5), Validators.minLength(5)]);
47
+ }
48
+ /** Actions to take upon initialization */
49
+ ngOnInit() {
50
+ this.createAddressGroup();
51
+ }
52
+ /** Creates the address form group */
53
+ createAddressGroup() {
54
+ if (this.addressFG) {
55
+ return this.addressFG;
56
+ }
57
+ this.addressFG = this.formBuilder.group({
58
+ street1: this.street1FC,
59
+ street2: this.street2FC,
60
+ city: this.cityFC,
61
+ state: this.stateFC,
62
+ zipCode: this.zipCodeFC
63
+ });
64
+ return this.addressFG;
65
+ }
66
+ /** Maps and returns the address */
67
+ getAddress() {
68
+ if (!this.addressFG.valid) {
69
+ return undefined;
70
+ }
71
+ const county = {
72
+ zipCode: this.zipCodeFC.value,
73
+ state: this.stateFC.value
74
+ };
75
+ const address = {
76
+ street1: this.street1FC.value,
77
+ street2: this.street2FC.value,
78
+ city: this.cityFC.value,
79
+ county
80
+ };
81
+ return address;
82
+ }
83
+ /** Checks if the form is valid */
84
+ isValid() {
85
+ return this.addressFG && this.addressFG.valid;
86
+ }
87
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SofAddressComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
88
+ static { thiscmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: SofAddressComponent, selector: "sof-ar-address", inputs: { id: "id", street1Verbiage: "street1Verbiage", street2Verbiage: "street2Verbiage", cityVerbiage: "cityVerbiage", zipCodeVerbiage: "zipCodeVerbiage", stateVerbiage: "stateVerbiage", titleVerbiage: "titleVerbiage", requiredErrorVerbiage: "requiredErrorVerbiage" }, ngImport: i0, template: "<p class=\"address-title\" *ngIf=\"titleVerbiage && titleVerbiage != ''\" [innerHtml]=\"titleVerbiage\"></p>\r\n<form [formGroup]=\"addressFG\">\r\n <div fxLayout=\"row wrap\" fxLayoutGap=\"1% grid\">\r\n <!-- Address 1 -->\r\n <mat-form-field class=\"address-input\" fxFlex=\"auto\">\r\n <input matInput formControlName=\"street1\" id=\"{{id}}street1\" placeholder=\"{{street1Verbiage}}\" required>\r\n <mat-error *ngIf=\"street1FC?.errors?.required\">{{requiredErrorVerbiage}}</mat-error>\r\n </mat-form-field>\r\n <!-- Address 2 -->\r\n <mat-form-field class=\"address-input\" fxFlex=\"auto\">\r\n <input matInput formControlName=\"street2\" id=\"{{id}}street2\" placeholder=\"{{street2Verbiage}}\">\r\n </mat-form-field>\r\n </div>\r\n <div fxLayout=\"row wrap\" fxLayoutGap=\"1%\">\r\n <!-- City -->\r\n <mat-form-field fxFlex=\"49.5%\" fxFlex.lt-md=\"60%\">\r\n <input matInput formControlName=\"city\" id=\"{{id}}city\" placeholder=\"{{cityVerbiage}}\" required>\r\n <mat-error *ngIf=\"cityFC?.errors?.required\">{{requiredErrorVerbiage}}</mat-error>\r\n </mat-form-field>\r\n <!-- State -->\r\n <mat-form-field fxFlex=\"20%\" fxFlex.lt-md=\"auto\">\r\n <mat-label>{{stateVerbiage}}</mat-label>\r\n <mat-select formControlName=\"state\" required>\r\n <mat-option *ngFor=\"let state of states\" id=\"{{id}}{{state}}\" [value]=\"state\">{{state}}</mat-option>\r\n </mat-select>\r\n <mat-error *ngIf=\"stateFC?.errors?.required\">{{requiredErrorVerbiage}}</mat-error>\r\n </mat-form-field>\r\n <!-- Zip Code -->\r\n <mat-form-field fxFlex=\"28.5%\" fxFlex.lt-md=\"50%\">\r\n <input matInput formControlName=\"zipCode\" id=\"{{id}}zipCode\" mask=\"00000\" [sofArNumbersOnly]\r\n placeholder=\"{{zipCodeVerbiage}}\" required minlength=\"5\" maxlength=\"5\">\r\n <mat-error *ngIf=\"zipCodeFC?.errors?.required\">{{requiredErrorVerbiage}}</mat-error>\r\n </mat-form-field>\r\n </div>\r\n</form>\r\n", styles: [".address-input{min-width:350px}.address-title{font-size:large}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i3.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i3.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "directive", type: i5.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i6.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i7.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i8.NumbersOnlyDirective, selector: "[sofArNumbersOnly]", inputs: ["sofArNumbersOnly"] }] }); }
89
+ }
90
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SofAddressComponent, decorators: [{
91
+ type: Component,
92
+ args: [{ selector: 'sof-ar-address', template: "<p class=\"address-title\" *ngIf=\"titleVerbiage && titleVerbiage != ''\" [innerHtml]=\"titleVerbiage\"></p>\r\n<form [formGroup]=\"addressFG\">\r\n <div fxLayout=\"row wrap\" fxLayoutGap=\"1% grid\">\r\n <!-- Address 1 -->\r\n <mat-form-field class=\"address-input\" fxFlex=\"auto\">\r\n <input matInput formControlName=\"street1\" id=\"{{id}}street1\" placeholder=\"{{street1Verbiage}}\" required>\r\n <mat-error *ngIf=\"street1FC?.errors?.required\">{{requiredErrorVerbiage}}</mat-error>\r\n </mat-form-field>\r\n <!-- Address 2 -->\r\n <mat-form-field class=\"address-input\" fxFlex=\"auto\">\r\n <input matInput formControlName=\"street2\" id=\"{{id}}street2\" placeholder=\"{{street2Verbiage}}\">\r\n </mat-form-field>\r\n </div>\r\n <div fxLayout=\"row wrap\" fxLayoutGap=\"1%\">\r\n <!-- City -->\r\n <mat-form-field fxFlex=\"49.5%\" fxFlex.lt-md=\"60%\">\r\n <input matInput formControlName=\"city\" id=\"{{id}}city\" placeholder=\"{{cityVerbiage}}\" required>\r\n <mat-error *ngIf=\"cityFC?.errors?.required\">{{requiredErrorVerbiage}}</mat-error>\r\n </mat-form-field>\r\n <!-- State -->\r\n <mat-form-field fxFlex=\"20%\" fxFlex.lt-md=\"auto\">\r\n <mat-label>{{stateVerbiage}}</mat-label>\r\n <mat-select formControlName=\"state\" required>\r\n <mat-option *ngFor=\"let state of states\" id=\"{{id}}{{state}}\" [value]=\"state\">{{state}}</mat-option>\r\n </mat-select>\r\n <mat-error *ngIf=\"stateFC?.errors?.required\">{{requiredErrorVerbiage}}</mat-error>\r\n </mat-form-field>\r\n <!-- Zip Code -->\r\n <mat-form-field fxFlex=\"28.5%\" fxFlex.lt-md=\"50%\">\r\n <input matInput formControlName=\"zipCode\" id=\"{{id}}zipCode\" mask=\"00000\" [sofArNumbersOnly]\r\n placeholder=\"{{zipCodeVerbiage}}\" required minlength=\"5\" maxlength=\"5\">\r\n <mat-error *ngIf=\"zipCodeFC?.errors?.required\">{{requiredErrorVerbiage}}</mat-error>\r\n </mat-form-field>\r\n </div>\r\n</form>\r\n", styles: [".address-input{min-width:350px}.address-title{font-size:large}\n"] }]
93
+ }], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { id: [{
94
+ type: Input
95
+ }], street1Verbiage: [{
96
+ type: Input
97
+ }], street2Verbiage: [{
98
+ type: Input
99
+ }], cityVerbiage: [{
100
+ type: Input
101
+ }], zipCodeVerbiage: [{
102
+ type: Input
103
+ }], stateVerbiage: [{
104
+ type: Input
105
+ }], titleVerbiage: [{
106
+ type: Input
107
+ }], requiredErrorVerbiage: [{
108
+ type: Input
109
+ }] } });
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29mLWFkZHJlc3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJtYXR1cmUvc3JjL2xpYi9mb3Jtcy9jb21wb25lbnRzL3NvZi1hZGRyZXNzL3NvZi1hZGRyZXNzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FybWF0dXJlL3NyYy9saWIvZm9ybXMvY29tcG9uZW50cy9zb2YtYWRkcmVzcy9zb2YtYWRkcmVzcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBMEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7Ozs7QUFJbkQsd0JBQXdCO0FBTXhCLE1BQU0sT0FBTyxtQkFBbUI7SUFrRDlCOzs7T0FHRztJQUNILFlBQTZCLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBcERyRCw0Q0FBNEM7UUFDNUIsT0FBRSxHQUFXLEVBQUUsQ0FBQztRQUVoQyw0QkFBNEI7UUFDWixvQkFBZSxHQUFXLFVBQVUsQ0FBQztRQUVyRCw0QkFBNEI7UUFDWixvQkFBZSxHQUFXLFVBQVUsQ0FBQztRQUVyRCx3QkFBd0I7UUFDUixpQkFBWSxHQUFXLE1BQU0sQ0FBQztRQUU5Qyw0QkFBNEI7UUFDWixvQkFBZSxHQUFXLFVBQVUsQ0FBQztRQUVyRCxtQ0FBbUM7UUFDbkIsa0JBQWEsR0FBVyxPQUFPLENBQUM7UUFLaEQsK0NBQStDO1FBQy9CLDBCQUFxQixHQUFXLG1CQUFtQixDQUFDO1FBS3BFLHdCQUF3QjtRQUNSLFdBQU0sR0FBa0IsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUU1RCxnQ0FBZ0M7UUFDaEIsY0FBUyxHQUFnQixJQUFJLFdBQVcsQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXpGLGdDQUFnQztRQUNmLGNBQVMsR0FBZ0IsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUU1RCw0QkFBNEI7UUFDWixXQUFNLEdBQWdCLElBQUksV0FBVyxDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFdEYsNkJBQTZCO1FBQ2IsWUFBTyxHQUFnQixJQUFJLFdBQVcsQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXZGLGdDQUFnQztRQUNoQixjQUFTLEdBQWdCLElBQUksV0FBVyxDQUN0RCxTQUFTLEVBQ1QsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUN4RSxDQUFDO0lBTXVELENBQUM7SUFFMUQsMENBQTBDO0lBQ25DLFFBQVE7UUFDYixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQscUNBQXFDO0lBQzlCLGtCQUFrQjtRQUN2QixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO1NBQ3ZCO1FBRUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztZQUN0QyxPQUFPLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDdkIsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3ZCLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNqQixLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDbkIsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTO1NBQ3hCLENBQUMsQ0FBQztRQUVILE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRUQsbUNBQW1DO0lBQzVCLFVBQVU7UUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUU7WUFDekIsT0FBTyxTQUFTLENBQUM7U0FDbEI7UUFFRCxNQUFNLE1BQU0sR0FBVztZQUNyQixPQUFPLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLO1lBQzdCLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUs7U0FDMUIsQ0FBQztRQUNGLE1BQU0sT0FBTyxHQUFZO1lBQ3ZCLE9BQU8sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUs7WUFDN0IsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSztZQUM3QixJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLO1lBQ3ZCLE1BQU07U0FDUCxDQUFDO1FBRUYsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELGtDQUFrQztJQUMzQixPQUFPO1FBQ1osT0FBTyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO0lBQ2hELENBQUM7OEdBckdVLG1CQUFtQjtrR0FBbkIsbUJBQW1CLHNVQ2JoQyxvK0RBbUNBOzsyRkR0QmEsbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLGdCQUFnQjtnRkFPVixFQUFFO3NCQUFqQixLQUFLO2dCQUdVLGVBQWU7c0JBQTlCLEtBQUs7Z0JBR1UsZUFBZTtzQkFBOUIsS0FBSztnQkFHVSxZQUFZO3NCQUEzQixLQUFLO2dCQUdVLGVBQWU7c0JBQTlCLEtBQUs7Z0JBR1UsYUFBYTtzQkFBNUIsS0FBSztnQkFHVSxhQUFhO3NCQUE1QixLQUFLO2dCQUdVLHFCQUFxQjtzQkFBcEMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgVmFsaWRhdG9ycywgRm9ybUdyb3VwLCBGb3JtQnVpbGRlciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7IFN0YXRlcyB9IGZyb20gJy4uLy4uL21vZGVscy9lbnVtcy9zdGF0ZXMnO1xyXG5pbXBvcnQgeyBBZGRyZXNzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2FkZHJlc3MnO1xyXG5pbXBvcnQgeyBDb3VudHkgfSBmcm9tICcuLi8uLi9tb2RlbHMvY291bnR5JztcclxuXHJcbi8qKiBBZGRyZXNzIGNvbXBvbmVudCAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NvZi1hci1hZGRyZXNzJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc29mLWFkZHJlc3MuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NvZi1hZGRyZXNzLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFNvZkFkZHJlc3NDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICAvKiogSWRlbnRpZmllciBmb3IgdGhpcyBhZGRyZXNzIGNvbXBvbmVudCAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBpZDogc3RyaW5nID0gJyc7XHJcblxyXG4gIC8qKiBWZXJiaWFnZSBmb3Igc3RyZWV0IDEgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgc3RyZWV0MVZlcmJpYWdlOiBzdHJpbmcgPSAnU3RyZWV0IDEnO1xyXG5cclxuICAvKiogVmVyYmlhZ2UgZm9yIHN0cmVldCAyICovXHJcbiAgQElucHV0KCkgcHVibGljIHN0cmVldDJWZXJiaWFnZTogc3RyaW5nID0gJ1N0cmVldCAyJztcclxuXHJcbiAgLyoqIFZlcmJpYWdlIGZvciBjaXR5ICovXHJcbiAgQElucHV0KCkgcHVibGljIGNpdHlWZXJiaWFnZTogc3RyaW5nID0gJ0NpdHknO1xyXG5cclxuICAvKiogVmVyYmlhZ2UgZm9yIFpJUCBDb2RlICovXHJcbiAgQElucHV0KCkgcHVibGljIHppcENvZGVWZXJiaWFnZTogc3RyaW5nID0gJ1ppcCBDb2RlJztcclxuXHJcbiAgLyoqIFZlcmJpYWdlIGZvciB0aGUgc3RhdGUgaW5wdXQgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgc3RhdGVWZXJiaWFnZTogc3RyaW5nID0gJ1N0YXRlJztcclxuXHJcbiAgLyoqIFZlcmJpYWdlIGZvciB0aGUgdGl0bGUgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgdGl0bGVWZXJiaWFnZTogc3RyaW5nO1xyXG5cclxuICAvKiogVmVyYmlhZ2UgZm9yIHRoZSByZXF1aXJlZCBpbnB1dCB2ZXJiaWFnZSAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyByZXF1aXJlZEVycm9yVmVyYmlhZ2U6IHN0cmluZyA9ICdGaWVsZCBpcyByZXF1aXJlZCc7XHJcblxyXG4gIC8qKiBBZGRyZXNzIEZvcm0gZ3JvdXAgKi9cclxuICBwdWJsaWMgYWRkcmVzc0ZHOiBGb3JtR3JvdXA7XHJcblxyXG4gIC8qKiBUaGUgc3RhdGUgb3B0aW9ucyAqL1xyXG4gIHB1YmxpYyByZWFkb25seSBzdGF0ZXM6IEFycmF5PHN0cmluZz4gPSBPYmplY3Qua2V5cyhTdGF0ZXMpO1xyXG5cclxuICAvKiogRm9ybSBjb250cm9sIGZvciBzdHJlZXQgMSAqL1xyXG4gIHB1YmxpYyByZWFkb25seSBzdHJlZXQxRkM6IEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKHVuZGVmaW5lZCwgVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcblxyXG4gIC8qKiBGb3JtIGNvbnRyb2wgZm9yIHN0cmVldCAyICovXHJcbiAgcHJpdmF0ZSByZWFkb25seSBzdHJlZXQyRkM6IEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XHJcblxyXG4gIC8qKiBGb3JtIGNvbnRyb2wgZm9yIGNpdHkgKi9cclxuICBwdWJsaWMgcmVhZG9ubHkgY2l0eUZDOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCh1bmRlZmluZWQsIFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG5cclxuICAvKiogRm9ybSBjb250cm9sIGZvciBzdGF0ZSAqL1xyXG4gIHB1YmxpYyByZWFkb25seSBzdGF0ZUZDOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCh1bmRlZmluZWQsIFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG5cclxuICAvKiogRm9ybSBjb250cm9sIGZvciB6aXAgY29kZSAqL1xyXG4gIHB1YmxpYyByZWFkb25seSB6aXBDb2RlRkM6IEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKFxyXG4gICAgdW5kZWZpbmVkLFxyXG4gICAgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDUpLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCg1KV1cclxuICApO1xyXG5cclxuICAvKipcclxuICAgKiBDb25zdHJ1Y3RvciBmb3IgdGhlIGNvbXBvbmVudFxyXG4gICAqIEBwYXJhbSBmb3JtQnVpbGRlciBUaGUgZm9ybSBidWlsZGVyXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIpIHsgfVxyXG5cclxuICAvKiogQWN0aW9ucyB0byB0YWtlIHVwb24gaW5pdGlhbGl6YXRpb24gKi9cclxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNyZWF0ZUFkZHJlc3NHcm91cCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqIENyZWF0ZXMgdGhlIGFkZHJlc3MgZm9ybSBncm91cCAqL1xyXG4gIHB1YmxpYyBjcmVhdGVBZGRyZXNzR3JvdXAoKTogRm9ybUdyb3VwIHtcclxuICAgIGlmICh0aGlzLmFkZHJlc3NGRykge1xyXG4gICAgICByZXR1cm4gdGhpcy5hZGRyZXNzRkc7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5hZGRyZXNzRkcgPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcclxuICAgICAgc3RyZWV0MTogdGhpcy5zdHJlZXQxRkMsXHJcbiAgICAgIHN0cmVldDI6IHRoaXMuc3RyZWV0MkZDLFxyXG4gICAgICBjaXR5OiB0aGlzLmNpdHlGQyxcclxuICAgICAgc3RhdGU6IHRoaXMuc3RhdGVGQyxcclxuICAgICAgemlwQ29kZTogdGhpcy56aXBDb2RlRkNcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmFkZHJlc3NGRztcclxuICB9XHJcblxyXG4gIC8qKiBNYXBzIGFuZCByZXR1cm5zIHRoZSBhZGRyZXNzICovXHJcbiAgcHVibGljIGdldEFkZHJlc3MoKTogQWRkcmVzcyB7XHJcbiAgICBpZiAoIXRoaXMuYWRkcmVzc0ZHLnZhbGlkKSB7XHJcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgY291bnR5OiBDb3VudHkgPSB7XHJcbiAgICAgIHppcENvZGU6IHRoaXMuemlwQ29kZUZDLnZhbHVlLFxyXG4gICAgICBzdGF0ZTogdGhpcy5zdGF0ZUZDLnZhbHVlXHJcbiAgICB9O1xyXG4gICAgY29uc3QgYWRkcmVzczogQWRkcmVzcyA9IHtcclxuICAgICAgc3RyZWV0MTogdGhpcy5zdHJlZXQxRkMudmFsdWUsXHJcbiAgICAgIHN0cmVldDI6IHRoaXMuc3RyZWV0MkZDLnZhbHVlLFxyXG4gICAgICBjaXR5OiB0aGlzLmNpdHlGQy52YWx1ZSxcclxuICAgICAgY291bnR5XHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBhZGRyZXNzO1xyXG4gIH1cclxuXHJcbiAgLyoqIENoZWNrcyBpZiB0aGUgZm9ybSBpcyB2YWxpZCAqL1xyXG4gIHB1YmxpYyBpc1ZhbGlkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkcmVzc0ZHICYmIHRoaXMuYWRkcmVzc0ZHLnZhbGlkO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPHAgY2xhc3M9XCJhZGRyZXNzLXRpdGxlXCIgKm5nSWY9XCJ0aXRsZVZlcmJpYWdlICYmIHRpdGxlVmVyYmlhZ2UgIT0gJydcIiBbaW5uZXJIdG1sXT1cInRpdGxlVmVyYmlhZ2VcIj48L3A+XHJcbjxmb3JtIFtmb3JtR3JvdXBdPVwiYWRkcmVzc0ZHXCI+XHJcbiAgPGRpdiBmeExheW91dD1cInJvdyB3cmFwXCIgZnhMYXlvdXRHYXA9XCIxJSBncmlkXCI+XHJcbiAgICA8IS0tIEFkZHJlc3MgMSAtLT5cclxuICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImFkZHJlc3MtaW5wdXRcIiBmeEZsZXg9XCJhdXRvXCI+XHJcbiAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJzdHJlZXQxXCIgaWQ9XCJ7e2lkfX1zdHJlZXQxXCIgcGxhY2Vob2xkZXI9XCJ7e3N0cmVldDFWZXJiaWFnZX19XCIgcmVxdWlyZWQ+XHJcbiAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJzdHJlZXQxRkM/LmVycm9ycz8ucmVxdWlyZWRcIj57e3JlcXVpcmVkRXJyb3JWZXJiaWFnZX19PC9tYXQtZXJyb3I+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgPCEtLSBBZGRyZXNzIDIgLS0+XHJcbiAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJhZGRyZXNzLWlucHV0XCIgZnhGbGV4PVwiYXV0b1wiPlxyXG4gICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwic3RyZWV0MlwiIGlkPVwie3tpZH19c3RyZWV0MlwiIHBsYWNlaG9sZGVyPVwie3tzdHJlZXQyVmVyYmlhZ2V9fVwiPlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGZ4TGF5b3V0PVwicm93IHdyYXBcIiBmeExheW91dEdhcD1cIjElXCI+XHJcbiAgICA8IS0tIENpdHkgLS0+XHJcbiAgICA8bWF0LWZvcm0tZmllbGQgZnhGbGV4PVwiNDkuNSVcIiBmeEZsZXgubHQtbWQ9XCI2MCVcIj5cclxuICAgICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cImNpdHlcIiBpZD1cInt7aWR9fWNpdHlcIiBwbGFjZWhvbGRlcj1cInt7Y2l0eVZlcmJpYWdlfX1cIiByZXF1aXJlZD5cclxuICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImNpdHlGQz8uZXJyb3JzPy5yZXF1aXJlZFwiPnt7cmVxdWlyZWRFcnJvclZlcmJpYWdlfX08L21hdC1lcnJvcj5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8IS0tIFN0YXRlIC0tPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkIGZ4RmxleD1cIjIwJVwiIGZ4RmxleC5sdC1tZD1cImF1dG9cIj5cclxuICAgICAgPG1hdC1sYWJlbD57e3N0YXRlVmVyYmlhZ2V9fTwvbWF0LWxhYmVsPlxyXG4gICAgICA8bWF0LXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJzdGF0ZVwiIHJlcXVpcmVkPlxyXG4gICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBzdGF0ZSBvZiBzdGF0ZXNcIiBpZD1cInt7aWR9fXt7c3RhdGV9fVwiIFt2YWx1ZV09XCJzdGF0ZVwiPnt7c3RhdGV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICA8bWF0LWVycm9yICpuZ0lmPVwic3RhdGVGQz8uZXJyb3JzPy5yZXF1aXJlZFwiPnt7cmVxdWlyZWRFcnJvclZlcmJpYWdlfX08L21hdC1lcnJvcj5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8IS0tIFppcCBDb2RlIC0tPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkIGZ4RmxleD1cIjI4LjUlXCIgZnhGbGV4Lmx0LW1kPVwiNTAlXCI+XHJcbiAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJ6aXBDb2RlXCIgaWQ9XCJ7e2lkfX16aXBDb2RlXCIgbWFzaz1cIjAwMDAwXCIgW3NvZkFyTnVtYmVyc09ubHldXHJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJ7e3ppcENvZGVWZXJiaWFnZX19XCIgcmVxdWlyZWQgbWlubGVuZ3RoPVwiNVwiIG1heGxlbmd0aD1cIjVcIj5cclxuICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiemlwQ29kZUZDPy5lcnJvcnM/LnJlcXVpcmVkXCI+e3tyZXF1aXJlZEVycm9yVmVyYmlhZ2V9fTwvbWF0LWVycm9yPlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICA8L2Rpdj5cclxuPC9mb3JtPlxyXG4iXX0=
@@ -1,78 +1,78 @@
1
- import { Directive, HostListener } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- /**
4
- * The alphanumeric directive
5
- */
6
- export class AlphaNumericDirective {
7
- /**
8
- * Constructs the directive
9
- * @param el The element
10
- */
11
- constructor(el) {
12
- this.el = el;
13
- /** The array of allowed keys */
14
- this.allowedKeys = ['backspace', 'delete', 'escape', 'enter', 'tab'];
15
- }
16
- /**
17
- * Only allows alphanumeric inputs
18
- * @param event Key Event
19
- */
20
- onKeyDown(event) {
21
- const e = event;
22
- // Reset values each time
23
- this.isNumber = false;
24
- this.isLetter = false;
25
- if (this.allowedKeys.indexOf(e.code.toLowerCase()) !== -1 ||
26
- // Allow: Ctrl+A
27
- (e.code.toLowerCase() === 'keya' && e.ctrlKey) ||
28
- // Allow: Ctrl+C
29
- (e.code.toLowerCase() === 'keyc' && e.ctrlKey) ||
30
- // Allow: Ctrl+X
31
- (e.code.toLowerCase() === 'keyx' && e.ctrlKey)) {
32
- // let it happen, don't do anything
33
- return;
34
- }
35
- // Ensure that it is a letter and stop the keypress if its not a letter
36
- if (e.code.toLowerCase().includes('digit') || e.code.toLowerCase().includes('numpad')) {
37
- this.isLetter = false;
38
- this.isNumber = true;
39
- }
40
- // Ensure that it is a number and stop the keypress
41
- let letterRegexMatch = e.code.toLowerCase().match(/key[a-zA-Z]/g);
42
- if (letterRegexMatch) {
43
- this.isNumber = false;
44
- this.isLetter = true;
45
- }
46
- // If the event is shift key and its not with a letter, its going to be a special character we want to prevent
47
- if (e.shiftKey && !letterRegexMatch) {
48
- this.isNumber = false;
49
- this.isLetter = false;
50
- }
51
- // Ensure that it is either a letter or a number
52
- if (!this.isLetter && !this.isNumber) {
53
- e.preventDefault();
54
- }
55
- }
56
- /**
57
- * Prevent copy pasted inputs
58
- * @param event the event
59
- */
60
- blockPaste(event) {
61
- event.preventDefault();
62
- }
63
- }
64
- AlphaNumericDirectivefac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: AlphaNumericDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
65
- AlphaNumericDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.7", type: AlphaNumericDirective, selector: "[alphanumeric]", host: { listeners: { "keydown": "onKeyDown($event)", "paste": "blockPaste($event)" } }, ngImport: i0 });
66
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: AlphaNumericDirective, decorators: [{
67
- type: Directive,
68
- args: [{
69
- selector: '[alphanumeric]'
70
- }]
71
- }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { onKeyDown: [{
72
- type: HostListener,
73
- args: ['keydown', ['$event']]
74
- }], blockPaste: [{
75
- type: HostListener,
76
- args: ['paste', ['$event']]
77
- }] } });
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxwaGFudW1lcmljLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FybWF0dXJlL3NyYy9saWIvZm9ybXMvZGlyZWN0aXZlcy9hbHBoYW51bWVyaWMvYWxwaGFudW1lcmljLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFcEU7O0dBRUc7QUFJSCxNQUFNLE9BQU8scUJBQXFCO0lBV2hDOzs7T0FHRztJQUNILFlBQW9CLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBYmxDLGdDQUFnQztRQUN4QixnQkFBVyxHQUFrQixDQUFDLFdBQVcsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztJQVlqRCxDQUFDO0lBRXZDOzs7T0FHRztJQUNrQyxTQUFTLENBQUMsS0FBb0I7UUFDakUsTUFBTSxDQUFDLEdBQUcsS0FBc0IsQ0FBQztRQUVqQyx5QkFBeUI7UUFDekIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFFdEIsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZELGdCQUFnQjtZQUNoQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEtBQUssTUFBTSxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUM7WUFDOUMsZ0JBQWdCO1lBQ2hCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxNQUFNLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQztZQUM5QyxnQkFBZ0I7WUFDaEIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLE1BQU0sSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDaEQsbUNBQW1DO1lBQ25DLE9BQU87U0FDUjtRQUNELHVFQUF1RTtRQUN2RSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3JGLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1NBQ3RCO1FBQ0QsbURBQW1EO1FBQ25ELElBQUksZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDbEUsSUFBSSxnQkFBZ0IsRUFBRTtZQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztZQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztTQUN0QjtRQUNELDhHQUE4RztRQUM5RyxJQUFJLENBQUMsQ0FBQyxRQUFRLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztZQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztTQUN2QjtRQUNELGdEQUFnRDtRQUNoRCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDcEMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO1NBQ3BCO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNnQyxVQUFVLENBQUMsS0FBb0I7UUFDaEUsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3pCLENBQUM7O2tIQWxFVSxxQkFBcUI7c0dBQXJCLHFCQUFxQjsyRkFBckIscUJBQXFCO2tCQUhqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7aUJBQzNCO2lHQXNCc0MsU0FBUztzQkFBN0MsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBMkNBLFVBQVU7c0JBQTVDLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbi8qKlxyXG4gKiBUaGUgYWxwaGFudW1lcmljIGRpcmVjdGl2ZVxyXG4gKi9cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbYWxwaGFudW1lcmljXSdcclxufSlcclxuZXhwb3J0IGNsYXNzIEFscGhhTnVtZXJpY0RpcmVjdGl2ZSB7XHJcblxyXG4gIC8qKiBUaGUgYXJyYXkgb2YgYWxsb3dlZCBrZXlzICovXHJcbiAgcHJpdmF0ZSBhbGxvd2VkS2V5czogQXJyYXk8c3RyaW5nPiA9IFsnYmFja3NwYWNlJywgJ2RlbGV0ZScsICdlc2NhcGUnLCAnZW50ZXInLCAndGFiJ107XHJcblxyXG4gIC8qKiBXaGV0aGVyIG9yIG5vdCB0aGUgZW50ZXJlZCB2YWx1ZSBpcyBhIGxldHRlciAqL1xyXG4gIHByaXZhdGUgaXNMZXR0ZXI6IGJvb2xlYW47XHJcblxyXG4gIC8qKiBXaGV0aGVyIG9yIG5vdCB0aGUgZW50ZXJlZCB2YWx1ZSBpcyBhIG51bWJlciAqL1xyXG4gIHByaXZhdGUgaXNOdW1iZXI6IGJvb2xlYW47XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbnN0cnVjdHMgdGhlIGRpcmVjdGl2ZVxyXG4gICAqIEBwYXJhbSBlbCBUaGUgZWxlbWVudFxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYpIHsgfVxyXG5cclxuICAvKipcclxuICAgKiBPbmx5IGFsbG93cyBhbHBoYW51bWVyaWMgaW5wdXRzXHJcbiAgICogQHBhcmFtIGV2ZW50IEtleSBFdmVudFxyXG4gICAqL1xyXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKSBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGNvbnN0IGUgPSBldmVudCBhcyBLZXlib2FyZEV2ZW50O1xyXG5cclxuICAgIC8vIFJlc2V0IHZhbHVlcyBlYWNoIHRpbWVcclxuICAgIHRoaXMuaXNOdW1iZXIgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNMZXR0ZXIgPSBmYWxzZTtcclxuXHJcbiAgICBpZiAodGhpcy5hbGxvd2VkS2V5cy5pbmRleE9mKGUuY29kZS50b0xvd2VyQ2FzZSgpKSAhPT0gLTEgfHxcclxuICAgICAgLy8gQWxsb3c6IEN0cmwrQVxyXG4gICAgICAoZS5jb2RlLnRvTG93ZXJDYXNlKCkgPT09ICdrZXlhJyAmJiBlLmN0cmxLZXkpIHx8XHJcbiAgICAgIC8vIEFsbG93OiBDdHJsK0NcclxuICAgICAgKGUuY29kZS50b0xvd2VyQ2FzZSgpID09PSAna2V5YycgJiYgZS5jdHJsS2V5KSB8fFxyXG4gICAgICAvLyBBbGxvdzogQ3RybCtYXHJcbiAgICAgIChlLmNvZGUudG9Mb3dlckNhc2UoKSA9PT0gJ2tleXgnICYmIGUuY3RybEtleSkpIHtcclxuICAgICAgLy8gbGV0IGl0IGhhcHBlbiwgZG9uJ3QgZG8gYW55dGhpbmdcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgLy8gRW5zdXJlIHRoYXQgaXQgaXMgYSBsZXR0ZXIgYW5kIHN0b3AgdGhlIGtleXByZXNzIGlmIGl0cyBub3QgYSBsZXR0ZXJcclxuICAgIGlmIChlLmNvZGUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygnZGlnaXQnKSB8fCBlLmNvZGUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygnbnVtcGFkJykpIHtcclxuICAgICAgdGhpcy5pc0xldHRlciA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmlzTnVtYmVyID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIC8vIEVuc3VyZSB0aGF0IGl0IGlzIGEgbnVtYmVyIGFuZCBzdG9wIHRoZSBrZXlwcmVzc1xyXG4gICAgbGV0IGxldHRlclJlZ2V4TWF0Y2ggPSBlLmNvZGUudG9Mb3dlckNhc2UoKS5tYXRjaCgva2V5W2EtekEtWl0vZyk7XHJcbiAgICBpZiAobGV0dGVyUmVnZXhNYXRjaCkge1xyXG4gICAgICB0aGlzLmlzTnVtYmVyID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuaXNMZXR0ZXIgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgLy8gSWYgdGhlIGV2ZW50IGlzIHNoaWZ0IGtleSBhbmQgaXRzIG5vdCB3aXRoIGEgbGV0dGVyLCBpdHMgZ29pbmcgdG8gYmUgYSBzcGVjaWFsIGNoYXJhY3RlciB3ZSB3YW50IHRvIHByZXZlbnRcclxuICAgIGlmIChlLnNoaWZ0S2V5ICYmICFsZXR0ZXJSZWdleE1hdGNoKSB7XHJcbiAgICAgIHRoaXMuaXNOdW1iZXIgPSBmYWxzZTtcclxuICAgICAgdGhpcy5pc0xldHRlciA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgLy8gRW5zdXJlIHRoYXQgaXQgaXMgZWl0aGVyIGEgbGV0dGVyIG9yIGEgbnVtYmVyXHJcbiAgICBpZiAoIXRoaXMuaXNMZXR0ZXIgJiYgIXRoaXMuaXNOdW1iZXIpIHtcclxuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUHJldmVudCBjb3B5IHBhc3RlZCBpbnB1dHNcclxuICAgKiBAcGFyYW0gZXZlbnQgdGhlIGV2ZW50XHJcbiAgICovXHJcbiAgQEhvc3RMaXN0ZW5lcigncGFzdGUnLCBbJyRldmVudCddKSBibG9ja1Bhc3RlKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
1
+ import { Directive, HostListener } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * The alphanumeric directive
5
+ */
6
+ export class AlphaNumericDirective {
7
+ /**
8
+ * Constructs the directive
9
+ * @param el The element
10
+ */
11
+ constructor(el) {
12
+ this.el = el;
13
+ /** The array of allowed keys */
14
+ this.allowedKeys = ['backspace', 'delete', 'escape', 'enter', 'tab'];
15
+ }
16
+ /**
17
+ * Only allows alphanumeric inputs
18
+ * @param event Key Event
19
+ */
20
+ onKeyDown(event) {
21
+ const e = event;
22
+ // Reset values each time
23
+ this.isNumber = false;
24
+ this.isLetter = false;
25
+ if (this.allowedKeys.indexOf(e.code.toLowerCase()) !== -1 ||
26
+ // Allow: Ctrl+A
27
+ (e.code.toLowerCase() === 'keya' && e.ctrlKey) ||
28
+ // Allow: Ctrl+C
29
+ (e.code.toLowerCase() === 'keyc' && e.ctrlKey) ||
30
+ // Allow: Ctrl+X
31
+ (e.code.toLowerCase() === 'keyx' && e.ctrlKey)) {
32
+ // let it happen, don't do anything
33
+ return;
34
+ }
35
+ // Ensure that it is a letter and stop the keypress if its not a letter
36
+ if (e.code.toLowerCase().includes('digit') || e.code.toLowerCase().includes('numpad')) {
37
+ this.isLetter = false;
38
+ this.isNumber = true;
39
+ }
40
+ // Ensure that it is a number and stop the keypress
41
+ let letterRegexMatch = e.code.toLowerCase().match(/key[a-zA-Z]/g);
42
+ if (letterRegexMatch) {
43
+ this.isNumber = false;
44
+ this.isLetter = true;
45
+ }
46
+ // If the event is shift key and its not with a letter, its going to be a special character we want to prevent
47
+ if (e.shiftKey && !letterRegexMatch) {
48
+ this.isNumber = false;
49
+ this.isLetter = false;
50
+ }
51
+ // Ensure that it is either a letter or a number
52
+ if (!this.isLetter && !this.isNumber) {
53
+ e.preventDefault();
54
+ }
55
+ }
56
+ /**
57
+ * Prevent copy pasted inputs
58
+ * @param event the event
59
+ */
60
+ blockPaste(event) {
61
+ event.preventDefault();
62
+ }
63
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AlphaNumericDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
64
+ static { thisdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.2", type: AlphaNumericDirective, selector: "[alphanumeric]", host: { listeners: { "keydown": "onKeyDown($event)", "paste": "blockPaste($event)" } }, ngImport: i0 }); }
65
+ }
66
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AlphaNumericDirective, decorators: [{
67
+ type: Directive,
68
+ args: [{
69
+ selector: '[alphanumeric]'
70
+ }]
71
+ }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { onKeyDown: [{
72
+ type: HostListener,
73
+ args: ['keydown', ['$event']]
74
+ }], blockPaste: [{
75
+ type: HostListener,
76
+ args: ['paste', ['$event']]
77
+ }] } });
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxwaGFudW1lcmljLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FybWF0dXJlL3NyYy9saWIvZm9ybXMvZGlyZWN0aXZlcy9hbHBoYW51bWVyaWMvYWxwaGFudW1lcmljLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFcEU7O0dBRUc7QUFJSCxNQUFNLE9BQU8scUJBQXFCO0lBV2hDOzs7T0FHRztJQUNILFlBQW9CLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBYmxDLGdDQUFnQztRQUN4QixnQkFBVyxHQUFrQixDQUFDLFdBQVcsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztJQVlqRCxDQUFDO0lBRXZDOzs7T0FHRztJQUNrQyxTQUFTLENBQUMsS0FBb0I7UUFDakUsTUFBTSxDQUFDLEdBQUcsS0FBc0IsQ0FBQztRQUVqQyx5QkFBeUI7UUFDekIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFFdEIsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZELGdCQUFnQjtZQUNoQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEtBQUssTUFBTSxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUM7WUFDOUMsZ0JBQWdCO1lBQ2hCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxNQUFNLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQztZQUM5QyxnQkFBZ0I7WUFDaEIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLE1BQU0sSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDaEQsbUNBQW1DO1lBQ25DLE9BQU87U0FDUjtRQUNELHVFQUF1RTtRQUN2RSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3JGLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1NBQ3RCO1FBQ0QsbURBQW1EO1FBQ25ELElBQUksZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDbEUsSUFBSSxnQkFBZ0IsRUFBRTtZQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztZQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztTQUN0QjtRQUNELDhHQUE4RztRQUM5RyxJQUFJLENBQUMsQ0FBQyxRQUFRLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztZQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztTQUN2QjtRQUNELGdEQUFnRDtRQUNoRCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDcEMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO1NBQ3BCO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNnQyxVQUFVLENBQUMsS0FBb0I7UUFDaEUsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3pCLENBQUM7OEdBbEVVLHFCQUFxQjtrR0FBckIscUJBQXFCOzsyRkFBckIscUJBQXFCO2tCQUhqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7aUJBQzNCOytFQXNCc0MsU0FBUztzQkFBN0MsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBMkNBLFVBQVU7c0JBQTVDLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbi8qKlxyXG4gKiBUaGUgYWxwaGFudW1lcmljIGRpcmVjdGl2ZVxyXG4gKi9cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbYWxwaGFudW1lcmljXSdcclxufSlcclxuZXhwb3J0IGNsYXNzIEFscGhhTnVtZXJpY0RpcmVjdGl2ZSB7XHJcblxyXG4gIC8qKiBUaGUgYXJyYXkgb2YgYWxsb3dlZCBrZXlzICovXHJcbiAgcHJpdmF0ZSBhbGxvd2VkS2V5czogQXJyYXk8c3RyaW5nPiA9IFsnYmFja3NwYWNlJywgJ2RlbGV0ZScsICdlc2NhcGUnLCAnZW50ZXInLCAndGFiJ107XHJcblxyXG4gIC8qKiBXaGV0aGVyIG9yIG5vdCB0aGUgZW50ZXJlZCB2YWx1ZSBpcyBhIGxldHRlciAqL1xyXG4gIHByaXZhdGUgaXNMZXR0ZXI6IGJvb2xlYW47XHJcblxyXG4gIC8qKiBXaGV0aGVyIG9yIG5vdCB0aGUgZW50ZXJlZCB2YWx1ZSBpcyBhIG51bWJlciAqL1xyXG4gIHByaXZhdGUgaXNOdW1iZXI6IGJvb2xlYW47XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbnN0cnVjdHMgdGhlIGRpcmVjdGl2ZVxyXG4gICAqIEBwYXJhbSBlbCBUaGUgZWxlbWVudFxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYpIHsgfVxyXG5cclxuICAvKipcclxuICAgKiBPbmx5IGFsbG93cyBhbHBoYW51bWVyaWMgaW5wdXRzXHJcbiAgICogQHBhcmFtIGV2ZW50IEtleSBFdmVudFxyXG4gICAqL1xyXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKSBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGNvbnN0IGUgPSBldmVudCBhcyBLZXlib2FyZEV2ZW50O1xyXG5cclxuICAgIC8vIFJlc2V0IHZhbHVlcyBlYWNoIHRpbWVcclxuICAgIHRoaXMuaXNOdW1iZXIgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNMZXR0ZXIgPSBmYWxzZTtcclxuXHJcbiAgICBpZiAodGhpcy5hbGxvd2VkS2V5cy5pbmRleE9mKGUuY29kZS50b0xvd2VyQ2FzZSgpKSAhPT0gLTEgfHxcclxuICAgICAgLy8gQWxsb3c6IEN0cmwrQVxyXG4gICAgICAoZS5jb2RlLnRvTG93ZXJDYXNlKCkgPT09ICdrZXlhJyAmJiBlLmN0cmxLZXkpIHx8XHJcbiAgICAgIC8vIEFsbG93OiBDdHJsK0NcclxuICAgICAgKGUuY29kZS50b0xvd2VyQ2FzZSgpID09PSAna2V5YycgJiYgZS5jdHJsS2V5KSB8fFxyXG4gICAgICAvLyBBbGxvdzogQ3RybCtYXHJcbiAgICAgIChlLmNvZGUudG9Mb3dlckNhc2UoKSA9PT0gJ2tleXgnICYmIGUuY3RybEtleSkpIHtcclxuICAgICAgLy8gbGV0IGl0IGhhcHBlbiwgZG9uJ3QgZG8gYW55dGhpbmdcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgLy8gRW5zdXJlIHRoYXQgaXQgaXMgYSBsZXR0ZXIgYW5kIHN0b3AgdGhlIGtleXByZXNzIGlmIGl0cyBub3QgYSBsZXR0ZXJcclxuICAgIGlmIChlLmNvZGUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygnZGlnaXQnKSB8fCBlLmNvZGUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygnbnVtcGFkJykpIHtcclxuICAgICAgdGhpcy5pc0xldHRlciA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmlzTnVtYmVyID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIC8vIEVuc3VyZSB0aGF0IGl0IGlzIGEgbnVtYmVyIGFuZCBzdG9wIHRoZSBrZXlwcmVzc1xyXG4gICAgbGV0IGxldHRlclJlZ2V4TWF0Y2ggPSBlLmNvZGUudG9Mb3dlckNhc2UoKS5tYXRjaCgva2V5W2EtekEtWl0vZyk7XHJcbiAgICBpZiAobGV0dGVyUmVnZXhNYXRjaCkge1xyXG4gICAgICB0aGlzLmlzTnVtYmVyID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuaXNMZXR0ZXIgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgLy8gSWYgdGhlIGV2ZW50IGlzIHNoaWZ0IGtleSBhbmQgaXRzIG5vdCB3aXRoIGEgbGV0dGVyLCBpdHMgZ29pbmcgdG8gYmUgYSBzcGVjaWFsIGNoYXJhY3RlciB3ZSB3YW50IHRvIHByZXZlbnRcclxuICAgIGlmIChlLnNoaWZ0S2V5ICYmICFsZXR0ZXJSZWdleE1hdGNoKSB7XHJcbiAgICAgIHRoaXMuaXNOdW1iZXIgPSBmYWxzZTtcclxuICAgICAgdGhpcy5pc0xldHRlciA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgLy8gRW5zdXJlIHRoYXQgaXQgaXMgZWl0aGVyIGEgbGV0dGVyIG9yIGEgbnVtYmVyXHJcbiAgICBpZiAoIXRoaXMuaXNMZXR0ZXIgJiYgIXRoaXMuaXNOdW1iZXIpIHtcclxuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUHJldmVudCBjb3B5IHBhc3RlZCBpbnB1dHNcclxuICAgKiBAcGFyYW0gZXZlbnQgdGhlIGV2ZW50XHJcbiAgICovXHJcbiAgQEhvc3RMaXN0ZW5lcigncGFzdGUnLCBbJyRldmVudCddKSBibG9ja1Bhc3RlKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gIH1cclxuXHJcbn1cclxuIl19