@softheon/armature 10.45.4 → 15.0.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 (465) hide show
  1. package/assets/styles/material-overrides.scss +103 -88
  2. package/assets/styles/sof-styles.scss +442 -376
  3. package/esm2020/lib/alert-banner/alert-banner-api.mjs +10 -0
  4. package/esm2020/lib/alert-banner/alert-banner.module.mjs +41 -0
  5. package/esm2020/lib/alert-banner/components/alert-banner/alert-banner.component.mjs +83 -0
  6. package/esm2020/lib/alert-banner/models/alert-banner-config.mjs +2 -0
  7. package/esm2020/lib/alert-banner/models/alert-banner-context.mjs +2 -0
  8. package/esm2020/lib/alert-banner/models/constants.mjs +16 -0
  9. package/esm2020/lib/alert-banner/services/alert-banner.service.mjs +44 -0
  10. package/esm2020/lib/armature.module.mjs +176 -0
  11. package/esm2020/lib/base-components/base-component-api.mjs +9 -0
  12. package/esm2020/lib/base-components/base-component.module.mjs +93 -0
  13. package/esm2020/lib/base-components/sof-alert/sof-alert.component.mjs +79 -0
  14. package/esm2020/lib/base-components/sof-banner/sof-banner.component.mjs +49 -0
  15. package/esm2020/lib/base-components/sof-button-toggle-group/sof-button-toggle-group.component.mjs +188 -0
  16. package/esm2020/lib/base-components/sof-modal/sof-modal.component.mjs +58 -0
  17. package/esm2020/lib/base-components/sof-progress-bar/sof-progress-bar.component.mjs +79 -0
  18. package/esm2020/lib/component-save-print/components/component-save-print/component-save-print.component.mjs +91 -0
  19. package/esm2020/lib/component-save-print/services/component-save-print.service.mjs +30 -0
  20. package/esm2020/lib/component-save-print/sof-ar-component-save-print.module.mjs +32 -0
  21. package/esm2020/lib/core/client-generated/api/session.service.mjs +242 -0
  22. package/esm2020/lib/core/client-generated/configuration.mjs +59 -0
  23. package/esm2020/lib/core/client-generated/encoder.mjs +17 -0
  24. package/esm2020/lib/core/client-generated/model/applicationUserModel.mjs +20 -0
  25. package/esm2020/lib/core/client-generated/model/assertedUserModel.mjs +2 -0
  26. package/esm2020/lib/core/client-generated/model/brandingModel.mjs +2 -0
  27. package/esm2020/lib/core/client-generated/model/errorModel.mjs +13 -0
  28. package/esm2020/lib/core/client-generated/model/folderLink.mjs +13 -0
  29. package/esm2020/lib/core/client-generated/model/identityProfile.mjs +2 -0
  30. package/esm2020/lib/core/client-generated/model/models.mjs +20 -0
  31. package/esm2020/lib/core/client-generated/model/oAuthModel.mjs +13 -0
  32. package/esm2020/lib/core/client-generated/model/preferencesRow.mjs +13 -0
  33. package/esm2020/lib/core/client-generated/model/rolesRow.mjs +13 -0
  34. package/esm2020/lib/core/client-generated/model/sessionGetResponseModel.mjs +2 -0
  35. package/esm2020/lib/core/client-generated/model/sessionPostRequestModel.mjs +2 -0
  36. package/esm2020/lib/core/client-generated/model/sessionPostResponseModel.mjs +2 -0
  37. package/esm2020/lib/core/client-generated/model/sessionPutRequestModel.mjs +2 -0
  38. package/esm2020/lib/core/client-generated/model/sessionPutResponseModel.mjs +2 -0
  39. package/esm2020/lib/core/client-generated/model/sessionResponseModel.mjs +2 -0
  40. package/esm2020/lib/core/client-generated/model/settingsProfile.mjs +2 -0
  41. package/esm2020/lib/core/client-generated/model/themePaletteColorsModel.mjs +13 -0
  42. package/esm2020/lib/core/client-generated/model/themePaletteModel.mjs +2 -0
  43. package/esm2020/lib/core/client-generated/model/trackingModel.mjs +13 -0
  44. package/esm2020/lib/core/client-generated/model/validationRecordsRow.mjs +13 -0
  45. package/esm2020/lib/core/client-generated/variables.mjs +9 -0
  46. package/esm2020/lib/core/components/app-template/app-template.component.mjs +250 -0
  47. package/esm2020/lib/core/functions/guid.mjs +11 -0
  48. package/esm2020/lib/core/functions/naming-convention.mjs +33 -0
  49. package/esm2020/lib/core/initializer/abstract-startup-service.mjs +4 -0
  50. package/esm2020/lib/core/initializer/initializer.service.mjs +189 -0
  51. package/esm2020/lib/core/interceptors/armature-auth-token-append.interceptor.mjs +73 -0
  52. package/esm2020/lib/core/models/base-config.mjs +2 -0
  53. package/esm2020/lib/core/models/constants.mjs +13 -0
  54. package/esm2020/lib/core/models/data-store-config.mjs +4 -0
  55. package/esm2020/lib/core/models/header-config.mjs +2 -0
  56. package/esm2020/lib/core/models/http-verbs.mjs +9 -0
  57. package/esm2020/lib/core/models/navigation-config.mjs +2 -0
  58. package/esm2020/lib/core/models/oidc-auth-settings.mjs +2 -0
  59. package/esm2020/lib/core/models/route-path.mjs +7 -0
  60. package/esm2020/lib/core/models/session-config.mjs +4 -0
  61. package/esm2020/lib/core/models/styles.mjs +2 -0
  62. package/esm2020/lib/core/models/typed-session.mjs +4 -0
  63. package/esm2020/lib/core/models/user-entity-service-config.mjs +12 -0
  64. package/esm2020/lib/core/services/authorization.service.mjs +175 -0
  65. package/esm2020/lib/core/services/banner.service.mjs +43 -0
  66. package/esm2020/lib/core/services/base-config.service.mjs +32 -0
  67. package/esm2020/lib/core/services/custom-auth-config.service.mjs +4 -0
  68. package/esm2020/lib/core/services/default-config.service.mjs +19 -0
  69. package/esm2020/lib/core/services/session.service.mjs +385 -0
  70. package/esm2020/lib/core/services/user-entity.service.mjs +140 -0
  71. package/esm2020/lib/distributed-cache/client-generated/api/api.mjs +4 -0
  72. package/esm2020/lib/distributed-cache/client-generated/api/cache.service.mjs +213 -0
  73. package/esm2020/lib/distributed-cache/client-generated/configuration.mjs +59 -0
  74. package/esm2020/lib/distributed-cache/client-generated/encoder.mjs +17 -0
  75. package/esm2020/lib/distributed-cache/client-generated/model/cacheExpirationType.mjs +16 -0
  76. package/esm2020/lib/distributed-cache/client-generated/model/createCacheEntryRequestModel.mjs +2 -0
  77. package/esm2020/lib/distributed-cache/client-generated/model/models.mjs +5 -0
  78. package/esm2020/lib/distributed-cache/client-generated/model/retrieveCacheEntryResponseModel.mjs +13 -0
  79. package/esm2020/lib/distributed-cache/client-generated/model/updateCacheEntryRequestModel.mjs +13 -0
  80. package/esm2020/lib/distributed-cache/client-generated/variables.mjs +9 -0
  81. package/esm2020/lib/distributed-cache/distributed-cache-api.mjs +8 -0
  82. package/esm2020/lib/distributed-cache/distributed-cache.module.mjs +38 -0
  83. package/esm2020/lib/distributed-cache/models/constants.mjs +3 -0
  84. package/esm2020/lib/distributed-cache/models/policy-person.mjs +9 -0
  85. package/esm2020/lib/distributed-cache/services/server-cache.service.mjs +48 -0
  86. package/esm2020/lib/error/components/error-common/error-common.component.mjs +25 -0
  87. package/esm2020/lib/error/error-api.mjs +7 -0
  88. package/esm2020/lib/error/error.module.mjs +31 -0
  89. package/esm2020/lib/error/models/error-common-config.mjs +8 -0
  90. package/esm2020/lib/faq/components/faq/faq.component.mjs +40 -0
  91. package/esm2020/lib/faq/faq-api.mjs +8 -0
  92. package/esm2020/lib/faq/faq.module.mjs +41 -0
  93. package/esm2020/lib/faq/models/faq-config.mjs +4 -0
  94. package/esm2020/lib/faq/models/faq.mjs +8 -0
  95. package/esm2020/lib/footer/components/footer/footer.component.mjs +25 -0
  96. package/esm2020/lib/footer/components/site-map/site-map.component.mjs +25 -0
  97. package/esm2020/lib/footer/footer-api.mjs +10 -0
  98. package/esm2020/lib/footer/footer.module.mjs +45 -0
  99. package/esm2020/lib/footer/models/enum/site-map-direction.mjs +15 -0
  100. package/esm2020/lib/footer/models/footer-config.mjs +4 -0
  101. package/esm2020/lib/footer/models/site-map-models.mjs +2 -0
  102. package/esm2020/lib/forms/components/sof-address/sof-address.component.mjs +110 -0
  103. package/esm2020/lib/forms/directives/alphanumeric/alphanumeric.directive.mjs +78 -0
  104. package/esm2020/lib/forms/directives/input-trim/input-trim.directive.mjs +110 -0
  105. package/esm2020/lib/forms/directives/letters-only/letters-only.directive.mjs +72 -0
  106. package/esm2020/lib/forms/directives/numbers-only/numbers-only.directive.mjs +60 -0
  107. package/esm2020/lib/forms/forms-api.mjs +19 -0
  108. package/esm2020/lib/forms/forms.module.mjs +83 -0
  109. package/esm2020/lib/forms/models/address.mjs +2 -0
  110. package/esm2020/lib/forms/models/constants.mjs +10 -0
  111. package/esm2020/lib/forms/models/county.mjs +2 -0
  112. package/esm2020/lib/forms/models/enums/states.mjs +58 -0
  113. package/esm2020/lib/forms/pipes/phone-format.pipe.mjs +33 -0
  114. package/esm2020/lib/forms/services/alert.service.mjs +167 -0
  115. package/esm2020/lib/header/components/header/header.component.mjs +161 -0
  116. package/esm2020/lib/header/components/mobile-header-menu/mobile-header-menu.component.mjs +39 -0
  117. package/esm2020/lib/header/header-api.mjs +12 -0
  118. package/esm2020/lib/header/header.module.mjs +85 -0
  119. package/esm2020/lib/header/models/header-auth.settings.mjs +32 -0
  120. package/esm2020/lib/header/models/header-language.settings.mjs +2 -0
  121. package/esm2020/lib/header/models/header-theme.settings.mjs +2 -0
  122. package/esm2020/lib/header/models/header.settings.mjs +2 -0
  123. package/esm2020/lib/header/models/mobile-header-nav.settings.mjs +2 -0
  124. package/esm2020/lib/navigation/components/navigation/navigation.component.mjs +555 -0
  125. package/esm2020/lib/navigation/models/nav-theme.settings.mjs +2 -0
  126. package/esm2020/lib/navigation/models/nav.settings.mjs +2 -0
  127. package/esm2020/lib/navigation/models/navigation.mjs +2 -0
  128. package/esm2020/lib/navigation/navigation-api.mjs +9 -0
  129. package/esm2020/lib/navigation/navigation.module.mjs +126 -0
  130. package/esm2020/lib/oauth/models/constants.mjs +6 -0
  131. package/esm2020/lib/oauth/models/generated/accountManagementAssertionModel.mjs +2 -0
  132. package/esm2020/lib/oauth/models/generated/accountManagementRefreshRequestModel.mjs +2 -0
  133. package/esm2020/lib/oauth/models/generated/accountManagementResponseModel.mjs +2 -0
  134. package/esm2020/lib/oauth/models/generated/coverageDetail.mjs +19 -0
  135. package/esm2020/lib/oauth/models/generated/finance.mjs +13 -0
  136. package/esm2020/lib/oauth/models/generated/iSsoResponseModel.mjs +13 -0
  137. package/esm2020/lib/oauth/models/generated/iSsoResponseModelAccountManagementAssertionModel.mjs +2 -0
  138. package/esm2020/lib/oauth/models/generated/person.mjs +13 -0
  139. package/esm2020/lib/oauth/models/generated/policy.mjs +2 -0
  140. package/esm2020/lib/oauth/models/generated/refreshResponseModel.mjs +13 -0
  141. package/esm2020/lib/oauth/models/hybrid-saml-oauth-config.mjs +4 -0
  142. package/esm2020/lib/oauth/oauth-api.mjs +15 -0
  143. package/esm2020/lib/oauth/oauth.module.mjs +29 -0
  144. package/esm2020/lib/oauth/services/hybrid-saml-oauth.service.mjs +201 -0
  145. package/esm2020/lib/rbac/directives/rbac-action.directive.mjs +50 -0
  146. package/esm2020/lib/rbac/models/access-token-claims.mjs +23 -0
  147. package/esm2020/lib/rbac/models/constants.mjs +4 -0
  148. package/esm2020/lib/rbac/models/decoded-access-token.mjs +69 -0
  149. package/esm2020/lib/rbac/models/rbac-config.mjs +4 -0
  150. package/esm2020/lib/rbac/models/role-access.mjs +10 -0
  151. package/esm2020/lib/rbac/rbac-api.mjs +15 -0
  152. package/esm2020/lib/rbac/rbac.module.mjs +51 -0
  153. package/esm2020/lib/rbac/services/ar-role-nav.service.mjs +91 -0
  154. package/esm2020/lib/rbac/services/oauth2-role.service.mjs +114 -0
  155. package/esm2020/lib/rbac/services/role-nav.service.mjs +4 -0
  156. package/esm2020/lib/resize-panels/components/resize-panels/resize-panels.component.mjs +156 -0
  157. package/esm2020/lib/resize-panels/models/resize-event.mjs +2 -0
  158. package/esm2020/lib/resize-panels/resize-panels-api.mjs +5 -0
  159. package/esm2020/lib/resize-panels/resize-panels.module.mjs +23 -0
  160. package/esm2020/lib/rum/models/arm-error.mjs +29 -0
  161. package/esm2020/lib/rum/models/rum-config.mjs +4 -0
  162. package/esm2020/lib/rum/rum-api.mjs +10 -0
  163. package/esm2020/lib/rum/rum.module.mjs +48 -0
  164. package/esm2020/lib/rum/services/rum.service.mjs +115 -0
  165. package/esm2020/lib/rum/services/shared-error.service.mjs +45 -0
  166. package/esm2020/lib/rum/services/softheon-error-handler.service.mjs +76 -0
  167. package/esm2020/lib/saml/components/redirect-saml/redirect-saml.component.mjs +79 -0
  168. package/esm2020/lib/saml/models/i-saml-request.mjs +2 -0
  169. package/esm2020/lib/saml/models/i-saml-response.mjs +2 -0
  170. package/esm2020/lib/saml/models/redirect-saml-request.mjs +4 -0
  171. package/esm2020/lib/saml/models/sso-gateway-model.mjs +4 -0
  172. package/esm2020/lib/saml/saml-api.mjs +15 -0
  173. package/esm2020/lib/saml/saml.module.mjs +43 -0
  174. package/esm2020/lib/saml/services/entry/abstract-saml-entry.service.mjs +4 -0
  175. package/esm2020/lib/saml/services/entry/sso-gateway-entry.service.mjs +36 -0
  176. package/esm2020/lib/saml/services/send-off/abstract-saml.service.mjs +4 -0
  177. package/esm2020/lib/saml/services/send-off/saml.service.mjs +39 -0
  178. package/esm2020/lib/sof-pipe/constants/constants.mjs +17 -0
  179. package/esm2020/lib/sof-pipe/models/sof-date-pipe-format.mjs +2 -0
  180. package/esm2020/lib/sof-pipe/pipes/sof-blank/sof-blank.pipe.mjs +39 -0
  181. package/esm2020/lib/sof-pipe/pipes/sof-date/sof-date.pipe.mjs +59 -0
  182. package/esm2020/lib/sof-pipe/pipes/sof-ssn/sof-ssn.pipe.mjs +28 -0
  183. package/esm2020/lib/sof-pipe/sof-pipe.api.mjs +9 -0
  184. package/esm2020/lib/sof-pipe/sof-pipe.module.mjs +39 -0
  185. package/esm2020/lib/theming/directives/css-override.directive.mjs +69 -0
  186. package/esm2020/lib/theming/models/css-override.mjs +11 -0
  187. package/esm2020/lib/theming/services/theme.service.mjs +167 -0
  188. package/esm2020/lib/theming/theme-api.mjs +6 -0
  189. package/esm2020/lib/theming/theme.module.mjs +31 -0
  190. package/esm2020/public-api.mjs +48 -0
  191. package/esm2020/softheon-armature.mjs +5 -0
  192. package/fesm2015/softheon-armature.mjs +6767 -0
  193. package/fesm2015/softheon-armature.mjs.map +1 -0
  194. package/fesm2020/softheon-armature.mjs +6829 -0
  195. package/fesm2020/softheon-armature.mjs.map +1 -0
  196. package/index.d.ts +5 -0
  197. package/lib/alert-banner/alert-banner.module.d.ts +9 -0
  198. package/lib/alert-banner/components/alert-banner/alert-banner.component.d.ts +3 -0
  199. package/lib/alert-banner/services/alert-banner.service.d.ts +3 -0
  200. package/lib/armature.module.d.ts +15 -0
  201. package/lib/base-components/base-component.module.d.ts +24 -0
  202. package/lib/base-components/sof-alert/sof-alert.component.d.ts +3 -0
  203. package/lib/base-components/sof-banner/sof-banner.component.d.ts +3 -0
  204. package/lib/base-components/sof-button-toggle-group/sof-button-toggle-group.component.d.ts +3 -0
  205. package/lib/base-components/sof-modal/sof-modal.component.d.ts +3 -0
  206. package/lib/base-components/sof-progress-bar/sof-progress-bar.component.d.ts +3 -0
  207. package/lib/component-save-print/components/component-save-print/component-save-print.component.d.ts +3 -0
  208. package/lib/component-save-print/services/component-save-print.service.d.ts +3 -0
  209. package/lib/component-save-print/sof-ar-component-save-print.module.d.ts +6 -0
  210. package/lib/core/client-generated/api/session.service.d.ts +3 -11
  211. package/lib/core/components/app-template/app-template.component.d.ts +3 -0
  212. package/lib/core/initializer/initializer.service.d.ts +3 -0
  213. package/lib/core/interceptors/armature-auth-token-append.interceptor.d.ts +3 -0
  214. package/lib/core/models/http-verbs.d.ts +1 -1
  215. package/lib/core/services/authorization.service.d.ts +3 -0
  216. package/lib/core/services/banner.service.d.ts +3 -0
  217. package/lib/core/services/base-config.service.d.ts +3 -0
  218. package/lib/core/services/default-config.service.d.ts +3 -0
  219. package/lib/core/services/session.service.d.ts +3 -0
  220. package/lib/core/services/user-entity.service.d.ts +3 -0
  221. package/lib/distributed-cache/client-generated/api/cache.service.d.ts +3 -11
  222. package/lib/distributed-cache/client-generated/model/cacheExpirationType.d.ts +1 -1
  223. package/lib/distributed-cache/distributed-cache.module.d.ts +5 -0
  224. package/lib/distributed-cache/services/server-cache.service.d.ts +3 -0
  225. package/lib/error/components/error-common/error-common.component.d.ts +3 -0
  226. package/lib/error/error.module.d.ts +8 -0
  227. package/lib/faq/components/faq/faq.component.d.ts +3 -0
  228. package/lib/faq/faq.module.d.ts +12 -0
  229. package/lib/footer/components/footer/footer.component.d.ts +3 -0
  230. package/lib/footer/components/site-map/site-map.component.d.ts +3 -0
  231. package/lib/footer/footer.module.d.ts +11 -0
  232. package/lib/forms/components/sof-address/sof-address.component.d.ts +3 -0
  233. package/lib/forms/directives/alphanumeric/alphanumeric.directive.d.ts +3 -0
  234. package/lib/forms/directives/input-trim/input-trim.directive.d.ts +3 -0
  235. package/lib/forms/directives/letters-only/letters-only.directive.d.ts +3 -0
  236. package/lib/forms/directives/numbers-only/numbers-only.directive.d.ts +3 -0
  237. package/lib/forms/forms.module.d.ts +17 -0
  238. package/lib/forms/pipes/phone-format.pipe.d.ts +3 -0
  239. package/lib/forms/services/alert.service.d.ts +3 -0
  240. package/lib/header/components/header/header.component.d.ts +4 -1
  241. package/lib/header/components/mobile-header-menu/mobile-header-menu.component.d.ts +3 -0
  242. package/lib/header/header.module.d.ts +18 -0
  243. package/lib/navigation/components/navigation/navigation.component.d.ts +6 -3
  244. package/lib/navigation/navigation.module.d.ts +22 -0
  245. package/lib/oauth/oauth.module.d.ts +6 -0
  246. package/lib/oauth/services/hybrid-saml-oauth.service.d.ts +3 -0
  247. package/lib/rbac/directives/rbac-action.directive.d.ts +3 -0
  248. package/lib/rbac/rbac.module.d.ts +6 -0
  249. package/lib/rbac/services/ar-role-nav.service.d.ts +3 -0
  250. package/lib/rbac/services/oauth2-role.service.d.ts +3 -0
  251. package/lib/resize-panels/components/resize-panels/resize-panels.component.d.ts +3 -0
  252. package/lib/resize-panels/resize-panels.module.d.ts +6 -0
  253. package/lib/rum/rum.module.d.ts +5 -0
  254. package/lib/rum/services/rum.service.d.ts +3 -0
  255. package/lib/rum/services/shared-error.service.d.ts +3 -0
  256. package/lib/rum/services/softheon-error-handler.service.d.ts +3 -0
  257. package/lib/saml/components/redirect-saml/redirect-saml.component.d.ts +3 -0
  258. package/lib/saml/saml.module.d.ts +6 -0
  259. package/lib/saml/services/entry/sso-gateway-entry.service.d.ts +3 -0
  260. package/lib/saml/services/send-off/saml.service.d.ts +3 -0
  261. package/lib/sof-pipe/pipes/sof-blank/sof-blank.pipe.d.ts +3 -0
  262. package/lib/sof-pipe/pipes/sof-date/sof-date.pipe.d.ts +3 -0
  263. package/lib/sof-pipe/pipes/sof-ssn/sof-ssn.pipe.d.ts +3 -0
  264. package/lib/sof-pipe/sof-pipe.module.d.ts +8 -0
  265. package/lib/theming/directives/css-override.directive.d.ts +3 -0
  266. package/lib/theming/services/theme.service.d.ts +3 -0
  267. package/lib/theming/theme.module.d.ts +6 -0
  268. package/package.json +39 -27
  269. package/bundles/softheon-armature.umd.js +0 -7212
  270. package/bundles/softheon-armature.umd.js.map +0 -1
  271. package/bundles/softheon-armature.umd.min.js +0 -16
  272. package/bundles/softheon-armature.umd.min.js.map +0 -1
  273. package/esm2015/lib/alert-banner/alert-banner-api.js +0 -10
  274. package/esm2015/lib/alert-banner/alert-banner.module.js +0 -30
  275. package/esm2015/lib/alert-banner/components/alert-banner/alert-banner.component.js +0 -78
  276. package/esm2015/lib/alert-banner/models/alert-banner-config.js +0 -2
  277. package/esm2015/lib/alert-banner/models/alert-banner-context.js +0 -2
  278. package/esm2015/lib/alert-banner/models/constants.js +0 -16
  279. package/esm2015/lib/alert-banner/services/alert-banner.service.js +0 -43
  280. package/esm2015/lib/armature.module.js +0 -142
  281. package/esm2015/lib/base-components/base-component-api.js +0 -9
  282. package/esm2015/lib/base-components/base-component.module.js +0 -61
  283. package/esm2015/lib/base-components/sof-alert/sof-alert.component.js +0 -67
  284. package/esm2015/lib/base-components/sof-banner/sof-banner.component.js +0 -44
  285. package/esm2015/lib/base-components/sof-button-toggle-group/sof-button-toggle-group.component.js +0 -169
  286. package/esm2015/lib/base-components/sof-modal/sof-modal.component.js +0 -49
  287. package/esm2015/lib/base-components/sof-progress-bar/sof-progress-bar.component.js +0 -76
  288. package/esm2015/lib/component-save-print/components/component-save-print/component-save-print.component.js +0 -97
  289. package/esm2015/lib/component-save-print/services/component-save-print.service.js +0 -29
  290. package/esm2015/lib/component-save-print/sof-ar-component-save-print.module.js +0 -25
  291. package/esm2015/lib/core/client-generated/api/session.service.js +0 -235
  292. package/esm2015/lib/core/client-generated/configuration.js +0 -59
  293. package/esm2015/lib/core/client-generated/encoder.js +0 -17
  294. package/esm2015/lib/core/client-generated/model/applicationUserModel.js +0 -20
  295. package/esm2015/lib/core/client-generated/model/assertedUserModel.js +0 -2
  296. package/esm2015/lib/core/client-generated/model/brandingModel.js +0 -2
  297. package/esm2015/lib/core/client-generated/model/errorModel.js +0 -13
  298. package/esm2015/lib/core/client-generated/model/folderLink.js +0 -13
  299. package/esm2015/lib/core/client-generated/model/identityProfile.js +0 -2
  300. package/esm2015/lib/core/client-generated/model/models.js +0 -20
  301. package/esm2015/lib/core/client-generated/model/oAuthModel.js +0 -13
  302. package/esm2015/lib/core/client-generated/model/preferencesRow.js +0 -13
  303. package/esm2015/lib/core/client-generated/model/rolesRow.js +0 -13
  304. package/esm2015/lib/core/client-generated/model/sessionGetResponseModel.js +0 -2
  305. package/esm2015/lib/core/client-generated/model/sessionPostRequestModel.js +0 -2
  306. package/esm2015/lib/core/client-generated/model/sessionPostResponseModel.js +0 -2
  307. package/esm2015/lib/core/client-generated/model/sessionPutRequestModel.js +0 -2
  308. package/esm2015/lib/core/client-generated/model/sessionPutResponseModel.js +0 -2
  309. package/esm2015/lib/core/client-generated/model/sessionResponseModel.js +0 -2
  310. package/esm2015/lib/core/client-generated/model/settingsProfile.js +0 -2
  311. package/esm2015/lib/core/client-generated/model/themePaletteColorsModel.js +0 -13
  312. package/esm2015/lib/core/client-generated/model/themePaletteModel.js +0 -2
  313. package/esm2015/lib/core/client-generated/model/trackingModel.js +0 -13
  314. package/esm2015/lib/core/client-generated/model/validationRecordsRow.js +0 -13
  315. package/esm2015/lib/core/client-generated/variables.js +0 -9
  316. package/esm2015/lib/core/components/app-template/app-template.component.js +0 -249
  317. package/esm2015/lib/core/functions/guid.js +0 -11
  318. package/esm2015/lib/core/functions/naming-convention.js +0 -33
  319. package/esm2015/lib/core/initializer/abstract-startup-service.js +0 -4
  320. package/esm2015/lib/core/initializer/initializer.service.js +0 -206
  321. package/esm2015/lib/core/interceptors/armature-auth-token-append.interceptor.js +0 -75
  322. package/esm2015/lib/core/models/base-config.js +0 -2
  323. package/esm2015/lib/core/models/constants.js +0 -13
  324. package/esm2015/lib/core/models/data-store-config.js +0 -4
  325. package/esm2015/lib/core/models/header-config.js +0 -2
  326. package/esm2015/lib/core/models/http-verbs.js +0 -9
  327. package/esm2015/lib/core/models/navigation-config.js +0 -2
  328. package/esm2015/lib/core/models/oidc-auth-settings.js +0 -2
  329. package/esm2015/lib/core/models/route-path.js +0 -7
  330. package/esm2015/lib/core/models/session-config.js +0 -4
  331. package/esm2015/lib/core/models/styles.js +0 -2
  332. package/esm2015/lib/core/models/typed-session.js +0 -4
  333. package/esm2015/lib/core/models/user-entity-service-config.js +0 -12
  334. package/esm2015/lib/core/services/authorization.service.js +0 -178
  335. package/esm2015/lib/core/services/banner.service.js +0 -42
  336. package/esm2015/lib/core/services/base-config.service.js +0 -31
  337. package/esm2015/lib/core/services/custom-auth-config.service.js +0 -4
  338. package/esm2015/lib/core/services/default-config.service.js +0 -18
  339. package/esm2015/lib/core/services/session.service.js +0 -386
  340. package/esm2015/lib/core/services/user-entity.service.js +0 -147
  341. package/esm2015/lib/distributed-cache/client-generated/api/api.js +0 -4
  342. package/esm2015/lib/distributed-cache/client-generated/api/cache.service.js +0 -206
  343. package/esm2015/lib/distributed-cache/client-generated/configuration.js +0 -59
  344. package/esm2015/lib/distributed-cache/client-generated/encoder.js +0 -17
  345. package/esm2015/lib/distributed-cache/client-generated/model/cacheExpirationType.js +0 -16
  346. package/esm2015/lib/distributed-cache/client-generated/model/createCacheEntryRequestModel.js +0 -2
  347. package/esm2015/lib/distributed-cache/client-generated/model/models.js +0 -5
  348. package/esm2015/lib/distributed-cache/client-generated/model/retrieveCacheEntryResponseModel.js +0 -13
  349. package/esm2015/lib/distributed-cache/client-generated/model/updateCacheEntryRequestModel.js +0 -13
  350. package/esm2015/lib/distributed-cache/client-generated/variables.js +0 -9
  351. package/esm2015/lib/distributed-cache/distributed-cache-api.js +0 -8
  352. package/esm2015/lib/distributed-cache/distributed-cache.module.js +0 -26
  353. package/esm2015/lib/distributed-cache/models/constants.js +0 -3
  354. package/esm2015/lib/distributed-cache/models/policy-person.js +0 -9
  355. package/esm2015/lib/distributed-cache/services/server-cache.service.js +0 -52
  356. package/esm2015/lib/error/components/error-common/error-common.component.js +0 -24
  357. package/esm2015/lib/error/error-api.js +0 -7
  358. package/esm2015/lib/error/error.module.js +0 -22
  359. package/esm2015/lib/error/models/error-common-config.js +0 -8
  360. package/esm2015/lib/faq/components/faq/faq.component.js +0 -35
  361. package/esm2015/lib/faq/faq-api.js +0 -8
  362. package/esm2015/lib/faq/faq.module.js +0 -32
  363. package/esm2015/lib/faq/models/faq-config.js +0 -4
  364. package/esm2015/lib/faq/models/faq.js +0 -8
  365. package/esm2015/lib/footer/components/footer/footer.component.js +0 -25
  366. package/esm2015/lib/footer/components/site-map/site-map.component.js +0 -23
  367. package/esm2015/lib/footer/footer-api.js +0 -10
  368. package/esm2015/lib/footer/footer.module.js +0 -30
  369. package/esm2015/lib/footer/models/enum/site-map-direction.js +0 -15
  370. package/esm2015/lib/footer/models/footer-config.js +0 -4
  371. package/esm2015/lib/footer/models/site-map-models.js +0 -2
  372. package/esm2015/lib/forms/components/sof-address/sof-address.component.js +0 -99
  373. package/esm2015/lib/forms/directives/alphanumeric/alphanumeric.directive.js +0 -75
  374. package/esm2015/lib/forms/directives/input-trim/input-trim.directive.js +0 -97
  375. package/esm2015/lib/forms/directives/letters-only/letters-only.directive.js +0 -68
  376. package/esm2015/lib/forms/directives/numbers-only/numbers-only.directive.js +0 -58
  377. package/esm2015/lib/forms/forms-api.js +0 -19
  378. package/esm2015/lib/forms/forms.module.js +0 -63
  379. package/esm2015/lib/forms/models/address.js +0 -2
  380. package/esm2015/lib/forms/models/constants.js +0 -10
  381. package/esm2015/lib/forms/models/county.js +0 -2
  382. package/esm2015/lib/forms/models/enums/states.js +0 -58
  383. package/esm2015/lib/forms/pipes/phone-format.pipe.js +0 -29
  384. package/esm2015/lib/forms/services/alert.service.js +0 -170
  385. package/esm2015/lib/header/components/header/header.component.js +0 -157
  386. package/esm2015/lib/header/components/mobile-header-menu/mobile-header-menu.component.js +0 -37
  387. package/esm2015/lib/header/header-api.js +0 -12
  388. package/esm2015/lib/header/header.module.js +0 -51
  389. package/esm2015/lib/header/models/header-auth.settings.js +0 -32
  390. package/esm2015/lib/header/models/header-language.settings.js +0 -2
  391. package/esm2015/lib/header/models/header-theme.settings.js +0 -2
  392. package/esm2015/lib/header/models/header.settings.js +0 -2
  393. package/esm2015/lib/header/models/mobile-header-nav.settings.js +0 -2
  394. package/esm2015/lib/navigation/components/navigation/navigation.component.js +0 -544
  395. package/esm2015/lib/navigation/models/nav-theme.settings.js +0 -2
  396. package/esm2015/lib/navigation/models/nav.settings.js +0 -2
  397. package/esm2015/lib/navigation/models/navigation.js +0 -2
  398. package/esm2015/lib/navigation/navigation-api.js +0 -9
  399. package/esm2015/lib/navigation/navigation.module.js +0 -67
  400. package/esm2015/lib/oauth/models/constants.js +0 -6
  401. package/esm2015/lib/oauth/models/generated/accountManagementAssertionModel.js +0 -2
  402. package/esm2015/lib/oauth/models/generated/accountManagementRefreshRequestModel.js +0 -2
  403. package/esm2015/lib/oauth/models/generated/accountManagementResponseModel.js +0 -2
  404. package/esm2015/lib/oauth/models/generated/coverageDetail.js +0 -19
  405. package/esm2015/lib/oauth/models/generated/finance.js +0 -13
  406. package/esm2015/lib/oauth/models/generated/iSsoResponseModel.js +0 -13
  407. package/esm2015/lib/oauth/models/generated/iSsoResponseModelAccountManagementAssertionModel.js +0 -2
  408. package/esm2015/lib/oauth/models/generated/person.js +0 -13
  409. package/esm2015/lib/oauth/models/generated/policy.js +0 -2
  410. package/esm2015/lib/oauth/models/generated/refreshResponseModel.js +0 -13
  411. package/esm2015/lib/oauth/models/hybrid-saml-oauth-config.js +0 -4
  412. package/esm2015/lib/oauth/oauth-api.js +0 -15
  413. package/esm2015/lib/oauth/oauth.module.js +0 -20
  414. package/esm2015/lib/oauth/services/hybrid-saml-oauth.service.js +0 -202
  415. package/esm2015/lib/rbac/directives/rbac-action.directive.js +0 -52
  416. package/esm2015/lib/rbac/models/access-token-claims.js +0 -23
  417. package/esm2015/lib/rbac/models/constants.js +0 -4
  418. package/esm2015/lib/rbac/models/decoded-access-token.js +0 -69
  419. package/esm2015/lib/rbac/models/rbac-config.js +0 -4
  420. package/esm2015/lib/rbac/models/role-access.js +0 -10
  421. package/esm2015/lib/rbac/rbac-api.js +0 -15
  422. package/esm2015/lib/rbac/rbac.module.js +0 -43
  423. package/esm2015/lib/rbac/services/ar-role-nav.service.js +0 -90
  424. package/esm2015/lib/rbac/services/oauth2-role.service.js +0 -120
  425. package/esm2015/lib/rbac/services/role-nav.service.js +0 -4
  426. package/esm2015/lib/resize-panels/components/resize-panels/resize-panels.component.js +0 -142
  427. package/esm2015/lib/resize-panels/models/resize-event.js +0 -2
  428. package/esm2015/lib/resize-panels/resize-panels-api.js +0 -5
  429. package/esm2015/lib/resize-panels/resize-panels.module.js +0 -18
  430. package/esm2015/lib/rum/models/arm-error.js +0 -29
  431. package/esm2015/lib/rum/models/rum-config.js +0 -4
  432. package/esm2015/lib/rum/rum-api.js +0 -10
  433. package/esm2015/lib/rum/rum.module.js +0 -40
  434. package/esm2015/lib/rum/services/rum.service.js +0 -118
  435. package/esm2015/lib/rum/services/shared-error.service.js +0 -46
  436. package/esm2015/lib/rum/services/softheon-error-handler.service.js +0 -81
  437. package/esm2015/lib/saml/components/redirect-saml/redirect-saml.component.js +0 -76
  438. package/esm2015/lib/saml/models/i-saml-request.js +0 -2
  439. package/esm2015/lib/saml/models/i-saml-response.js +0 -2
  440. package/esm2015/lib/saml/models/redirect-saml-request.js +0 -4
  441. package/esm2015/lib/saml/models/sso-gateway-model.js +0 -4
  442. package/esm2015/lib/saml/saml-api.js +0 -15
  443. package/esm2015/lib/saml/saml.module.js +0 -36
  444. package/esm2015/lib/saml/services/entry/abstract-saml-entry.service.js +0 -4
  445. package/esm2015/lib/saml/services/entry/sso-gateway-entry.service.js +0 -35
  446. package/esm2015/lib/saml/services/send-off/abstract-saml.service.js +0 -9
  447. package/esm2015/lib/saml/services/send-off/saml.service.js +0 -41
  448. package/esm2015/lib/sof-pipe/constants/constants.js +0 -17
  449. package/esm2015/lib/sof-pipe/models/sof-date-pipe-format.js +0 -2
  450. package/esm2015/lib/sof-pipe/pipes/sof-blank/sof-blank.pipe.js +0 -33
  451. package/esm2015/lib/sof-pipe/pipes/sof-date/sof-date.pipe.js +0 -54
  452. package/esm2015/lib/sof-pipe/pipes/sof-ssn/sof-ssn.pipe.js +0 -24
  453. package/esm2015/lib/sof-pipe/sof-pipe.api.js +0 -9
  454. package/esm2015/lib/sof-pipe/sof-pipe.module.js +0 -28
  455. package/esm2015/lib/theming/directives/css-override.directive.js +0 -67
  456. package/esm2015/lib/theming/models/css-override.js +0 -11
  457. package/esm2015/lib/theming/services/theme.service.js +0 -166
  458. package/esm2015/lib/theming/theme-api.js +0 -6
  459. package/esm2015/lib/theming/theme.module.js +0 -24
  460. package/esm2015/public-api.js +0 -48
  461. package/esm2015/softheon-armature.js +0 -12
  462. package/fesm2015/softheon-armature.js +0 -6517
  463. package/fesm2015/softheon-armature.js.map +0 -1
  464. package/softheon-armature.d.ts +0 -11
  465. package/softheon-armature.metadata.json +0 -1
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2l0ZS1tYXAtbW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJtYXR1cmUvc3JjL2xpYi9mb290ZXIvbW9kZWxzL3NpdGUtbWFwLW1vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2l0ZU1hcERpcmVjdGlvbiB9IGZyb20gJy4vZW51bS9zaXRlLW1hcC1kaXJlY3Rpb24nO1xyXG5pbXBvcnQgeyBSb3V0ZVBhdGggfSBmcm9tICcuLi8uLi9jb3JlL21vZGVscy9yb3V0ZS1wYXRoJztcclxuXHJcbi8qKlxyXG4gKiBTaXRlIE1hcCBDb25maWdcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2l0ZU1hcENvbmZpZyB7XHJcbiAgICAvKiogU2VjdGlvbiB0aXRsZSBjbGFzcyBzdHlsZSAqL1xyXG4gICAgc2VjdGlvblRpdGxlQ2xhc3M/OiBzdHJpbmc7XHJcblxyXG4gICAgLyoqIEdsb2JhbCBjbGFzcyBzdHlsZSBmb3IgbGlua3MgKi9cclxuICAgIGxpbmtDbGFzcz86IHN0cmluZztcclxuXHJcbiAgICAvKiogU2l0ZSBtYXAgZ3JhcGggKi9cclxuICAgIGdyYXBoPzogQXJyYXk8QXJyYXk8U2l0ZU1hcE5vZGU+PjtcclxufVxyXG5cclxuLyoqXHJcbiAqIFNpdGUgTWFwIE5vZGUuXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFNpdGVNYXBOb2RlIHtcclxuICAgIC8qKiBUaGUgU2VjdGlvbiBUaXRsZSAqL1xyXG4gICAgc2VjdGlvblRpdGxlPzogc3RyaW5nO1xyXG5cclxuICAgIC8qKiBUaGUgRGlyZWN0aW9uICovXHJcbiAgICBkaXJlY3Rpb24/OiBTaXRlTWFwRGlyZWN0aW9uO1xyXG5cclxuICAgIC8qKiBTaXRlIE1hcCBMaW5rICovXHJcbiAgICBsaW5rcz86IEFycmF5PFNpdGVNYXBMaW5rPjtcclxuICAgIFxyXG4gICAgLyoqIFdoZXRoZXIgb3Igbm90IGlmIHRoZSBsaW5rcyBhcmUgaWNvbnMgKi9cclxuICAgIGljb25MaW5rcz86IGJvb2xlYW47XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBTaXRlIE1hcCBMaW5rXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFNpdGVNYXBMaW5rIHtcclxuICAgIC8qKiBUaGUgVGV4dCAqL1xyXG4gICAgdGV4dD86IHN0cmluZztcclxuXHJcbiAgICAvKiogVGhlIFJvdXRlciBMaW5rICovXHJcbiAgICByb3V0ZXJMaW5rPzogc3RyaW5nO1xyXG5cclxuICAgIC8qKiBUaGUgcm91dGUgcGF0aCAqL1xyXG4gICAgcm91dGVQYXRoPzogUm91dGVQYXRoOyAgICBcclxuXHJcbiAgICAvKiogU3BlY2lmaWMgY2xhc3Mgc3R5bGUgZm9yIGxpbmsgKi9cclxuICAgIGxpbmtDbGFzcz86IHN0cmluZztcclxuXHJcbiAgICAvKiogTG9nbyBzdHlsZSBjbGFzcyBmb3IgbG9nbyBsaW5rcyAqL1xyXG4gICAgbG9nb0NsYXNzPzogc3RyaW5nO1xyXG59Il19
@@ -0,0 +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
+ SofAddressComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: SofAddressComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
89
+ SofAddressComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", 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"], 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.1.5", 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=
@@ -0,0 +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
+ AlphaNumericDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: AlphaNumericDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
65
+ AlphaNumericDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.5", type: AlphaNumericDirective, selector: "[alphanumeric]", host: { listeners: { "keydown": "onKeyDown($event)", "paste": "blockPaste($event)" } }, ngImport: i0 });
66
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", 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
@@ -0,0 +1,110 @@
1
+ import { Directive, ElementRef, HostListener, Inject, Input, Optional, Renderer2 } from "@angular/core";
2
+ import { COMPOSITION_BUFFER_MODE, NG_VALUE_ACCESSOR } from "@angular/forms";
3
+ import * as i0 from "@angular/core";
4
+ export class InputTrimDirective {
5
+ get _type() {
6
+ return this._sourceElementRef.nativeElement.type || "text";
7
+ }
8
+ /**
9
+ * Updates the value on the blur event.
10
+ */
11
+ onBlur(event, value) {
12
+ this.updateValue(event, value.trim());
13
+ this.onTouched();
14
+ }
15
+ /**
16
+ * Updates the value on the input event.
17
+ */
18
+ onInput(event, value) {
19
+ this.updateValue(event, value);
20
+ }
21
+ /**
22
+ * Constructs the directive
23
+ * @param renderer The renderer
24
+ * @param ElementRef The elementRef
25
+ * @param compositionMode The composition mode
26
+ */
27
+ constructor(renderer, elementRef, compositionMode) {
28
+ this.onChange = (_) => { };
29
+ this.onTouched = () => { };
30
+ this._sourceRenderer = renderer;
31
+ this._sourceElementRef = elementRef;
32
+ }
33
+ registerOnChange(fn) { this.onChange = fn; }
34
+ registerOnTouched(fn) { this.onTouched = fn; }
35
+ /**
36
+ * Writes a new value to the element based on the type of input element.
37
+ * @param value new value
38
+ */
39
+ writeValue(value) {
40
+ this._value = value === "" ? "" : value || null;
41
+ this._sourceRenderer.setProperty(this._sourceElementRef.nativeElement, "value", this._value);
42
+ if (this._type !== "text") {
43
+ this._sourceRenderer.setAttribute(this._sourceElementRef.nativeElement, "value", this._value);
44
+ }
45
+ }
46
+ /**
47
+ * Sets state disabled.
48
+ * @param isDisabled boolean value for state
49
+ */
50
+ setDisabledState(isDisabled) {
51
+ this._sourceRenderer.setProperty(this._sourceElementRef.nativeElement, 'disabled', isDisabled);
52
+ }
53
+ /**
54
+ * Writes the cursor position
55
+ * @param cursorPosition the cursor current position
56
+ * @param hasTypedSymbol
57
+ */
58
+ setCursorPointer(cursorPosition, hasTypedSymbol) {
59
+ if (hasTypedSymbol && ["text", "search", "url", "tel", "password"].indexOf(this._type) >= 0) {
60
+ this._sourceElementRef.nativeElement.setSelectionRange(cursorPosition, cursorPosition);
61
+ }
62
+ }
63
+ /**
64
+ * Trims an input value, and sets it to the model and element.
65
+ * @param value input value
66
+ * @param event input event
67
+ */
68
+ updateValue(event, value) {
69
+ if (this._value == value) {
70
+ value = this.trim !== "" && event !== this.trim ? value : value.trim();
71
+ }
72
+ const previous = this._value;
73
+ const cursorPosition = this._sourceElementRef.nativeElement.selectionStart;
74
+ this.writeValue(value);
75
+ if ((this._value || previous) && this._value.trim() !== previous) {
76
+ this.onChange(this._value);
77
+ }
78
+ const hasTypedSymbol = value && previous && value !== previous;
79
+ this.setCursorPointer(cursorPosition, hasTypedSymbol);
80
+ }
81
+ }
82
+ InputTrimDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: InputTrimDirective, deps: [{ token: Renderer2 }, { token: ElementRef }, { token: COMPOSITION_BUFFER_MODE, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
83
+ InputTrimDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.5", type: InputTrimDirective, selector: "input[trim], textarea[trim]", inputs: { trim: "trim" }, host: { listeners: { "blur": "onBlur($event.type,$event.target.value)", "input": "onInput($event.type,$event.target.value)" } }, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: InputTrimDirective, multi: true }], ngImport: i0 });
84
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: InputTrimDirective, decorators: [{
85
+ type: Directive,
86
+ args: [{
87
+ selector: "input[trim], textarea[trim]",
88
+ providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: InputTrimDirective, multi: true }]
89
+ }]
90
+ }], ctorParameters: function () { return [{ type: i0.Renderer2, decorators: [{
91
+ type: Inject,
92
+ args: [Renderer2]
93
+ }] }, { type: i0.ElementRef, decorators: [{
94
+ type: Inject,
95
+ args: [ElementRef]
96
+ }] }, { type: undefined, decorators: [{
97
+ type: Optional
98
+ }, {
99
+ type: Inject,
100
+ args: [COMPOSITION_BUFFER_MODE]
101
+ }] }]; }, propDecorators: { trim: [{
102
+ type: Input
103
+ }], onBlur: [{
104
+ type: HostListener,
105
+ args: ["blur", ["$event.type", "$event.target.value"]]
106
+ }], onInput: [{
107
+ type: HostListener,
108
+ args: ["input", ["$event.type", "$event.target.value"]]
109
+ }] } });
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdHJpbS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcm1hdHVyZS9zcmMvbGliL2Zvcm1zL2RpcmVjdGl2ZXMvaW5wdXQtdHJpbS9pbnB1dC10cmltLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hHLE9BQU8sRUFBRSx1QkFBdUIsRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFNbEcsTUFBTSxPQUFPLGtCQUFrQjtJQUU3QixJQUFZLEtBQUs7UUFDZixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsSUFBSSxJQUFJLE1BQU0sQ0FBQztJQUM3RCxDQUFDO0lBZ0JEOztPQUVHO0lBRUgsTUFBTSxDQUFDLEtBQWEsRUFBRSxLQUFhO1FBQ2pDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQ7O09BRUc7SUFFSCxPQUFPLENBQUMsS0FBYSxFQUFFLEtBQWE7UUFDbEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQU1EOzs7OztPQUtHO0lBQ0gsWUFDcUIsUUFBbUIsRUFDbEIsVUFBc0IsRUFDRyxlQUF3QjtRQWJ2RSxhQUFRLEdBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUUxQixjQUFTLEdBQUcsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBYW5CLElBQUksQ0FBQyxlQUFlLEdBQUcsUUFBUSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxVQUFVLENBQUM7SUFDdEMsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQW9CLElBQVMsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUMsQ0FBQSxDQUFDO0lBRWxFLGlCQUFpQixDQUFDLEVBQWMsSUFBUyxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQyxDQUFBLENBQUM7SUFFOUQ7OztPQUdHO0lBQ0ksVUFBVSxDQUFDLEtBQVU7UUFFMUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUM7UUFDaEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTdGLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxNQUFNLEVBQUU7WUFDekIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQy9GO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILGdCQUFnQixDQUFDLFVBQW1CO1FBQ2xDLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ2pHLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssZ0JBQWdCLENBQUMsY0FBbUIsRUFBRSxjQUF1QjtRQUNuRSxJQUFJLGNBQWMsSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMzRixJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsRUFBRSxjQUFjLENBQUMsQ0FBQztTQUN4RjtJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssV0FBVyxDQUFDLEtBQWEsRUFBRSxLQUFhO1FBRTlDLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxLQUFLLEVBQUM7WUFDdkIsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLEtBQUssRUFBRSxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUN4RTtRQUVELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDN0IsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUM7UUFFM0UsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV2QixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxRQUFRLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLFFBQVEsRUFBRTtZQUNoRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUM1QjtRQUVELE1BQU0sY0FBYyxHQUFHLEtBQUssSUFBSSxRQUFRLElBQUksS0FBSyxLQUFLLFFBQVEsQ0FBQztRQUUvRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQ3hELENBQUM7OytHQXBIVSxrQkFBa0Isa0JBZ0RuQixTQUFTLGFBQ1QsVUFBVSxhQUNFLHVCQUF1QjttR0FsRGxDLGtCQUFrQixpTkFGbEIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDOzJGQUU5RSxrQkFBa0I7a0JBSjlCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDZCQUE2QjtvQkFDdkMsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxvQkFBb0IsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7aUJBQzFGOzswQkFpREksTUFBTTsyQkFBQyxTQUFTOzswQkFDaEIsTUFBTTsyQkFBQyxVQUFVOzswQkFDakIsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyx1QkFBdUI7NENBM0NwQyxJQUFJO3NCQUFaLEtBQUs7Z0JBaUJOLE1BQU07c0JBREwsWUFBWTt1QkFBQyxNQUFNLEVBQUUsQ0FBQyxhQUFhLEVBQUUscUJBQXFCLENBQUM7Z0JBVTVELE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxhQUFhLEVBQUUscUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5qZWN0LCBJbnB1dCwgT3B0aW9uYWwsIFJlbmRlcmVyMiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IENPTVBPU0lUSU9OX0JVRkZFUl9NT0RFLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiBcImlucHV0W3RyaW1dLCB0ZXh0YXJlYVt0cmltXVwiLFxyXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsIHVzZUV4aXN0aW5nOiBJbnB1dFRyaW1EaXJlY3RpdmUsIG11bHRpOiB0cnVlIH1dXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbnB1dFRyaW1EaXJlY3RpdmUgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcblxyXG4gIHByaXZhdGUgZ2V0IF90eXBlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fc291cmNlRWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnR5cGUgfHwgXCJ0ZXh0XCI7XHJcbiAgfVxyXG5cclxuICAvLyBHZXQgYSB2YWx1ZSBvZiB0aGUgdHJpbSBhdHRyaWJ1dGUgaWYgaXQgd2FzIHNldC5cclxuICBASW5wdXQoKSB0cmltOiBzdHJpbmc7XHJcblxyXG4gIC8qKlxyXG4gICAqIEtlZXAgdGhlIHZhbHVlIG9mIGlucHV0IGVsZW1lbnQgaW4gYSBjYWNoZS5cclxuICAgKiBAdHlwZSB7c3RyaW5nfVxyXG4gICAqIEBwcml2YXRlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfdmFsdWU6IHN0cmluZztcclxuXHJcbiAgLy8gU291cmNlIHNlcnZpY2VzIHRvIG1vZGlmeSBlbGVtZW50cy5cclxuICBwcml2YXRlIF9zb3VyY2VSZW5kZXJlcjogUmVuZGVyZXIyO1xyXG4gIHByaXZhdGUgX3NvdXJjZUVsZW1lbnRSZWY6IEVsZW1lbnRSZWY7XHJcbiAgXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlcyB0aGUgdmFsdWUgb24gdGhlIGJsdXIgZXZlbnQuXHJcbiAgICovXHJcbiAgQEhvc3RMaXN0ZW5lcihcImJsdXJcIiwgW1wiJGV2ZW50LnR5cGVcIiwgXCIkZXZlbnQudGFyZ2V0LnZhbHVlXCJdKVxyXG4gIG9uQmx1cihldmVudDogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnVwZGF0ZVZhbHVlKGV2ZW50LCB2YWx1ZS50cmltKCkpO1xyXG4gICAgdGhpcy5vblRvdWNoZWQoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZXMgdGhlIHZhbHVlIG9uIHRoZSBpbnB1dCBldmVudC5cclxuICAgKi9cclxuICBASG9zdExpc3RlbmVyKFwiaW5wdXRcIiwgW1wiJGV2ZW50LnR5cGVcIiwgXCIkZXZlbnQudGFyZ2V0LnZhbHVlXCJdKVxyXG4gIG9uSW5wdXQoZXZlbnQ6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy51cGRhdGVWYWx1ZShldmVudCwgdmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgb25DaGFuZ2UgPSAoXzogYW55KSA9PiB7fTtcclxuXHJcbiAgb25Ub3VjaGVkID0gKCkgPT4ge307XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbnN0cnVjdHMgdGhlIGRpcmVjdGl2ZVxyXG4gICAqIEBwYXJhbSByZW5kZXJlciBUaGUgcmVuZGVyZXJcclxuICAgKiBAcGFyYW0gRWxlbWVudFJlZiBUaGUgZWxlbWVudFJlZlxyXG4gICAqIEBwYXJhbSBjb21wb3NpdGlvbk1vZGUgVGhlIGNvbXBvc2l0aW9uIG1vZGVcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBJbmplY3QoUmVuZGVyZXIyKSByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgQEluamVjdChFbGVtZW50UmVmKSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChDT01QT1NJVElPTl9CVUZGRVJfTU9ERSkgY29tcG9zaXRpb25Nb2RlOiBib29sZWFuXHJcbiAgKSB7XHJcbiAgICB0aGlzLl9zb3VyY2VSZW5kZXJlciA9IHJlbmRlcmVyO1xyXG4gICAgdGhpcy5fc291cmNlRWxlbWVudFJlZiA9IGVsZW1lbnRSZWY7XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAoXzogYW55KSA9PiB2b2lkKTogdm9pZCB7dGhpcy5vbkNoYW5nZSA9IGZuO31cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHt0aGlzLm9uVG91Y2hlZCA9IGZuO31cclxuXHJcbiAgLyoqXHJcbiAgICogV3JpdGVzIGEgbmV3IHZhbHVlIHRvIHRoZSBlbGVtZW50IGJhc2VkIG9uIHRoZSB0eXBlIG9mIGlucHV0IGVsZW1lbnQuXHJcbiAgICogQHBhcmFtIHZhbHVlIG5ldyB2YWx1ZVxyXG4gICAqL1xyXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuXHJcbiAgICB0aGlzLl92YWx1ZSA9IHZhbHVlID09PSBcIlwiID8gXCJcIiA6IHZhbHVlIHx8IG51bGw7XHJcbiAgICB0aGlzLl9zb3VyY2VSZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLl9zb3VyY2VFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIFwidmFsdWVcIiwgdGhpcy5fdmFsdWUpO1xyXG5cclxuICAgIGlmICh0aGlzLl90eXBlICE9PSBcInRleHRcIikge1xyXG4gICAgICB0aGlzLl9zb3VyY2VSZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5fc291cmNlRWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBcInZhbHVlXCIsIHRoaXMuX3ZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgc3RhdGUgZGlzYWJsZWQuXHJcbiAgICogQHBhcmFtIGlzRGlzYWJsZWQgYm9vbGVhbiB2YWx1ZSBmb3Igc3RhdGVcclxuICAgKi9cclxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuX3NvdXJjZVJlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuX3NvdXJjZUVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2Rpc2FibGVkJywgaXNEaXNhYmxlZCk7XHJcbiAgfVxyXG4gIFxyXG4gIC8qKlxyXG4gICAqIFdyaXRlcyB0aGUgY3Vyc29yIHBvc2l0aW9uXHJcbiAgICogQHBhcmFtIGN1cnNvclBvc2l0aW9uIHRoZSBjdXJzb3IgY3VycmVudCBwb3NpdGlvblxyXG4gICAqIEBwYXJhbSBoYXNUeXBlZFN5bWJvbFxyXG4gICAqL1xyXG4gIHByaXZhdGUgc2V0Q3Vyc29yUG9pbnRlcihjdXJzb3JQb3NpdGlvbjogYW55LCBoYXNUeXBlZFN5bWJvbDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgaWYgKGhhc1R5cGVkU3ltYm9sICYmIFtcInRleHRcIiwgXCJzZWFyY2hcIiwgXCJ1cmxcIiwgXCJ0ZWxcIiwgXCJwYXNzd29yZFwiXS5pbmRleE9mKHRoaXMuX3R5cGUpID49IDApIHtcclxuICAgICAgdGhpcy5fc291cmNlRWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnNldFNlbGVjdGlvblJhbmdlKGN1cnNvclBvc2l0aW9uLCBjdXJzb3JQb3NpdGlvbik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUcmltcyBhbiBpbnB1dCB2YWx1ZSwgYW5kIHNldHMgaXQgdG8gdGhlIG1vZGVsIGFuZCBlbGVtZW50LlxyXG4gICAqIEBwYXJhbSB2YWx1ZSBpbnB1dCB2YWx1ZVxyXG4gICAqIEBwYXJhbSBldmVudCBpbnB1dCBldmVudFxyXG4gICAqL1xyXG4gIHByaXZhdGUgdXBkYXRlVmFsdWUoZXZlbnQ6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG5cclxuICAgIGlmICh0aGlzLl92YWx1ZSA9PSB2YWx1ZSl7XHJcbiAgICAgIHZhbHVlID0gdGhpcy50cmltICE9PSBcIlwiICYmIGV2ZW50ICE9PSB0aGlzLnRyaW0gPyB2YWx1ZSA6IHZhbHVlLnRyaW0oKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBwcmV2aW91cyA9IHRoaXMuX3ZhbHVlO1xyXG4gICAgY29uc3QgY3Vyc29yUG9zaXRpb24gPSB0aGlzLl9zb3VyY2VFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQ7XHJcbiAgICBcclxuICAgIHRoaXMud3JpdGVWYWx1ZSh2YWx1ZSk7XHJcbiAgICBcclxuICAgIGlmICgodGhpcy5fdmFsdWUgfHwgcHJldmlvdXMpICYmIHRoaXMuX3ZhbHVlLnRyaW0oKSAhPT0gcHJldmlvdXMpIHtcclxuICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLl92YWx1ZSk7XHJcbiAgICB9XHJcbiAgXHJcbiAgICBjb25zdCBoYXNUeXBlZFN5bWJvbCA9IHZhbHVlICYmIHByZXZpb3VzICYmIHZhbHVlICE9PSBwcmV2aW91cztcclxuICAgIFxyXG4gICAgdGhpcy5zZXRDdXJzb3JQb2ludGVyKGN1cnNvclBvc2l0aW9uLCBoYXNUeXBlZFN5bWJvbCk7XHJcbiAgfVxyXG59Il19
@@ -0,0 +1,72 @@
1
+ import { Directive, HostListener, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * The letters only directive
5
+ */
6
+ export class LettersOnlyDirective {
7
+ /**
8
+ * Constructs the directive
9
+ * @param el The element
10
+ */
11
+ constructor(el) {
12
+ this.el = el;
13
+ /** True if only letters allowed */
14
+ this.sofArLettersOnly = true;
15
+ /** The array of allowed keys */
16
+ this.allowedKeys = ['backspace', 'delete', 'tab', 'escape', 'enter', 'period', 'numpaddecimal'];
17
+ }
18
+ /**
19
+ * Only allows letter inputs
20
+ * @param event Key Event
21
+ */
22
+ onKeyDown(event) {
23
+ const e = event;
24
+ if (this.sofArLettersOnly && e.code) {
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
+ // Allow: spaces
33
+ (e.code.toLowerCase() === 'space') ||
34
+ // Allow: - (minus sign) on numpad or alphabet keyboard key
35
+ (e.code.toLowerCase() === 'minus' || e.code.toLowerCase() === 'numpadsubtract')) {
36
+ // let it happen, don't do anything
37
+ return;
38
+ }
39
+ // Ensure that it is a letter and stop the keypress if its not a letter
40
+ if (e.code.toLowerCase()
41
+ .includes('digit')
42
+ || e.code.toLowerCase()
43
+ .includes('numpad')) {
44
+ e.preventDefault();
45
+ }
46
+ }
47
+ }
48
+ /**
49
+ * Prevent copy pasted inputs
50
+ * @param event the event
51
+ */
52
+ blockPaste(event) {
53
+ event.preventDefault();
54
+ }
55
+ }
56
+ LettersOnlyDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: LettersOnlyDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
57
+ LettersOnlyDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.5", type: LettersOnlyDirective, selector: "[sofArLettersOnly]", inputs: { sofArLettersOnly: "sofArLettersOnly" }, host: { listeners: { "keydown": "onKeyDown($event)", "paste": "blockPaste($event)" } }, ngImport: i0 });
58
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: LettersOnlyDirective, decorators: [{
59
+ type: Directive,
60
+ args: [{
61
+ selector: '[sofArLettersOnly]'
62
+ }]
63
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { sofArLettersOnly: [{
64
+ type: Input
65
+ }], onKeyDown: [{
66
+ type: HostListener,
67
+ args: ['keydown', ['$event']]
68
+ }], blockPaste: [{
69
+ type: HostListener,
70
+ args: ['paste', ['$event']]
71
+ }] } });
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGV0dGVycy1vbmx5LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FybWF0dXJlL3NyYy9saWIvZm9ybXMvZGlyZWN0aXZlcy9sZXR0ZXJzLW9ubHkvbGV0dGVycy1vbmx5LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRTNFOztHQUVHO0FBSUgsTUFBTSxPQUFPLG9CQUFvQjtJQVEvQjs7O09BR0c7SUFDSCxZQUE2QixFQUFjO1FBQWQsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQVYzQyxtQ0FBbUM7UUFDbkIscUJBQWdCLEdBQVksSUFBSSxDQUFDO1FBRWpELGdDQUFnQztRQUNmLGdCQUFXLEdBQWtCLENBQUMsV0FBVyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFNNUUsQ0FBQztJQUVoRDs7O09BR0c7SUFDa0MsU0FBUyxDQUFDLEtBQUs7UUFDbEQsTUFBTSxDQUFDLEdBQUcsS0FBc0IsQ0FBQztRQUNqQyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFO1lBQ25DLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDdkQsZ0JBQWdCO2dCQUNoQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEtBQUssTUFBTSxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUM7Z0JBQzlDLGdCQUFnQjtnQkFDaEIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLE1BQU0sSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDO2dCQUM5QyxnQkFBZ0I7Z0JBQ2hCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxNQUFNLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQztnQkFDOUMsZ0JBQWdCO2dCQUNoQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEtBQUssT0FBTyxDQUFDO2dCQUNsQywyREFBMkQ7Z0JBQzNELENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxPQUFPLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxnQkFBZ0IsQ0FBQyxFQUFFO2dCQUNqRixtQ0FBbUM7Z0JBQ25DLE9BQU87YUFDUjtZQUNELHVFQUF1RTtZQUN2RSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO2lCQUNyQixRQUFRLENBQUMsT0FBTyxDQUFDO21CQUNmLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO3FCQUNwQixRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQ3ZCLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQzthQUNwQjtTQUNGO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNnQyxVQUFVLENBQUMsS0FBb0I7UUFDaEUsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3pCLENBQUM7O2lIQW5EVSxvQkFBb0I7cUdBQXBCLG9CQUFvQjsyRkFBcEIsb0JBQW9CO2tCQUhoQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7aUJBQy9CO2lHQUlpQixnQkFBZ0I7c0JBQS9CLEtBQUs7Z0JBZStCLFNBQVM7c0JBQTdDLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQStCQSxVQUFVO3NCQUE1QyxZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuLyoqXHJcbiAqIFRoZSBsZXR0ZXJzIG9ubHkgZGlyZWN0aXZlXHJcbiAqL1xyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tzb2ZBckxldHRlcnNPbmx5XSdcclxufSlcclxuZXhwb3J0IGNsYXNzIExldHRlcnNPbmx5RGlyZWN0aXZlIHtcclxuXHJcbiAgLyoqIFRydWUgaWYgb25seSBsZXR0ZXJzIGFsbG93ZWQgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgc29mQXJMZXR0ZXJzT25seTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIC8qKiBUaGUgYXJyYXkgb2YgYWxsb3dlZCBrZXlzICovXHJcbiAgcHJpdmF0ZSByZWFkb25seSBhbGxvd2VkS2V5czogQXJyYXk8c3RyaW5nPiA9IFsnYmFja3NwYWNlJywgJ2RlbGV0ZScsICd0YWInLCAnZXNjYXBlJywgJ2VudGVyJywgJ3BlcmlvZCcsICdudW1wYWRkZWNpbWFsJ107XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbnN0cnVjdHMgdGhlIGRpcmVjdGl2ZVxyXG4gICAqIEBwYXJhbSBlbCBUaGUgZWxlbWVudFxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZWw6IEVsZW1lbnRSZWYpIHsgfVxyXG5cclxuICAvKipcclxuICAgKiBPbmx5IGFsbG93cyBsZXR0ZXIgaW5wdXRzXHJcbiAgICogQHBhcmFtIGV2ZW50IEtleSBFdmVudFxyXG4gICAqL1xyXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKSBvbktleURvd24oZXZlbnQpOiB2b2lkIHtcclxuICAgIGNvbnN0IGUgPSBldmVudCBhcyBLZXlib2FyZEV2ZW50O1xyXG4gICAgaWYgKHRoaXMuc29mQXJMZXR0ZXJzT25seSAmJiBlLmNvZGUpIHtcclxuICAgICAgaWYgKHRoaXMuYWxsb3dlZEtleXMuaW5kZXhPZihlLmNvZGUudG9Mb3dlckNhc2UoKSkgIT09IC0xIHx8XHJcbiAgICAgICAgLy8gQWxsb3c6IEN0cmwrQVxyXG4gICAgICAgIChlLmNvZGUudG9Mb3dlckNhc2UoKSA9PT0gJ2tleWEnICYmIGUuY3RybEtleSkgfHxcclxuICAgICAgICAvLyBBbGxvdzogQ3RybCtDXHJcbiAgICAgICAgKGUuY29kZS50b0xvd2VyQ2FzZSgpID09PSAna2V5YycgJiYgZS5jdHJsS2V5KSB8fFxyXG4gICAgICAgIC8vIEFsbG93OiBDdHJsK1hcclxuICAgICAgICAoZS5jb2RlLnRvTG93ZXJDYXNlKCkgPT09ICdrZXl4JyAmJiBlLmN0cmxLZXkpIHx8XHJcbiAgICAgICAgLy8gQWxsb3c6IHNwYWNlc1xyXG4gICAgICAgIChlLmNvZGUudG9Mb3dlckNhc2UoKSA9PT0gJ3NwYWNlJykgfHxcclxuICAgICAgICAvLyBBbGxvdzogLSAobWludXMgc2lnbikgb24gbnVtcGFkIG9yIGFscGhhYmV0IGtleWJvYXJkIGtleVxyXG4gICAgICAgIChlLmNvZGUudG9Mb3dlckNhc2UoKSA9PT0gJ21pbnVzJyB8fCBlLmNvZGUudG9Mb3dlckNhc2UoKSA9PT0gJ251bXBhZHN1YnRyYWN0JykpIHtcclxuICAgICAgICAvLyBsZXQgaXQgaGFwcGVuLCBkb24ndCBkbyBhbnl0aGluZ1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICAvLyBFbnN1cmUgdGhhdCBpdCBpcyBhIGxldHRlciBhbmQgc3RvcCB0aGUga2V5cHJlc3MgaWYgaXRzIG5vdCBhIGxldHRlclxyXG4gICAgICBpZiAoZS5jb2RlLnRvTG93ZXJDYXNlKClcclxuICAgICAgICAuaW5jbHVkZXMoJ2RpZ2l0JylcclxuICAgICAgICB8fCBlLmNvZGUudG9Mb3dlckNhc2UoKVxyXG4gICAgICAgICAgLmluY2x1ZGVzKCdudW1wYWQnKSkge1xyXG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUHJldmVudCBjb3B5IHBhc3RlZCBpbnB1dHNcclxuICAgKiBAcGFyYW0gZXZlbnQgdGhlIGV2ZW50XHJcbiAgICovXHJcbiAgQEhvc3RMaXN0ZW5lcigncGFzdGUnLCBbJyRldmVudCddKSBibG9ja1Bhc3RlKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
@@ -0,0 +1,60 @@
1
+ import { Directive, HostListener, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * Numbers only directive
5
+ */
6
+ export class NumbersOnlyDirective {
7
+ /**
8
+ * Constructs the directive
9
+ * @param el The element
10
+ */
11
+ constructor(el) {
12
+ this.el = el;
13
+ /** True if only numbers allowed */
14
+ this.sofArNumbersOnly = true;
15
+ /** The array of allowed keys */
16
+ this.allowedKeys = ['backspace', 'delete', 'tab', 'escape', 'enter', 'period', 'numpaddecimal'];
17
+ }
18
+ /**
19
+ * Only allows number inputs
20
+ * @param event Key Event
21
+ */
22
+ onKeyDown(event) {
23
+ const e = event;
24
+ if (this.sofArNumbersOnly) {
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
+ // Allow: spaces
33
+ (e.code.toLowerCase() === 'space') ||
34
+ // Allow: - (minus sign) on numpad or alphabet keyboard key
35
+ (e.code.toLowerCase() === 'minus' || e.code.toLowerCase() === 'numpadsubtract')) {
36
+ // let it happen, don't do anything
37
+ return;
38
+ }
39
+ // Ensure that it is a number and stop the keypress
40
+ if ((e.shiftKey || e.code.toLowerCase()
41
+ .match(/key[a-zA-Z]/g))) {
42
+ e.preventDefault();
43
+ }
44
+ }
45
+ }
46
+ }
47
+ NumbersOnlyDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NumbersOnlyDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
48
+ NumbersOnlyDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.5", type: NumbersOnlyDirective, selector: "[sofArNumbersOnly]", inputs: { sofArNumbersOnly: "sofArNumbersOnly" }, host: { listeners: { "keydown": "onKeyDown($event)" } }, ngImport: i0 });
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NumbersOnlyDirective, decorators: [{
50
+ type: Directive,
51
+ args: [{
52
+ selector: '[sofArNumbersOnly]'
53
+ }]
54
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { sofArNumbersOnly: [{
55
+ type: Input
56
+ }], onKeyDown: [{
57
+ type: HostListener,
58
+ args: ['keydown', ['$event']]
59
+ }] } });
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVycy1vbmx5LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FybWF0dXJlL3NyYy9saWIvZm9ybXMvZGlyZWN0aXZlcy9udW1iZXJzLW9ubHkvbnVtYmVycy1vbmx5LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRTNFOztHQUVHO0FBSUgsTUFBTSxPQUFPLG9CQUFvQjtJQVEvQjs7O09BR0c7SUFDSCxZQUE2QixFQUFjO1FBQWQsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQVYzQyxtQ0FBbUM7UUFDbkIscUJBQWdCLEdBQVksSUFBSSxDQUFDO1FBRWpELGdDQUFnQztRQUNmLGdCQUFXLEdBQWtCLENBQUMsV0FBVyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFNNUUsQ0FBQztJQUVoRDs7O09BR0c7SUFDa0MsU0FBUyxDQUFDLEtBQUs7UUFDbEQsTUFBTSxDQUFDLEdBQWtCLEtBQUssQ0FBQztRQUUvQixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUN6QixJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3ZELGdCQUFnQjtnQkFDaEIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLE1BQU0sSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDO2dCQUM5QyxnQkFBZ0I7Z0JBQ2hCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxNQUFNLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQztnQkFDOUMsZ0JBQWdCO2dCQUNoQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEtBQUssTUFBTSxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUM7Z0JBQzlDLGdCQUFnQjtnQkFDaEIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLE9BQU8sQ0FBQztnQkFDbEMsMkRBQTJEO2dCQUMzRCxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEtBQUssT0FBTyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEtBQUssZ0JBQWdCLENBQUMsRUFBRTtnQkFDakYsbUNBQW1DO2dCQUNuQyxPQUFPO2FBQ1I7WUFFRCxtREFBbUQ7WUFDbkQsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7aUJBQ3BDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFFO2dCQUN6QixDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7YUFDcEI7U0FDRjtJQUNILENBQUM7O2lIQTNDVSxvQkFBb0I7cUdBQXBCLG9CQUFvQjsyRkFBcEIsb0JBQW9CO2tCQUhoQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7aUJBQy9CO2lHQUlpQixnQkFBZ0I7c0JBQS9CLEtBQUs7Z0JBZStCLFNBQVM7c0JBQTdDLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG4vKipcclxuICogTnVtYmVycyBvbmx5IGRpcmVjdGl2ZVxyXG4gKi9cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbc29mQXJOdW1iZXJzT25seV0nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOdW1iZXJzT25seURpcmVjdGl2ZSB7XHJcblxyXG4gIC8qKiBUcnVlIGlmIG9ubHkgbnVtYmVycyBhbGxvd2VkICovXHJcbiAgQElucHV0KCkgcHVibGljIHNvZkFyTnVtYmVyc09ubHk6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAvKiogVGhlIGFycmF5IG9mIGFsbG93ZWQga2V5cyAqL1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgYWxsb3dlZEtleXM6IEFycmF5PHN0cmluZz4gPSBbJ2JhY2tzcGFjZScsICdkZWxldGUnLCAndGFiJywgJ2VzY2FwZScsICdlbnRlcicsICdwZXJpb2QnLCAnbnVtcGFkZGVjaW1hbCddO1xyXG5cclxuICAvKipcclxuICAgKiBDb25zdHJ1Y3RzIHRoZSBkaXJlY3RpdmVcclxuICAgKiBAcGFyYW0gZWwgVGhlIGVsZW1lbnRcclxuICAgKi9cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGVsOiBFbGVtZW50UmVmKSB7IH1cclxuXHJcbiAgLyoqXHJcbiAgICogT25seSBhbGxvd3MgbnVtYmVyIGlucHV0c1xyXG4gICAqIEBwYXJhbSBldmVudCBLZXkgRXZlbnRcclxuICAgKi9cclxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSkgb25LZXlEb3duKGV2ZW50KTogYW55IHtcclxuICAgIGNvbnN0IGU6IEtleWJvYXJkRXZlbnQgPSBldmVudDtcclxuXHJcbiAgICBpZiAodGhpcy5zb2ZBck51bWJlcnNPbmx5KSB7XHJcbiAgICAgIGlmICh0aGlzLmFsbG93ZWRLZXlzLmluZGV4T2YoZS5jb2RlLnRvTG93ZXJDYXNlKCkpICE9PSAtMSB8fFxyXG4gICAgICAgIC8vIEFsbG93OiBDdHJsK0FcclxuICAgICAgICAoZS5jb2RlLnRvTG93ZXJDYXNlKCkgPT09ICdrZXlhJyAmJiBlLmN0cmxLZXkpIHx8XHJcbiAgICAgICAgLy8gQWxsb3c6IEN0cmwrQ1xyXG4gICAgICAgIChlLmNvZGUudG9Mb3dlckNhc2UoKSA9PT0gJ2tleWMnICYmIGUuY3RybEtleSkgfHxcclxuICAgICAgICAvLyBBbGxvdzogQ3RybCtYXHJcbiAgICAgICAgKGUuY29kZS50b0xvd2VyQ2FzZSgpID09PSAna2V5eCcgJiYgZS5jdHJsS2V5KSB8fFxyXG4gICAgICAgIC8vIEFsbG93OiBzcGFjZXNcclxuICAgICAgICAoZS5jb2RlLnRvTG93ZXJDYXNlKCkgPT09ICdzcGFjZScpIHx8XHJcbiAgICAgICAgLy8gQWxsb3c6IC0gKG1pbnVzIHNpZ24pIG9uIG51bXBhZCBvciBhbHBoYWJldCBrZXlib2FyZCBrZXlcclxuICAgICAgICAoZS5jb2RlLnRvTG93ZXJDYXNlKCkgPT09ICdtaW51cycgfHwgZS5jb2RlLnRvTG93ZXJDYXNlKCkgPT09ICdudW1wYWRzdWJ0cmFjdCcpKSB7XHJcbiAgICAgICAgLy8gbGV0IGl0IGhhcHBlbiwgZG9uJ3QgZG8gYW55dGhpbmdcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIEVuc3VyZSB0aGF0IGl0IGlzIGEgbnVtYmVyIGFuZCBzdG9wIHRoZSBrZXlwcmVzc1xyXG4gICAgICBpZiAoKGUuc2hpZnRLZXkgfHwgZS5jb2RlLnRvTG93ZXJDYXNlKClcclxuICAgICAgICAubWF0Y2goL2tleVthLXpBLVpdL2cpKSkge1xyXG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbn0iXX0=
@@ -0,0 +1,19 @@
1
+ /** Public API surface for the forms */
2
+ export * from './forms.module';
3
+ // models
4
+ export * from './models/address';
5
+ export * from './models/county';
6
+ export * from './models/enums/states';
7
+ export * from './models/constants';
8
+ // directives
9
+ export * from './directives/letters-only/letters-only.directive';
10
+ export * from './directives/numbers-only/numbers-only.directive';
11
+ export * from './directives/alphanumeric/alphanumeric.directive';
12
+ export * from './directives/input-trim/input-trim.directive';
13
+ // components
14
+ export * from './components/sof-address/sof-address.component';
15
+ // services
16
+ export * from './services/alert.service';
17
+ // pipes
18
+ export * from './pipes/phone-format.pipe';
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybXMtYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJtYXR1cmUvc3JjL2xpYi9mb3Jtcy9mb3Jtcy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdUNBQXVDO0FBQ3ZDLGNBQWMsZ0JBQWdCLENBQUM7QUFFL0IsU0FBUztBQUNULGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsb0JBQW9CLENBQUM7QUFFbkMsYUFBYTtBQUNiLGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsOENBQThDLENBQUM7QUFFN0QsYUFBYTtBQUNiLGNBQWMsZ0RBQWdELENBQUM7QUFFL0QsV0FBVztBQUNYLGNBQWMsMEJBQTBCLENBQUM7QUFFekMsUUFBUTtBQUNSLGNBQWMsMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogUHVibGljIEFQSSBzdXJmYWNlIGZvciB0aGUgZm9ybXMgKi9cclxuZXhwb3J0ICogZnJvbSAnLi9mb3Jtcy5tb2R1bGUnO1xyXG5cclxuLy8gbW9kZWxzXHJcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzL2FkZHJlc3MnO1xyXG5leHBvcnQgKiBmcm9tICcuL21vZGVscy9jb3VudHknO1xyXG5leHBvcnQgKiBmcm9tICcuL21vZGVscy9lbnVtcy9zdGF0ZXMnO1xyXG5leHBvcnQgKiBmcm9tICcuL21vZGVscy9jb25zdGFudHMnO1xyXG5cclxuLy8gZGlyZWN0aXZlc1xyXG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvbGV0dGVycy1vbmx5L2xldHRlcnMtb25seS5kaXJlY3RpdmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvbnVtYmVycy1vbmx5L251bWJlcnMtb25seS5kaXJlY3RpdmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvYWxwaGFudW1lcmljL2FscGhhbnVtZXJpYy5kaXJlY3RpdmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvaW5wdXQtdHJpbS9pbnB1dC10cmltLmRpcmVjdGl2ZSc7XHJcblxyXG4vLyBjb21wb25lbnRzXHJcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9zb2YtYWRkcmVzcy9zb2YtYWRkcmVzcy5jb21wb25lbnQnO1xyXG5cclxuLy8gc2VydmljZXNcclxuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9hbGVydC5zZXJ2aWNlJztcclxuXHJcbi8vIHBpcGVzXHJcbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMvcGhvbmUtZm9ybWF0LnBpcGUnO1xyXG4iXX0=