new-front-common-library 16.1.32 → 16.1.33
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 +243 -243
- package/assets/css/_flex.scss +55 -55
- package/assets/css/_global.scss +417 -417
- package/assets/css/_light-theme.scss +221 -221
- package/assets/css/_mat-palettes.scss +98 -98
- package/assets/css/_themes.scss +56 -56
- package/assets/css/_themes_v18.scss +55 -55
- package/assets/css/material/_mdc-dark-theme.scss +265 -265
- package/assets/css/material/_mdc-light-theme.scss +264 -264
- package/assets/css/material/_mdc.scss +408 -408
- package/assets/css/old-themes/_dark-theme.scss +639 -639
- package/assets/css/old-themes/_global.scss +689 -689
- package/assets/css/old-themes/_light-theme.scss +646 -646
- package/assets/css/old-themes/_themes-deprecated.scss +65 -65
- package/assets/i18n/front-common/de.json +30 -30
- package/assets/i18n/front-common/en.json +30 -30
- package/assets/i18n/front-common/fr.json +30 -30
- package/esm2022/lib/util/array.service.mjs +19 -19
- package/esm2022/lib/util/component/header/header.component.mjs +230 -221
- package/esm2022/lib/util/component/header/menu/menu.component.mjs +96 -96
- package/esm2022/lib/util/component/header/menu/menu.const.mjs +551 -551
- package/esm2022/lib/util/component/header/menu/menu.model.mjs +2 -2
- package/esm2022/lib/util/component/overlay/overlay.component.mjs +40 -40
- package/esm2022/lib/util/component/overlay/overlay.service.mjs +24 -24
- package/esm2022/lib/util/component/popup/popup-login/popup-login.component.mjs +90 -90
- package/esm2022/lib/util/component/sub-header/sub-header.component.mjs +44 -44
- package/esm2022/lib/util/config.mjs +8 -8
- package/esm2022/lib/util/date/PeriodModel.mjs +8 -8
- package/esm2022/lib/util/date/date-format-constants.mjs +12 -12
- package/esm2022/lib/util/date/date.util.mjs +218 -218
- package/esm2022/lib/util/decorators/theme.decorator.mjs +22 -22
- package/esm2022/lib/util/decorators/user.decorator.mjs +25 -25
- package/esm2022/lib/util/directives/my-number-formatter-directive.mjs +34 -34
- package/esm2022/lib/util/directives/show-if-truncated.directive.mjs +25 -25
- package/esm2022/lib/util/enums/family.enum.mjs +6 -6
- package/esm2022/lib/util/enums/rapid-search-item-type.enum.mjs +15 -12
- package/esm2022/lib/util/enums/status-color.enum.mjs +11 -11
- package/esm2022/lib/util/event/header/header-events.service.mjs +21 -21
- package/esm2022/lib/util/event/storage/local-storage-events.service.mjs +17 -17
- package/esm2022/lib/util/event/storage/session-storage-events.service.mjs +18 -18
- package/esm2022/lib/util/http/http-params.builder.mjs +27 -27
- package/esm2022/lib/util/i18n/de.mjs +159 -159
- package/esm2022/lib/util/i18n/en.mjs +163 -159
- package/esm2022/lib/util/i18n/fr.mjs +163 -159
- package/esm2022/lib/util/i18n/multi-translate-http-loader.mjs +21 -21
- package/esm2022/lib/util/interfaces/permissions.interface.mjs +2 -2
- package/esm2022/lib/util/models/any-line.model.mjs +37 -37
- package/esm2022/lib/util/models/audio-content.model.mjs +27 -27
- package/esm2022/lib/util/models/authPermission.model.mjs +16 -16
- package/esm2022/lib/util/models/authUser.model.mjs +21 -21
- package/esm2022/lib/util/models/basic.model.mjs +14 -14
- package/esm2022/lib/util/models/box-set-item.model.mjs +19 -19
- package/esm2022/lib/util/models/commercial/deal-rapid-search-model.mjs +3 -3
- package/esm2022/lib/util/models/commercial/invoice-rapid-search-model.mjs +9 -9
- package/esm2022/lib/util/models/commercial/work-record-rapid-search-model.mjs +13 -13
- package/esm2022/lib/util/models/disc-program.model.mjs +26 -26
- package/esm2022/lib/util/models/disc.model.mjs +22 -22
- package/esm2022/lib/util/models/eventType.model.mjs +7 -7
- package/esm2022/lib/util/models/expenditure-commitment/purchase-order-file.model.mjs +22 -22
- package/esm2022/lib/util/models/expenditure-commitment/purchase-order-rapid-search.model.mjs +3 -3
- package/esm2022/lib/util/models/family.model.mjs +7 -7
- package/esm2022/lib/util/models/index.mjs +101 -101
- package/esm2022/lib/util/models/lang-line.model.mjs +27 -27
- package/esm2022/lib/util/models/legal/contract-rapid-search-model.mjs +3 -3
- package/esm2022/lib/util/models/legal/contract-work.model.mjs +23 -23
- package/esm2022/lib/util/models/legal/contract-work2.model.mjs +21 -21
- package/esm2022/lib/util/models/legal/type-status-rapid-search.model.mjs +3 -3
- package/esm2022/lib/util/models/media-line.model.mjs +18 -18
- package/esm2022/lib/util/models/menu-language.model.mjs +15 -15
- package/esm2022/lib/util/models/permission.model.mjs +20 -20
- package/esm2022/lib/util/models/product-box-set.model.mjs +16 -16
- package/esm2022/lib/util/models/product-disc-detail.model.mjs +22 -22
- package/esm2022/lib/util/models/product-disc.model.mjs +27 -27
- package/esm2022/lib/util/models/product-division.model.mjs +29 -29
- package/esm2022/lib/util/models/product-type.model.mjs +22 -22
- package/esm2022/lib/util/models/product.model.mjs +62 -62
- package/esm2022/lib/util/models/program.model.mjs +28 -28
- package/esm2022/lib/util/models/purchase-order/purchase-order.model.mjs +53 -53
- package/esm2022/lib/util/models/referential/WorkVersionArticleDto.mjs +17 -17
- package/esm2022/lib/util/models/referential/adress-type.model.mjs +14 -14
- package/esm2022/lib/util/models/referential/adress.model.mjs +28 -28
- package/esm2022/lib/util/models/referential/attached-file.model.mjs +17 -17
- package/esm2022/lib/util/models/referential/bank-account.model.mjs +24 -24
- package/esm2022/lib/util/models/referential/bank-accounts.model.mjs +31 -31
- package/esm2022/lib/util/models/referential/basic-hierarchy.model.mjs +8 -8
- package/esm2022/lib/util/models/referential/broadcast-list-item.model.mjs +13 -13
- package/esm2022/lib/util/models/referential/color.model.mjs +16 -16
- package/esm2022/lib/util/models/referential/company.model.mjs +16 -16
- package/esm2022/lib/util/models/referential/content-type.model.mjs +17 -17
- package/esm2022/lib/util/models/referential/content.model.mjs +22 -22
- package/esm2022/lib/util/models/referential/cost-center-criteria-values.model.mjs +14 -14
- package/esm2022/lib/util/models/referential/cost-center-criteria.model.mjs +13 -13
- package/esm2022/lib/util/models/referential/cost-center.model.mjs +28 -28
- package/esm2022/lib/util/models/referential/coutry.model.mjs +16 -16
- package/esm2022/lib/util/models/referential/currency.model.mjs +20 -20
- package/esm2022/lib/util/models/referential/editorial-content.model.mjs +18 -18
- package/esm2022/lib/util/models/referential/fixing.model.mjs +16 -16
- package/esm2022/lib/util/models/referential/flat-media.model.mjs +18 -18
- package/esm2022/lib/util/models/referential/format-image.model.mjs +16 -16
- package/esm2022/lib/util/models/referential/format-type.model.mjs +16 -16
- package/esm2022/lib/util/models/referential/format.model.mjs +17 -17
- package/esm2022/lib/util/models/referential/fsk-index.model.mjs +20 -20
- package/esm2022/lib/util/models/referential/fsk.model.mjs +22 -22
- package/esm2022/lib/util/models/referential/function.model.mjs +23 -23
- package/esm2022/lib/util/models/referential/genre.model.mjs +17 -17
- package/esm2022/lib/util/models/referential/invoice-product-type.model.mjs +22 -22
- package/esm2022/lib/util/models/referential/keywords.model.mjs +13 -13
- package/esm2022/lib/util/models/referential/language.model.mjs +18 -18
- package/esm2022/lib/util/models/referential/media-filter.model.mjs +3 -3
- package/esm2022/lib/util/models/referential/media.model.mjs +20 -20
- package/esm2022/lib/util/models/referential/module.model.mjs +20 -20
- package/esm2022/lib/util/models/referential/parameter.model.mjs +2 -2
- package/esm2022/lib/util/models/referential/participant.model.mjs +20 -20
- package/esm2022/lib/util/models/referential/person.model.mjs +23 -23
- package/esm2022/lib/util/models/referential/project-status.model.mjs +16 -16
- package/esm2022/lib/util/models/referential/quota.model.mjs +17 -17
- package/esm2022/lib/util/models/referential/referential-entity-state.model.mjs +16 -16
- package/esm2022/lib/util/models/referential/referential-value.model.mjs +16 -16
- package/esm2022/lib/util/models/referential/referentiel.model.mjs +26 -26
- package/esm2022/lib/util/models/referential/restriction.model.mjs +20 -20
- package/esm2022/lib/util/models/referential/sap-order.model.mjs +20 -20
- package/esm2022/lib/util/models/referential/service-error.model.mjs +15 -15
- package/esm2022/lib/util/models/referential/sound.model.mjs +16 -16
- package/esm2022/lib/util/models/referential/territories-languages.model.mjs +16 -16
- package/esm2022/lib/util/models/referential/territory-filter.model.mjs +3 -3
- package/esm2022/lib/util/models/referential/territory.model.mjs +17 -17
- package/esm2022/lib/util/models/referential/theme.model.mjs +17 -17
- package/esm2022/lib/util/models/referential/third-party-address-rapid-search.model.mjs +3 -3
- package/esm2022/lib/util/models/referential/third-party-creation-request.model.mjs +44 -44
- package/esm2022/lib/util/models/referential/third-party-module.model.mjs +20 -20
- package/esm2022/lib/util/models/referential/third-party-rapid-search.model.mjs +3 -3
- package/esm2022/lib/util/models/referential/third-party.model.mjs +83 -83
- package/esm2022/lib/util/models/referential/translated-value-model.mjs +16 -16
- package/esm2022/lib/util/models/referential/tva.model.mjs +16 -16
- package/esm2022/lib/util/models/referential/type-export.model.mjs +16 -16
- package/esm2022/lib/util/models/referential/type-tva-company-territory.model.mjs +32 -32
- package/esm2022/lib/util/models/referential/type-tva.model.mjs +25 -25
- package/esm2022/lib/util/models/referential/user-form.model.mjs +2 -2
- package/esm2022/lib/util/models/referential/work-addons-model.mjs +16 -16
- package/esm2022/lib/util/models/referential/work-appartenance.model.mjs +17 -17
- package/esm2022/lib/util/models/referential/work-genre.model.mjs +16 -16
- package/esm2022/lib/util/models/referential/work-language.model.mjs +16 -16
- package/esm2022/lib/util/models/referential/work-milo.model.mjs +61 -61
- package/esm2022/lib/util/models/referential/work-participant.model.mjs +21 -21
- package/esm2022/lib/util/models/referential/work-restrictions-model.mjs +13 -13
- package/esm2022/lib/util/models/referential/work-theme.model.mjs +16 -16
- package/esm2022/lib/util/models/referential/work-title.model.mjs +20 -20
- package/esm2022/lib/util/models/referential/work-version-origin.model.mjs +16 -16
- package/esm2022/lib/util/models/referential/work-version-rapid-search.model.mjs +3 -3
- package/esm2022/lib/util/models/referential/work-versions-used.model.mjs +19 -19
- package/esm2022/lib/util/models/referential/work-versions.model.mjs +27 -27
- package/esm2022/lib/util/models/referential/work-year-production.model.mjs +13 -13
- package/esm2022/lib/util/models/referential/work.model.mjs +22 -22
- package/esm2022/lib/util/models/referential/zone.model.mjs +14 -14
- package/esm2022/lib/util/models/referentiel.model.mjs +26 -26
- package/esm2022/lib/util/models/search-response.model.mjs +10 -10
- package/esm2022/lib/util/models/section.model.mjs +8 -8
- package/esm2022/lib/util/models/select/options.model.mjs +8 -8
- package/esm2022/lib/util/models/select/select.model.mjs +7 -7
- package/esm2022/lib/util/models/subsidiary.model.mjs +8 -8
- package/esm2022/lib/util/models/subtitle-content.model.mjs +28 -28
- package/esm2022/lib/util/models/user-video.model.mjs +22 -22
- package/esm2022/lib/util/models/user.model.mjs +35 -35
- package/esm2022/lib/util/models/video/product-rapid-search.model.mjs +3 -3
- package/esm2022/lib/util/models/video/support-rapid-search.model.mjs +3 -3
- package/esm2022/lib/util/models/video-content.model.mjs +18 -18
- package/esm2022/lib/util/number.validator.mjs +129 -129
- package/esm2022/lib/util/paginator/custom-paginator-configuration.mjs +59 -59
- package/esm2022/lib/util/permissions/permissions.service.mjs +49 -49
- package/esm2022/lib/util/pipes/capitalizefirst.pipe.mjs +41 -41
- package/esm2022/lib/util/pipes/comma-separated-number.pipe.mjs +15 -15
- package/esm2022/lib/util/pipes/common-translate.pipe.mjs +38 -38
- package/esm2022/lib/util/pipes/display-html.pipe.mjs +20 -20
- package/esm2022/lib/util/pipes/display-null.pipe.mjs +24 -24
- package/esm2022/lib/util/pipes/format-currency.pipe.mjs +31 -31
- package/esm2022/lib/util/pipes/format-duration.pipe.mjs +23 -23
- package/esm2022/lib/util/pipes/format-number-input.pipe.mjs +22 -22
- package/esm2022/lib/util/pipes/local-date.pipe.mjs +27 -27
- package/esm2022/lib/util/pipes/my-number.pipe.mjs +44 -44
- package/esm2022/lib/util/pipes/third-party-address-search.pipe.mjs +15 -15
- package/esm2022/lib/util/pipes/third-party-address.pipe.mjs +16 -16
- package/esm2022/lib/util/pipes/trim-string.pipe.mjs +25 -25
- package/esm2022/lib/util/regex/regex.service.mjs +94 -94
- package/esm2022/lib/util/services/api/commercial-api.service.mjs +28 -28
- package/esm2022/lib/util/services/api/common-api.service.mjs +98 -98
- package/esm2022/lib/util/services/api/legal-api.service.mjs +32 -32
- package/esm2022/lib/util/services/api/video-api.service.mjs +45 -45
- package/esm2022/lib/util/services/auth/auth.service.mjs +18 -18
- package/esm2022/lib/util/services/elasticsearch/elasticsearch.service.mjs +180 -158
- package/esm2022/lib/util/services/elasticsearch/subsidiaries.service.mjs +48 -48
- package/esm2022/lib/util/services/form-action/form-actions-events.service.mjs +25 -25
- package/esm2022/lib/util/services/guard/auth.guard.mjs +32 -32
- package/esm2022/lib/util/services/guard/login.guard.mjs +23 -23
- package/esm2022/lib/util/services/history/history.service.mjs +39 -39
- package/esm2022/lib/util/services/interceptor/auth.interceptor.mjs +53 -53
- package/esm2022/lib/util/services/jwt-security/aes.service.mjs +34 -34
- package/esm2022/lib/util/services/jwt-security/interceptorhttp.service.mjs +18 -18
- package/esm2022/lib/util/services/jwt-security/jwt.helpher.mjs +34 -34
- package/esm2022/lib/util/services/storage/local-storage.service.mjs +36 -36
- package/esm2022/lib/util/services/storage/session-storage.service.mjs +38 -38
- package/esm2022/lib/util/services/translate-language/lang.service.mjs +31 -31
- package/esm2022/lib/util/services/user/user-subsidiary.service.mjs +22 -22
- package/esm2022/lib/util/sort.mjs +22 -22
- package/esm2022/lib/util/theme/theme-event.service.mjs +17 -17
- package/esm2022/lib/util/toaster/toaster-events.service.mjs +32 -32
- package/esm2022/lib/util/util.module.mjs +281 -281
- package/esm2022/new-front-common-library.mjs +4 -4
- package/esm2022/public-api.mjs +59 -59
- package/fesm2022/new-front-common-library.mjs +5566 -5524
- package/fesm2022/new-front-common-library.mjs.map +1 -1
- package/index.d.ts +5 -5
- package/lib/util/array.service.d.ts +7 -7
- package/lib/util/component/header/header.component.d.ts +74 -74
- package/lib/util/component/header/menu/menu.component.d.ts +27 -27
- package/lib/util/component/header/menu/menu.const.d.ts +2 -2
- package/lib/util/component/header/menu/menu.model.d.ts +23 -23
- 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 +35 -35
- 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-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/family.enum.d.ts +4 -4
- package/lib/util/enums/rapid-search-item-type.enum.d.ts +13 -10
- 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 +142 -142
- package/lib/util/i18n/en.d.ts +146 -142
- package/lib/util/i18n/fr.d.ts +146 -142
- 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 +16 -16
- 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/commercial/deal-rapid-search-model.d.ts +10 -10
- package/lib/util/models/commercial/invoice-rapid-search-model.d.ts +18 -18
- package/lib/util/models/commercial/work-record-rapid-search-model.d.ts +21 -21
- 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/family.model.d.ts +5 -5
- package/lib/util/models/index.d.ts +100 -100
- package/lib/util/models/lang-line.model.d.ts +18 -18
- package/lib/util/models/legal/contract-rapid-search-model.d.ts +10 -10
- 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/legal/type-status-rapid-search.model.d.ts +5 -5
- 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 -12
- package/lib/util/models/referential/theme.model.d.ts +7 -7
- package/lib/util/models/referential/third-party-address-rapid-search.model.d.ts +8 -8
- 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-rapid-search.model.d.ts +8 -8
- 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/user-form.model.d.ts +5 -5
- 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/subsidiary.model.d.ts +7 -7
- 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 +27 -27
- 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/paginator/custom-paginator-configuration.d.ts +16 -16
- package/lib/util/permissions/permissions.service.d.ts +15 -15
- 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-currency.pipe.d.ts +10 -10
- 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-search.pipe.d.ts +8 -8
- 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/commercial-api.service.d.ts +12 -12
- package/lib/util/services/api/common-api.service.d.ts +27 -27
- package/lib/util/services/api/legal-api.service.d.ts +15 -15
- package/lib/util/services/api/video-api.service.d.ts +17 -17
- package/lib/util/services/auth/auth.service.d.ts +9 -9
- package/lib/util/services/elasticsearch/elasticsearch.service.d.ts +35 -34
- package/lib/util/services/elasticsearch/subsidiaries.service.d.ts +12 -12
- package/lib/util/services/form-action/form-actions-events.service.d.ts +14 -14
- package/lib/util/services/guard/auth.guard.d.ts +2 -2
- package/lib/util/services/guard/login.guard.d.ts +1 -1
- 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/services/user/user-subsidiary.service.d.ts +9 -9
- 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 +49 -49
- package/package.json +1 -1
- package/public-api.d.ts +56 -56
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
import { WEB_CONFIG } from '../../config';
|
|
2
|
-
import { CookieService } from 'ngx-cookie-service';
|
|
3
|
-
import { CommonApiService } from '../api/common-api.service';
|
|
4
|
-
import { catchError, map } from 'rxjs/operators';
|
|
5
|
-
import { inject } from '@angular/core';
|
|
6
|
-
import { AuthService } from '../auth/auth.service';
|
|
7
|
-
import { of } from "rxjs";
|
|
8
|
-
export const authGuard = (route, state) => {
|
|
9
|
-
const cookieService = inject(CookieService);
|
|
10
|
-
const commonApiService = inject(CommonApiService);
|
|
11
|
-
const webConfig = inject(WEB_CONFIG);
|
|
12
|
-
const authService = inject(AuthService);
|
|
13
|
-
if (state.url.includes('/login/invalid')) {
|
|
14
|
-
return true;
|
|
15
|
-
}
|
|
16
|
-
if (commonApiService.isTokenValid()) {
|
|
17
|
-
authService.setAuthenticated(true);
|
|
18
|
-
return true;
|
|
19
|
-
}
|
|
20
|
-
const user = commonApiService.getUserDataFromToken();
|
|
21
|
-
const email = user.secondary ? user.email : cookieService.get('auth-mail');
|
|
22
|
-
return commonApiService.ssoLogin(email).pipe(map((data) => {
|
|
23
|
-
user.secondary ? commonApiService.setSecondaryToken(data.token) : commonApiService.setToken(data.token);
|
|
24
|
-
authService.setAuthenticated(true);
|
|
25
|
-
return true;
|
|
26
|
-
}), catchError(() => {
|
|
27
|
-
authService.setAuthenticated(false);
|
|
28
|
-
window.location.href = webConfig.api_url + '/login/invalid';
|
|
29
|
-
return of(false);
|
|
30
|
-
}));
|
|
31
|
-
};
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { WEB_CONFIG } from '../../config';
|
|
2
|
+
import { CookieService } from 'ngx-cookie-service';
|
|
3
|
+
import { CommonApiService } from '../api/common-api.service';
|
|
4
|
+
import { catchError, map } from 'rxjs/operators';
|
|
5
|
+
import { inject } from '@angular/core';
|
|
6
|
+
import { AuthService } from '../auth/auth.service';
|
|
7
|
+
import { of } from "rxjs";
|
|
8
|
+
export const authGuard = (route, state) => {
|
|
9
|
+
const cookieService = inject(CookieService);
|
|
10
|
+
const commonApiService = inject(CommonApiService);
|
|
11
|
+
const webConfig = inject(WEB_CONFIG);
|
|
12
|
+
const authService = inject(AuthService);
|
|
13
|
+
if (state.url.includes('/login/invalid')) {
|
|
14
|
+
return true;
|
|
15
|
+
}
|
|
16
|
+
if (commonApiService.isTokenValid()) {
|
|
17
|
+
authService.setAuthenticated(true);
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
20
|
+
const user = commonApiService.getUserDataFromToken();
|
|
21
|
+
const email = user.secondary ? user.email : cookieService.get('auth-mail');
|
|
22
|
+
return commonApiService.ssoLogin(email).pipe(map((data) => {
|
|
23
|
+
user.secondary ? commonApiService.setSecondaryToken(data.token) : commonApiService.setToken(data.token);
|
|
24
|
+
authService.setAuthenticated(true);
|
|
25
|
+
return true;
|
|
26
|
+
}), catchError(() => {
|
|
27
|
+
authService.setAuthenticated(false);
|
|
28
|
+
window.location.href = webConfig.api_url + '/login/invalid';
|
|
29
|
+
return of(false);
|
|
30
|
+
}));
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldy1mcm9udC1jb21tb24tbGlicmFyeS9zcmMvbGliL3V0aWwvc2VydmljZXMvZ3VhcmQvYXV0aC5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWpELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFMUIsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFrQixDQUN0QyxLQUE2QixFQUM3QixLQUEwQixFQUMxQixFQUFFO0lBQ0YsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzVDLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDbEQsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3JDLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUV4QyxJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLEVBQUU7UUFDeEMsT0FBTyxJQUFJLENBQUM7S0FDYjtJQUVELElBQUksZ0JBQWdCLENBQUMsWUFBWSxFQUFFLEVBQUU7UUFDbkMsV0FBVyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFFRCxNQUFNLElBQUksR0FBa0IsZ0JBQWdCLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUNwRSxNQUFNLEtBQUssR0FBVyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRW5GLE9BQU8sZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FDMUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7UUFDWCxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEcsV0FBVyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQyxDQUFDLEVBQ0YsVUFBVSxDQUFDLEdBQUcsRUFBRTtRQUNkLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxTQUFTLENBQUMsT0FBTyxHQUFHLGdCQUFnQixDQUFDO1FBQzVELE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25CLENBQUMsQ0FBQyxDQUNILENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FjdGl2YXRlZFJvdXRlU25hcHNob3QsIENhbkFjdGl2YXRlRm4sIFJvdXRlclN0YXRlU25hcHNob3QgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgV0VCX0NPTkZJRyB9IGZyb20gJy4uLy4uL2NvbmZpZyc7XG5pbXBvcnQgeyBDb29raWVTZXJ2aWNlIH0gZnJvbSAnbmd4LWNvb2tpZS1zZXJ2aWNlJztcbmltcG9ydCB7IENvbW1vbkFwaVNlcnZpY2UgfSBmcm9tICcuLi9hcGkvY29tbW9uLWFwaS5zZXJ2aWNlJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEF1dGhVc2VyTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uL2F1dGgvYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IG9mIH0gZnJvbSBcInJ4anNcIjtcblxuZXhwb3J0IGNvbnN0IGF1dGhHdWFyZDogQ2FuQWN0aXZhdGVGbiA9IChcbiAgcm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXG4gIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90XG4pID0+IHtcbiAgY29uc3QgY29va2llU2VydmljZSA9IGluamVjdChDb29raWVTZXJ2aWNlKTtcbiAgY29uc3QgY29tbW9uQXBpU2VydmljZSA9IGluamVjdChDb21tb25BcGlTZXJ2aWNlKTtcbiAgY29uc3Qgd2ViQ29uZmlnID0gaW5qZWN0KFdFQl9DT05GSUcpO1xuICBjb25zdCBhdXRoU2VydmljZSA9IGluamVjdChBdXRoU2VydmljZSk7XG5cbiAgaWYgKHN0YXRlLnVybC5pbmNsdWRlcygnL2xvZ2luL2ludmFsaWQnKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgaWYgKGNvbW1vbkFwaVNlcnZpY2UuaXNUb2tlblZhbGlkKCkpIHtcbiAgICBhdXRoU2VydmljZS5zZXRBdXRoZW50aWNhdGVkKHRydWUpO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgY29uc3QgdXNlcjogQXV0aFVzZXJNb2RlbCA9IGNvbW1vbkFwaVNlcnZpY2UuZ2V0VXNlckRhdGFGcm9tVG9rZW4oKTtcbiAgY29uc3QgZW1haWw6IHN0cmluZyA9IHVzZXIuc2Vjb25kYXJ5ID8gdXNlci5lbWFpbCA6IGNvb2tpZVNlcnZpY2UuZ2V0KCdhdXRoLW1haWwnKTtcblxuICByZXR1cm4gY29tbW9uQXBpU2VydmljZS5zc29Mb2dpbihlbWFpbCkucGlwZShcbiAgICBtYXAoKGRhdGEpID0+IHtcbiAgICAgIHVzZXIuc2Vjb25kYXJ5ID8gY29tbW9uQXBpU2VydmljZS5zZXRTZWNvbmRhcnlUb2tlbihkYXRhLnRva2VuKSA6IGNvbW1vbkFwaVNlcnZpY2Uuc2V0VG9rZW4oZGF0YS50b2tlbik7XG4gICAgICBhdXRoU2VydmljZS5zZXRBdXRoZW50aWNhdGVkKHRydWUpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSksXG4gICAgY2F0Y2hFcnJvcigoKSA9PiB7XG4gICAgICBhdXRoU2VydmljZS5zZXRBdXRoZW50aWNhdGVkKGZhbHNlKTtcbiAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gd2ViQ29uZmlnLmFwaV91cmwgKyAnL2xvZ2luL2ludmFsaWQnO1xuICAgICAgcmV0dXJuIG9mKGZhbHNlKTtcbiAgICB9KVxuICApO1xufTtcbiJdfQ==
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
import { inject } from '@angular/core';
|
|
2
|
-
import { MatDialog } from '@angular/material/dialog';
|
|
3
|
-
import { MyDialogPopupLoginComponent } from '../../component/popup/popup-login/popup-login.component';
|
|
4
|
-
import { AuthService } from '../auth/auth.service';
|
|
5
|
-
import { map } from "rxjs/operators";
|
|
6
|
-
export const loginGuard = () => {
|
|
7
|
-
const dialog = inject(MatDialog);
|
|
8
|
-
const authService = inject(AuthService);
|
|
9
|
-
if (sessionStorage.getItem('authToken') !== null) {
|
|
10
|
-
authService.setAuthenticated(true);
|
|
11
|
-
return true;
|
|
12
|
-
}
|
|
13
|
-
else {
|
|
14
|
-
const dialogRef = dialog.open(MyDialogPopupLoginComponent, {
|
|
15
|
-
disableClose: true
|
|
16
|
-
});
|
|
17
|
-
return dialogRef.afterClosed().pipe(map((res) => {
|
|
18
|
-
authService.setAuthenticated(res);
|
|
19
|
-
return res;
|
|
20
|
-
}));
|
|
21
|
-
}
|
|
22
|
-
};
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { inject } from '@angular/core';
|
|
2
|
+
import { MatDialog } from '@angular/material/dialog';
|
|
3
|
+
import { MyDialogPopupLoginComponent } from '../../component/popup/popup-login/popup-login.component';
|
|
4
|
+
import { AuthService } from '../auth/auth.service';
|
|
5
|
+
import { map } from "rxjs/operators";
|
|
6
|
+
export const loginGuard = () => {
|
|
7
|
+
const dialog = inject(MatDialog);
|
|
8
|
+
const authService = inject(AuthService);
|
|
9
|
+
if (sessionStorage.getItem('authToken') !== null) {
|
|
10
|
+
authService.setAuthenticated(true);
|
|
11
|
+
return true;
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
const dialogRef = dialog.open(MyDialogPopupLoginComponent, {
|
|
15
|
+
disableClose: true
|
|
16
|
+
});
|
|
17
|
+
return dialogRef.afterClosed().pipe(map((res) => {
|
|
18
|
+
authService.setAuthenticated(res);
|
|
19
|
+
return res;
|
|
20
|
+
}));
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uZ3VhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXctZnJvbnQtY29tbW9uLWxpYnJhcnkvc3JjL2xpYi91dGlsL3NlcnZpY2VzL2d1YXJkL2xvZ2luLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkMsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLEdBQUcsRUFBRTtJQUMzQixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDakMsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRTFDLElBQUksY0FBYyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsS0FBSyxJQUFJLEVBQUU7UUFDOUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDO0tBQ2Y7U0FBTTtRQUNMLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsMkJBQTJCLEVBQUU7WUFDekQsWUFBWSxFQUFFLElBQUk7U0FDbkIsQ0FBQyxDQUFDO1FBRUgsT0FBTyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUNqQyxHQUFHLENBQUMsQ0FBQyxHQUFZLEVBQUUsRUFBRTtZQUNuQixXQUFXLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbEMsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLENBQUMsQ0FDSCxDQUFDO0tBQ0g7QUFDSCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBNeURpYWxvZ1BvcHVwTG9naW5Db21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnQvcG9wdXAvcG9wdXAtbG9naW4vcG9wdXAtbG9naW4uY29tcG9uZW50JztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vYXV0aC9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHttYXB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuXG5leHBvcnQgY29uc3QgbG9naW5HdWFyZCA9ICgpID0+IHtcbiAgICBjb25zdCBkaWFsb2cgPSBpbmplY3QoTWF0RGlhbG9nKTtcbiAgICBjb25zdCBhdXRoU2VydmljZSA9IGluamVjdChBdXRoU2VydmljZSk7XG5cbiAgaWYgKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2F1dGhUb2tlbicpICE9PSBudWxsKSB7XG4gICAgICBhdXRoU2VydmljZS5zZXRBdXRoZW50aWNhdGVkKHRydWUpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gZGlhbG9nLm9wZW4oTXlEaWFsb2dQb3B1cExvZ2luQ29tcG9uZW50LCB7XG4gICAgICBkaXNhYmxlQ2xvc2U6IHRydWVcbiAgICB9KTtcblxuICAgIHJldHVybiBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5waXBlKFxuICAgICAgbWFwKChyZXM6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgYXV0aFNlcnZpY2Uuc2V0QXV0aGVudGljYXRlZChyZXMpO1xuICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgfSlcbiAgICApO1xuICB9XG59O1xuIl19
|
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "../storage/local-storage.service";
|
|
4
|
-
export class HistoryService {
|
|
5
|
-
constructor(localStorage) {
|
|
6
|
-
this.localStorage = localStorage;
|
|
7
|
-
}
|
|
8
|
-
add(type, id, ref) {
|
|
9
|
-
let history = [];
|
|
10
|
-
if (this.localStorage.exist('history')) {
|
|
11
|
-
history = this.localStorage.get('history');
|
|
12
|
-
}
|
|
13
|
-
// DELETE EXISTING SCREEN
|
|
14
|
-
history.forEach((element, index) => {
|
|
15
|
-
if (this.exist(type, id, ref, element))
|
|
16
|
-
history.splice(index, 1);
|
|
17
|
-
});
|
|
18
|
-
// ADD THE LAST CONSULTED SCREEN TO THE BEGINNING
|
|
19
|
-
history.unshift({ type: type, id: id, ref: ref });
|
|
20
|
-
// SHOW ONLY THE 10 LAST CONSULTED SCREENS
|
|
21
|
-
if (history.length >= 10) {
|
|
22
|
-
history = history.slice(0, 10);
|
|
23
|
-
}
|
|
24
|
-
// POST TO LOCAL STORAGE
|
|
25
|
-
this.localStorage.post('history', history);
|
|
26
|
-
}
|
|
27
|
-
exist(type, id, ref, history) {
|
|
28
|
-
if (type == history.type && id == history.id && ref == history.ref) {
|
|
29
|
-
return true;
|
|
30
|
-
}
|
|
31
|
-
return false;
|
|
32
|
-
}
|
|
33
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HistoryService, deps: [{ token: i1.LocalStorageService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
34
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HistoryService }); }
|
|
35
|
-
}
|
|
36
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HistoryService, decorators: [{
|
|
37
|
-
type: Injectable
|
|
38
|
-
}], ctorParameters: function () { return [{ type: i1.LocalStorageService }]; } });
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "../storage/local-storage.service";
|
|
4
|
+
export class HistoryService {
|
|
5
|
+
constructor(localStorage) {
|
|
6
|
+
this.localStorage = localStorage;
|
|
7
|
+
}
|
|
8
|
+
add(type, id, ref) {
|
|
9
|
+
let history = [];
|
|
10
|
+
if (this.localStorage.exist('history')) {
|
|
11
|
+
history = this.localStorage.get('history');
|
|
12
|
+
}
|
|
13
|
+
// DELETE EXISTING SCREEN
|
|
14
|
+
history.forEach((element, index) => {
|
|
15
|
+
if (this.exist(type, id, ref, element))
|
|
16
|
+
history.splice(index, 1);
|
|
17
|
+
});
|
|
18
|
+
// ADD THE LAST CONSULTED SCREEN TO THE BEGINNING
|
|
19
|
+
history.unshift({ type: type, id: id, ref: ref });
|
|
20
|
+
// SHOW ONLY THE 10 LAST CONSULTED SCREENS
|
|
21
|
+
if (history.length >= 10) {
|
|
22
|
+
history = history.slice(0, 10);
|
|
23
|
+
}
|
|
24
|
+
// POST TO LOCAL STORAGE
|
|
25
|
+
this.localStorage.post('history', history);
|
|
26
|
+
}
|
|
27
|
+
exist(type, id, ref, history) {
|
|
28
|
+
if (type == history.type && id == history.id && ref == history.ref) {
|
|
29
|
+
return true;
|
|
30
|
+
}
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HistoryService, deps: [{ token: i1.LocalStorageService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
34
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HistoryService }); }
|
|
35
|
+
}
|
|
36
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HistoryService, decorators: [{
|
|
37
|
+
type: Injectable
|
|
38
|
+
}], ctorParameters: function () { return [{ type: i1.LocalStorageService }]; } });
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlzdG9yeS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV3LWZyb250LWNvbW1vbi1saWJyYXJ5L3NyYy9saWIvdXRpbC9zZXJ2aWNlcy9oaXN0b3J5L2hpc3Rvcnkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFJM0MsTUFBTSxPQUFPLGNBQWM7SUFFdkIsWUFBb0IsWUFBaUM7UUFBakMsaUJBQVksR0FBWixZQUFZLENBQXFCO0lBQ3JELENBQUM7SUFFTSxHQUFHLENBQUMsSUFBd0csRUFBRSxFQUFVLEVBQUUsR0FBUTtRQUNySSxJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDakIsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUNwQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDOUM7UUFDRCx5QkFBeUI7UUFDekIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUMvQixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsT0FBTyxDQUFDO2dCQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3JFLENBQUMsQ0FBQyxDQUFDO1FBQ0gsaURBQWlEO1FBQ2pELE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBQyxDQUFDLENBQUM7UUFFaEQsMENBQTBDO1FBQzFDLElBQUksT0FBTyxDQUFDLE1BQU0sSUFBSSxFQUFFLEVBQUU7WUFDdEIsT0FBTyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ2xDO1FBRUQsd0JBQXdCO1FBQ3hCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRU8sS0FBSyxDQUFDLElBQXdHLEVBQUUsRUFBVSxFQUFFLEdBQVcsRUFBRSxPQUFZO1FBQ3pKLElBQUksSUFBSSxJQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksRUFBRSxJQUFJLE9BQU8sQ0FBQyxFQUFFLElBQUksR0FBRyxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUU7WUFDaEUsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7K0dBL0JRLGNBQWM7bUhBQWQsY0FBYzs7NEZBQWQsY0FBYztrQkFEMUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExvY2FsU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi9zdG9yYWdlL2xvY2FsLXN0b3JhZ2Uuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBIaXN0b3J5U2VydmljZSB7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGxvY2FsU3RvcmFnZTogTG9jYWxTdG9yYWdlU2VydmljZSkge1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGQodHlwZTogJ1BST0RVQ1QnIHwgJ1BPJyB8ICdERUFMJyB8ICdXT1JLJyB8ICdDT05UUkFDVF9BQ1EnIHwgJ0NPTlRSQUNUX0NFU1MnIHwgJ0NPTlRSQUNUX0FVVEgnIHwgJ0JVREdFVCcsIGlkOiBzdHJpbmcsIHJlZjogYW55KSB7XG4gICAgICAgIGxldCBoaXN0b3J5ID0gW107XG4gICAgICAgIGlmICh0aGlzLmxvY2FsU3RvcmFnZS5leGlzdCgnaGlzdG9yeScpKSB7XG4gICAgICAgICAgICBoaXN0b3J5ID0gdGhpcy5sb2NhbFN0b3JhZ2UuZ2V0KCdoaXN0b3J5Jyk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gREVMRVRFIEVYSVNUSU5HIFNDUkVFTlxuICAgICAgICBoaXN0b3J5LmZvckVhY2goKGVsZW1lbnQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5leGlzdCh0eXBlLCBpZCwgcmVmLCBlbGVtZW50KSkgaGlzdG9yeS5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICB9KTtcbiAgICAgICAgLy8gQUREIFRIRSBMQVNUIENPTlNVTFRFRCBTQ1JFRU4gVE8gVEhFIEJFR0lOTklOR1xuICAgICAgICBoaXN0b3J5LnVuc2hpZnQoe3R5cGU6IHR5cGUsIGlkOiBpZCwgcmVmOiByZWZ9KTtcblxuICAgICAgICAvLyBTSE9XIE9OTFkgVEhFIDEwIExBU1QgQ09OU1VMVEVEIFNDUkVFTlNcbiAgICAgICAgaWYgKGhpc3RvcnkubGVuZ3RoID49IDEwKSB7XG4gICAgICAgICAgICBoaXN0b3J5ID0gaGlzdG9yeS5zbGljZSgwLCAxMCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBQT1NUIFRPIExPQ0FMIFNUT1JBR0VcbiAgICAgICAgdGhpcy5sb2NhbFN0b3JhZ2UucG9zdCgnaGlzdG9yeScsIGhpc3RvcnkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZXhpc3QodHlwZTogJ1BST0RVQ1QnIHwgJ1BPJyB8ICdERUFMJyB8ICdXT1JLJyB8ICdDT05UUkFDVF9BQ1EnIHwgJ0NPTlRSQUNUX0NFU1MnIHwgJ0NPTlRSQUNUX0FVVEgnIHwgJ0JVREdFVCcsIGlkOiBzdHJpbmcsIHJlZjogc3RyaW5nLCBoaXN0b3J5OiBhbnkpIHtcbiAgICAgICAgaWYgKHR5cGUgPT0gaGlzdG9yeS50eXBlICYmIGlkID09IGhpc3RvcnkuaWQgJiYgcmVmID09IGhpc3RvcnkucmVmKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG59XG4iXX0=
|
|
@@ -1,53 +1,53 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { BehaviorSubject } from 'rxjs';
|
|
3
|
-
import { filter, switchMap, take } from 'rxjs/operators';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "../api/common-api.service";
|
|
6
|
-
import * as i2 from "ngx-cookie-service";
|
|
7
|
-
export class AuthInterceptor {
|
|
8
|
-
constructor(authService, cookieService) {
|
|
9
|
-
this.authService = authService;
|
|
10
|
-
this.cookieService = cookieService;
|
|
11
|
-
this.refreshTokenInProgress = false;
|
|
12
|
-
this.refreshTokenSubject = new BehaviorSubject(null);
|
|
13
|
-
}
|
|
14
|
-
intercept(request, next) {
|
|
15
|
-
if (request.url.includes('/login/email') || request.url.includes('/login/findUser') || request.url.startsWith('./')) {
|
|
16
|
-
return next.handle(request);
|
|
17
|
-
}
|
|
18
|
-
if (!this.authService.isTokenValid()) {
|
|
19
|
-
if (this.refreshTokenInProgress) {
|
|
20
|
-
return this.refreshTokenSubject.pipe(filter((result) => result !== null), take(1), switchMap(() => next.handle(this.addToken(request))));
|
|
21
|
-
}
|
|
22
|
-
else {
|
|
23
|
-
this.refreshTokenInProgress = true;
|
|
24
|
-
this.refreshTokenSubject.next(null);
|
|
25
|
-
const user = this.authService.getUserDataFromToken();
|
|
26
|
-
const email = user.secondary ? user.email : this.cookieService.get('auth-mail');
|
|
27
|
-
return this.authService.ssoLogin(email)
|
|
28
|
-
.pipe(switchMap((data) => {
|
|
29
|
-
this.authService.setToken(data.token);
|
|
30
|
-
this.refreshTokenInProgress = false;
|
|
31
|
-
this.refreshTokenSubject.next(data.token);
|
|
32
|
-
return next.handle(this.addToken(request));
|
|
33
|
-
}));
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
return next.handle(this.addToken(request));
|
|
37
|
-
}
|
|
38
|
-
addToken(request) {
|
|
39
|
-
const token = this.authService.getToken();
|
|
40
|
-
if (!token) {
|
|
41
|
-
return request;
|
|
42
|
-
}
|
|
43
|
-
return request.clone({
|
|
44
|
-
headers: request.headers.set('Authorization', `Bearer ${token}`)
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AuthInterceptor, deps: [{ token: i1.CommonApiService }, { token: i2.CookieService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
48
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AuthInterceptor }); }
|
|
49
|
-
}
|
|
50
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AuthInterceptor, decorators: [{
|
|
51
|
-
type: Injectable
|
|
52
|
-
}], ctorParameters: function () { return [{ type: i1.CommonApiService }, { type: i2.CookieService }]; } });
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject } from 'rxjs';
|
|
3
|
+
import { filter, switchMap, take } from 'rxjs/operators';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "../api/common-api.service";
|
|
6
|
+
import * as i2 from "ngx-cookie-service";
|
|
7
|
+
export class AuthInterceptor {
|
|
8
|
+
constructor(authService, cookieService) {
|
|
9
|
+
this.authService = authService;
|
|
10
|
+
this.cookieService = cookieService;
|
|
11
|
+
this.refreshTokenInProgress = false;
|
|
12
|
+
this.refreshTokenSubject = new BehaviorSubject(null);
|
|
13
|
+
}
|
|
14
|
+
intercept(request, next) {
|
|
15
|
+
if (request.url.includes('/login/email') || request.url.includes('/login/findUser') || request.url.startsWith('./')) {
|
|
16
|
+
return next.handle(request);
|
|
17
|
+
}
|
|
18
|
+
if (!this.authService.isTokenValid()) {
|
|
19
|
+
if (this.refreshTokenInProgress) {
|
|
20
|
+
return this.refreshTokenSubject.pipe(filter((result) => result !== null), take(1), switchMap(() => next.handle(this.addToken(request))));
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
this.refreshTokenInProgress = true;
|
|
24
|
+
this.refreshTokenSubject.next(null);
|
|
25
|
+
const user = this.authService.getUserDataFromToken();
|
|
26
|
+
const email = user.secondary ? user.email : this.cookieService.get('auth-mail');
|
|
27
|
+
return this.authService.ssoLogin(email)
|
|
28
|
+
.pipe(switchMap((data) => {
|
|
29
|
+
this.authService.setToken(data.token);
|
|
30
|
+
this.refreshTokenInProgress = false;
|
|
31
|
+
this.refreshTokenSubject.next(data.token);
|
|
32
|
+
return next.handle(this.addToken(request));
|
|
33
|
+
}));
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return next.handle(this.addToken(request));
|
|
37
|
+
}
|
|
38
|
+
addToken(request) {
|
|
39
|
+
const token = this.authService.getToken();
|
|
40
|
+
if (!token) {
|
|
41
|
+
return request;
|
|
42
|
+
}
|
|
43
|
+
return request.clone({
|
|
44
|
+
headers: request.headers.set('Authorization', `Bearer ${token}`)
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AuthInterceptor, deps: [{ token: i1.CommonApiService }, { token: i2.CookieService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
48
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AuthInterceptor }); }
|
|
49
|
+
}
|
|
50
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AuthInterceptor, decorators: [{
|
|
51
|
+
type: Injectable
|
|
52
|
+
}], ctorParameters: function () { return [{ type: i1.CommonApiService }, { type: i2.CookieService }]; } });
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldy1mcm9udC1jb21tb24tbGlicmFyeS9zcmMvbGliL3V0aWwvc2VydmljZXMvaW50ZXJjZXB0b3IvYXV0aC5pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFNekQsTUFBTSxPQUFPLGVBQWU7SUFPeEIsWUFDWSxXQUE2QixFQUM3QixhQUE0QjtRQUQ1QixnQkFBVyxHQUFYLFdBQVcsQ0FBa0I7UUFDN0Isa0JBQWEsR0FBYixhQUFhLENBQWU7UUFQaEMsMkJBQXNCLEdBQUcsS0FBSyxDQUFDO1FBQy9CLHdCQUFtQixHQUF5QixJQUFJLGVBQWUsQ0FDbkUsSUFBSSxDQUNQLENBQUM7SUFNRixDQUFDO0lBRUQsU0FBUyxDQUFDLE9BQXlCLEVBQUUsSUFBaUI7UUFDbEQsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2pILE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUMvQjtRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxFQUFFO1lBQ2xDLElBQUksSUFBSSxDQUFDLHNCQUFzQixFQUFFO2dCQUM3QixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQ2hDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxFQUNuQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ1AsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQ3ZELENBQUM7YUFDTDtpQkFBTTtnQkFDSCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDO2dCQUNuQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNwQyxNQUFNLElBQUksR0FBa0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO2dCQUNwRSxNQUFNLEtBQUssR0FBVyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFFeEYsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7cUJBQ2xDLElBQUksQ0FDRCxTQUFTLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTtvQkFDcEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUN0QyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsS0FBSyxDQUFDO29CQUNwQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDMUMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFDL0MsQ0FBQyxDQUFDLENBQ0wsQ0FBQzthQUNUO1NBQ0o7UUFFRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFTyxRQUFRLENBQUMsT0FBeUI7UUFDdEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMxQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1IsT0FBTyxPQUFPLENBQUM7U0FDbEI7UUFFRCxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFDakIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxVQUFVLEtBQUssRUFBRSxDQUFDO1NBQ25FLENBQUMsQ0FBQztJQUNQLENBQUM7K0dBdkRRLGVBQWU7bUhBQWYsZUFBZTs7NEZBQWYsZUFBZTtrQkFEM0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBFdmVudCwgSHR0cEhhbmRsZXIsIEh0dHBJbnRlcmNlcHRvciwgSHR0cFJlcXVlc3QgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgc3dpdGNoTWFwLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ29va2llU2VydmljZSB9IGZyb20gJ25neC1jb29raWUtc2VydmljZSc7XG5pbXBvcnQgeyBDb21tb25BcGlTZXJ2aWNlIH0gZnJvbSAnLi4vYXBpL2NvbW1vbi1hcGkuc2VydmljZSc7XG5pbXBvcnQgeyBBdXRoVXNlck1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEF1dGhJbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XG5cbiAgICBwcml2YXRlIHJlZnJlc2hUb2tlbkluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgICBwcml2YXRlIHJlZnJlc2hUb2tlblN1YmplY3Q6IEJlaGF2aW9yU3ViamVjdDxhbnk+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KFxuICAgICAgICBudWxsXG4gICAgKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBDb21tb25BcGlTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGNvb2tpZVNlcnZpY2U6IENvb2tpZVNlcnZpY2VcbiAgICApIHtcbiAgICB9XG5cbiAgICBpbnRlcmNlcHQocmVxdWVzdDogSHR0cFJlcXVlc3Q8YW55PiwgbmV4dDogSHR0cEhhbmRsZXIpOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxhbnk+PiB7XG4gICAgICAgIGlmIChyZXF1ZXN0LnVybC5pbmNsdWRlcygnL2xvZ2luL2VtYWlsJykgfHwgcmVxdWVzdC51cmwuaW5jbHVkZXMoJy9sb2dpbi9maW5kVXNlcicpIHx8IHJlcXVlc3QudXJsLnN0YXJ0c1dpdGgoJy4vJykpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXF1ZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5hdXRoU2VydmljZS5pc1Rva2VuVmFsaWQoKSkge1xuICAgICAgICAgICAgaWYgKHRoaXMucmVmcmVzaFRva2VuSW5Qcm9ncmVzcykge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnJlZnJlc2hUb2tlblN1YmplY3QucGlwZShcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyKChyZXN1bHQpID0+IHJlc3VsdCAhPT0gbnVsbCksXG4gICAgICAgICAgICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiBuZXh0LmhhbmRsZSh0aGlzLmFkZFRva2VuKHJlcXVlc3QpKSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlZnJlc2hUb2tlbkluUHJvZ3Jlc3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMucmVmcmVzaFRva2VuU3ViamVjdC5uZXh0KG51bGwpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHVzZXI6IEF1dGhVc2VyTW9kZWwgPSB0aGlzLmF1dGhTZXJ2aWNlLmdldFVzZXJEYXRhRnJvbVRva2VuKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgZW1haWw6IHN0cmluZyA9IHVzZXIuc2Vjb25kYXJ5ID8gdXNlci5lbWFpbCA6IHRoaXMuY29va2llU2VydmljZS5nZXQoJ2F1dGgtbWFpbCcpO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuYXV0aFNlcnZpY2Uuc3NvTG9naW4oZW1haWwpXG4gICAgICAgICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoTWFwKChkYXRhOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLnNldFRva2VuKGRhdGEudG9rZW4pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVmcmVzaFRva2VuSW5Qcm9ncmVzcyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVmcmVzaFRva2VuU3ViamVjdC5uZXh0KGRhdGEudG9rZW4pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXh0LmhhbmRsZSh0aGlzLmFkZFRva2VuKHJlcXVlc3QpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbmV4dC5oYW5kbGUodGhpcy5hZGRUb2tlbihyZXF1ZXN0KSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGRUb2tlbihyZXF1ZXN0OiBIdHRwUmVxdWVzdDxhbnk+KTogSHR0cFJlcXVlc3Q8YW55PiB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5hdXRoU2VydmljZS5nZXRUb2tlbigpO1xuICAgICAgICBpZiAoIXRva2VuKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVxdWVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXF1ZXN0LmNsb25lKHtcbiAgICAgICAgICAgIGhlYWRlcnM6IHJlcXVlc3QuaGVhZGVycy5zZXQoJ0F1dGhvcml6YXRpb24nLCBgQmVhcmVyICR7dG9rZW59YClcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
|
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as CryptoJS from 'crypto-js';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class AesService {
|
|
5
|
-
// private cipherText: string;
|
|
6
|
-
constructor() {
|
|
7
|
-
// private SECRET_CODE: string ;
|
|
8
|
-
this.SECRET_CODE = '1234567891234567';
|
|
9
|
-
this.keySize = 128 / 32;
|
|
10
|
-
this.iterationCount = 1000;
|
|
11
|
-
}
|
|
12
|
-
generateKey(salt) {
|
|
13
|
-
// this.SECRET_CODE = sessionStorage.getItem('_uniqueKey');
|
|
14
|
-
const key = CryptoJS.PBKDF2(this.SECRET_CODE, CryptoJS.enc.Hex.parse(salt), { keySize: this.keySize, iterations: this.iterationCount });
|
|
15
|
-
return key;
|
|
16
|
-
}
|
|
17
|
-
encrypt(planText) {
|
|
18
|
-
const iv = CryptoJS.lib.WordArray.random(16).toString(CryptoJS.enc.Hex);
|
|
19
|
-
const salt = CryptoJS.lib.WordArray.random(16).toString(CryptoJS.enc.Hex);
|
|
20
|
-
const key = this.generateKey(salt);
|
|
21
|
-
const encrypted = CryptoJS.AES.encrypt(planText, key, { iv: CryptoJS.enc.Hex.parse(iv) });
|
|
22
|
-
const cipherText = encrypted.ciphertext.toString(CryptoJS.enc.Base64);
|
|
23
|
-
const aesPassword = (iv + '::' + salt + '::' + cipherText);
|
|
24
|
-
// conversion en base 64
|
|
25
|
-
this.pwdEncrypted = btoa(aesPassword);
|
|
26
|
-
return this.pwdEncrypted;
|
|
27
|
-
}
|
|
28
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
29
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AesService }); }
|
|
30
|
-
}
|
|
31
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AesService, decorators: [{
|
|
32
|
-
type: Injectable
|
|
33
|
-
}], ctorParameters: function () { return []; } });
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as CryptoJS from 'crypto-js';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class AesService {
|
|
5
|
+
// private cipherText: string;
|
|
6
|
+
constructor() {
|
|
7
|
+
// private SECRET_CODE: string ;
|
|
8
|
+
this.SECRET_CODE = '1234567891234567';
|
|
9
|
+
this.keySize = 128 / 32;
|
|
10
|
+
this.iterationCount = 1000;
|
|
11
|
+
}
|
|
12
|
+
generateKey(salt) {
|
|
13
|
+
// this.SECRET_CODE = sessionStorage.getItem('_uniqueKey');
|
|
14
|
+
const key = CryptoJS.PBKDF2(this.SECRET_CODE, CryptoJS.enc.Hex.parse(salt), { keySize: this.keySize, iterations: this.iterationCount });
|
|
15
|
+
return key;
|
|
16
|
+
}
|
|
17
|
+
encrypt(planText) {
|
|
18
|
+
const iv = CryptoJS.lib.WordArray.random(16).toString(CryptoJS.enc.Hex);
|
|
19
|
+
const salt = CryptoJS.lib.WordArray.random(16).toString(CryptoJS.enc.Hex);
|
|
20
|
+
const key = this.generateKey(salt);
|
|
21
|
+
const encrypted = CryptoJS.AES.encrypt(planText, key, { iv: CryptoJS.enc.Hex.parse(iv) });
|
|
22
|
+
const cipherText = encrypted.ciphertext.toString(CryptoJS.enc.Base64);
|
|
23
|
+
const aesPassword = (iv + '::' + salt + '::' + cipherText);
|
|
24
|
+
// conversion en base 64
|
|
25
|
+
this.pwdEncrypted = btoa(aesPassword);
|
|
26
|
+
return this.pwdEncrypted;
|
|
27
|
+
}
|
|
28
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
29
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AesService }); }
|
|
30
|
+
}
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AesService, decorators: [{
|
|
32
|
+
type: Injectable
|
|
33
|
+
}], ctorParameters: function () { return []; } });
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWVzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXctZnJvbnQtY29tbW9uLWxpYnJhcnkvc3JjL2xpYi91dGlsL3NlcnZpY2VzL2p3dC1zZWN1cml0eS9hZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sS0FBSyxRQUFRLE1BQU0sV0FBVyxDQUFDOztBQUd0QyxNQUFNLE9BQU8sVUFBVTtJQVVuQiw4QkFBOEI7SUFFOUI7UUFWQSxnQ0FBZ0M7UUFDZixnQkFBVyxHQUFXLGtCQUFrQixDQUFDO1FBQ2xELFlBQU8sR0FBVyxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQzNCLG1CQUFjLEdBQUcsSUFBSSxDQUFDO0lBUTlCLENBQUM7SUFFTSxXQUFXLENBQUMsSUFBWTtRQUUzQiwyREFBMkQ7UUFDM0QsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FDdkIsSUFBSSxDQUFDLFdBQVcsRUFDaEIsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUM1QixFQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFDLENBQUMsQ0FBQztRQUU5RCxPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7SUFFTSxPQUFPLENBQUMsUUFBZ0I7UUFDM0IsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3hFLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUUxRSxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRW5DLE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUUsRUFBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQztRQUV4RixNQUFNLFVBQVUsR0FBRyxTQUFTLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXRFLE1BQU0sV0FBVyxHQUFHLENBQUMsRUFBRSxHQUFHLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxHQUFHLFVBQVUsQ0FBQyxDQUFDO1FBQzNELHdCQUF3QjtRQUN4QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUV0QyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDN0IsQ0FBQzsrR0F6Q1EsVUFBVTttSEFBVixVQUFVOzs0RkFBVixVQUFVO2tCQUR0QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0ICogYXMgQ3J5cHRvSlMgZnJvbSAnY3J5cHRvLWpzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFlc1NlcnZpY2Uge1xuXG4gICAgLy8gcHJpdmF0ZSBTRUNSRVRfQ09ERTogc3RyaW5nIDtcbiAgICBwcml2YXRlIHJlYWRvbmx5IFNFQ1JFVF9DT0RFOiBzdHJpbmcgPSAnMTIzNDU2Nzg5MTIzNDU2Nyc7XG4gICAgcHJpdmF0ZSBrZXlTaXplOiBudW1iZXIgPSAxMjggLyAzMjtcbiAgICBwcml2YXRlIGl0ZXJhdGlvbkNvdW50ID0gMTAwMDtcbiAgICAvLyBwcml2YXRlICBpdjogc3RyaW5nICA7XG4gICAgLy8gcHJpdmF0ZSBzYWx0OiBzdHJpbmcgO1xuICAgIHByaXZhdGUgcHdkRW5jcnlwdGVkOiBzdHJpbmc7XG5cbiAgICAvLyBwcml2YXRlIGNpcGhlclRleHQ6IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgIH1cblxuICAgIHB1YmxpYyBnZW5lcmF0ZUtleShzYWx0OiBzdHJpbmcpIHtcblxuICAgICAgICAvLyB0aGlzLlNFQ1JFVF9DT0RFID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnX3VuaXF1ZUtleScpO1xuICAgICAgICBjb25zdCBrZXkgPSBDcnlwdG9KUy5QQktERjIoXG4gICAgICAgICAgICB0aGlzLlNFQ1JFVF9DT0RFLFxuICAgICAgICAgICAgQ3J5cHRvSlMuZW5jLkhleC5wYXJzZShzYWx0KSxcbiAgICAgICAgICAgIHtrZXlTaXplOiB0aGlzLmtleVNpemUsIGl0ZXJhdGlvbnM6IHRoaXMuaXRlcmF0aW9uQ291bnR9KTtcblxuICAgICAgICByZXR1cm4ga2V5O1xuICAgIH1cblxuICAgIHB1YmxpYyBlbmNyeXB0KHBsYW5UZXh0OiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgaXYgPSBDcnlwdG9KUy5saWIuV29yZEFycmF5LnJhbmRvbSgxNikudG9TdHJpbmcoQ3J5cHRvSlMuZW5jLkhleCk7XG4gICAgICAgIGNvbnN0IHNhbHQgPSBDcnlwdG9KUy5saWIuV29yZEFycmF5LnJhbmRvbSgxNikudG9TdHJpbmcoQ3J5cHRvSlMuZW5jLkhleCk7XG5cbiAgICAgICAgY29uc3Qga2V5ID0gdGhpcy5nZW5lcmF0ZUtleShzYWx0KTtcblxuICAgICAgICBjb25zdCBlbmNyeXB0ZWQgPSBDcnlwdG9KUy5BRVMuZW5jcnlwdChwbGFuVGV4dCwga2V5LCB7aXY6IENyeXB0b0pTLmVuYy5IZXgucGFyc2UoaXYpfSk7XG5cbiAgICAgICAgY29uc3QgY2lwaGVyVGV4dCA9IGVuY3J5cHRlZC5jaXBoZXJ0ZXh0LnRvU3RyaW5nKENyeXB0b0pTLmVuYy5CYXNlNjQpO1xuXG4gICAgICAgIGNvbnN0IGFlc1Bhc3N3b3JkID0gKGl2ICsgJzo6JyArIHNhbHQgKyAnOjonICsgY2lwaGVyVGV4dCk7XG4gICAgICAgIC8vIGNvbnZlcnNpb24gZW4gYmFzZSA2NFxuICAgICAgICB0aGlzLnB3ZEVuY3J5cHRlZCA9IGJ0b2EoYWVzUGFzc3dvcmQpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLnB3ZEVuY3J5cHRlZDtcbiAgICB9XG5cbn1cbiJdfQ==
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
const AUTH_HEADER_KEY = 'Authorization';
|
|
4
|
-
const AUTH_PREFIX = 'Bearer ';
|
|
5
|
-
const TOKEN_NAME = 'authToken';
|
|
6
|
-
export class InterceptorHttpService {
|
|
7
|
-
intercept(req, next) {
|
|
8
|
-
const token = `${AUTH_PREFIX}${sessionStorage.getItem(TOKEN_NAME)}`;
|
|
9
|
-
req.headers.set(AUTH_HEADER_KEY, `${AUTH_PREFIX} ${token}`);
|
|
10
|
-
return next.handle(req);
|
|
11
|
-
}
|
|
12
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: InterceptorHttpService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
13
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: InterceptorHttpService }); }
|
|
14
|
-
}
|
|
15
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: InterceptorHttpService, decorators: [{
|
|
16
|
-
type: Injectable
|
|
17
|
-
}] });
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
const AUTH_HEADER_KEY = 'Authorization';
|
|
4
|
+
const AUTH_PREFIX = 'Bearer ';
|
|
5
|
+
const TOKEN_NAME = 'authToken';
|
|
6
|
+
export class InterceptorHttpService {
|
|
7
|
+
intercept(req, next) {
|
|
8
|
+
const token = `${AUTH_PREFIX}${sessionStorage.getItem(TOKEN_NAME)}`;
|
|
9
|
+
req.headers.set(AUTH_HEADER_KEY, `${AUTH_PREFIX} ${token}`);
|
|
10
|
+
return next.handle(req);
|
|
11
|
+
}
|
|
12
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: InterceptorHttpService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
13
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: InterceptorHttpService }); }
|
|
14
|
+
}
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: InterceptorHttpService, decorators: [{
|
|
16
|
+
type: Injectable
|
|
17
|
+
}] });
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJjZXB0b3JodHRwLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXctZnJvbnQtY29tbW9uLWxpYnJhcnkvc3JjL2xpYi91dGlsL3NlcnZpY2VzL2p3dC1zZWN1cml0eS9pbnRlcmNlcHRvcmh0dHAuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUkzQyxNQUFNLGVBQWUsR0FBRyxlQUFlLENBQUM7QUFDeEMsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDO0FBQzlCLE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQztBQUcvQixNQUFNLE9BQU8sc0JBQXNCO0lBRS9CLFNBQVMsQ0FBQyxHQUFxQixFQUFFLElBQWlCO1FBQzlDLE1BQU0sS0FBSyxHQUFHLEdBQUcsV0FBVyxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztRQUNwRSxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsR0FBRyxXQUFXLElBQUksS0FBSyxFQUFFLENBQUMsQ0FBQztRQUM1RCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDNUIsQ0FBQzsrR0FOUSxzQkFBc0I7bUhBQXRCLHNCQUFzQjs7NEZBQXRCLHNCQUFzQjtrQkFEbEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBFdmVudCwgSHR0cEhhbmRsZXIsIEh0dHBJbnRlcmNlcHRvciwgSHR0cFJlcXVlc3QgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmNvbnN0IEFVVEhfSEVBREVSX0tFWSA9ICdBdXRob3JpemF0aW9uJztcbmNvbnN0IEFVVEhfUFJFRklYID0gJ0JlYXJlciAnO1xuY29uc3QgVE9LRU5fTkFNRSA9ICdhdXRoVG9rZW4nO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSW50ZXJjZXB0b3JIdHRwU2VydmljZSBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XG5cbiAgICBpbnRlcmNlcHQocmVxOiBIdHRwUmVxdWVzdDxhbnk+LCBuZXh0OiBIdHRwSGFuZGxlcik6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4+IHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSBgJHtBVVRIX1BSRUZJWH0ke3Nlc3Npb25TdG9yYWdlLmdldEl0ZW0oVE9LRU5fTkFNRSl9YDtcbiAgICAgICAgcmVxLmhlYWRlcnMuc2V0KEFVVEhfSEVBREVSX0tFWSwgYCR7QVVUSF9QUkVGSVh9ICR7dG9rZW59YCk7XG4gICAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXEpO1xuICAgIH1cblxuICAgIC8vIFRPRE8gw6AgcmVmYWlyZSBsb3JzcXVlIGwnb24gcsOpYWN0aXZlcmEgbCdpbnRlcmNlcHRvciBkdSBCQUNLIGQnb3JwaGVcbiAgICAvLyBwdWJsaWMgcmVxdWVzdCh1cmw6IHN0cmluZyB8IFJlcXVlc3QpOiBPYnNlcnZhYmxlPFJlc3BvbnNlPiB7XG4gICAgLy9cbiAgICAvLyAgIGNvbnN0IHRva2VuID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShUT0tFTl9OQU1FKTtcbiAgICAvL1xuICAgIC8vICAgY29uc3Qgb3B0aW9ucyA9IHtoZWFkZXJzOiBuZXcgSGVhZGVycygpfTtcbiAgICAvLyAgIGlmICh0eXBlb2YgdXJsID09PSAnc3RyaW5nJykge1xuICAgIC8vXG4gICAgLy8gICAgIG9wdGlvbnMuaGVhZGVycy5zZXQoQVVUSF9IRUFERVJfS0VZLCBgJHtBVVRIX1BSRUZJWH0gJHt0b2tlbn1gKTtcbiAgICAvLyAgIH0gZWxzZSB7XG4gICAgLy8gICAgIHVybC5oZWFkZXJzLnNldChBVVRIX0hFQURFUl9LRVksIGAke0FVVEhfUFJFRklYfSAke3Rva2VufWApO1xuICAgIC8vICAgfVxuICAgIC8vICAgcmV0dXJuIHN1cGVyLnJlcXVlc3QodXJsLCBvcHRpb25zKS5jYXRjaCh0aGlzLmNhdGNoRXJyb3IpO1xuICAgIC8vIH1cbiAgICAvL1xuICAgIC8vIHB1YmxpYyBnZXQodXJsOiBzdHJpbmcsIG9wdGlvbnM/KTogT2JzZXJ2YWJsZTxSZXNwb25zZT4ge1xuICAgIC8vICAgY29uc3QgZW5oYWNlZE9wdGlvbnMgPSB0aGlzLnNldEF1dGhvcml6YXRpb25IZWFkZXIob3B0aW9ucyk7XG4gICAgLy8gICByZXR1cm4gc3VwZXIuZ2V0KHVybCwgZW5oYWNlZE9wdGlvbnMpLnBpcGUoY2F0Y2hFcnJvcih0aGlzLmNhdGNoRXJyb3IpKTtcbiAgICAvLyB9XG4gICAgLy9cbiAgICAvLyBwdWJsaWMgcG9zdCh1cmw6IHN0cmluZywgYm9keTogYW55LCBvcHRpb25zPyk6IE9ic2VydmFibGU8UmVzcG9uc2U+IHtcbiAgICAvLyAgIGNvbnN0IGVuaGFjZWRPcHRpb25zID0gdGhpcy5zZXRBdXRob3JpemF0aW9uSGVhZGVyKG9wdGlvbnMpO1xuICAgIC8vICAgcmV0dXJuIHN1cGVyLnBvc3QodXJsLCBib2R5LCBlbmhhY2VkT3B0aW9ucykucGlwZShjYXRjaEVycm9yKHRoaXMuY2F0Y2hFcnJvcikpO1xuICAgIC8vIH1cbiAgICAvL1xuICAgIC8vIHB1YmxpYyBwdXQodXJsOiBzdHJpbmcsIGJvZHk6IGFueSwgb3B0aW9ucz8pOiBPYnNlcnZhYmxlPFJlc3BvbnNlPiB7XG4gICAgLy8gICBjb25zdCBlbmhhY2VkT3B0aW9ucyA9IHRoaXMuc2V0QXV0aG9yaXphdGlvbkhlYWRlcihvcHRpb25zKTtcbiAgICAvLyAgIHJldHVybiBzdXBlci5wdXQodXJsLCBib2R5LCBlbmhhY2VkT3B0aW9ucykucGlwZShjYXRjaEVycm9yKHRoaXMuY2F0Y2hFcnJvcikpO1xuICAgIC8vIH1cbiAgICAvL1xuICAgIC8vIHB1YmxpYyBkZWxldGUodXJsOiBzdHJpbmcsIG9wdGlvbnM/KTogT2JzZXJ2YWJsZTxSZXNwb25zZT4ge1xuICAgIC8vICAgY29uc3QgZW5oYWNlZE9wdGlvbnMgPSB0aGlzLnNldEF1dGhvcml6YXRpb25IZWFkZXIob3B0aW9ucyk7XG4gICAgLy8gICByZXR1cm4gc3VwZXIuZGVsZXRlKHVybCwgZW5oYWNlZE9wdGlvbnMpLnBpcGUoY2F0Y2hFcnJvcih0aGlzLmNhdGNoRXJyb3IpKTtcbiAgICAvLyB9XG4gICAgLy9cbiAgICAvLyBwdWJsaWMgcGF0Y2godXJsOiBzdHJpbmcsIGJvZHk6IGFueSwgb3B0aW9ucz8pOiBPYnNlcnZhYmxlPFJlc3BvbnNlPiB7XG4gICAgLy8gICBjb25zdCBlbmhhY2VkT3B0aW9ucyA9IHRoaXMuc2V0QXV0aG9yaXphdGlvbkhlYWRlcihvcHRpb25zKTtcbiAgICAvLyAgIHJldHVybiBzdXBlci5wYXRjaCh1cmwsIGJvZHksIGVuaGFjZWRPcHRpb25zKS5waXBlKGNhdGNoRXJyb3IodGhpcy5jYXRjaEVycm9yKSk7XG4gICAgLy8gfVxuICAgIC8vXG4gICAgLy8gcHVibGljIGhlYWQodXJsOiBzdHJpbmcsIG9wdGlvbnM/KTogT2JzZXJ2YWJsZTxSZXNwb25zZT4ge1xuICAgIC8vICAgY29uc3QgZW5oYWNlZE9wdGlvbnMgPSB0aGlzLnNldEF1dGhvcml6YXRpb25IZWFkZXIob3B0aW9ucyk7XG4gICAgLy8gICByZXR1cm4gc3VwZXIuaGVhZCh1cmwsIGVuaGFjZWRPcHRpb25zKS5waXBlKGNhdGNoRXJyb3IodGhpcy5jYXRjaEVycm9yKSk7XG4gICAgLy8gfVxuICAgIC8vXG4gICAgLy8gcHVibGljIG9wdGlvbnModXJsOiBzdHJpbmcsIG9wdGlvbnM/KTogT2JzZXJ2YWJsZTxSZXNwb25zZT4ge1xuICAgIC8vICAgY29uc3QgZW5oYWNlZE9wdGlvbnMgPSB0aGlzLnNldEF1dGhvcml6YXRpb25IZWFkZXIob3B0aW9ucyk7XG4gICAgLy8gICByZXR1cm4gc3VwZXIub3B0aW9ucyh1cmwsIGVuaGFjZWRPcHRpb25zKS5waXBlKGNhdGNoRXJyb3IodGhpcy5jYXRjaEVycm9yKSk7XG4gICAgLy8gfVxuICAgIC8vXG4gICAgLy8gLy8gQWpvdXQgZGUgbCdhdHRyaWJ1dCBBdXRob3JpemF0aW9uIGF1IEhlYWRlclxuICAgIC8vIHByaXZhdGUgc2V0QXV0aG9yaXphdGlvbkhlYWRlcihvcHRpb25zPykge1xuICAgIC8vXG4gICAgLy8gICBjb25zdCB0b2tlbiA9IGAke0FVVEhfUFJFRklYfSR7c2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShUT0tFTl9OQU1FKX1gO1xuICAgIC8vICAgLy8gQ29waWUgZHUgaGVhZGVyIGRhbnMgbGUgUmVxdWVzdE9wdGlvbnMgZXQgYWpvdXQgZHUgdG9rZW4gYSAnQXV0aG9yaXphdGlvbidcbiAgICAvLyAgIGNvbnN0IGhlYWRlcnMgPSB7XG4gICAgLy8gICAgIC4uLm9wdGlvbnMuaGVhZGVycy50b0pTT04oKSxcbiAgICAvLyAgICAgQXV0aG9yaXphdGlvbjogdG9rZW5cbiAgICAvLyAgIH07XG4gICAgLy8gICBvcHRpb25zLmhlYWRlcnMgPSBuZXcgSGVhZGVycyhoZWFkZXJzKTtcbiAgICAvLyAgIHJldHVybiBvcHRpb25zO1xuICAgIC8vIH1cbiAgICAvL1xuICAgIC8vIC8vIFJlc3BvbnNlIEludGVyY2VwdG9yXG4gICAgLy8gcHJpdmF0ZSBjYXRjaEVycm9yKGVycm9yOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIC8vXG4gICAgLy8gICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSkge1xuICAgIC8vICAgICByZXR1cm4gT2JzZXJ2YWJsZS50aHJvdyhlcnJvcik7XG4gICAgLy8gICB9IGVsc2UgaWYgKGVycm9yIGluc3RhbmNlb2YgUmVzcG9uc2UpIHtcbiAgICAvLyAgICAgaWYgKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2xvZ2luRmxhZycpID09PSAndHJ1ZScgJiYgZXJyb3Iuc3RhdHVzID09PSA0MDEpIHtcbiAgICAvLyAgICAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKFRPS0VOX05BTUUpO1xuICAgIC8vICAgICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oJ2xvZ2luRmxhZycpO1xuICAgIC8vICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcbiAgICAvLyAgICAgfVxuICAgIC8vICAgICByZXR1cm4gT2JzZXJ2YWJsZS50aHJvdyhlcnJvcik7XG4gICAgLy8gICB9IGVsc2Uge1xuICAgIC8vICAgICByZXR1cm4gT2JzZXJ2YWJsZS50aHJvdyhlcnJvcik7XG4gICAgLy8gICB9XG4gICAgLy8gfVxufVxuXG4iXX0=
|
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
export class JwtHelper {
|
|
2
|
-
decodeToken(token) {
|
|
3
|
-
let parts = token.split('.');
|
|
4
|
-
if (parts.length !== 3) {
|
|
5
|
-
throw new Error('JWT must have 3 parts');
|
|
6
|
-
}
|
|
7
|
-
let decoded = this.urlBase64Decode(parts[1]);
|
|
8
|
-
if (!decoded) {
|
|
9
|
-
throw new Error('Cannot decode the token');
|
|
10
|
-
}
|
|
11
|
-
return JSON.parse(decoded);
|
|
12
|
-
}
|
|
13
|
-
urlBase64Decode(str) {
|
|
14
|
-
let output = str.replace(/-/g, '+').replace(/_/g, '/');
|
|
15
|
-
switch (output.length % 4) {
|
|
16
|
-
case 0: {
|
|
17
|
-
break;
|
|
18
|
-
}
|
|
19
|
-
case 2: {
|
|
20
|
-
output += '==';
|
|
21
|
-
break;
|
|
22
|
-
}
|
|
23
|
-
case 3: {
|
|
24
|
-
output += '=';
|
|
25
|
-
break;
|
|
26
|
-
}
|
|
27
|
-
default: {
|
|
28
|
-
throw 'Illegal base64url string!';
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
return decodeURIComponent(window.escape(window.atob(output)));
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export class JwtHelper {
|
|
2
|
+
decodeToken(token) {
|
|
3
|
+
let parts = token.split('.');
|
|
4
|
+
if (parts.length !== 3) {
|
|
5
|
+
throw new Error('JWT must have 3 parts');
|
|
6
|
+
}
|
|
7
|
+
let decoded = this.urlBase64Decode(parts[1]);
|
|
8
|
+
if (!decoded) {
|
|
9
|
+
throw new Error('Cannot decode the token');
|
|
10
|
+
}
|
|
11
|
+
return JSON.parse(decoded);
|
|
12
|
+
}
|
|
13
|
+
urlBase64Decode(str) {
|
|
14
|
+
let output = str.replace(/-/g, '+').replace(/_/g, '/');
|
|
15
|
+
switch (output.length % 4) {
|
|
16
|
+
case 0: {
|
|
17
|
+
break;
|
|
18
|
+
}
|
|
19
|
+
case 2: {
|
|
20
|
+
output += '==';
|
|
21
|
+
break;
|
|
22
|
+
}
|
|
23
|
+
case 3: {
|
|
24
|
+
output += '=';
|
|
25
|
+
break;
|
|
26
|
+
}
|
|
27
|
+
default: {
|
|
28
|
+
throw 'Illegal base64url string!';
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return decodeURIComponent(window.escape(window.atob(output)));
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiand0LmhlbHBoZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXctZnJvbnQtY29tbW9uLWxpYnJhcnkvc3JjL2xpYi91dGlsL3NlcnZpY2VzL2p3dC1zZWN1cml0eS9qd3QuaGVscGhlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sU0FBUztJQUVYLFdBQVcsQ0FBQyxLQUFhO1FBQzVCLElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDN0IsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUM7U0FDNUM7UUFDRCxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDVixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7U0FDOUM7UUFDRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVPLGVBQWUsQ0FBQyxHQUFXO1FBQy9CLElBQUksTUFBTSxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDdkQsUUFBUSxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN2QixLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUNKLE1BQU07YUFDVDtZQUNELEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBQ0osTUFBTSxJQUFJLElBQUksQ0FBQztnQkFDZixNQUFNO2FBQ1Q7WUFDRCxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUNKLE1BQU0sSUFBSSxHQUFHLENBQUM7Z0JBQ2QsTUFBTTthQUNUO1lBQ0QsT0FBTyxDQUFDLENBQUM7Z0JBQ0wsTUFBTSwyQkFBMkIsQ0FBQzthQUNyQztTQUNKO1FBQ0QsT0FBTyxrQkFBa0IsQ0FBTyxNQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXpFLENBQUM7Q0FHSiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBKd3RIZWxwZXIge1xuXG4gICAgcHVibGljIGRlY29kZVRva2VuKHRva2VuOiBzdHJpbmcpIHtcbiAgICAgICAgbGV0IHBhcnRzID0gdG9rZW4uc3BsaXQoJy4nKTtcbiAgICAgICAgaWYgKHBhcnRzLmxlbmd0aCAhPT0gMykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdKV1QgbXVzdCBoYXZlIDMgcGFydHMnKTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgZGVjb2RlZCA9IHRoaXMudXJsQmFzZTY0RGVjb2RlKHBhcnRzWzFdKTtcbiAgICAgICAgaWYgKCFkZWNvZGVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBkZWNvZGUgdGhlIHRva2VuJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoZGVjb2RlZCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cmxCYXNlNjREZWNvZGUoc3RyOiBzdHJpbmcpIHtcbiAgICAgICAgbGV0IG91dHB1dCA9IHN0ci5yZXBsYWNlKC8tL2csICcrJykucmVwbGFjZSgvXy9nLCAnLycpO1xuICAgICAgICBzd2l0Y2ggKG91dHB1dC5sZW5ndGggJSA0KSB7XG4gICAgICAgICAgICBjYXNlIDA6IHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgMjoge1xuICAgICAgICAgICAgICAgIG91dHB1dCArPSAnPT0nO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAzOiB7XG4gICAgICAgICAgICAgICAgb3V0cHV0ICs9ICc9JztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aHJvdyAnSWxsZWdhbCBiYXNlNjR1cmwgc3RyaW5nISc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudCgoPGFueT53aW5kb3cpLmVzY2FwZSh3aW5kb3cuYXRvYihvdXRwdXQpKSk7XG5cbiAgICB9XG5cblxufVxuIl19
|