@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.
- package/assets/styles/material-overrides.scss +103 -88
- package/assets/styles/sof-styles.scss +442 -376
- package/esm2020/lib/alert-banner/alert-banner-api.mjs +10 -0
- package/esm2020/lib/alert-banner/alert-banner.module.mjs +41 -0
- package/esm2020/lib/alert-banner/components/alert-banner/alert-banner.component.mjs +83 -0
- package/esm2020/lib/alert-banner/models/alert-banner-config.mjs +2 -0
- package/esm2020/lib/alert-banner/models/alert-banner-context.mjs +2 -0
- package/esm2020/lib/alert-banner/models/constants.mjs +16 -0
- package/esm2020/lib/alert-banner/services/alert-banner.service.mjs +44 -0
- package/esm2020/lib/armature.module.mjs +176 -0
- package/esm2020/lib/base-components/base-component-api.mjs +9 -0
- package/esm2020/lib/base-components/base-component.module.mjs +93 -0
- package/esm2020/lib/base-components/sof-alert/sof-alert.component.mjs +79 -0
- package/esm2020/lib/base-components/sof-banner/sof-banner.component.mjs +49 -0
- package/esm2020/lib/base-components/sof-button-toggle-group/sof-button-toggle-group.component.mjs +188 -0
- package/esm2020/lib/base-components/sof-modal/sof-modal.component.mjs +58 -0
- package/esm2020/lib/base-components/sof-progress-bar/sof-progress-bar.component.mjs +79 -0
- package/esm2020/lib/component-save-print/components/component-save-print/component-save-print.component.mjs +91 -0
- package/esm2020/lib/component-save-print/services/component-save-print.service.mjs +30 -0
- package/esm2020/lib/component-save-print/sof-ar-component-save-print.module.mjs +32 -0
- package/esm2020/lib/core/client-generated/api/session.service.mjs +242 -0
- package/esm2020/lib/core/client-generated/configuration.mjs +59 -0
- package/esm2020/lib/core/client-generated/encoder.mjs +17 -0
- package/esm2020/lib/core/client-generated/model/applicationUserModel.mjs +20 -0
- package/esm2020/lib/core/client-generated/model/assertedUserModel.mjs +2 -0
- package/esm2020/lib/core/client-generated/model/brandingModel.mjs +2 -0
- package/esm2020/lib/core/client-generated/model/errorModel.mjs +13 -0
- package/esm2020/lib/core/client-generated/model/folderLink.mjs +13 -0
- package/esm2020/lib/core/client-generated/model/identityProfile.mjs +2 -0
- package/esm2020/lib/core/client-generated/model/models.mjs +20 -0
- package/esm2020/lib/core/client-generated/model/oAuthModel.mjs +13 -0
- package/esm2020/lib/core/client-generated/model/preferencesRow.mjs +13 -0
- package/esm2020/lib/core/client-generated/model/rolesRow.mjs +13 -0
- package/esm2020/lib/core/client-generated/model/sessionGetResponseModel.mjs +2 -0
- package/esm2020/lib/core/client-generated/model/sessionPostRequestModel.mjs +2 -0
- package/esm2020/lib/core/client-generated/model/sessionPostResponseModel.mjs +2 -0
- package/esm2020/lib/core/client-generated/model/sessionPutRequestModel.mjs +2 -0
- package/esm2020/lib/core/client-generated/model/sessionPutResponseModel.mjs +2 -0
- package/esm2020/lib/core/client-generated/model/sessionResponseModel.mjs +2 -0
- package/esm2020/lib/core/client-generated/model/settingsProfile.mjs +2 -0
- package/esm2020/lib/core/client-generated/model/themePaletteColorsModel.mjs +13 -0
- package/esm2020/lib/core/client-generated/model/themePaletteModel.mjs +2 -0
- package/esm2020/lib/core/client-generated/model/trackingModel.mjs +13 -0
- package/esm2020/lib/core/client-generated/model/validationRecordsRow.mjs +13 -0
- package/esm2020/lib/core/client-generated/variables.mjs +9 -0
- package/esm2020/lib/core/components/app-template/app-template.component.mjs +250 -0
- package/esm2020/lib/core/functions/guid.mjs +11 -0
- package/esm2020/lib/core/functions/naming-convention.mjs +33 -0
- package/esm2020/lib/core/initializer/abstract-startup-service.mjs +4 -0
- package/esm2020/lib/core/initializer/initializer.service.mjs +189 -0
- package/esm2020/lib/core/interceptors/armature-auth-token-append.interceptor.mjs +73 -0
- package/esm2020/lib/core/models/base-config.mjs +2 -0
- package/esm2020/lib/core/models/constants.mjs +13 -0
- package/esm2020/lib/core/models/data-store-config.mjs +4 -0
- package/esm2020/lib/core/models/header-config.mjs +2 -0
- package/esm2020/lib/core/models/http-verbs.mjs +9 -0
- package/esm2020/lib/core/models/navigation-config.mjs +2 -0
- package/esm2020/lib/core/models/oidc-auth-settings.mjs +2 -0
- package/esm2020/lib/core/models/route-path.mjs +7 -0
- package/esm2020/lib/core/models/session-config.mjs +4 -0
- package/esm2020/lib/core/models/styles.mjs +2 -0
- package/esm2020/lib/core/models/typed-session.mjs +4 -0
- package/esm2020/lib/core/models/user-entity-service-config.mjs +12 -0
- package/esm2020/lib/core/services/authorization.service.mjs +175 -0
- package/esm2020/lib/core/services/banner.service.mjs +43 -0
- package/esm2020/lib/core/services/base-config.service.mjs +32 -0
- package/esm2020/lib/core/services/custom-auth-config.service.mjs +4 -0
- package/esm2020/lib/core/services/default-config.service.mjs +19 -0
- package/esm2020/lib/core/services/session.service.mjs +385 -0
- package/esm2020/lib/core/services/user-entity.service.mjs +140 -0
- package/esm2020/lib/distributed-cache/client-generated/api/api.mjs +4 -0
- package/esm2020/lib/distributed-cache/client-generated/api/cache.service.mjs +213 -0
- package/esm2020/lib/distributed-cache/client-generated/configuration.mjs +59 -0
- package/esm2020/lib/distributed-cache/client-generated/encoder.mjs +17 -0
- package/esm2020/lib/distributed-cache/client-generated/model/cacheExpirationType.mjs +16 -0
- package/esm2020/lib/distributed-cache/client-generated/model/createCacheEntryRequestModel.mjs +2 -0
- package/esm2020/lib/distributed-cache/client-generated/model/models.mjs +5 -0
- package/esm2020/lib/distributed-cache/client-generated/model/retrieveCacheEntryResponseModel.mjs +13 -0
- package/esm2020/lib/distributed-cache/client-generated/model/updateCacheEntryRequestModel.mjs +13 -0
- package/esm2020/lib/distributed-cache/client-generated/variables.mjs +9 -0
- package/esm2020/lib/distributed-cache/distributed-cache-api.mjs +8 -0
- package/esm2020/lib/distributed-cache/distributed-cache.module.mjs +38 -0
- package/esm2020/lib/distributed-cache/models/constants.mjs +3 -0
- package/esm2020/lib/distributed-cache/models/policy-person.mjs +9 -0
- package/esm2020/lib/distributed-cache/services/server-cache.service.mjs +48 -0
- package/esm2020/lib/error/components/error-common/error-common.component.mjs +25 -0
- package/esm2020/lib/error/error-api.mjs +7 -0
- package/esm2020/lib/error/error.module.mjs +31 -0
- package/esm2020/lib/error/models/error-common-config.mjs +8 -0
- package/esm2020/lib/faq/components/faq/faq.component.mjs +40 -0
- package/esm2020/lib/faq/faq-api.mjs +8 -0
- package/esm2020/lib/faq/faq.module.mjs +41 -0
- package/esm2020/lib/faq/models/faq-config.mjs +4 -0
- package/esm2020/lib/faq/models/faq.mjs +8 -0
- package/esm2020/lib/footer/components/footer/footer.component.mjs +25 -0
- package/esm2020/lib/footer/components/site-map/site-map.component.mjs +25 -0
- package/esm2020/lib/footer/footer-api.mjs +10 -0
- package/esm2020/lib/footer/footer.module.mjs +45 -0
- package/esm2020/lib/footer/models/enum/site-map-direction.mjs +15 -0
- package/esm2020/lib/footer/models/footer-config.mjs +4 -0
- package/esm2020/lib/footer/models/site-map-models.mjs +2 -0
- package/esm2020/lib/forms/components/sof-address/sof-address.component.mjs +110 -0
- package/esm2020/lib/forms/directives/alphanumeric/alphanumeric.directive.mjs +78 -0
- package/esm2020/lib/forms/directives/input-trim/input-trim.directive.mjs +110 -0
- package/esm2020/lib/forms/directives/letters-only/letters-only.directive.mjs +72 -0
- package/esm2020/lib/forms/directives/numbers-only/numbers-only.directive.mjs +60 -0
- package/esm2020/lib/forms/forms-api.mjs +19 -0
- package/esm2020/lib/forms/forms.module.mjs +83 -0
- package/esm2020/lib/forms/models/address.mjs +2 -0
- package/esm2020/lib/forms/models/constants.mjs +10 -0
- package/esm2020/lib/forms/models/county.mjs +2 -0
- package/esm2020/lib/forms/models/enums/states.mjs +58 -0
- package/esm2020/lib/forms/pipes/phone-format.pipe.mjs +33 -0
- package/esm2020/lib/forms/services/alert.service.mjs +167 -0
- package/esm2020/lib/header/components/header/header.component.mjs +161 -0
- package/esm2020/lib/header/components/mobile-header-menu/mobile-header-menu.component.mjs +39 -0
- package/esm2020/lib/header/header-api.mjs +12 -0
- package/esm2020/lib/header/header.module.mjs +85 -0
- package/esm2020/lib/header/models/header-auth.settings.mjs +32 -0
- package/esm2020/lib/header/models/header-language.settings.mjs +2 -0
- package/esm2020/lib/header/models/header-theme.settings.mjs +2 -0
- package/esm2020/lib/header/models/header.settings.mjs +2 -0
- package/esm2020/lib/header/models/mobile-header-nav.settings.mjs +2 -0
- package/esm2020/lib/navigation/components/navigation/navigation.component.mjs +555 -0
- package/esm2020/lib/navigation/models/nav-theme.settings.mjs +2 -0
- package/esm2020/lib/navigation/models/nav.settings.mjs +2 -0
- package/esm2020/lib/navigation/models/navigation.mjs +2 -0
- package/esm2020/lib/navigation/navigation-api.mjs +9 -0
- package/esm2020/lib/navigation/navigation.module.mjs +126 -0
- package/esm2020/lib/oauth/models/constants.mjs +6 -0
- package/esm2020/lib/oauth/models/generated/accountManagementAssertionModel.mjs +2 -0
- package/esm2020/lib/oauth/models/generated/accountManagementRefreshRequestModel.mjs +2 -0
- package/esm2020/lib/oauth/models/generated/accountManagementResponseModel.mjs +2 -0
- package/esm2020/lib/oauth/models/generated/coverageDetail.mjs +19 -0
- package/esm2020/lib/oauth/models/generated/finance.mjs +13 -0
- package/esm2020/lib/oauth/models/generated/iSsoResponseModel.mjs +13 -0
- package/esm2020/lib/oauth/models/generated/iSsoResponseModelAccountManagementAssertionModel.mjs +2 -0
- package/esm2020/lib/oauth/models/generated/person.mjs +13 -0
- package/esm2020/lib/oauth/models/generated/policy.mjs +2 -0
- package/esm2020/lib/oauth/models/generated/refreshResponseModel.mjs +13 -0
- package/esm2020/lib/oauth/models/hybrid-saml-oauth-config.mjs +4 -0
- package/esm2020/lib/oauth/oauth-api.mjs +15 -0
- package/esm2020/lib/oauth/oauth.module.mjs +29 -0
- package/esm2020/lib/oauth/services/hybrid-saml-oauth.service.mjs +201 -0
- package/esm2020/lib/rbac/directives/rbac-action.directive.mjs +50 -0
- package/esm2020/lib/rbac/models/access-token-claims.mjs +23 -0
- package/esm2020/lib/rbac/models/constants.mjs +4 -0
- package/esm2020/lib/rbac/models/decoded-access-token.mjs +69 -0
- package/esm2020/lib/rbac/models/rbac-config.mjs +4 -0
- package/esm2020/lib/rbac/models/role-access.mjs +10 -0
- package/esm2020/lib/rbac/rbac-api.mjs +15 -0
- package/esm2020/lib/rbac/rbac.module.mjs +51 -0
- package/esm2020/lib/rbac/services/ar-role-nav.service.mjs +91 -0
- package/esm2020/lib/rbac/services/oauth2-role.service.mjs +114 -0
- package/esm2020/lib/rbac/services/role-nav.service.mjs +4 -0
- package/esm2020/lib/resize-panels/components/resize-panels/resize-panels.component.mjs +156 -0
- package/esm2020/lib/resize-panels/models/resize-event.mjs +2 -0
- package/esm2020/lib/resize-panels/resize-panels-api.mjs +5 -0
- package/esm2020/lib/resize-panels/resize-panels.module.mjs +23 -0
- package/esm2020/lib/rum/models/arm-error.mjs +29 -0
- package/esm2020/lib/rum/models/rum-config.mjs +4 -0
- package/esm2020/lib/rum/rum-api.mjs +10 -0
- package/esm2020/lib/rum/rum.module.mjs +48 -0
- package/esm2020/lib/rum/services/rum.service.mjs +115 -0
- package/esm2020/lib/rum/services/shared-error.service.mjs +45 -0
- package/esm2020/lib/rum/services/softheon-error-handler.service.mjs +76 -0
- package/esm2020/lib/saml/components/redirect-saml/redirect-saml.component.mjs +79 -0
- package/esm2020/lib/saml/models/i-saml-request.mjs +2 -0
- package/esm2020/lib/saml/models/i-saml-response.mjs +2 -0
- package/esm2020/lib/saml/models/redirect-saml-request.mjs +4 -0
- package/esm2020/lib/saml/models/sso-gateway-model.mjs +4 -0
- package/esm2020/lib/saml/saml-api.mjs +15 -0
- package/esm2020/lib/saml/saml.module.mjs +43 -0
- package/esm2020/lib/saml/services/entry/abstract-saml-entry.service.mjs +4 -0
- package/esm2020/lib/saml/services/entry/sso-gateway-entry.service.mjs +36 -0
- package/esm2020/lib/saml/services/send-off/abstract-saml.service.mjs +4 -0
- package/esm2020/lib/saml/services/send-off/saml.service.mjs +39 -0
- package/esm2020/lib/sof-pipe/constants/constants.mjs +17 -0
- package/esm2020/lib/sof-pipe/models/sof-date-pipe-format.mjs +2 -0
- package/esm2020/lib/sof-pipe/pipes/sof-blank/sof-blank.pipe.mjs +39 -0
- package/esm2020/lib/sof-pipe/pipes/sof-date/sof-date.pipe.mjs +59 -0
- package/esm2020/lib/sof-pipe/pipes/sof-ssn/sof-ssn.pipe.mjs +28 -0
- package/esm2020/lib/sof-pipe/sof-pipe.api.mjs +9 -0
- package/esm2020/lib/sof-pipe/sof-pipe.module.mjs +39 -0
- package/esm2020/lib/theming/directives/css-override.directive.mjs +69 -0
- package/esm2020/lib/theming/models/css-override.mjs +11 -0
- package/esm2020/lib/theming/services/theme.service.mjs +167 -0
- package/esm2020/lib/theming/theme-api.mjs +6 -0
- package/esm2020/lib/theming/theme.module.mjs +31 -0
- package/esm2020/public-api.mjs +48 -0
- package/esm2020/softheon-armature.mjs +5 -0
- package/fesm2015/softheon-armature.mjs +6767 -0
- package/fesm2015/softheon-armature.mjs.map +1 -0
- package/fesm2020/softheon-armature.mjs +6829 -0
- package/fesm2020/softheon-armature.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/alert-banner/alert-banner.module.d.ts +9 -0
- package/lib/alert-banner/components/alert-banner/alert-banner.component.d.ts +3 -0
- package/lib/alert-banner/services/alert-banner.service.d.ts +3 -0
- package/lib/armature.module.d.ts +15 -0
- package/lib/base-components/base-component.module.d.ts +24 -0
- package/lib/base-components/sof-alert/sof-alert.component.d.ts +3 -0
- package/lib/base-components/sof-banner/sof-banner.component.d.ts +3 -0
- package/lib/base-components/sof-button-toggle-group/sof-button-toggle-group.component.d.ts +3 -0
- package/lib/base-components/sof-modal/sof-modal.component.d.ts +3 -0
- package/lib/base-components/sof-progress-bar/sof-progress-bar.component.d.ts +3 -0
- package/lib/component-save-print/components/component-save-print/component-save-print.component.d.ts +3 -0
- package/lib/component-save-print/services/component-save-print.service.d.ts +3 -0
- package/lib/component-save-print/sof-ar-component-save-print.module.d.ts +6 -0
- package/lib/core/client-generated/api/session.service.d.ts +3 -11
- package/lib/core/components/app-template/app-template.component.d.ts +3 -0
- package/lib/core/initializer/initializer.service.d.ts +3 -0
- package/lib/core/interceptors/armature-auth-token-append.interceptor.d.ts +3 -0
- package/lib/core/models/http-verbs.d.ts +1 -1
- package/lib/core/services/authorization.service.d.ts +3 -0
- package/lib/core/services/banner.service.d.ts +3 -0
- package/lib/core/services/base-config.service.d.ts +3 -0
- package/lib/core/services/default-config.service.d.ts +3 -0
- package/lib/core/services/session.service.d.ts +3 -0
- package/lib/core/services/user-entity.service.d.ts +3 -0
- package/lib/distributed-cache/client-generated/api/cache.service.d.ts +3 -11
- package/lib/distributed-cache/client-generated/model/cacheExpirationType.d.ts +1 -1
- package/lib/distributed-cache/distributed-cache.module.d.ts +5 -0
- package/lib/distributed-cache/services/server-cache.service.d.ts +3 -0
- package/lib/error/components/error-common/error-common.component.d.ts +3 -0
- package/lib/error/error.module.d.ts +8 -0
- package/lib/faq/components/faq/faq.component.d.ts +3 -0
- package/lib/faq/faq.module.d.ts +12 -0
- package/lib/footer/components/footer/footer.component.d.ts +3 -0
- package/lib/footer/components/site-map/site-map.component.d.ts +3 -0
- package/lib/footer/footer.module.d.ts +11 -0
- package/lib/forms/components/sof-address/sof-address.component.d.ts +3 -0
- package/lib/forms/directives/alphanumeric/alphanumeric.directive.d.ts +3 -0
- package/lib/forms/directives/input-trim/input-trim.directive.d.ts +3 -0
- package/lib/forms/directives/letters-only/letters-only.directive.d.ts +3 -0
- package/lib/forms/directives/numbers-only/numbers-only.directive.d.ts +3 -0
- package/lib/forms/forms.module.d.ts +17 -0
- package/lib/forms/pipes/phone-format.pipe.d.ts +3 -0
- package/lib/forms/services/alert.service.d.ts +3 -0
- package/lib/header/components/header/header.component.d.ts +4 -1
- package/lib/header/components/mobile-header-menu/mobile-header-menu.component.d.ts +3 -0
- package/lib/header/header.module.d.ts +18 -0
- package/lib/navigation/components/navigation/navigation.component.d.ts +6 -3
- package/lib/navigation/navigation.module.d.ts +22 -0
- package/lib/oauth/oauth.module.d.ts +6 -0
- package/lib/oauth/services/hybrid-saml-oauth.service.d.ts +3 -0
- package/lib/rbac/directives/rbac-action.directive.d.ts +3 -0
- package/lib/rbac/rbac.module.d.ts +6 -0
- package/lib/rbac/services/ar-role-nav.service.d.ts +3 -0
- package/lib/rbac/services/oauth2-role.service.d.ts +3 -0
- package/lib/resize-panels/components/resize-panels/resize-panels.component.d.ts +3 -0
- package/lib/resize-panels/resize-panels.module.d.ts +6 -0
- package/lib/rum/rum.module.d.ts +5 -0
- package/lib/rum/services/rum.service.d.ts +3 -0
- package/lib/rum/services/shared-error.service.d.ts +3 -0
- package/lib/rum/services/softheon-error-handler.service.d.ts +3 -0
- package/lib/saml/components/redirect-saml/redirect-saml.component.d.ts +3 -0
- package/lib/saml/saml.module.d.ts +6 -0
- package/lib/saml/services/entry/sso-gateway-entry.service.d.ts +3 -0
- package/lib/saml/services/send-off/saml.service.d.ts +3 -0
- package/lib/sof-pipe/pipes/sof-blank/sof-blank.pipe.d.ts +3 -0
- package/lib/sof-pipe/pipes/sof-date/sof-date.pipe.d.ts +3 -0
- package/lib/sof-pipe/pipes/sof-ssn/sof-ssn.pipe.d.ts +3 -0
- package/lib/sof-pipe/sof-pipe.module.d.ts +8 -0
- package/lib/theming/directives/css-override.directive.d.ts +3 -0
- package/lib/theming/services/theme.service.d.ts +3 -0
- package/lib/theming/theme.module.d.ts +6 -0
- package/package.json +39 -27
- package/bundles/softheon-armature.umd.js +0 -7212
- package/bundles/softheon-armature.umd.js.map +0 -1
- package/bundles/softheon-armature.umd.min.js +0 -16
- package/bundles/softheon-armature.umd.min.js.map +0 -1
- package/esm2015/lib/alert-banner/alert-banner-api.js +0 -10
- package/esm2015/lib/alert-banner/alert-banner.module.js +0 -30
- package/esm2015/lib/alert-banner/components/alert-banner/alert-banner.component.js +0 -78
- package/esm2015/lib/alert-banner/models/alert-banner-config.js +0 -2
- package/esm2015/lib/alert-banner/models/alert-banner-context.js +0 -2
- package/esm2015/lib/alert-banner/models/constants.js +0 -16
- package/esm2015/lib/alert-banner/services/alert-banner.service.js +0 -43
- package/esm2015/lib/armature.module.js +0 -142
- package/esm2015/lib/base-components/base-component-api.js +0 -9
- package/esm2015/lib/base-components/base-component.module.js +0 -61
- package/esm2015/lib/base-components/sof-alert/sof-alert.component.js +0 -67
- package/esm2015/lib/base-components/sof-banner/sof-banner.component.js +0 -44
- package/esm2015/lib/base-components/sof-button-toggle-group/sof-button-toggle-group.component.js +0 -169
- package/esm2015/lib/base-components/sof-modal/sof-modal.component.js +0 -49
- package/esm2015/lib/base-components/sof-progress-bar/sof-progress-bar.component.js +0 -76
- package/esm2015/lib/component-save-print/components/component-save-print/component-save-print.component.js +0 -97
- package/esm2015/lib/component-save-print/services/component-save-print.service.js +0 -29
- package/esm2015/lib/component-save-print/sof-ar-component-save-print.module.js +0 -25
- package/esm2015/lib/core/client-generated/api/session.service.js +0 -235
- package/esm2015/lib/core/client-generated/configuration.js +0 -59
- package/esm2015/lib/core/client-generated/encoder.js +0 -17
- package/esm2015/lib/core/client-generated/model/applicationUserModel.js +0 -20
- package/esm2015/lib/core/client-generated/model/assertedUserModel.js +0 -2
- package/esm2015/lib/core/client-generated/model/brandingModel.js +0 -2
- package/esm2015/lib/core/client-generated/model/errorModel.js +0 -13
- package/esm2015/lib/core/client-generated/model/folderLink.js +0 -13
- package/esm2015/lib/core/client-generated/model/identityProfile.js +0 -2
- package/esm2015/lib/core/client-generated/model/models.js +0 -20
- package/esm2015/lib/core/client-generated/model/oAuthModel.js +0 -13
- package/esm2015/lib/core/client-generated/model/preferencesRow.js +0 -13
- package/esm2015/lib/core/client-generated/model/rolesRow.js +0 -13
- package/esm2015/lib/core/client-generated/model/sessionGetResponseModel.js +0 -2
- package/esm2015/lib/core/client-generated/model/sessionPostRequestModel.js +0 -2
- package/esm2015/lib/core/client-generated/model/sessionPostResponseModel.js +0 -2
- package/esm2015/lib/core/client-generated/model/sessionPutRequestModel.js +0 -2
- package/esm2015/lib/core/client-generated/model/sessionPutResponseModel.js +0 -2
- package/esm2015/lib/core/client-generated/model/sessionResponseModel.js +0 -2
- package/esm2015/lib/core/client-generated/model/settingsProfile.js +0 -2
- package/esm2015/lib/core/client-generated/model/themePaletteColorsModel.js +0 -13
- package/esm2015/lib/core/client-generated/model/themePaletteModel.js +0 -2
- package/esm2015/lib/core/client-generated/model/trackingModel.js +0 -13
- package/esm2015/lib/core/client-generated/model/validationRecordsRow.js +0 -13
- package/esm2015/lib/core/client-generated/variables.js +0 -9
- package/esm2015/lib/core/components/app-template/app-template.component.js +0 -249
- package/esm2015/lib/core/functions/guid.js +0 -11
- package/esm2015/lib/core/functions/naming-convention.js +0 -33
- package/esm2015/lib/core/initializer/abstract-startup-service.js +0 -4
- package/esm2015/lib/core/initializer/initializer.service.js +0 -206
- package/esm2015/lib/core/interceptors/armature-auth-token-append.interceptor.js +0 -75
- package/esm2015/lib/core/models/base-config.js +0 -2
- package/esm2015/lib/core/models/constants.js +0 -13
- package/esm2015/lib/core/models/data-store-config.js +0 -4
- package/esm2015/lib/core/models/header-config.js +0 -2
- package/esm2015/lib/core/models/http-verbs.js +0 -9
- package/esm2015/lib/core/models/navigation-config.js +0 -2
- package/esm2015/lib/core/models/oidc-auth-settings.js +0 -2
- package/esm2015/lib/core/models/route-path.js +0 -7
- package/esm2015/lib/core/models/session-config.js +0 -4
- package/esm2015/lib/core/models/styles.js +0 -2
- package/esm2015/lib/core/models/typed-session.js +0 -4
- package/esm2015/lib/core/models/user-entity-service-config.js +0 -12
- package/esm2015/lib/core/services/authorization.service.js +0 -178
- package/esm2015/lib/core/services/banner.service.js +0 -42
- package/esm2015/lib/core/services/base-config.service.js +0 -31
- package/esm2015/lib/core/services/custom-auth-config.service.js +0 -4
- package/esm2015/lib/core/services/default-config.service.js +0 -18
- package/esm2015/lib/core/services/session.service.js +0 -386
- package/esm2015/lib/core/services/user-entity.service.js +0 -147
- package/esm2015/lib/distributed-cache/client-generated/api/api.js +0 -4
- package/esm2015/lib/distributed-cache/client-generated/api/cache.service.js +0 -206
- package/esm2015/lib/distributed-cache/client-generated/configuration.js +0 -59
- package/esm2015/lib/distributed-cache/client-generated/encoder.js +0 -17
- package/esm2015/lib/distributed-cache/client-generated/model/cacheExpirationType.js +0 -16
- package/esm2015/lib/distributed-cache/client-generated/model/createCacheEntryRequestModel.js +0 -2
- package/esm2015/lib/distributed-cache/client-generated/model/models.js +0 -5
- package/esm2015/lib/distributed-cache/client-generated/model/retrieveCacheEntryResponseModel.js +0 -13
- package/esm2015/lib/distributed-cache/client-generated/model/updateCacheEntryRequestModel.js +0 -13
- package/esm2015/lib/distributed-cache/client-generated/variables.js +0 -9
- package/esm2015/lib/distributed-cache/distributed-cache-api.js +0 -8
- package/esm2015/lib/distributed-cache/distributed-cache.module.js +0 -26
- package/esm2015/lib/distributed-cache/models/constants.js +0 -3
- package/esm2015/lib/distributed-cache/models/policy-person.js +0 -9
- package/esm2015/lib/distributed-cache/services/server-cache.service.js +0 -52
- package/esm2015/lib/error/components/error-common/error-common.component.js +0 -24
- package/esm2015/lib/error/error-api.js +0 -7
- package/esm2015/lib/error/error.module.js +0 -22
- package/esm2015/lib/error/models/error-common-config.js +0 -8
- package/esm2015/lib/faq/components/faq/faq.component.js +0 -35
- package/esm2015/lib/faq/faq-api.js +0 -8
- package/esm2015/lib/faq/faq.module.js +0 -32
- package/esm2015/lib/faq/models/faq-config.js +0 -4
- package/esm2015/lib/faq/models/faq.js +0 -8
- package/esm2015/lib/footer/components/footer/footer.component.js +0 -25
- package/esm2015/lib/footer/components/site-map/site-map.component.js +0 -23
- package/esm2015/lib/footer/footer-api.js +0 -10
- package/esm2015/lib/footer/footer.module.js +0 -30
- package/esm2015/lib/footer/models/enum/site-map-direction.js +0 -15
- package/esm2015/lib/footer/models/footer-config.js +0 -4
- package/esm2015/lib/footer/models/site-map-models.js +0 -2
- package/esm2015/lib/forms/components/sof-address/sof-address.component.js +0 -99
- package/esm2015/lib/forms/directives/alphanumeric/alphanumeric.directive.js +0 -75
- package/esm2015/lib/forms/directives/input-trim/input-trim.directive.js +0 -97
- package/esm2015/lib/forms/directives/letters-only/letters-only.directive.js +0 -68
- package/esm2015/lib/forms/directives/numbers-only/numbers-only.directive.js +0 -58
- package/esm2015/lib/forms/forms-api.js +0 -19
- package/esm2015/lib/forms/forms.module.js +0 -63
- package/esm2015/lib/forms/models/address.js +0 -2
- package/esm2015/lib/forms/models/constants.js +0 -10
- package/esm2015/lib/forms/models/county.js +0 -2
- package/esm2015/lib/forms/models/enums/states.js +0 -58
- package/esm2015/lib/forms/pipes/phone-format.pipe.js +0 -29
- package/esm2015/lib/forms/services/alert.service.js +0 -170
- package/esm2015/lib/header/components/header/header.component.js +0 -157
- package/esm2015/lib/header/components/mobile-header-menu/mobile-header-menu.component.js +0 -37
- package/esm2015/lib/header/header-api.js +0 -12
- package/esm2015/lib/header/header.module.js +0 -51
- package/esm2015/lib/header/models/header-auth.settings.js +0 -32
- package/esm2015/lib/header/models/header-language.settings.js +0 -2
- package/esm2015/lib/header/models/header-theme.settings.js +0 -2
- package/esm2015/lib/header/models/header.settings.js +0 -2
- package/esm2015/lib/header/models/mobile-header-nav.settings.js +0 -2
- package/esm2015/lib/navigation/components/navigation/navigation.component.js +0 -544
- package/esm2015/lib/navigation/models/nav-theme.settings.js +0 -2
- package/esm2015/lib/navigation/models/nav.settings.js +0 -2
- package/esm2015/lib/navigation/models/navigation.js +0 -2
- package/esm2015/lib/navigation/navigation-api.js +0 -9
- package/esm2015/lib/navigation/navigation.module.js +0 -67
- package/esm2015/lib/oauth/models/constants.js +0 -6
- package/esm2015/lib/oauth/models/generated/accountManagementAssertionModel.js +0 -2
- package/esm2015/lib/oauth/models/generated/accountManagementRefreshRequestModel.js +0 -2
- package/esm2015/lib/oauth/models/generated/accountManagementResponseModel.js +0 -2
- package/esm2015/lib/oauth/models/generated/coverageDetail.js +0 -19
- package/esm2015/lib/oauth/models/generated/finance.js +0 -13
- package/esm2015/lib/oauth/models/generated/iSsoResponseModel.js +0 -13
- package/esm2015/lib/oauth/models/generated/iSsoResponseModelAccountManagementAssertionModel.js +0 -2
- package/esm2015/lib/oauth/models/generated/person.js +0 -13
- package/esm2015/lib/oauth/models/generated/policy.js +0 -2
- package/esm2015/lib/oauth/models/generated/refreshResponseModel.js +0 -13
- package/esm2015/lib/oauth/models/hybrid-saml-oauth-config.js +0 -4
- package/esm2015/lib/oauth/oauth-api.js +0 -15
- package/esm2015/lib/oauth/oauth.module.js +0 -20
- package/esm2015/lib/oauth/services/hybrid-saml-oauth.service.js +0 -202
- package/esm2015/lib/rbac/directives/rbac-action.directive.js +0 -52
- package/esm2015/lib/rbac/models/access-token-claims.js +0 -23
- package/esm2015/lib/rbac/models/constants.js +0 -4
- package/esm2015/lib/rbac/models/decoded-access-token.js +0 -69
- package/esm2015/lib/rbac/models/rbac-config.js +0 -4
- package/esm2015/lib/rbac/models/role-access.js +0 -10
- package/esm2015/lib/rbac/rbac-api.js +0 -15
- package/esm2015/lib/rbac/rbac.module.js +0 -43
- package/esm2015/lib/rbac/services/ar-role-nav.service.js +0 -90
- package/esm2015/lib/rbac/services/oauth2-role.service.js +0 -120
- package/esm2015/lib/rbac/services/role-nav.service.js +0 -4
- package/esm2015/lib/resize-panels/components/resize-panels/resize-panels.component.js +0 -142
- package/esm2015/lib/resize-panels/models/resize-event.js +0 -2
- package/esm2015/lib/resize-panels/resize-panels-api.js +0 -5
- package/esm2015/lib/resize-panels/resize-panels.module.js +0 -18
- package/esm2015/lib/rum/models/arm-error.js +0 -29
- package/esm2015/lib/rum/models/rum-config.js +0 -4
- package/esm2015/lib/rum/rum-api.js +0 -10
- package/esm2015/lib/rum/rum.module.js +0 -40
- package/esm2015/lib/rum/services/rum.service.js +0 -118
- package/esm2015/lib/rum/services/shared-error.service.js +0 -46
- package/esm2015/lib/rum/services/softheon-error-handler.service.js +0 -81
- package/esm2015/lib/saml/components/redirect-saml/redirect-saml.component.js +0 -76
- package/esm2015/lib/saml/models/i-saml-request.js +0 -2
- package/esm2015/lib/saml/models/i-saml-response.js +0 -2
- package/esm2015/lib/saml/models/redirect-saml-request.js +0 -4
- package/esm2015/lib/saml/models/sso-gateway-model.js +0 -4
- package/esm2015/lib/saml/saml-api.js +0 -15
- package/esm2015/lib/saml/saml.module.js +0 -36
- package/esm2015/lib/saml/services/entry/abstract-saml-entry.service.js +0 -4
- package/esm2015/lib/saml/services/entry/sso-gateway-entry.service.js +0 -35
- package/esm2015/lib/saml/services/send-off/abstract-saml.service.js +0 -9
- package/esm2015/lib/saml/services/send-off/saml.service.js +0 -41
- package/esm2015/lib/sof-pipe/constants/constants.js +0 -17
- package/esm2015/lib/sof-pipe/models/sof-date-pipe-format.js +0 -2
- package/esm2015/lib/sof-pipe/pipes/sof-blank/sof-blank.pipe.js +0 -33
- package/esm2015/lib/sof-pipe/pipes/sof-date/sof-date.pipe.js +0 -54
- package/esm2015/lib/sof-pipe/pipes/sof-ssn/sof-ssn.pipe.js +0 -24
- package/esm2015/lib/sof-pipe/sof-pipe.api.js +0 -9
- package/esm2015/lib/sof-pipe/sof-pipe.module.js +0 -28
- package/esm2015/lib/theming/directives/css-override.directive.js +0 -67
- package/esm2015/lib/theming/models/css-override.js +0 -11
- package/esm2015/lib/theming/services/theme.service.js +0 -166
- package/esm2015/lib/theming/theme-api.js +0 -6
- package/esm2015/lib/theming/theme.module.js +0 -24
- package/esm2015/public-api.js +0 -48
- package/esm2015/softheon-armature.js +0 -12
- package/fesm2015/softheon-armature.js +0 -6517
- package/fesm2015/softheon-armature.js.map +0 -1
- package/softheon-armature.d.ts +0 -11
- 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=
|