new-front-common-library 0.0.75 → 0.0.77-ERGO-ROBOTO
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/README.md +28 -28
- package/assets/css/_dark-theme.scss +648 -648
- package/assets/css/_flex.scss +55 -55
- package/assets/css/_global.scss +692 -692
- package/assets/css/_light-theme.scss +651 -651
- package/assets/css/_mat-palettes.scss +96 -96
- package/assets/css/_themes.scss +52 -52
- package/assets/i18n/front-common/de.json +24 -24
- package/assets/i18n/front-common/en.json +24 -24
- package/assets/i18n/front-common/fr.json +24 -24
- package/bundles/new-front-common-library.umd.js +4903 -4900
- package/bundles/new-front-common-library.umd.js.map +1 -1
- package/esm2015/lib/util/array.service.js +19 -19
- package/esm2015/lib/util/component/header/header.component.js +189 -189
- package/esm2015/lib/util/component/overlay/overlay.component.js +44 -44
- package/esm2015/lib/util/component/overlay/overlay.service.js +24 -24
- package/esm2015/lib/util/component/popup/popup-login/popup-login.component.js +90 -90
- package/esm2015/lib/util/component/sub-header/sub-header.component.js +48 -48
- package/esm2015/lib/util/config.js +8 -8
- package/esm2015/lib/util/date/PeriodModel.js +8 -8
- package/esm2015/lib/util/date/date-adapter.js +41 -41
- package/esm2015/lib/util/date/date-format-constants.js +12 -12
- package/esm2015/lib/util/date/date.util.js +218 -218
- package/esm2015/lib/util/decorators/theme.decorator.js +22 -22
- package/esm2015/lib/util/decorators/user.decorator.js +25 -25
- package/esm2015/lib/util/directives/my-number-formatter-directive.js +34 -34
- package/esm2015/lib/util/directives/show-if-truncated.directive.js +25 -25
- package/esm2015/lib/util/enums/rapid-search-item-type.enum.js +10 -10
- package/esm2015/lib/util/enums/status-color.enum.js +11 -11
- package/esm2015/lib/util/event/header/header-events.service.js +21 -21
- package/esm2015/lib/util/event/storage/local-storage-events.service.js +17 -17
- package/esm2015/lib/util/event/storage/session-storage-events.service.js +18 -18
- package/esm2015/lib/util/http/http-params.builder.js +27 -27
- package/esm2015/lib/util/i18n/de.js +60 -59
- package/esm2015/lib/util/i18n/en.js +60 -59
- package/esm2015/lib/util/i18n/fr.js +60 -59
- package/esm2015/lib/util/i18n/multi-translate-http-loader.js +21 -21
- package/esm2015/lib/util/interfaces/permissions.interface.js +2 -2
- package/esm2015/lib/util/models/any-line.model.js +37 -37
- package/esm2015/lib/util/models/audio-content.model.js +27 -27
- package/esm2015/lib/util/models/authPermission.model.js +16 -16
- package/esm2015/lib/util/models/authUser.model.js +20 -20
- package/esm2015/lib/util/models/basic.model.js +14 -14
- package/esm2015/lib/util/models/box-set-item.model.js +19 -19
- package/esm2015/lib/util/models/disc-program.model.js +26 -26
- package/esm2015/lib/util/models/disc.model.js +22 -22
- package/esm2015/lib/util/models/eventType.model.js +7 -7
- package/esm2015/lib/util/models/expenditure-commitment/purchase-order-file.model.js +22 -22
- package/esm2015/lib/util/models/expenditure-commitment/purchase-order-rapid-search.model.js +3 -3
- package/esm2015/lib/util/models/index.js +98 -98
- package/esm2015/lib/util/models/lang-line.model.js +27 -27
- package/esm2015/lib/util/models/legal/contract-work.model.js +23 -23
- package/esm2015/lib/util/models/legal/contract-work2.model.js +21 -21
- package/esm2015/lib/util/models/media-line.model.js +18 -18
- package/esm2015/lib/util/models/menu-language.model.js +15 -15
- package/esm2015/lib/util/models/permission.model.js +20 -20
- package/esm2015/lib/util/models/product-box-set.model.js +16 -16
- package/esm2015/lib/util/models/product-disc-detail.model.js +22 -22
- package/esm2015/lib/util/models/product-disc.model.js +27 -27
- package/esm2015/lib/util/models/product-division.model.js +29 -29
- package/esm2015/lib/util/models/product-type.model.js +22 -22
- package/esm2015/lib/util/models/product.model.js +62 -62
- package/esm2015/lib/util/models/program.model.js +28 -28
- package/esm2015/lib/util/models/purchase-order/purchase-order.model.js +53 -53
- package/esm2015/lib/util/models/referential/WorkVersionArticleDto.js +17 -17
- package/esm2015/lib/util/models/referential/adress-type.model.js +14 -14
- package/esm2015/lib/util/models/referential/adress.model.js +28 -28
- package/esm2015/lib/util/models/referential/attached-file.model.js +17 -17
- package/esm2015/lib/util/models/referential/bank-account.model.js +24 -24
- package/esm2015/lib/util/models/referential/bank-accounts.model.js +31 -31
- package/esm2015/lib/util/models/referential/basic-hierarchy.model.js +8 -8
- package/esm2015/lib/util/models/referential/broadcast-list-item.model.js +13 -13
- package/esm2015/lib/util/models/referential/color.model.js +16 -16
- package/esm2015/lib/util/models/referential/company.model.js +16 -16
- package/esm2015/lib/util/models/referential/content-type.model.js +17 -17
- package/esm2015/lib/util/models/referential/content.model.js +22 -22
- package/esm2015/lib/util/models/referential/cost-center-criteria-values.model.js +14 -14
- package/esm2015/lib/util/models/referential/cost-center-criteria.model.js +13 -13
- package/esm2015/lib/util/models/referential/cost-center.model.js +28 -28
- package/esm2015/lib/util/models/referential/coutry.model.js +16 -16
- package/esm2015/lib/util/models/referential/currency.model.js +20 -20
- package/esm2015/lib/util/models/referential/editorial-content.model.js +18 -18
- package/esm2015/lib/util/models/referential/fixing.model.js +16 -16
- package/esm2015/lib/util/models/referential/flat-media.model.js +18 -18
- package/esm2015/lib/util/models/referential/format-image.model.js +16 -16
- package/esm2015/lib/util/models/referential/format-type.model.js +16 -16
- package/esm2015/lib/util/models/referential/format.model.js +17 -17
- package/esm2015/lib/util/models/referential/fsk-index.model.js +20 -20
- package/esm2015/lib/util/models/referential/fsk.model.js +22 -22
- package/esm2015/lib/util/models/referential/function.model.js +23 -23
- package/esm2015/lib/util/models/referential/genre.model.js +17 -17
- package/esm2015/lib/util/models/referential/invoice-product-type.model.js +22 -22
- package/esm2015/lib/util/models/referential/keywords.model.js +2 -2
- package/esm2015/lib/util/models/referential/language.model.js +18 -18
- package/esm2015/lib/util/models/referential/media-filter.model.js +3 -3
- package/esm2015/lib/util/models/referential/media.model.js +20 -20
- package/esm2015/lib/util/models/referential/module.model.js +20 -20
- package/esm2015/lib/util/models/referential/parameter.model.js +2 -2
- package/esm2015/lib/util/models/referential/participant.model.js +20 -20
- package/esm2015/lib/util/models/referential/person.model.js +23 -23
- package/esm2015/lib/util/models/referential/project-status.model.js +16 -16
- package/esm2015/lib/util/models/referential/quota.model.js +17 -17
- package/esm2015/lib/util/models/referential/referential-entity-state.model.js +16 -16
- package/esm2015/lib/util/models/referential/referential-value.model.js +16 -16
- package/esm2015/lib/util/models/referential/referentiel.model.js +26 -26
- package/esm2015/lib/util/models/referential/restriction.model.js +20 -20
- package/esm2015/lib/util/models/referential/sap-order.model.js +20 -20
- package/esm2015/lib/util/models/referential/service-error.model.js +15 -15
- package/esm2015/lib/util/models/referential/sound.model.js +16 -16
- package/esm2015/lib/util/models/referential/territories-languages.model.js +16 -16
- package/esm2015/lib/util/models/referential/territory-filter.model.js +3 -3
- package/esm2015/lib/util/models/referential/territory.model.js +17 -17
- package/esm2015/lib/util/models/referential/theme.model.js +17 -17
- package/esm2015/lib/util/models/referential/third-party-creation-request.model.js +44 -44
- package/esm2015/lib/util/models/referential/third-party-module.model.js +20 -20
- package/esm2015/lib/util/models/referential/third-party.model.js +83 -83
- package/esm2015/lib/util/models/referential/translated-value-model.js +16 -16
- package/esm2015/lib/util/models/referential/tva.model.js +16 -16
- package/esm2015/lib/util/models/referential/type-export.model.js +16 -16
- package/esm2015/lib/util/models/referential/type-tva-company-territory.model.js +32 -32
- package/esm2015/lib/util/models/referential/type-tva.model.js +25 -25
- package/esm2015/lib/util/models/referential/work-addons-model.js +16 -16
- package/esm2015/lib/util/models/referential/work-appartenance.model.js +17 -17
- package/esm2015/lib/util/models/referential/work-genre.model.js +16 -16
- package/esm2015/lib/util/models/referential/work-language.model.js +16 -16
- package/esm2015/lib/util/models/referential/work-milo.model.js +61 -61
- package/esm2015/lib/util/models/referential/work-participant.model.js +21 -21
- package/esm2015/lib/util/models/referential/work-restrictions-model.js +13 -13
- package/esm2015/lib/util/models/referential/work-theme.model.js +16 -16
- package/esm2015/lib/util/models/referential/work-title.model.js +20 -20
- package/esm2015/lib/util/models/referential/work-version-origin.model.js +16 -16
- package/esm2015/lib/util/models/referential/work-version-rapid-search.model.js +3 -3
- package/esm2015/lib/util/models/referential/work-versions-used.model.js +19 -19
- package/esm2015/lib/util/models/referential/work-versions.model.js +27 -27
- package/esm2015/lib/util/models/referential/work-year-production.model.js +13 -13
- package/esm2015/lib/util/models/referential/work.model.js +22 -22
- package/esm2015/lib/util/models/referential/zone.model.js +14 -14
- package/esm2015/lib/util/models/referentiel.model.js +26 -26
- package/esm2015/lib/util/models/search-response.model.js +10 -10
- package/esm2015/lib/util/models/section.model.js +8 -8
- package/esm2015/lib/util/models/select/options.model.js +8 -8
- package/esm2015/lib/util/models/select/select.model.js +7 -7
- package/esm2015/lib/util/models/subtitle-content.model.js +28 -28
- package/esm2015/lib/util/models/user-video.model.js +22 -22
- package/esm2015/lib/util/models/user.model.js +34 -34
- package/esm2015/lib/util/models/video/product-rapid-search.model.js +3 -3
- package/esm2015/lib/util/models/video/support-rapid-search.model.js +3 -3
- package/esm2015/lib/util/models/video-content.model.js +18 -18
- package/esm2015/lib/util/number.validator.js +129 -129
- package/esm2015/lib/util/permissions/permissions.service.js +41 -41
- package/esm2015/lib/util/pipes/capitalizefirst.pipe.js +41 -41
- package/esm2015/lib/util/pipes/comma-separated-number.pipe.js +15 -15
- package/esm2015/lib/util/pipes/common-translate.pipe.js +38 -38
- package/esm2015/lib/util/pipes/display-html.pipe.js +20 -20
- package/esm2015/lib/util/pipes/display-null.pipe.js +24 -24
- package/esm2015/lib/util/pipes/format-duration.pipe.js +23 -23
- package/esm2015/lib/util/pipes/format-number-input.pipe.js +22 -22
- package/esm2015/lib/util/pipes/local-date.pipe.js +27 -27
- package/esm2015/lib/util/pipes/my-number.pipe.js +44 -44
- package/esm2015/lib/util/pipes/third-party-address.pipe.js +17 -17
- package/esm2015/lib/util/pipes/trim-string.pipe.js +25 -25
- package/esm2015/lib/util/regex/regex.service.js +94 -94
- package/esm2015/lib/util/services/api/common-api.service.js +98 -98
- package/esm2015/lib/util/services/elasticsearch/elasticsearch.service.js +65 -65
- package/esm2015/lib/util/services/form-action/form-actions-events.service.js +25 -25
- package/esm2015/lib/util/services/guard/auth.guard.js +43 -43
- package/esm2015/lib/util/services/guard/login.guard.js +34 -34
- package/esm2015/lib/util/services/history/history.service.js +39 -39
- package/esm2015/lib/util/services/interceptor/auth.interceptor.js +53 -53
- package/esm2015/lib/util/services/jwt-security/aes.service.js +34 -34
- package/esm2015/lib/util/services/jwt-security/interceptorhttp.service.js +18 -18
- package/esm2015/lib/util/services/jwt-security/jwt.helpher.js +34 -34
- package/esm2015/lib/util/services/storage/local-storage.service.js +36 -36
- package/esm2015/lib/util/services/storage/session-storage.service.js +38 -38
- package/esm2015/lib/util/services/translate-language/lang.service.js +31 -31
- package/esm2015/lib/util/sort.js +22 -22
- package/esm2015/lib/util/theme/theme-event.service.js +17 -17
- package/esm2015/lib/util/toaster/toaster-events.service.js +32 -32
- package/esm2015/lib/util/util.module.js +270 -270
- package/esm2015/new-front-common-library.js +4 -4
- package/esm2015/public-api.js +56 -56
- package/fesm2015/new-front-common-library.js +4228 -4225
- package/fesm2015/new-front-common-library.js.map +1 -1
- package/lib/util/array.service.d.ts +7 -7
- package/lib/util/component/header/header.component.d.ts +65 -65
- package/lib/util/component/overlay/overlay.component.d.ts +17 -17
- package/lib/util/component/overlay/overlay.service.d.ts +13 -13
- package/lib/util/component/popup/popup-login/popup-login.component.d.ts +32 -32
- package/lib/util/component/sub-header/sub-header.component.d.ts +13 -13
- package/lib/util/config.d.ts +8 -8
- package/lib/util/date/PeriodModel.d.ts +6 -6
- package/lib/util/date/date-adapter.d.ts +8 -8
- package/lib/util/date/date-format-constants.d.ts +25 -25
- package/lib/util/date/date.util.d.ts +16 -16
- package/lib/util/decorators/theme.decorator.d.ts +1 -1
- package/lib/util/decorators/user.decorator.d.ts +1 -1
- package/lib/util/directives/my-number-formatter-directive.d.ts +15 -15
- package/lib/util/directives/show-if-truncated.directive.d.ts +11 -11
- package/lib/util/enums/rapid-search-item-type.enum.d.ts +8 -8
- package/lib/util/enums/status-color.enum.d.ts +9 -9
- package/lib/util/event/header/header-events.service.d.ts +11 -11
- package/lib/util/event/storage/local-storage-events.service.d.ts +9 -9
- package/lib/util/event/storage/session-storage-events.service.d.ts +10 -10
- package/lib/util/http/http-params.builder.d.ts +9 -9
- package/lib/util/i18n/de.d.ts +51 -50
- package/lib/util/i18n/en.d.ts +51 -50
- package/lib/util/i18n/fr.d.ts +51 -50
- package/lib/util/i18n/multi-translate-http-loader.d.ts +14 -14
- package/lib/util/interfaces/permissions.interface.d.ts +3 -3
- package/lib/util/models/any-line.model.d.ts +24 -24
- package/lib/util/models/audio-content.model.d.ts +27 -27
- package/lib/util/models/authPermission.model.d.ts +7 -7
- package/lib/util/models/authUser.model.d.ts +14 -14
- package/lib/util/models/basic.model.d.ts +11 -11
- package/lib/util/models/box-set-item.model.d.ts +12 -12
- package/lib/util/models/disc-program.model.d.ts +9 -9
- package/lib/util/models/disc.model.d.ts +15 -15
- package/lib/util/models/eventType.model.d.ts +5 -5
- package/lib/util/models/expenditure-commitment/purchase-order-file.model.d.ts +8 -8
- package/lib/util/models/expenditure-commitment/purchase-order-rapid-search.model.d.ts +10 -10
- package/lib/util/models/index.d.ts +97 -97
- package/lib/util/models/lang-line.model.d.ts +18 -18
- package/lib/util/models/legal/contract-work.model.d.ts +27 -27
- package/lib/util/models/legal/contract-work2.model.d.ts +23 -23
- package/lib/util/models/media-line.model.d.ts +9 -9
- package/lib/util/models/menu-language.model.d.ts +6 -6
- package/lib/util/models/permission.model.d.ts +12 -12
- package/lib/util/models/product-box-set.model.d.ts +8 -8
- package/lib/util/models/product-disc-detail.model.d.ts +14 -14
- package/lib/util/models/product-disc.model.d.ts +11 -11
- package/lib/util/models/product-division.model.d.ts +15 -15
- package/lib/util/models/product-type.model.d.ts +7 -7
- package/lib/util/models/product.model.d.ts +52 -52
- package/lib/util/models/program.model.d.ts +21 -21
- package/lib/util/models/purchase-order/purchase-order.model.d.ts +40 -40
- package/lib/util/models/referential/WorkVersionArticleDto.d.ts +10 -10
- package/lib/util/models/referential/adress-type.model.d.ts +5 -5
- package/lib/util/models/referential/adress.model.d.ts +20 -20
- package/lib/util/models/referential/attached-file.model.d.ts +11 -11
- package/lib/util/models/referential/bank-account.model.d.ts +15 -15
- package/lib/util/models/referential/bank-accounts.model.d.ts +17 -17
- package/lib/util/models/referential/basic-hierarchy.model.d.ts +6 -6
- package/lib/util/models/referential/broadcast-list-item.model.d.ts +8 -8
- package/lib/util/models/referential/color.model.d.ts +6 -6
- package/lib/util/models/referential/company.model.d.ts +7 -7
- package/lib/util/models/referential/content-type.model.d.ts +12 -12
- package/lib/util/models/referential/content.model.d.ts +7 -7
- package/lib/util/models/referential/cost-center-criteria-values.model.d.ts +7 -7
- package/lib/util/models/referential/cost-center-criteria.model.d.ts +12 -12
- package/lib/util/models/referential/cost-center.model.d.ts +18 -18
- package/lib/util/models/referential/coutry.model.d.ts +7 -7
- package/lib/util/models/referential/currency.model.d.ts +11 -11
- package/lib/util/models/referential/editorial-content.model.d.ts +25 -25
- package/lib/util/models/referential/fixing.model.d.ts +10 -10
- package/lib/util/models/referential/flat-media.model.d.ts +9 -9
- package/lib/util/models/referential/format-image.model.d.ts +7 -7
- package/lib/util/models/referential/format-type.model.d.ts +6 -6
- package/lib/util/models/referential/format.model.d.ts +7 -7
- package/lib/util/models/referential/fsk-index.model.d.ts +22 -22
- package/lib/util/models/referential/fsk.model.d.ts +37 -37
- package/lib/util/models/referential/function.model.d.ts +8 -8
- package/lib/util/models/referential/genre.model.d.ts +7 -7
- package/lib/util/models/referential/invoice-product-type.model.d.ts +7 -7
- package/lib/util/models/referential/keywords.model.d.ts +6 -6
- package/lib/util/models/referential/language.model.d.ts +11 -11
- package/lib/util/models/referential/media-filter.model.d.ts +10 -10
- package/lib/util/models/referential/media.model.d.ts +11 -11
- package/lib/util/models/referential/module.model.d.ts +11 -11
- package/lib/util/models/referential/parameter.model.d.ts +6 -6
- package/lib/util/models/referential/participant.model.d.ts +11 -11
- package/lib/util/models/referential/person.model.d.ts +13 -13
- package/lib/util/models/referential/project-status.model.d.ts +6 -6
- package/lib/util/models/referential/quota.model.d.ts +7 -7
- package/lib/util/models/referential/referential-entity-state.model.d.ts +11 -11
- package/lib/util/models/referential/referential-value.model.d.ts +11 -11
- package/lib/util/models/referential/referentiel.model.d.ts +12 -12
- package/lib/util/models/referential/restriction.model.d.ts +9 -9
- package/lib/util/models/referential/sap-order.model.d.ts +27 -27
- package/lib/util/models/referential/service-error.model.d.ts +13 -13
- package/lib/util/models/referential/sound.model.d.ts +6 -6
- package/lib/util/models/referential/territories-languages.model.d.ts +8 -8
- package/lib/util/models/referential/territory-filter.model.d.ts +6 -6
- package/lib/util/models/referential/territory.model.d.ts +12 -11
- package/lib/util/models/referential/theme.model.d.ts +7 -7
- package/lib/util/models/referential/third-party-creation-request.model.d.ts +48 -48
- package/lib/util/models/referential/third-party-module.model.d.ts +11 -11
- package/lib/util/models/referential/third-party.model.d.ts +45 -45
- package/lib/util/models/referential/translated-value-model.d.ts +10 -10
- package/lib/util/models/referential/tva.model.d.ts +7 -7
- package/lib/util/models/referential/type-export.model.d.ts +7 -7
- package/lib/util/models/referential/type-tva-company-territory.model.d.ts +18 -18
- package/lib/util/models/referential/type-tva.model.d.ts +10 -10
- package/lib/util/models/referential/work-addons-model.d.ts +25 -25
- package/lib/util/models/referential/work-appartenance.model.d.ts +7 -7
- package/lib/util/models/referential/work-genre.model.d.ts +11 -11
- package/lib/util/models/referential/work-language.model.d.ts +11 -11
- package/lib/util/models/referential/work-milo.model.d.ts +46 -46
- package/lib/util/models/referential/work-participant.model.d.ts +10 -10
- package/lib/util/models/referential/work-restrictions-model.d.ts +18 -18
- package/lib/util/models/referential/work-theme.model.d.ts +11 -11
- package/lib/util/models/referential/work-title.model.d.ts +10 -10
- package/lib/util/models/referential/work-version-origin.model.d.ts +10 -10
- package/lib/util/models/referential/work-version-rapid-search.model.d.ts +9 -9
- package/lib/util/models/referential/work-versions-used.model.d.ts +12 -12
- package/lib/util/models/referential/work-versions.model.d.ts +29 -29
- package/lib/util/models/referential/work-year-production.model.d.ts +6 -6
- package/lib/util/models/referential/work.model.d.ts +74 -74
- package/lib/util/models/referential/zone.model.d.ts +6 -6
- package/lib/util/models/referentiel.model.d.ts +12 -12
- package/lib/util/models/search-response.model.d.ts +7 -7
- package/lib/util/models/section.model.d.ts +7 -7
- package/lib/util/models/select/options.model.d.ts +6 -6
- package/lib/util/models/select/select.model.d.ts +5 -5
- package/lib/util/models/subtitle-content.model.d.ts +26 -26
- package/lib/util/models/user-video.model.d.ts +10 -10
- package/lib/util/models/user.model.d.ts +25 -25
- package/lib/util/models/video/product-rapid-search.model.d.ts +8 -8
- package/lib/util/models/video/support-rapid-search.model.d.ts +6 -6
- package/lib/util/models/video-content.model.d.ts +24 -24
- package/lib/util/number.validator.d.ts +14 -14
- package/lib/util/permissions/permissions.service.d.ts +12 -12
- package/lib/util/pipes/capitalizefirst.pipe.d.ts +8 -8
- package/lib/util/pipes/comma-separated-number.pipe.d.ts +7 -7
- package/lib/util/pipes/common-translate.pipe.d.ts +12 -12
- package/lib/util/pipes/display-html.pipe.d.ts +10 -10
- package/lib/util/pipes/display-null.pipe.d.ts +8 -8
- package/lib/util/pipes/format-duration.pipe.d.ts +7 -7
- package/lib/util/pipes/format-number-input.pipe.d.ts +7 -7
- package/lib/util/pipes/local-date.pipe.d.ts +9 -9
- package/lib/util/pipes/my-number.pipe.d.ts +11 -11
- package/lib/util/pipes/third-party-address.pipe.d.ts +8 -8
- package/lib/util/pipes/trim-string.pipe.d.ts +7 -7
- package/lib/util/regex/regex.service.d.ts +12 -12
- package/lib/util/services/api/common-api.service.d.ts +27 -27
- package/lib/util/services/elasticsearch/elasticsearch.service.d.ts +17 -17
- package/lib/util/services/form-action/form-actions-events.service.d.ts +14 -14
- package/lib/util/services/guard/auth.guard.d.ts +18 -18
- package/lib/util/services/guard/login.guard.d.ts +18 -18
- package/lib/util/services/history/history.service.d.ts +10 -10
- package/lib/util/services/interceptor/auth.interceptor.d.ts +16 -16
- package/lib/util/services/jwt-security/aes.service.d.ts +12 -12
- package/lib/util/services/jwt-security/interceptorhttp.service.d.ts +8 -8
- package/lib/util/services/jwt-security/jwt.helpher.d.ts +4 -4
- package/lib/util/services/storage/local-storage.service.d.ts +13 -13
- package/lib/util/services/storage/session-storage.service.d.ts +13 -13
- package/lib/util/services/translate-language/lang.service.d.ts +14 -14
- package/lib/util/sort.d.ts +4 -4
- package/lib/util/theme/theme-event.service.d.ts +9 -9
- package/lib/util/toaster/toaster-events.service.d.ts +15 -15
- package/lib/util/util.module.d.ts +50 -50
- package/new-front-common-library.d.ts +5 -5
- package/package.json +1 -1
- package/public-api.d.ts +53 -53
- package/esm2015/lib/util/models/milo/territory.model.js +0 -18
- package/lib/util/models/milo/territory.model.d.ts +0 -9
|
@@ -1,129 +1,129 @@
|
|
|
1
|
-
// @dynamic
|
|
2
|
-
export class NumberValidator {
|
|
3
|
-
constructor() {
|
|
4
|
-
}
|
|
5
|
-
static validatorNumberGreaterThanZero() {
|
|
6
|
-
return (control) => {
|
|
7
|
-
if (control.value === '' || control.value === undefined) {
|
|
8
|
-
return null;
|
|
9
|
-
}
|
|
10
|
-
else if (control.value !== null) {
|
|
11
|
-
const numberWithoutSpaces = control.value.toString().replace(/ /g, '');
|
|
12
|
-
if (+numberWithoutSpaces === 0) {
|
|
13
|
-
return { validatorNumberGreaterThanZero: true };
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
else {
|
|
17
|
-
return null;
|
|
18
|
-
}
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
*
|
|
23
|
-
* @returns (control:AbstractControl)=>{}
|
|
24
|
-
*/
|
|
25
|
-
// Tests if a number is negative or not. Returns true in case of negative numbers
|
|
26
|
-
validatorNumberNegative() {
|
|
27
|
-
return (control) => {
|
|
28
|
-
if (control.value === null || +control.value === 0) {
|
|
29
|
-
return null;
|
|
30
|
-
}
|
|
31
|
-
else {
|
|
32
|
-
const numberWithoutSpaces = control.value
|
|
33
|
-
.toString()
|
|
34
|
-
.replace(/ /g, '')
|
|
35
|
-
.replace(',', '.');
|
|
36
|
-
if (+numberWithoutSpaces >= 0) {
|
|
37
|
-
return null;
|
|
38
|
-
}
|
|
39
|
-
else {
|
|
40
|
-
return { validatorNumberNegative: true };
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
// Tests if a number is a valid percentage value (between 0 and 100)
|
|
46
|
-
validatorNumberValidPercentage() {
|
|
47
|
-
return (control) => {
|
|
48
|
-
if (control.value == null) {
|
|
49
|
-
return null;
|
|
50
|
-
}
|
|
51
|
-
const numberWithoutComma = control.value.toString().replace(',', '.');
|
|
52
|
-
if (+numberWithoutComma >= 0 && +numberWithoutComma <= 100) {
|
|
53
|
-
return null;
|
|
54
|
-
}
|
|
55
|
-
else if (+control.value >= 0 && +control.value <= 100) {
|
|
56
|
-
return null;
|
|
57
|
-
}
|
|
58
|
-
else {
|
|
59
|
-
return { validatorNumberValidPercentages: true };
|
|
60
|
-
}
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
/*
|
|
64
|
-
tests if a number is not an integer(it contains another characters than digits and -).
|
|
65
|
-
If the number is not an integer, it will return true.
|
|
66
|
-
Also tests if a number starts with 0. If the number starts with 0 -> return true
|
|
67
|
-
*/
|
|
68
|
-
validatorNumberInteger() {
|
|
69
|
-
return (control) => {
|
|
70
|
-
if (control.value === '' || control.value === undefined) {
|
|
71
|
-
return null;
|
|
72
|
-
}
|
|
73
|
-
else if (+control.value === 0) {
|
|
74
|
-
return null;
|
|
75
|
-
}
|
|
76
|
-
else if (control.value !== null) {
|
|
77
|
-
const numberWithoutSpaces = control.value.toString().replace(/ /g, '');
|
|
78
|
-
const myRegexNoDecimal = new RegExp(/^-?^[1-9]\d*$/, 'i');
|
|
79
|
-
if (!myRegexNoDecimal.test(numberWithoutSpaces)) {
|
|
80
|
-
return { validatorNumberInteger: true };
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
else {
|
|
84
|
-
return null;
|
|
85
|
-
}
|
|
86
|
-
};
|
|
87
|
-
}
|
|
88
|
-
// tests if a number is lesser than another number
|
|
89
|
-
validatorNumberLesserThanAnother(anotherValue) {
|
|
90
|
-
return (control) => {
|
|
91
|
-
if (control.value === null) {
|
|
92
|
-
return null;
|
|
93
|
-
}
|
|
94
|
-
else {
|
|
95
|
-
const numberWithoutSpaces = control.value
|
|
96
|
-
.toString()
|
|
97
|
-
.replace(/ /g, '')
|
|
98
|
-
.replace(',', '.');
|
|
99
|
-
if (+numberWithoutSpaces <= anotherValue) {
|
|
100
|
-
return null;
|
|
101
|
-
}
|
|
102
|
-
else {
|
|
103
|
-
return { validatorNumberLesserThanAnother: true };
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
};
|
|
107
|
-
}
|
|
108
|
-
// tests if a number is MAX than another number
|
|
109
|
-
validatorNumberMaxThanAnother(anotherValue) {
|
|
110
|
-
return (control) => {
|
|
111
|
-
if (control.value === null) {
|
|
112
|
-
return null;
|
|
113
|
-
}
|
|
114
|
-
else {
|
|
115
|
-
const numberWithoutSpaces = control.value
|
|
116
|
-
.toString()
|
|
117
|
-
.replace(/ /g, '')
|
|
118
|
-
.replace(',', '.');
|
|
119
|
-
if (+numberWithoutSpaces > anotherValue) {
|
|
120
|
-
return null;
|
|
121
|
-
}
|
|
122
|
-
else {
|
|
123
|
-
return { validatorNumberLesserThanAnother: true };
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
};
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLnZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldy1mcm9udC1jb21tb24tbGlicmFyeS9zcmMvbGliL3V0aWwvbnVtYmVyLnZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxXQUFXO0FBQ1gsTUFBTSxPQUFPLGVBQWU7SUFDeEI7SUFDQSxDQUFDO0lBRU0sTUFBTSxDQUFDLDhCQUE4QjtRQUN4QyxPQUFPLENBQUMsT0FBd0IsRUFBMEIsRUFBRTtZQUN4RCxJQUFJLE9BQU8sQ0FBQyxLQUFLLEtBQUssRUFBRSxJQUFJLE9BQU8sQ0FBQyxLQUFLLEtBQUssU0FBUyxFQUFFO2dCQUNyRCxPQUFPLElBQUksQ0FBQzthQUNmO2lCQUFNLElBQUksT0FBTyxDQUFDLEtBQUssS0FBSyxJQUFJLEVBQUU7Z0JBQy9CLE1BQU0sbUJBQW1CLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUN2RSxJQUFJLENBQUMsbUJBQW1CLEtBQUssQ0FBQyxFQUFFO29CQUM1QixPQUFPLEVBQUMsOEJBQThCLEVBQUUsSUFBSSxFQUFDLENBQUM7aUJBQ2pEO2FBQ0o7aUJBQU07Z0JBQ0gsT0FBTyxJQUFJLENBQUM7YUFDZjtRQUNMLENBQUMsQ0FBQztJQUNOLENBQUM7SUFFRDs7O09BR0c7SUFDSCxpRkFBaUY7SUFDMUUsdUJBQXVCO1FBQzFCLE9BQU8sQ0FBQyxPQUF3QixFQUEwQixFQUFFO1lBQ3hELElBQUksT0FBTyxDQUFDLEtBQUssS0FBSyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxLQUFLLENBQUMsRUFBRTtnQkFDaEQsT0FBTyxJQUFJLENBQUM7YUFDZjtpQkFBTTtnQkFDSCxNQUFNLG1CQUFtQixHQUFHLE9BQU8sQ0FBQyxLQUFLO3FCQUNwQyxRQUFRLEVBQUU7cUJB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QUFDLE9BQXdCLEVBQTBCLEVBQUU7WUFDeEQsSUFBSSxPQUFPLENBQUMsS0FBSyxLQUFLLElBQUksRUFBRTtnQkFDeEIsT0FBTyxJQUFJLENBQUM7YUFDZjtpQkFBTTtnQkFDSCxNQUFNLG1CQUFtQixHQUFHLE9BQU8sQ0FBQyxLQUFLO3FCQUNwQyxRQUFRLEVBQUU7cUJBQ1YsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7cUJBQ2pCLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxZQUFZLEVBQUU7b0JBQ3JDLE9BQU8sSUFBSSxDQUFDO2lCQUNmO3FCQUFNO29CQUNILE9BQU8sRUFBQyxnQ0FBZ0MsRUFBRSxJQUFJLEVBQUMsQ0FBQztpQkFDbkQ7YUFDSjtRQUNMLENBQUMsQ0FBQztJQUNOLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbi8vIEBkeW5hbWljXG5leHBvcnQgY2xhc3MgTnVtYmVyVmFsaWRhdG9yIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIHZhbGlkYXRvck51bWJlckdyZWF0ZXJUaGFuWmVybygpOiBWYWxpZGF0b3JGbiB7XG4gICAgICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9PiB7XG4gICAgICAgICAgICBpZiAoY29udHJvbC52YWx1ZSA9PT0gJycgfHwgY29udHJvbC52YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNvbnRyb2wudmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBudW1iZXJXaXRob3V0U3BhY2VzID0gY29udHJvbC52YWx1ZS50b1N0cmluZygpLnJlcGxhY2UoLyAvZywgJycpO1xuICAgICAgICAgICAgICAgIGlmICgrbnVtYmVyV2l0aG91dFNwYWNlcyA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3ZhbGlkYXRvck51bWJlckdyZWF0ZXJUaGFuWmVybzogdHJ1ZX07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIChjb250cm9sOkFic3RyYWN0Q29udHJvbCk9Pnt9XG4gICAgICovXG4gICAgLy8gVGVzdHMgaWYgYSBudW1iZXIgaXMgbmVnYXRpdmUgb3Igbm90LiBSZXR1cm5zIHRydWUgaW4gY2FzZSBvZiBuZWdhdGl2ZSBudW1iZXJzXG4gICAgcHVibGljIHZhbGlkYXRvck51bWJlck5lZ2F0aXZlKCk6IFZhbGlkYXRvckZuIHtcbiAgICAgICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0+IHtcbiAgICAgICAgICAgIGlmIChjb250cm9sLnZhbHVlID09PSBudWxsIHx8ICtjb250cm9sLnZhbHVlID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IG51bWJlcldpdGhvdXRTcGFjZXMgPSBjb250cm9sLnZhbHVlXG4gICAgICAgICAgICAgICAgICAgIC50b1N0cmluZygpXG4gICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKC8gL2csICcnKVxuICAgICAgICAgICAgICAgICAgICAucmVwbGFjZSgnLCcsICcuJyk7XG4gICAgICAgICAgICAgICAgaWYgKCtudW1iZXJXaXRob3V0U3BhY2VzID49IDApIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt2YWxpZGF0b3JOdW1iZXJOZWdhdGl2ZTogdHJ1ZX07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8vIFRlc3RzIGlmIGEgbnVtYmVyIGlzIGEgdmFsaWQgcGVyY2VudGFnZSB2YWx1ZSAoYmV0d2VlbiAwIGFuZCAxMDApXG4gICAgcHVibGljIHZhbGlkYXRvck51bWJlclZhbGlkUGVyY2VudGFnZSgpOiBWYWxpZGF0b3JGbiB7XG4gICAgICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9PiB7XG4gICAgICAgICAgICBpZiAoY29udHJvbC52YWx1ZSA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBudW1iZXJXaXRob3V0Q29tbWEgPSBjb250cm9sLnZhbHVlLnRvU3RyaW5nKCkucmVwbGFjZSgnLCcsICcuJyk7XG4gICAgICAgICAgICBpZiAoK251bWJlcldpdGhvdXRDb21tYSA+PSAwICYmICtudW1iZXJXaXRob3V0Q29tbWEgPD0gMTAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCtjb250cm9sLnZhbHVlID49IDAgJiYgK2NvbnRyb2wudmFsdWUgPD0gMTAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB7dmFsaWRhdG9yTnVtYmVyVmFsaWRQZXJjZW50YWdlczogdHJ1ZX07XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLypcbiAgIHRlc3RzIGlmIGEgbnVtYmVyIGlzIG5vdCBhbiBpbnRlZ2VyKGl0IGNvbnRhaW5zIGFub3RoZXIgY2hhcmFjdGVycyB0aGFuIGRpZ2l0cyBhbmQgLSkuXG4gICAgIElmIHRoZSBudW1iZXIgaXMgbm90IGFuIGludGVnZXIsIGl0IHdpbGwgcmV0dXJuIHRydWUuXG4gICAgIEFsc28gdGVzdHMgaWYgYSBudW1iZXIgc3RhcnRzIHdpdGggMC4gSWYgdGhlIG51bWJlciBzdGFydHMgd2l0aCAwIC0+IHJldHVybiB0cnVlXG4gICovXG4gICAgcHVibGljIHZhbGlkYXRvck51bWJlckludGVnZXIoKTogVmFsaWRhdG9yRm4ge1xuICAgICAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPT4ge1xuICAgICAgICAgICAgaWYgKGNvbnRyb2wudmFsdWUgPT09ICcnIHx8IGNvbnRyb2wudmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfSBlbHNlIGlmICgrY29udHJvbC52YWx1ZSA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjb250cm9sLnZhbHVlICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbnVtYmVyV2l0aG91dFNwYWNlcyA9IGNvbnRyb2wudmFsdWUudG9TdHJpbmcoKS5yZXBsYWNlKC8gL2csICcnKTtcbiAgICAgICAgICAgICAgICBjb25zdCBteVJlZ2V4Tm9EZWNpbWFsID0gbmV3IFJlZ0V4cCgvXi0/XlsxLTldXFxkKiQvLCAnaScpO1xuICAgICAgICAgICAgICAgIGlmICghbXlSZWdleE5vRGVjaW1hbC50ZXN0KG51bWJlcldpdGhvdXRTcGFjZXMpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7dmFsaWRhdG9yTnVtYmVySW50ZWdlcjogdHJ1ZX07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyB0ZXN0cyBpZiBhIG51bWJlciBpcyBsZXNzZXIgdGhhbiBhbm90aGVyIG51bWJlclxuICAgIHB1YmxpYyB2YWxpZGF0b3JOdW1iZXJMZXNzZXJUaGFuQW5vdGhlcihhbm90aGVyVmFsdWU6IG51bWJlcik6IFZhbGlkYXRvckZuIHtcbiAgICAgICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0+IHtcbiAgICAgICAgICAgIGlmIChjb250cm9sLnZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IG51bWJlcldpdGhvdXRTcGFjZXMgPSBjb250cm9sLnZhbHVlXG4gICAgICAgICAgICAgICAgICAgIC50b1N0cmluZygpXG4gICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKC8gL2csICcnKVxuICAgICAgICAgICAgICAgICAgICAucmVwbGFjZSgnLCcsICcuJyk7XG4gICAgICAgICAgICAgICAgaWYgKCtudW1iZXJXaXRob3V0U3BhY2VzIDw9IGFub3RoZXJWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3ZhbGlkYXRvck51bWJlckxlc3NlclRoYW5Bbm90aGVyOiB0cnVlfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gdGVzdHMgaWYgYSBudW1iZXIgaXMgTUFYIHRoYW4gYW5vdGhlciBudW1iZXJcbiAgICBwdWJsaWMgdmFsaWRhdG9yTnVtYmVyTWF4VGhhbkFub3RoZXIoYW5vdGhlclZhbHVlOiBudW1iZXIpOiBWYWxpZGF0b3JGbiB7XG4gICAgICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9PiB7XG4gICAgICAgICAgICBpZiAoY29udHJvbC52YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBudW1iZXJXaXRob3V0U3BhY2VzID0gY29udHJvbC52YWx1ZVxuICAgICAgICAgICAgICAgICAgICAudG9TdHJpbmcoKVxuICAgICAgICAgICAgICAgICAgICAucmVwbGFjZSgvIC9nLCAnJylcbiAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoJywnLCAnLicpO1xuICAgICAgICAgICAgICAgIGlmICgrbnVtYmVyV2l0aG91dFNwYWNlcyA+IGFub3RoZXJWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3ZhbGlkYXRvck51bWJlckxlc3NlclRoYW5Bbm90aGVyOiB0cnVlfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfVxufVxuIl19
|
|
1
|
+
// @dynamic
|
|
2
|
+
export class NumberValidator {
|
|
3
|
+
constructor() {
|
|
4
|
+
}
|
|
5
|
+
static validatorNumberGreaterThanZero() {
|
|
6
|
+
return (control) => {
|
|
7
|
+
if (control.value === '' || control.value === undefined) {
|
|
8
|
+
return null;
|
|
9
|
+
}
|
|
10
|
+
else if (control.value !== null) {
|
|
11
|
+
const numberWithoutSpaces = control.value.toString().replace(/ /g, '');
|
|
12
|
+
if (+numberWithoutSpaces === 0) {
|
|
13
|
+
return { validatorNumberGreaterThanZero: true };
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
*
|
|
23
|
+
* @returns (control:AbstractControl)=>{}
|
|
24
|
+
*/
|
|
25
|
+
// Tests if a number is negative or not. Returns true in case of negative numbers
|
|
26
|
+
validatorNumberNegative() {
|
|
27
|
+
return (control) => {
|
|
28
|
+
if (control.value === null || +control.value === 0) {
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
const numberWithoutSpaces = control.value
|
|
33
|
+
.toString()
|
|
34
|
+
.replace(/ /g, '')
|
|
35
|
+
.replace(',', '.');
|
|
36
|
+
if (+numberWithoutSpaces >= 0) {
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
return { validatorNumberNegative: true };
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
// Tests if a number is a valid percentage value (between 0 and 100)
|
|
46
|
+
validatorNumberValidPercentage() {
|
|
47
|
+
return (control) => {
|
|
48
|
+
if (control.value == null) {
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
const numberWithoutComma = control.value.toString().replace(',', '.');
|
|
52
|
+
if (+numberWithoutComma >= 0 && +numberWithoutComma <= 100) {
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
else if (+control.value >= 0 && +control.value <= 100) {
|
|
56
|
+
return null;
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
return { validatorNumberValidPercentages: true };
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
/*
|
|
64
|
+
tests if a number is not an integer(it contains another characters than digits and -).
|
|
65
|
+
If the number is not an integer, it will return true.
|
|
66
|
+
Also tests if a number starts with 0. If the number starts with 0 -> return true
|
|
67
|
+
*/
|
|
68
|
+
validatorNumberInteger() {
|
|
69
|
+
return (control) => {
|
|
70
|
+
if (control.value === '' || control.value === undefined) {
|
|
71
|
+
return null;
|
|
72
|
+
}
|
|
73
|
+
else if (+control.value === 0) {
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
else if (control.value !== null) {
|
|
77
|
+
const numberWithoutSpaces = control.value.toString().replace(/ /g, '');
|
|
78
|
+
const myRegexNoDecimal = new RegExp(/^-?^[1-9]\d*$/, 'i');
|
|
79
|
+
if (!myRegexNoDecimal.test(numberWithoutSpaces)) {
|
|
80
|
+
return { validatorNumberInteger: true };
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
// tests if a number is lesser than another number
|
|
89
|
+
validatorNumberLesserThanAnother(anotherValue) {
|
|
90
|
+
return (control) => {
|
|
91
|
+
if (control.value === null) {
|
|
92
|
+
return null;
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
const numberWithoutSpaces = control.value
|
|
96
|
+
.toString()
|
|
97
|
+
.replace(/ /g, '')
|
|
98
|
+
.replace(',', '.');
|
|
99
|
+
if (+numberWithoutSpaces <= anotherValue) {
|
|
100
|
+
return null;
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
return { validatorNumberLesserThanAnother: true };
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
// tests if a number is MAX than another number
|
|
109
|
+
validatorNumberMaxThanAnother(anotherValue) {
|
|
110
|
+
return (control) => {
|
|
111
|
+
if (control.value === null) {
|
|
112
|
+
return null;
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
const numberWithoutSpaces = control.value
|
|
116
|
+
.toString()
|
|
117
|
+
.replace(/ /g, '')
|
|
118
|
+
.replace(',', '.');
|
|
119
|
+
if (+numberWithoutSpaces > anotherValue) {
|
|
120
|
+
return null;
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
return { validatorNumberLesserThanAnother: true };
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLnZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldy1mcm9udC1jb21tb24tbGlicmFyeS9zcmMvbGliL3V0aWwvbnVtYmVyLnZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxXQUFXO0FBQ1gsTUFBTSxPQUFPLGVBQWU7SUFDeEI7SUFDQSxDQUFDO0lBRU0sTUFBTSxDQUFDLDhCQUE4QjtRQUN4QyxPQUFPLENBQUMsT0FBd0IsRUFBMEIsRUFBRTtZQUN4RCxJQUFJLE9BQU8sQ0FBQyxLQUFLLEtBQUssRUFBRSxJQUFJLE9BQU8sQ0FBQyxLQUFLLEtBQUssU0FBUyxFQUFFO2dCQUNyRCxPQUFPLElBQUksQ0FBQzthQUNmO2lCQUFNLElBQUksT0FBTyxDQUFDLEtBQUssS0FBSyxJQUFJLEVBQUU7Z0JBQy9CLE1BQU0sbUJBQW1CLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUN2RSxJQUFJLENBQUMsbUJBQW1CLEtBQUssQ0FBQyxFQUFFO29CQUM1QixPQUFPLEVBQUMsOEJBQThCLEVBQUUsSUFBSSxFQUFDLENBQUM7aUJBQ2pEO2FBQ0o7aUJBQU07Z0JBQ0gsT0FBTyxJQUFJLENBQUM7YUFDZjtRQUNMLENBQUMsQ0FBQztJQUNOLENBQUM7SUFFRDs7O09BR0c7SUFDSCxpRkFBaUY7SUFDMUUsdUJBQXVCO1FBQzFCLE9BQU8sQ0FBQyxPQUF3QixFQUEwQixFQUFFO1lBQ3hELElBQUksT0FBTyxDQUFDLEtBQUssS0FBSyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxLQUFLLENBQUMsRUFBRTtnQkFDaEQsT0FBTyxJQUFJLENBQUM7YUFDZjtpQkFBTTtnQkFDSCxNQUFNLG1CQUFtQixHQUFHLE9BQU8sQ0FBQyxLQUFLO3FCQUNwQyxRQUFRLEVBQUU7cUJB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QUFDLE9BQXdCLEVBQTBCLEVBQUU7WUFDeEQsSUFBSSxPQUFPLENBQUMsS0FBSyxLQUFLLElBQUksRUFBRTtnQkFDeEIsT0FBTyxJQUFJLENBQUM7YUFDZjtpQkFBTTtnQkFDSCxNQUFNLG1CQUFtQixHQUFHLE9BQU8sQ0FBQyxLQUFLO3FCQUNwQyxRQUFRLEVBQUU7cUJBQ1YsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7cUJBQ2pCLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxZQUFZLEVBQUU7b0JBQ3JDLE9BQU8sSUFBSSxDQUFDO2lCQUNmO3FCQUFNO29CQUNILE9BQU8sRUFBQyxnQ0FBZ0MsRUFBRSxJQUFJLEVBQUMsQ0FBQztpQkFDbkQ7YUFDSjtRQUNMLENBQUMsQ0FBQztJQUNOLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG4vLyBAZHluYW1pY1xyXG5leHBvcnQgY2xhc3MgTnVtYmVyVmFsaWRhdG9yIHtcclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgdmFsaWRhdG9yTnVtYmVyR3JlYXRlclRoYW5aZXJvKCk6IFZhbGlkYXRvckZuIHtcclxuICAgICAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPT4ge1xyXG4gICAgICAgICAgICBpZiAoY29udHJvbC52YWx1ZSA9PT0gJycgfHwgY29udHJvbC52YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICAgICAgfSBlbHNlIGlmIChjb250cm9sLnZhbHVlICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBudW1iZXJXaXRob3V0U3BhY2VzID0gY29udHJvbC52YWx1ZS50b1N0cmluZygpLnJlcGxhY2UoLyAvZywgJycpO1xyXG4gICAgICAgICAgICAgICAgaWYgKCtudW1iZXJXaXRob3V0U3BhY2VzID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt2YWxpZGF0b3JOdW1iZXJHcmVhdGVyVGhhblplcm86IHRydWV9O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIChjb250cm9sOkFic3RyYWN0Q29udHJvbCk9Pnt9XHJcbiAgICAgKi9cclxuICAgIC8vIFRlc3RzIGlmIGEgbnVtYmVyIGlzIG5lZ2F0aXZlIG9yIG5vdC4gUmV0dXJucyB0cnVlIGluIGNhc2Ugb2YgbmVnYXRpdmUgbnVtYmVyc1xyXG4gICAgcHVibGljIHZhbGlkYXRvck51bWJlck5lZ2F0aXZlKCk6IFZhbGlkYXRvckZuIHtcclxuICAgICAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPT4ge1xyXG4gICAgICAgICAgICBpZiAoY29udHJvbC52YWx1ZSA9PT0gbnVsbCB8fCArY29udHJvbC52YWx1ZSA9PT0gMCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBudW1iZXJXaXRob3V0U3BhY2VzID0gY29udHJvbC52YWx1ZVxyXG4gICAgICAgICAgICAgICAgICAgIC50b1N0cmluZygpXHJcbiAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoLyAvZywgJycpXHJcbiAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoJywnLCAnLicpO1xyXG4gICAgICAgICAgICAgICAgaWYgKCtudW1iZXJXaXRob3V0U3BhY2VzID49IDApIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt2YWxpZGF0b3JOdW1iZXJOZWdhdGl2ZTogdHJ1ZX07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFRlc3RzIGlmIGEgbnVtYmVyIGlzIGEgdmFsaWQgcGVyY2VudGFnZSB2YWx1ZSAoYmV0d2VlbiAwIGFuZCAxMDApXHJcbiAgICBwdWJsaWMgdmFsaWRhdG9yTnVtYmVyVmFsaWRQZXJjZW50YWdlKCk6IFZhbGlkYXRvckZuIHtcclxuICAgICAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPT4ge1xyXG4gICAgICAgICAgICBpZiAoY29udHJvbC52YWx1ZSA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCBudW1iZXJXaXRob3V0Q29tbWEgPSBjb250cm9sLnZhbHVlLnRvU3RyaW5nKCkucmVwbGFjZSgnLCcsICcuJyk7XHJcbiAgICAgICAgICAgIGlmICgrbnVtYmVyV2l0aG91dENvbW1hID49IDAgJiYgK251bWJlcldpdGhvdXRDb21tYSA8PSAxMDApIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKCtjb250cm9sLnZhbHVlID49IDAgJiYgK2NvbnRyb2wudmFsdWUgPD0gMTAwKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB7dmFsaWRhdG9yTnVtYmVyVmFsaWRQZXJjZW50YWdlczogdHJ1ZX07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIC8qXHJcbiAgIHRlc3RzIGlmIGEgbnVtYmVyIGlzIG5vdCBhbiBpbnRlZ2VyKGl0IGNvbnRhaW5zIGFub3RoZXIgY2hhcmFjdGVycyB0aGFuIGRpZ2l0cyBhbmQgLSkuXHJcbiAgICAgSWYgdGhlIG51bWJlciBpcyBub3QgYW4gaW50ZWdlciwgaXQgd2lsbCByZXR1cm4gdHJ1ZS5cclxuICAgICBBbHNvIHRlc3RzIGlmIGEgbnVtYmVyIHN0YXJ0cyB3aXRoIDAuIElmIHRoZSBudW1iZXIgc3RhcnRzIHdpdGggMCAtPiByZXR1cm4gdHJ1ZVxyXG4gICovXHJcbiAgICBwdWJsaWMgdmFsaWRhdG9yTnVtYmVySW50ZWdlcigpOiBWYWxpZGF0b3JGbiB7XHJcbiAgICAgICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0+IHtcclxuICAgICAgICAgICAgaWYgKGNvbnRyb2wudmFsdWUgPT09ICcnIHx8IGNvbnRyb2wudmFsdWUgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoK2NvbnRyb2wudmFsdWUgPT09IDApIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNvbnRyb2wudmFsdWUgIT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG51bWJlcldpdGhvdXRTcGFjZXMgPSBjb250cm9sLnZhbHVlLnRvU3RyaW5nKCkucmVwbGFjZSgvIC9nLCAnJyk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBteVJlZ2V4Tm9EZWNpbWFsID0gbmV3IFJlZ0V4cCgvXi0/XlsxLTldXFxkKiQvLCAnaScpO1xyXG4gICAgICAgICAgICAgICAgaWYgKCFteVJlZ2V4Tm9EZWNpbWFsLnRlc3QobnVtYmVyV2l0aG91dFNwYWNlcykpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3ZhbGlkYXRvck51bWJlckludGVnZXI6IHRydWV9O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIC8vIHRlc3RzIGlmIGEgbnVtYmVyIGlzIGxlc3NlciB0aGFuIGFub3RoZXIgbnVtYmVyXHJcbiAgICBwdWJsaWMgdmFsaWRhdG9yTnVtYmVyTGVzc2VyVGhhbkFub3RoZXIoYW5vdGhlclZhbHVlOiBudW1iZXIpOiBWYWxpZGF0b3JGbiB7XHJcbiAgICAgICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0+IHtcclxuICAgICAgICAgICAgaWYgKGNvbnRyb2wudmFsdWUgPT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbnVtYmVyV2l0aG91dFNwYWNlcyA9IGNvbnRyb2wudmFsdWVcclxuICAgICAgICAgICAgICAgICAgICAudG9TdHJpbmcoKVxyXG4gICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKC8gL2csICcnKVxyXG4gICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKCcsJywgJy4nKTtcclxuICAgICAgICAgICAgICAgIGlmICgrbnVtYmVyV2l0aG91dFNwYWNlcyA8PSBhbm90aGVyVmFsdWUpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt2YWxpZGF0b3JOdW1iZXJMZXNzZXJUaGFuQW5vdGhlcjogdHJ1ZX07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIC8vIHRlc3RzIGlmIGEgbnVtYmVyIGlzIE1BWCB0aGFuIGFub3RoZXIgbnVtYmVyXHJcbiAgICBwdWJsaWMgdmFsaWRhdG9yTnVtYmVyTWF4VGhhbkFub3RoZXIoYW5vdGhlclZhbHVlOiBudW1iZXIpOiBWYWxpZGF0b3JGbiB7XHJcbiAgICAgICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0+IHtcclxuICAgICAgICAgICAgaWYgKGNvbnRyb2wudmFsdWUgPT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbnVtYmVyV2l0aG91dFNwYWNlcyA9IGNvbnRyb2wudmFsdWVcclxuICAgICAgICAgICAgICAgICAgICAudG9TdHJpbmcoKVxyXG4gICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKC8gL2csICcnKVxyXG4gICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKCcsJywgJy4nKTtcclxuICAgICAgICAgICAgICAgIGlmICgrbnVtYmVyV2l0aG91dFNwYWNlcyA+IGFub3RoZXJWYWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3ZhbGlkYXRvck51bWJlckxlc3NlclRoYW5Bbm90aGVyOiB0cnVlfTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -1,41 +1,41 @@
|
|
|
1
|
-
import { __decorate } from "tslib";
|
|
2
|
-
import { Injectable } from '@angular/core';
|
|
3
|
-
import { User } from '../decorators/user.decorator';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "ngx-permissions";
|
|
6
|
-
export class PermissionsService {
|
|
7
|
-
constructor(permissionsService) {
|
|
8
|
-
this.permissionsService = permissionsService;
|
|
9
|
-
}
|
|
10
|
-
init() {
|
|
11
|
-
if (this.user && this.user.permissions && this.user.permissions.length > 0 && this.shouldLoadUserPermissions()) {
|
|
12
|
-
const userPermissions = this.user.permissions.map((p) => p.code);
|
|
13
|
-
this.permissionsService.loadPermissions(userPermissions);
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
hasPermission(code) {
|
|
17
|
-
return this.user && this.user.permissions && this.user.permissions.filter((p) => p.code === code).length > 0;
|
|
18
|
-
}
|
|
19
|
-
shouldLoadUserPermissions() {
|
|
20
|
-
const loadedPermissions = Object.keys(this.permissionsService.getPermissions());
|
|
21
|
-
if (loadedPermissions.length !== this.user.permissions.length) {
|
|
22
|
-
return true;
|
|
23
|
-
}
|
|
24
|
-
let res = false;
|
|
25
|
-
this.user.permissions.forEach((p) => {
|
|
26
|
-
if (loadedPermissions.indexOf(p.code) === -1) {
|
|
27
|
-
res = true;
|
|
28
|
-
}
|
|
29
|
-
});
|
|
30
|
-
return res;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
PermissionsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.2", ngImport: i0, type: PermissionsService, deps: [{ token: i1.NgxPermissionsService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
34
|
-
PermissionsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.2", ngImport: i0, type: PermissionsService });
|
|
35
|
-
__decorate([
|
|
36
|
-
User()
|
|
37
|
-
], PermissionsService.prototype, "user", void 0);
|
|
38
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.2", ngImport: i0, type: PermissionsService, decorators: [{
|
|
39
|
-
type: Injectable
|
|
40
|
-
}], ctorParameters: function () { return [{ type: i1.NgxPermissionsService }]; }, propDecorators: { user: [] } });
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { Injectable } from '@angular/core';
|
|
3
|
+
import { User } from '../decorators/user.decorator';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "ngx-permissions";
|
|
6
|
+
export class PermissionsService {
|
|
7
|
+
constructor(permissionsService) {
|
|
8
|
+
this.permissionsService = permissionsService;
|
|
9
|
+
}
|
|
10
|
+
init() {
|
|
11
|
+
if (this.user && this.user.permissions && this.user.permissions.length > 0 && this.shouldLoadUserPermissions()) {
|
|
12
|
+
const userPermissions = this.user.permissions.map((p) => p.code);
|
|
13
|
+
this.permissionsService.loadPermissions(userPermissions);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
hasPermission(code) {
|
|
17
|
+
return this.user && this.user.permissions && this.user.permissions.filter((p) => p.code === code).length > 0;
|
|
18
|
+
}
|
|
19
|
+
shouldLoadUserPermissions() {
|
|
20
|
+
const loadedPermissions = Object.keys(this.permissionsService.getPermissions());
|
|
21
|
+
if (loadedPermissions.length !== this.user.permissions.length) {
|
|
22
|
+
return true;
|
|
23
|
+
}
|
|
24
|
+
let res = false;
|
|
25
|
+
this.user.permissions.forEach((p) => {
|
|
26
|
+
if (loadedPermissions.indexOf(p.code) === -1) {
|
|
27
|
+
res = true;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
return res;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
PermissionsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.2", ngImport: i0, type: PermissionsService, deps: [{ token: i1.NgxPermissionsService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
34
|
+
PermissionsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.2", ngImport: i0, type: PermissionsService });
|
|
35
|
+
__decorate([
|
|
36
|
+
User()
|
|
37
|
+
], PermissionsService.prototype, "user", void 0);
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.2", ngImport: i0, type: PermissionsService, decorators: [{
|
|
39
|
+
type: Injectable
|
|
40
|
+
}], ctorParameters: function () { return [{ type: i1.NgxPermissionsService }]; }, propDecorators: { user: [] } });
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbnMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldy1mcm9udC1jb21tb24tbGlicmFyeS9zcmMvbGliL3V0aWwvcGVybWlzc2lvbnMvcGVybWlzc2lvbnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sOEJBQThCLENBQUM7OztBQUlwRCxNQUFNLE9BQU8sa0JBQWtCO0lBRzNCLFlBQW9CLGtCQUF5QztRQUF6Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQXVCO0lBQzdELENBQUM7SUFFTSxJQUFJO1FBQ1AsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLHlCQUF5QixFQUFFLEVBQUU7WUFDNUcsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDakUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxlQUFlLENBQUMsQ0FBQztTQUM1RDtJQUNMLENBQUM7SUFFTSxhQUFhLENBQUMsSUFBWTtRQUM3QixPQUFPLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDakgsQ0FBQztJQUVPLHlCQUF5QjtRQUM3QixNQUFNLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7UUFDaEYsSUFBSSxpQkFBaUIsQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFO1lBQzNELE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFDRCxJQUFJLEdBQUcsR0FBRyxLQUFLLENBQUM7UUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDaEMsSUFBSSxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUMxQyxHQUFHLEdBQUcsSUFBSSxDQUFDO2FBQ2Q7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sR0FBRyxDQUFDO0lBQ2YsQ0FBQzs7K0dBN0JRLGtCQUFrQjttSEFBbEIsa0JBQWtCO0FBQ25CO0lBQVAsSUFBSSxFQUFFO2dEQUFhOzJGQURYLGtCQUFrQjtrQkFEOUIsVUFBVTs0R0FFUSxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBVc2VyIH0gZnJvbSAnLi4vZGVjb3JhdG9ycy91c2VyLmRlY29yYXRvcic7XHJcbmltcG9ydCB7IE5neFBlcm1pc3Npb25zU2VydmljZSB9IGZyb20gJ25neC1wZXJtaXNzaW9ucyc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBQZXJtaXNzaW9uc1NlcnZpY2Uge1xyXG4gICAgQFVzZXIoKSBwdWJsaWMgdXNlcjtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBlcm1pc3Npb25zU2VydmljZTogTmd4UGVybWlzc2lvbnNTZXJ2aWNlKSB7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMudXNlciAmJiB0aGlzLnVzZXIucGVybWlzc2lvbnMgJiYgdGhpcy51c2VyLnBlcm1pc3Npb25zLmxlbmd0aCA+IDAgJiYgdGhpcy5zaG91bGRMb2FkVXNlclBlcm1pc3Npb25zKCkpIHtcclxuICAgICAgICAgICAgY29uc3QgdXNlclBlcm1pc3Npb25zID0gdGhpcy51c2VyLnBlcm1pc3Npb25zLm1hcCgocCkgPT4gcC5jb2RlKTtcclxuICAgICAgICAgICAgdGhpcy5wZXJtaXNzaW9uc1NlcnZpY2UubG9hZFBlcm1pc3Npb25zKHVzZXJQZXJtaXNzaW9ucyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBoYXNQZXJtaXNzaW9uKGNvZGU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnVzZXIgJiYgdGhpcy51c2VyLnBlcm1pc3Npb25zICYmIHRoaXMudXNlci5wZXJtaXNzaW9ucy5maWx0ZXIoKHApID0+IHAuY29kZSA9PT0gY29kZSkubGVuZ3RoID4gMDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHNob3VsZExvYWRVc2VyUGVybWlzc2lvbnMoKSB7XHJcbiAgICAgICAgY29uc3QgbG9hZGVkUGVybWlzc2lvbnMgPSBPYmplY3Qua2V5cyh0aGlzLnBlcm1pc3Npb25zU2VydmljZS5nZXRQZXJtaXNzaW9ucygpKTtcclxuICAgICAgICBpZiAobG9hZGVkUGVybWlzc2lvbnMubGVuZ3RoICE9PSB0aGlzLnVzZXIucGVybWlzc2lvbnMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgcmVzID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy51c2VyLnBlcm1pc3Npb25zLmZvckVhY2goKHApID0+IHtcclxuICAgICAgICAgICAgaWYgKGxvYWRlZFBlcm1pc3Npb25zLmluZGV4T2YocC5jb2RlKSA9PT0gLTEpIHtcclxuICAgICAgICAgICAgICAgIHJlcyA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gcmVzO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,41 +1,41 @@
|
|
|
1
|
-
import { Pipe } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
/*
|
|
4
|
-
@Pipe({
|
|
5
|
-
name: 'capitalizeFirst'
|
|
6
|
-
})
|
|
7
|
-
*/
|
|
8
|
-
export class CapitalizefirstPipe {
|
|
9
|
-
constructor() {
|
|
10
|
-
}
|
|
11
|
-
transform(value) {
|
|
12
|
-
if (value == null) {
|
|
13
|
-
return '';
|
|
14
|
-
}
|
|
15
|
-
let valueArgs;
|
|
16
|
-
let args = (value.split('-'));
|
|
17
|
-
if (args.length === 2) {
|
|
18
|
-
for (let i = 0; i < args.length; i++) {
|
|
19
|
-
args[i] = args[i].charAt(0).toUpperCase() + args[i].slice(1).toLowerCase();
|
|
20
|
-
valueArgs = args.join('-');
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
else {
|
|
24
|
-
args = value.split(' ');
|
|
25
|
-
for (let i = 0; i < args.length; i++) {
|
|
26
|
-
args[i] = args[i].charAt(0).toUpperCase() + args[i].slice(1).toLowerCase();
|
|
27
|
-
valueArgs = args.join(' ');
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
return valueArgs;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
CapitalizefirstPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.2", ngImport: i0, type: CapitalizefirstPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
34
|
-
CapitalizefirstPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "12.2.2", ngImport: i0, type: CapitalizefirstPipe, name: "myCapitalizeFirst" });
|
|
35
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.2", ngImport: i0, type: CapitalizefirstPipe, decorators: [{
|
|
36
|
-
type: Pipe,
|
|
37
|
-
args: [{
|
|
38
|
-
name: 'myCapitalizeFirst'
|
|
39
|
-
}]
|
|
40
|
-
}], ctorParameters: function () { return []; } });
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/*
|
|
4
|
+
@Pipe({
|
|
5
|
+
name: 'capitalizeFirst'
|
|
6
|
+
})
|
|
7
|
+
*/
|
|
8
|
+
export class CapitalizefirstPipe {
|
|
9
|
+
constructor() {
|
|
10
|
+
}
|
|
11
|
+
transform(value) {
|
|
12
|
+
if (value == null) {
|
|
13
|
+
return '';
|
|
14
|
+
}
|
|
15
|
+
let valueArgs;
|
|
16
|
+
let args = (value.split('-'));
|
|
17
|
+
if (args.length === 2) {
|
|
18
|
+
for (let i = 0; i < args.length; i++) {
|
|
19
|
+
args[i] = args[i].charAt(0).toUpperCase() + args[i].slice(1).toLowerCase();
|
|
20
|
+
valueArgs = args.join('-');
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
args = value.split(' ');
|
|
25
|
+
for (let i = 0; i < args.length; i++) {
|
|
26
|
+
args[i] = args[i].charAt(0).toUpperCase() + args[i].slice(1).toLowerCase();
|
|
27
|
+
valueArgs = args.join(' ');
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return valueArgs;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
CapitalizefirstPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.2", ngImport: i0, type: CapitalizefirstPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
34
|
+
CapitalizefirstPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "12.2.2", ngImport: i0, type: CapitalizefirstPipe, name: "myCapitalizeFirst" });
|
|
35
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.2", ngImport: i0, type: CapitalizefirstPipe, decorators: [{
|
|
36
|
+
type: Pipe,
|
|
37
|
+
args: [{
|
|
38
|
+
name: 'myCapitalizeFirst'
|
|
39
|
+
}]
|
|
40
|
+
}], ctorParameters: function () { return []; } });
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FwaXRhbGl6ZWZpcnN0LnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXctZnJvbnQtY29tbW9uLWxpYnJhcnkvc3JjL2xpYi91dGlsL3BpcGVzL2NhcGl0YWxpemVmaXJzdC5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQUVwRDs7OztFQUlFO0FBS0YsTUFBTSxPQUFPLG1CQUFtQjtJQUU1QjtJQUNBLENBQUM7SUFFTSxTQUFTLENBQUMsS0FBYTtRQUMxQixJQUFJLEtBQUssSUFBSSxJQUFJLEVBQUU7WUFDZixPQUFPLEVBQUUsQ0FBQztTQUNiO1FBQ0QsSUFBSSxTQUFTLENBQUM7UUFFZCxJQUFJLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUM5QixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ25CLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUNsQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUMzRSxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUM5QjtTQUNKO2FBQU07WUFDSCxJQUFJLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN4QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDbEMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDM0UsU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDOUI7U0FDSjtRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7O2dIQTFCUSxtQkFBbUI7OEdBQW5CLG1CQUFtQjsyRkFBbkIsbUJBQW1CO2tCQUgvQixJQUFJO21CQUFDO29CQUNGLElBQUksRUFBRSxtQkFBbUI7aUJBQzVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuLypcclxuQFBpcGUoe1xyXG4gIG5hbWU6ICdjYXBpdGFsaXplRmlyc3QnXHJcbn0pXHJcbiovXHJcblxyXG5AUGlwZSh7XHJcbiAgICBuYW1lOiAnbXlDYXBpdGFsaXplRmlyc3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDYXBpdGFsaXplZmlyc3RQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHRyYW5zZm9ybSh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICByZXR1cm4gJyc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCB2YWx1ZUFyZ3M7XHJcblxyXG4gICAgICAgIGxldCBhcmdzID0gKHZhbHVlLnNwbGl0KCctJykpO1xyXG4gICAgICAgIGlmIChhcmdzLmxlbmd0aCA9PT0gMikge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFyZ3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGFyZ3NbaV0gPSBhcmdzW2ldLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgYXJnc1tpXS5zbGljZSgxKS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgICAgICAgICAgdmFsdWVBcmdzID0gYXJncy5qb2luKCctJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBhcmdzID0gdmFsdWUuc3BsaXQoJyAnKTtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcmdzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBhcmdzW2ldID0gYXJnc1tpXS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGFyZ3NbaV0uc2xpY2UoMSkudG9Mb3dlckNhc2UoKTtcclxuICAgICAgICAgICAgICAgIHZhbHVlQXJncyA9IGFyZ3Muam9pbignICcpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdmFsdWVBcmdzO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { Pipe } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class SpacesNumberPipe {
|
|
4
|
-
transform(value) {
|
|
5
|
-
// we remove all spaces
|
|
6
|
-
return value.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ' ');
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
SpacesNumberPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.2", ngImport: i0, type: SpacesNumberPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
10
|
-
SpacesNumberPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "12.2.2", ngImport: i0, type: SpacesNumberPipe, name: "mySpacesNumberPipe" });
|
|
11
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.2", ngImport: i0, type: SpacesNumberPipe, decorators: [{
|
|
12
|
-
type: Pipe,
|
|
13
|
-
args: [{ name: 'mySpacesNumberPipe' }]
|
|
14
|
-
}] });
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class SpacesNumberPipe {
|
|
4
|
+
transform(value) {
|
|
5
|
+
// we remove all spaces
|
|
6
|
+
return value.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ' ');
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
SpacesNumberPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.2", ngImport: i0, type: SpacesNumberPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
10
|
+
SpacesNumberPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "12.2.2", ngImport: i0, type: SpacesNumberPipe, name: "mySpacesNumberPipe" });
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.2", ngImport: i0, type: SpacesNumberPipe, decorators: [{
|
|
12
|
+
type: Pipe,
|
|
13
|
+
args: [{ name: 'mySpacesNumberPipe' }]
|
|
14
|
+
}] });
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWEtc2VwYXJhdGVkLW51bWJlci5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV3LWZyb250LWNvbW1vbi1saWJyYXJ5L3NyYy9saWIvdXRpbC9waXBlcy9jb21tYS1zZXBhcmF0ZWQtbnVtYmVyLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBR3BELE1BQU0sT0FBTyxnQkFBZ0I7SUFDbEIsU0FBUyxDQUFDLEtBQVU7UUFDdkIsdUJBQXVCO1FBQ3ZCLE9BQU8sS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNsRSxDQUFDOzs2R0FKUSxnQkFBZ0I7MkdBQWhCLGdCQUFnQjsyRkFBaEIsZ0JBQWdCO2tCQUQ1QixJQUFJO21CQUFDLEVBQUMsSUFBSSxFQUFFLG9CQUFvQixFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQFBpcGUoe25hbWU6ICdteVNwYWNlc051bWJlclBpcGUnfSlcclxuZXhwb3J0IGNsYXNzIFNwYWNlc051bWJlclBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuICAgIHB1YmxpYyB0cmFuc2Zvcm0odmFsdWU6IGFueSk6IGFueSB7XHJcbiAgICAgICAgLy8gd2UgcmVtb3ZlIGFsbCBzcGFjZXNcclxuICAgICAgICByZXR1cm4gdmFsdWUudG9TdHJpbmcoKS5yZXBsYWNlKC9cXEIoPz0oXFxkezN9KSsoPyFcXGQpKS9nLCAnICcpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,38 +1,38 @@
|
|
|
1
|
-
import { Pipe } from '@angular/core';
|
|
2
|
-
import { en } from '../i18n/en';
|
|
3
|
-
import { fr } from '../i18n/fr';
|
|
4
|
-
import { de } from '../i18n/de';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "../services/storage/local-storage.service";
|
|
7
|
-
export class CommonTranslatePipe {
|
|
8
|
-
constructor(localStorageService) {
|
|
9
|
-
this.localStorageService = localStorageService;
|
|
10
|
-
this.availableTranslations = { en, fr, de };
|
|
11
|
-
}
|
|
12
|
-
transform(value, lang) {
|
|
13
|
-
let currentLang = lang;
|
|
14
|
-
if (!lang) {
|
|
15
|
-
currentLang = this.localStorageService.get('lang');
|
|
16
|
-
}
|
|
17
|
-
if (this.isValidLang(currentLang)) {
|
|
18
|
-
const currentTranslation = this.availableTranslations[currentLang];
|
|
19
|
-
return currentTranslation[value];
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
isValidLang(lang) {
|
|
23
|
-
if (lang) {
|
|
24
|
-
const languages = ['en', 'fr', 'de'];
|
|
25
|
-
if (languages.indexOf(lang) !== -1) {
|
|
26
|
-
return true;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
return false;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
CommonTranslatePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.2", ngImport: i0, type: CommonTranslatePipe, deps: [{ token: i1.LocalStorageService }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
33
|
-
CommonTranslatePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "12.2.2", ngImport: i0, type: CommonTranslatePipe, name: "commonTranslate" });
|
|
34
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.2", ngImport: i0, type: CommonTranslatePipe, decorators: [{
|
|
35
|
-
type: Pipe,
|
|
36
|
-
args: [{ name: 'commonTranslate' }]
|
|
37
|
-
}], ctorParameters: function () { return [{ type: i1.LocalStorageService }]; } });
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import { en } from '../i18n/en';
|
|
3
|
+
import { fr } from '../i18n/fr';
|
|
4
|
+
import { de } from '../i18n/de';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "../services/storage/local-storage.service";
|
|
7
|
+
export class CommonTranslatePipe {
|
|
8
|
+
constructor(localStorageService) {
|
|
9
|
+
this.localStorageService = localStorageService;
|
|
10
|
+
this.availableTranslations = { en, fr, de };
|
|
11
|
+
}
|
|
12
|
+
transform(value, lang) {
|
|
13
|
+
let currentLang = lang;
|
|
14
|
+
if (!lang) {
|
|
15
|
+
currentLang = this.localStorageService.get('lang');
|
|
16
|
+
}
|
|
17
|
+
if (this.isValidLang(currentLang)) {
|
|
18
|
+
const currentTranslation = this.availableTranslations[currentLang];
|
|
19
|
+
return currentTranslation[value];
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
isValidLang(lang) {
|
|
23
|
+
if (lang) {
|
|
24
|
+
const languages = ['en', 'fr', 'de'];
|
|
25
|
+
if (languages.indexOf(lang) !== -1) {
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
CommonTranslatePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.2", ngImport: i0, type: CommonTranslatePipe, deps: [{ token: i1.LocalStorageService }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
33
|
+
CommonTranslatePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "12.2.2", ngImport: i0, type: CommonTranslatePipe, name: "commonTranslate" });
|
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.2", ngImport: i0, type: CommonTranslatePipe, decorators: [{
|
|
35
|
+
type: Pipe,
|
|
36
|
+
args: [{ name: 'commonTranslate' }]
|
|
37
|
+
}], ctorParameters: function () { return [{ type: i1.LocalStorageService }]; } });
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLXRyYW5zbGF0ZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV3LWZyb250LWNvbW1vbi1saWJyYXJ5L3NyYy9saWIvdXRpbC9waXBlcy9jb21tb24tdHJhbnNsYXRlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNoQyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxZQUFZLENBQUM7OztBQUtoQyxNQUFNLE9BQU8sbUJBQW1CO0lBSTVCLFlBQW9CLG1CQUF3QztRQUF4Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBRnBELDBCQUFxQixHQUFHLEVBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUMsQ0FBQztJQUc3QyxDQUFDO0lBRU0sU0FBUyxDQUFDLEtBQWEsRUFBRSxJQUFhO1FBQ3pDLElBQUksV0FBVyxHQUFHLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1AsV0FBVyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDdEQ7UUFFRCxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDL0IsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDbkUsT0FBTyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNwQztJQUNMLENBQUM7SUFFTyxXQUFXLENBQUMsSUFBWTtRQUM1QixJQUFJLElBQUksRUFBRTtZQUNOLE1BQU0sU0FBUyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNyQyxJQUFJLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ2hDLE9BQU8sSUFBSSxDQUFDO2FBQ2Y7U0FDSjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7O2dIQTNCUSxtQkFBbUI7OEdBQW5CLG1CQUFtQjsyRkFBbkIsbUJBQW1CO2tCQUQvQixJQUFJO21CQUFDLEVBQUMsSUFBSSxFQUFFLGlCQUFpQixFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBlbiB9IGZyb20gJy4uL2kxOG4vZW4nO1xyXG5pbXBvcnQgeyBmciB9IGZyb20gJy4uL2kxOG4vZnInO1xyXG5pbXBvcnQgeyBkZSB9IGZyb20gJy4uL2kxOG4vZGUnO1xyXG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL3N0b3JhZ2UvbG9jYWwtc3RvcmFnZS5zZXJ2aWNlXCI7XHJcblxyXG5cclxuQFBpcGUoe25hbWU6ICdjb21tb25UcmFuc2xhdGUnfSlcclxuZXhwb3J0IGNsYXNzIENvbW1vblRyYW5zbGF0ZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuXHJcbiAgICBwcml2YXRlIGF2YWlsYWJsZVRyYW5zbGF0aW9ucyA9IHtlbiwgZnIsIGRlfTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGxvY2FsU3RvcmFnZVNlcnZpY2U6IExvY2FsU3RvcmFnZVNlcnZpY2UpIHtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgdHJhbnNmb3JtKHZhbHVlOiBzdHJpbmcsIGxhbmc/OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIGxldCBjdXJyZW50TGFuZyA9IGxhbmc7XHJcbiAgICAgICAgaWYgKCFsYW5nKSB7XHJcbiAgICAgICAgICAgIGN1cnJlbnRMYW5nID0gdGhpcy5sb2NhbFN0b3JhZ2VTZXJ2aWNlLmdldCgnbGFuZycpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuaXNWYWxpZExhbmcoY3VycmVudExhbmcpKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRUcmFuc2xhdGlvbiA9IHRoaXMuYXZhaWxhYmxlVHJhbnNsYXRpb25zW2N1cnJlbnRMYW5nXTtcclxuICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnRUcmFuc2xhdGlvblt2YWx1ZV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaXNWYWxpZExhbmcobGFuZzogc3RyaW5nKSB7XHJcbiAgICAgICAgaWYgKGxhbmcpIHtcclxuICAgICAgICAgICAgY29uc3QgbGFuZ3VhZ2VzID0gWydlbicsICdmcicsICdkZSddO1xyXG4gICAgICAgICAgICBpZiAobGFuZ3VhZ2VzLmluZGV4T2YobGFuZykgIT09IC0xKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbn1cclxuIl19
|