zek 15.2.1 → 16.0.1
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 +1 -1
- package/{esm2020 → esm2022}/lib/components/args.mjs +1 -1
- package/esm2022/lib/components/base.component.mjs +97 -0
- package/esm2022/lib/components/core-ui.component.mjs +195 -0
- package/esm2022/lib/components/core.component.mjs +40 -0
- package/esm2022/lib/components/edit-base.component.mjs +237 -0
- package/{esm2020 → esm2022}/lib/components/index.mjs +7 -7
- package/esm2022/lib/components/list-base.component.mjs +259 -0
- package/{esm2020 → esm2022}/lib/components/types.mjs +1 -1
- package/{esm2020 → esm2022}/lib/models/alert-type.mjs +11 -11
- package/{esm2020 → esm2022}/lib/models/captcha.model.mjs +1 -1
- package/{esm2020 → esm2022}/lib/models/ctor.mjs +1 -1
- package/{esm2020 → esm2022}/lib/models/edit-base.model.mjs +2 -2
- package/{esm2020 → esm2022}/lib/models/file.model.mjs +19 -19
- package/{esm2020 → esm2022}/lib/models/filter.model.mjs +11 -11
- package/{esm2020 → esm2022}/lib/models/gender.model.mjs +5 -5
- package/{esm2020 → esm2022}/lib/models/index.mjs +17 -17
- package/{esm2020 → esm2022}/lib/models/key-pair.model.mjs +13 -13
- package/{esm2020 → esm2022}/lib/models/list-base.model.mjs +2 -2
- package/{esm2020 → esm2022}/lib/models/login.model.mjs +1 -1
- package/{esm2020 → esm2022}/lib/models/month.model.mjs +15 -15
- package/{esm2020 → esm2022}/lib/models/nav.model.mjs +1 -1
- package/esm2022/lib/models/pager.model.mjs +43 -0
- package/{esm2020 → esm2022}/lib/models/print.model.mjs +5 -5
- package/{esm2020 → esm2022}/lib/models/tree.model.mjs +3 -3
- package/{esm2020 → esm2022}/lib/models/valid-event-args.model.mjs +5 -5
- package/esm2022/lib/modules/age/age.module.mjs +23 -0
- package/esm2022/lib/modules/age/age.pipe.mjs +22 -0
- package/{esm2020 → esm2022}/lib/modules/age/index.mjs +2 -2
- package/esm2022/lib/modules/alert/alert/alert.mjs +55 -0
- package/esm2022/lib/modules/alert/alert.module.mjs +36 -0
- package/{esm2020 → esm2022}/lib/modules/alert/index.mjs +5 -5
- package/esm2022/lib/modules/alert/toast/toast.mjs +110 -0
- package/esm2022/lib/modules/alert/validation/validation.mjs +86 -0
- package/esm2022/lib/modules/autocomplete/autocomplete.directive.mjs +25 -0
- package/esm2022/lib/modules/autocomplete/autocomplete.module.mjs +23 -0
- package/{esm2020 → esm2022}/lib/modules/autocomplete/index.mjs +2 -2
- package/esm2022/lib/modules/bb/bb-modal-base.component.mjs +75 -0
- package/esm2022/lib/modules/bb/bb-modal-toolbar.mjs +45 -0
- package/esm2022/lib/modules/bb/bb.component.mjs +189 -0
- package/esm2022/lib/modules/bb/bb.module.mjs +38 -0
- package/{esm2020 → esm2022}/lib/modules/bb/index.mjs +4 -4
- package/esm2022/lib/modules/callback/callback.module.mjs +23 -0
- package/esm2022/lib/modules/callback/callback.pipe.mjs +23 -0
- package/{esm2020 → esm2022}/lib/modules/callback/index.mjs +2 -2
- package/esm2022/lib/modules/card/card/card.component.mjs +48 -0
- package/esm2022/lib/modules/card/card.module.mjs +19 -0
- package/{esm2020 → esm2022}/lib/modules/card/index.mjs +2 -2
- package/esm2022/lib/modules/date-ago/date-ago.pipe.mjs +47 -0
- package/esm2022/lib/modules/date-ago/date.module.mjs +23 -0
- package/{esm2020 → esm2022}/lib/modules/date-ago/index.mjs +2 -2
- package/esm2022/lib/modules/datepicker/date-value-accessor.mjs +189 -0
- package/esm2022/lib/modules/datepicker/datepicker.module.mjs +32 -0
- package/{esm2020 → esm2022}/lib/modules/datepicker/index.mjs +2 -2
- package/esm2022/lib/modules/edit-toolbar/edit-toolbar.component.mjs +75 -0
- package/esm2022/lib/modules/edit-toolbar/edit-toolbar.module.mjs +27 -0
- package/{esm2020 → esm2022}/lib/modules/edit-toolbar/index.mjs +2 -2
- package/esm2022/lib/modules/file/file-size.pipe.mjs +48 -0
- package/esm2022/lib/modules/file/file.module.mjs +23 -0
- package/{esm2020 → esm2022}/lib/modules/file/index.mjs +2 -2
- package/esm2022/lib/modules/file-viewer/file-viewer.mjs +52 -0
- package/{esm2020 → esm2022}/lib/modules/file-viewer/index.mjs +2 -2
- package/esm2022/lib/modules/file-viewer/module.mjs +31 -0
- package/esm2022/lib/modules/grid-toolbar/grid-toolbar/grid-toolbar.component.mjs +146 -0
- package/esm2022/lib/modules/grid-toolbar/grid-toolbar-bar/grid-toolbar-bar.component.mjs +15 -0
- package/esm2022/lib/modules/grid-toolbar/grid-toolbar.module.mjs +34 -0
- package/{esm2020 → esm2022}/lib/modules/grid-toolbar/index.mjs +3 -3
- package/{esm2020 → esm2022}/lib/modules/index.mjs +32 -32
- package/{esm2020 → esm2022}/lib/modules/list-toolbar/index.mjs +2 -2
- package/esm2022/lib/modules/list-toolbar/list-toolbar.component.mjs +110 -0
- package/esm2022/lib/modules/list-toolbar/list-toolbar.module.mjs +25 -0
- package/{esm2020 → esm2022}/lib/modules/loading/index.mjs +3 -3
- package/esm2022/lib/modules/loading/loading-interceptor.mjs +80 -0
- package/esm2022/lib/modules/loading/loading.component.mjs +36 -0
- package/esm2022/lib/modules/loading/loading.module.mjs +33 -0
- package/esm2022/lib/modules/modal/filter-modal/filter-modal.component.mjs +27 -0
- package/{esm2020 → esm2022}/lib/modules/modal/index.mjs +4 -4
- package/esm2022/lib/modules/modal/modal/modal.component.mjs +313 -0
- package/esm2022/lib/modules/modal/modal.module.mjs +63 -0
- package/esm2022/lib/modules/modal/sum-modal/sum-modal.component.mjs +28 -0
- package/{esm2020 → esm2022}/lib/modules/page-title/index.mjs +2 -2
- package/esm2022/lib/modules/page-title/page-title.component.mjs +32 -0
- package/esm2022/lib/modules/page-title/page-title.module.mjs +27 -0
- package/{esm2020 → esm2022}/lib/modules/pager/index.mjs +2 -2
- package/esm2022/lib/modules/pager/pager/pager.component.mjs +51 -0
- package/esm2022/lib/modules/pager/pager.module.mjs +27 -0
- package/{esm2020 → esm2022}/lib/modules/password/index.mjs +2 -2
- package/{esm2020 → esm2022}/lib/modules/password/password.component.mjs +48 -47
- package/esm2022/lib/modules/password/password.module.mjs +31 -0
- package/{esm2020 → esm2022}/lib/modules/progress/index.mjs +2 -2
- package/esm2022/lib/modules/progress/module.mjs +27 -0
- package/esm2022/lib/modules/progress/progress.mjs +98 -0
- package/{esm2020 → esm2022}/lib/modules/radio/index.mjs +2 -2
- package/esm2022/lib/modules/radio/radio-button.component.mjs +135 -0
- package/esm2022/lib/modules/radio/radio.module.mjs +23 -0
- package/{esm2020 → esm2022}/lib/modules/readonly/index.mjs +2 -2
- package/esm2022/lib/modules/readonly/readonly.directive.mjs +26 -0
- package/esm2022/lib/modules/readonly/readonly.module.mjs +23 -0
- package/{esm2020 → esm2022}/lib/modules/recaptcha/index.mjs +3 -3
- package/{esm2020 → esm2022}/lib/modules/recaptcha/loader.mjs +12 -12
- package/{esm2020 → esm2022}/lib/modules/recaptcha/recaptcha.model.mjs +1 -1
- package/esm2022/lib/modules/recaptcha/recaptcha.module.mjs +33 -0
- package/esm2022/lib/modules/recaptcha/recaptcha.service.mjs +120 -0
- package/{esm2020 → esm2022}/lib/modules/safe/index.mjs +2 -2
- package/esm2022/lib/modules/safe/safe.module.mjs +21 -0
- package/esm2022/lib/modules/safe/safe.pipe.mjs +38 -0
- package/{esm2020 → esm2022}/lib/modules/select/index.mjs +2 -2
- package/{esm2020 → esm2022}/lib/modules/select/model.mjs +3 -3
- package/esm2022/lib/modules/select/module.mjs +29 -0
- package/esm2022/lib/modules/select/select.mjs +199 -0
- package/{esm2020 → esm2022}/lib/modules/select2/index.mjs +2 -2
- package/esm2022/lib/modules/select2/select2.component.mjs +171 -0
- package/esm2022/lib/modules/select2/select2.module.mjs +29 -0
- package/{esm2020 → esm2022}/lib/modules/select2-multiple/index.mjs +2 -2
- package/esm2022/lib/modules/select2-multiple/select2-multiple.component.mjs +133 -0
- package/esm2022/lib/modules/select2-multiple/select2-multiple.module.mjs +29 -0
- package/{esm2020 → esm2022}/lib/modules/sort/index.mjs +3 -3
- package/esm2022/lib/modules/sort/sort-button-group/sort-button-group.component.mjs +80 -0
- package/esm2022/lib/modules/sort/sort.directive.mjs +118 -0
- package/esm2022/lib/modules/sort/sort.module.mjs +34 -0
- package/{esm2020 → esm2022}/lib/modules/time/index.mjs +3 -3
- package/esm2022/lib/modules/time/time.module.mjs +28 -0
- package/esm2022/lib/modules/time/time.pipe.mjs +41 -0
- package/esm2022/lib/modules/time/timer-service.mjs +90 -0
- package/{esm2020 → esm2022}/lib/modules/validator/field-validator.mjs +21 -20
- package/{esm2020 → esm2022}/lib/modules/validator/index.mjs +2 -2
- package/esm2022/lib/modules/validator/validator.module.mjs +27 -0
- package/esm2022/lib/modules/validators/directive.mjs +76 -0
- package/{esm2020 → esm2022}/lib/modules/validators/index.mjs +3 -3
- package/esm2022/lib/modules/validators/module.mjs +23 -0
- package/{esm2020 → esm2022}/lib/modules/validators/validator.mjs +71 -71
- package/{esm2020 → esm2022}/lib/modules/wizard/index.mjs +3 -3
- package/esm2022/lib/modules/wizard/wizard/wizard.component.mjs +66 -0
- package/esm2022/lib/modules/wizard/wizard.module.mjs +34 -0
- package/esm2022/lib/modules/wizard/wizard2/wizard2.component.mjs +14 -0
- package/esm2022/lib/services/alert.service.mjs +77 -0
- package/esm2022/lib/services/auth-guard.service.mjs +29 -0
- package/esm2022/lib/services/auth.service.mjs +204 -0
- package/{esm2020 → esm2022}/lib/services/base.service.mjs +7 -7
- package/{esm2020 → esm2022}/lib/services/crud.service.mjs +42 -42
- package/esm2022/lib/services/http-error-handler.service.mjs +142 -0
- package/{esm2020 → esm2022}/lib/services/index.mjs +6 -6
- package/esm2022/lib/services/web.api.mjs +127 -0
- package/{esm2020 → esm2022}/lib/tokens.mjs +5 -5
- package/{esm2020 → esm2022}/lib/utils/array-helper.mjs +113 -113
- package/{esm2020 → esm2022}/lib/utils/base64-helper.mjs +8 -8
- package/{esm2020 → esm2022}/lib/utils/bitwise-helper.mjs +13 -13
- package/{esm2020 → esm2022}/lib/utils/bootstrap.helper.mjs +126 -126
- package/{esm2020 → esm2022}/lib/utils/convert.mjs +34 -34
- package/{esm2020 → esm2022}/lib/utils/css-helper.mjs +40 -40
- package/esm2022/lib/utils/date-helper.mjs +236 -0
- package/{esm2020 → esm2022}/lib/utils/file.helper.mjs +25 -25
- package/{esm2020 → esm2022}/lib/utils/filter-helper.mjs +12 -12
- package/{esm2020 → esm2022}/lib/utils/handler.mjs +23 -23
- package/{esm2020 → esm2022}/lib/utils/html-helper.mjs +65 -65
- package/{esm2020 → esm2022}/lib/utils/index.mjs +22 -22
- package/{esm2020 → esm2022}/lib/utils/math-helper.mjs +6 -6
- package/{esm2020 → esm2022}/lib/utils/object-helper.mjs +63 -63
- package/{esm2020 → esm2022}/lib/utils/overlap-helper.mjs +72 -72
- package/{esm2020 → esm2022}/lib/utils/pager-helper.mjs +62 -62
- package/{esm2020 → esm2022}/lib/utils/random-helper.mjs +10 -10
- package/{esm2020 → esm2022}/lib/utils/storage-helper.mjs +27 -27
- package/{esm2020 → esm2022}/lib/utils/string-helper.mjs +31 -31
- package/{esm2020 → esm2022}/lib/utils/thenBy.mjs +40 -40
- package/{esm2020 → esm2022}/lib/utils/time-helper.mjs +46 -46
- package/{esm2020 → esm2022}/lib/utils/url-helper.mjs +25 -25
- package/esm2022/lib/utils/validation-helper.mjs +11 -0
- package/esm2022/lib/zek.module.mjs +34 -0
- package/{esm2020 → esm2022}/public-api.mjs +10 -10
- package/{esm2020 → esm2022}/zek.mjs +4 -4
- package/{fesm2020 → fesm2022}/zek.mjs +6431 -6415
- package/fesm2022/zek.mjs.map +1 -0
- package/index.d.ts +5 -5
- package/lib/components/args.d.ts +5 -5
- package/lib/components/base.component.d.ts +24 -24
- package/lib/components/core-ui.component.d.ts +86 -86
- package/lib/components/core.component.d.ts +15 -15
- package/lib/components/edit-base.component.d.ts +59 -59
- package/lib/components/index.d.ts +7 -7
- package/lib/components/list-base.component.d.ts +61 -61
- package/lib/components/types.d.ts +3 -3
- package/lib/models/alert-type.d.ts +10 -10
- package/lib/models/captcha.model.d.ts +3 -3
- package/lib/models/ctor.d.ts +3 -3
- package/lib/models/edit-base.model.d.ts +5 -5
- package/lib/models/file.model.d.ts +14 -14
- package/lib/models/filter.model.d.ts +9 -9
- package/lib/models/gender.model.d.ts +4 -4
- package/lib/models/index.d.ts +16 -16
- package/lib/models/key-pair.model.d.ts +14 -14
- package/lib/models/list-base.model.d.ts +4 -4
- package/lib/models/login.model.d.ts +28 -28
- package/lib/models/month.model.d.ts +14 -14
- package/lib/models/nav.model.d.ts +19 -19
- package/lib/models/pager.model.d.ts +32 -21
- package/lib/models/print.model.d.ts +4 -4
- package/lib/models/tree.model.d.ts +8 -8
- package/lib/models/valid-event-args.model.d.ts +3 -3
- package/lib/modules/age/age.module.d.ts +8 -8
- package/lib/modules/age/age.pipe.d.ts +7 -7
- package/lib/modules/age/index.d.ts +2 -2
- package/lib/modules/alert/alert/alert.d.ts +16 -16
- package/lib/modules/alert/alert.module.d.ts +10 -10
- package/lib/modules/alert/index.d.ts +5 -5
- package/lib/modules/alert/toast/toast.d.ts +20 -20
- package/lib/modules/alert/validation/validation.d.ts +17 -17
- package/lib/modules/autocomplete/autocomplete.directive.d.ts +11 -11
- package/lib/modules/autocomplete/autocomplete.module.d.ts +8 -8
- package/lib/modules/autocomplete/index.d.ts +2 -2
- package/lib/modules/bb/bb-modal-base.component.d.ts +26 -26
- package/lib/modules/bb/bb-modal-toolbar.d.ts +16 -16
- package/lib/modules/bb/bb.component.d.ts +52 -52
- package/lib/modules/bb/bb.module.d.ts +11 -11
- package/lib/modules/bb/index.d.ts +4 -4
- package/lib/modules/callback/callback.module.d.ts +8 -8
- package/lib/modules/callback/callback.pipe.d.ts +7 -7
- package/lib/modules/callback/index.d.ts +2 -2
- package/lib/modules/card/card/card.component.d.ts +21 -21
- package/lib/modules/card/card.module.d.ts +8 -8
- package/lib/modules/card/index.d.ts +2 -2
- package/lib/modules/date-ago/date-ago.pipe.d.ts +7 -7
- package/lib/modules/date-ago/date.module.d.ts +8 -8
- package/lib/modules/date-ago/index.d.ts +2 -2
- package/lib/modules/datepicker/date-value-accessor.d.ts +24 -24
- package/lib/modules/datepicker/datepicker.module.d.ts +14 -14
- package/lib/modules/datepicker/index.d.ts +2 -2
- package/lib/modules/edit-toolbar/edit-toolbar.component.d.ts +25 -25
- package/lib/modules/edit-toolbar/edit-toolbar.module.d.ts +9 -9
- package/lib/modules/edit-toolbar/index.d.ts +2 -2
- package/lib/modules/file/file-size.pipe.d.ts +8 -8
- package/lib/modules/file/file.module.d.ts +8 -8
- package/lib/modules/file/index.d.ts +2 -2
- package/lib/modules/file-viewer/file-viewer.d.ts +10 -10
- package/lib/modules/file-viewer/index.d.ts +2 -2
- package/lib/modules/file-viewer/module.d.ts +10 -10
- package/lib/modules/grid-toolbar/grid-toolbar/grid-toolbar.component.d.ts +50 -50
- package/lib/modules/grid-toolbar/grid-toolbar-bar/grid-toolbar-bar.component.d.ts +6 -6
- package/lib/modules/grid-toolbar/grid-toolbar.module.d.ts +10 -10
- package/lib/modules/grid-toolbar/index.d.ts +3 -3
- package/lib/modules/index.d.ts +31 -31
- package/lib/modules/list-toolbar/index.d.ts +2 -2
- package/lib/modules/list-toolbar/list-toolbar.component.d.ts +41 -41
- package/lib/modules/list-toolbar/list-toolbar.module.d.ts +9 -9
- package/lib/modules/loading/index.d.ts +2 -2
- package/lib/modules/loading/loading-interceptor.d.ts +21 -21
- package/lib/modules/loading/loading.component.d.ts +13 -13
- package/lib/modules/loading/loading.module.d.ts +8 -8
- package/lib/modules/modal/filter-modal/filter-modal.component.d.ts +10 -10
- package/lib/modules/modal/index.d.ts +4 -4
- package/lib/modules/modal/modal/modal.component.d.ts +90 -90
- package/lib/modules/modal/modal.module.d.ts +12 -12
- package/lib/modules/modal/sum-modal/sum-modal.component.d.ts +8 -8
- package/lib/modules/page-title/index.d.ts +2 -2
- package/lib/modules/page-title/page-title.component.d.ts +12 -12
- package/lib/modules/page-title/page-title.module.d.ts +9 -9
- package/lib/modules/pager/index.d.ts +2 -2
- package/lib/modules/pager/pager/pager.component.d.ts +17 -17
- package/lib/modules/pager/pager.module.d.ts +9 -9
- package/lib/modules/password/index.d.ts +2 -2
- package/lib/modules/password/password.component.d.ts +18 -18
- package/lib/modules/password/password.module.d.ts +10 -10
- package/lib/modules/progress/index.d.ts +2 -2
- package/lib/modules/progress/module.d.ts +9 -9
- package/lib/modules/progress/progress.d.ts +33 -33
- package/lib/modules/radio/index.d.ts +2 -2
- package/lib/modules/radio/radio-button.component.d.ts +44 -44
- package/lib/modules/radio/radio.module.d.ts +8 -8
- package/lib/modules/readonly/index.d.ts +2 -2
- package/lib/modules/readonly/readonly.directive.d.ts +8 -8
- package/lib/modules/readonly/readonly.module.d.ts +8 -8
- package/lib/modules/recaptcha/index.d.ts +3 -3
- package/lib/modules/recaptcha/loader.d.ts +12 -12
- package/lib/modules/recaptcha/recaptcha.model.d.ts +109 -109
- package/lib/modules/recaptcha/recaptcha.module.d.ts +10 -10
- package/lib/modules/recaptcha/recaptcha.service.d.ts +60 -60
- package/lib/modules/safe/index.d.ts +2 -2
- package/lib/modules/safe/safe.module.d.ts +8 -8
- package/lib/modules/safe/safe.pipe.d.ts +16 -16
- package/lib/modules/select/index.d.ts +2 -2
- package/lib/modules/select/model.d.ts +5 -5
- package/lib/modules/select/module.d.ts +9 -9
- package/lib/modules/select/select.d.ts +42 -42
- package/lib/modules/select2/index.d.ts +2 -2
- package/lib/modules/select2/select2.component.d.ts +31 -31
- package/lib/modules/select2/select2.module.d.ts +9 -9
- package/lib/modules/select2-multiple/index.d.ts +2 -2
- package/lib/modules/select2-multiple/select2-multiple.component.d.ts +30 -30
- package/lib/modules/select2-multiple/select2-multiple.module.d.ts +9 -9
- package/lib/modules/sort/index.d.ts +3 -3
- package/lib/modules/sort/sort-button-group/sort-button-group.component.d.ts +34 -34
- package/lib/modules/sort/sort.directive.d.ts +34 -34
- package/lib/modules/sort/sort.module.d.ts +10 -10
- package/lib/modules/time/index.d.ts +3 -3
- package/lib/modules/time/time.module.d.ts +8 -8
- package/lib/modules/time/time.pipe.d.ts +11 -11
- package/lib/modules/time/timer-service.d.ts +21 -21
- package/lib/modules/validator/field-validator.d.ts +7 -7
- package/lib/modules/validator/index.d.ts +2 -2
- package/lib/modules/validator/validator.module.d.ts +9 -9
- package/lib/modules/validators/directive.d.ts +67 -67
- package/lib/modules/validators/index.d.ts +3 -3
- package/lib/modules/validators/module.d.ts +8 -8
- package/lib/modules/validators/validator.d.ts +33 -33
- package/lib/modules/wizard/index.d.ts +3 -3
- package/lib/modules/wizard/wizard/wizard.component.d.ts +19 -19
- package/lib/modules/wizard/wizard.module.d.ts +10 -10
- package/lib/modules/wizard/wizard2/wizard2.component.d.ts +6 -6
- package/lib/services/alert.service.d.ts +33 -33
- package/lib/services/auth-guard.service.d.ts +12 -12
- package/lib/services/auth.service.d.ts +30 -30
- package/lib/services/base.service.d.ts +8 -8
- package/lib/services/crud.service.d.ts +32 -32
- package/lib/services/http-error-handler.service.d.ts +39 -39
- package/lib/services/index.d.ts +6 -6
- package/lib/services/web.api.d.ts +31 -31
- package/lib/tokens.d.ts +5 -5
- package/lib/utils/array-helper.d.ts +14 -14
- package/lib/utils/base64-helper.d.ts +4 -4
- package/lib/utils/bitwise-helper.d.ts +4 -4
- package/lib/utils/bootstrap.helper.d.ts +25 -25
- package/lib/utils/convert.d.ts +7 -7
- package/lib/utils/css-helper.d.ts +5 -5
- package/lib/utils/date-helper.d.ts +43 -43
- package/lib/utils/file.helper.d.ts +3 -3
- package/lib/utils/filter-helper.d.ts +3 -3
- package/lib/utils/handler.d.ts +4 -4
- package/lib/utils/html-helper.d.ts +7 -7
- package/lib/utils/index.d.ts +22 -22
- package/lib/utils/math-helper.d.ts +3 -3
- package/lib/utils/object-helper.d.ts +13 -13
- package/lib/utils/overlap-helper.d.ts +22 -22
- package/lib/utils/pager-helper.d.ts +4 -4
- package/lib/utils/random-helper.d.ts +3 -3
- package/lib/utils/storage-helper.d.ts +4 -4
- package/lib/utils/string-helper.d.ts +8 -8
- package/lib/utils/thenBy.d.ts +4 -4
- package/lib/utils/time-helper.d.ts +7 -7
- package/lib/utils/url-helper.d.ts +5 -5
- package/lib/utils/validation-helper.d.ts +4 -4
- package/lib/zek.module.d.ts +14 -14
- package/package.json +7 -13
- package/public-api.d.ts +7 -7
- package/esm2020/lib/components/base.component.mjs +0 -96
- package/esm2020/lib/components/core-ui.component.mjs +0 -194
- package/esm2020/lib/components/core.component.mjs +0 -39
- package/esm2020/lib/components/edit-base.component.mjs +0 -234
- package/esm2020/lib/components/list-base.component.mjs +0 -253
- package/esm2020/lib/models/pager.model.mjs +0 -32
- package/esm2020/lib/modules/age/age.module.mjs +0 -22
- package/esm2020/lib/modules/age/age.pipe.mjs +0 -21
- package/esm2020/lib/modules/alert/alert/alert.mjs +0 -54
- package/esm2020/lib/modules/alert/alert.module.mjs +0 -35
- package/esm2020/lib/modules/alert/toast/toast.mjs +0 -109
- package/esm2020/lib/modules/alert/validation/validation.mjs +0 -85
- package/esm2020/lib/modules/autocomplete/autocomplete.directive.mjs +0 -24
- package/esm2020/lib/modules/autocomplete/autocomplete.module.mjs +0 -22
- package/esm2020/lib/modules/bb/bb-modal-base.component.mjs +0 -74
- package/esm2020/lib/modules/bb/bb-modal-toolbar.mjs +0 -44
- package/esm2020/lib/modules/bb/bb.component.mjs +0 -188
- package/esm2020/lib/modules/bb/bb.module.mjs +0 -37
- package/esm2020/lib/modules/callback/callback.module.mjs +0 -22
- package/esm2020/lib/modules/callback/callback.pipe.mjs +0 -22
- package/esm2020/lib/modules/card/card/card.component.mjs +0 -47
- package/esm2020/lib/modules/card/card.module.mjs +0 -18
- package/esm2020/lib/modules/date-ago/date-ago.pipe.mjs +0 -46
- package/esm2020/lib/modules/date-ago/date.module.mjs +0 -22
- package/esm2020/lib/modules/datepicker/date-value-accessor.mjs +0 -188
- package/esm2020/lib/modules/datepicker/datepicker.module.mjs +0 -31
- package/esm2020/lib/modules/edit-toolbar/edit-toolbar.component.mjs +0 -74
- package/esm2020/lib/modules/edit-toolbar/edit-toolbar.module.mjs +0 -26
- package/esm2020/lib/modules/file/file-size.pipe.mjs +0 -47
- package/esm2020/lib/modules/file/file.module.mjs +0 -22
- package/esm2020/lib/modules/file-viewer/file-viewer.mjs +0 -51
- package/esm2020/lib/modules/file-viewer/module.mjs +0 -30
- package/esm2020/lib/modules/grid-toolbar/grid-toolbar/grid-toolbar.component.mjs +0 -145
- package/esm2020/lib/modules/grid-toolbar/grid-toolbar-bar/grid-toolbar-bar.component.mjs +0 -14
- package/esm2020/lib/modules/grid-toolbar/grid-toolbar.module.mjs +0 -33
- package/esm2020/lib/modules/list-toolbar/list-toolbar.component.mjs +0 -109
- package/esm2020/lib/modules/list-toolbar/list-toolbar.module.mjs +0 -24
- package/esm2020/lib/modules/loading/loading-interceptor.mjs +0 -79
- package/esm2020/lib/modules/loading/loading.component.mjs +0 -35
- package/esm2020/lib/modules/loading/loading.module.mjs +0 -32
- package/esm2020/lib/modules/modal/filter-modal/filter-modal.component.mjs +0 -26
- package/esm2020/lib/modules/modal/modal/modal.component.mjs +0 -307
- package/esm2020/lib/modules/modal/modal.module.mjs +0 -62
- package/esm2020/lib/modules/modal/sum-modal/sum-modal.component.mjs +0 -27
- package/esm2020/lib/modules/page-title/page-title.component.mjs +0 -31
- package/esm2020/lib/modules/page-title/page-title.module.mjs +0 -26
- package/esm2020/lib/modules/pager/pager/pager.component.mjs +0 -50
- package/esm2020/lib/modules/pager/pager.module.mjs +0 -26
- package/esm2020/lib/modules/password/password.module.mjs +0 -30
- package/esm2020/lib/modules/progress/module.mjs +0 -26
- package/esm2020/lib/modules/progress/progress.mjs +0 -97
- package/esm2020/lib/modules/radio/radio-button.component.mjs +0 -134
- package/esm2020/lib/modules/radio/radio.module.mjs +0 -22
- package/esm2020/lib/modules/readonly/readonly.directive.mjs +0 -25
- package/esm2020/lib/modules/readonly/readonly.module.mjs +0 -22
- package/esm2020/lib/modules/recaptcha/recaptcha.module.mjs +0 -32
- package/esm2020/lib/modules/recaptcha/recaptcha.service.mjs +0 -119
- package/esm2020/lib/modules/safe/safe.module.mjs +0 -20
- package/esm2020/lib/modules/safe/safe.pipe.mjs +0 -37
- package/esm2020/lib/modules/select/module.mjs +0 -28
- package/esm2020/lib/modules/select/select.mjs +0 -198
- package/esm2020/lib/modules/select2/select2.component.mjs +0 -170
- package/esm2020/lib/modules/select2/select2.module.mjs +0 -28
- package/esm2020/lib/modules/select2-multiple/select2-multiple.component.mjs +0 -132
- package/esm2020/lib/modules/select2-multiple/select2-multiple.module.mjs +0 -28
- package/esm2020/lib/modules/sort/sort-button-group/sort-button-group.component.mjs +0 -79
- package/esm2020/lib/modules/sort/sort.directive.mjs +0 -117
- package/esm2020/lib/modules/sort/sort.module.mjs +0 -33
- package/esm2020/lib/modules/time/time.module.mjs +0 -27
- package/esm2020/lib/modules/time/time.pipe.mjs +0 -40
- package/esm2020/lib/modules/time/timer-service.mjs +0 -89
- package/esm2020/lib/modules/validator/validator.module.mjs +0 -26
- package/esm2020/lib/modules/validators/directive.mjs +0 -75
- package/esm2020/lib/modules/validators/module.mjs +0 -22
- package/esm2020/lib/modules/wizard/wizard/wizard.component.mjs +0 -65
- package/esm2020/lib/modules/wizard/wizard.module.mjs +0 -33
- package/esm2020/lib/modules/wizard/wizard2/wizard2.component.mjs +0 -13
- package/esm2020/lib/services/alert.service.mjs +0 -76
- package/esm2020/lib/services/auth-guard.service.mjs +0 -28
- package/esm2020/lib/services/auth.service.mjs +0 -203
- package/esm2020/lib/services/http-error-handler.service.mjs +0 -141
- package/esm2020/lib/services/web.api.mjs +0 -126
- package/esm2020/lib/utils/date-helper.mjs +0 -235
- package/esm2020/lib/utils/validation-helper.mjs +0 -10
- package/esm2020/lib/zek.module.mjs +0 -33
- package/fesm2015/zek.mjs +0 -6693
- package/fesm2015/zek.mjs.map +0 -1
- package/fesm2020/zek.mjs.map +0 -1
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { of } from 'rxjs';
|
|
3
|
+
import { AlertType } from '../models';
|
|
4
|
+
import { ObjectHelper } from '../utils/object-helper';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "./alert.service";
|
|
7
|
+
import * as i2 from "@ngx-translate/core";
|
|
8
|
+
import * as i3 from "@angular/router";
|
|
9
|
+
/** Handles HttpClient errors */
|
|
10
|
+
class HttpErrorHandler {
|
|
11
|
+
constructor(alert, translate, router) {
|
|
12
|
+
this.alert = alert;
|
|
13
|
+
this.translate = translate;
|
|
14
|
+
this.router = router;
|
|
15
|
+
/** Create curried handleError function that already knows the service name */
|
|
16
|
+
this.createHandleError = (serviceName = '') => (operation = 'operation', result = {}, show = true) => this.handleError(serviceName, operation, result, show);
|
|
17
|
+
this.createHandleErrorResult = (serviceName = '') => (operation = 'operation', result = {}, show = true) => this.handleErrorResult(serviceName, operation, result, show);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Returns a function that handles Http operation failures.
|
|
21
|
+
* This error handler lets the app continue to run as if no error occurred.
|
|
22
|
+
* @param serviceName = name of the data service that attempted the operation
|
|
23
|
+
* @param operation - name of the operation that failed
|
|
24
|
+
* @param result - optional value to return as the observable result
|
|
25
|
+
* @param show - optional value to show error
|
|
26
|
+
*/
|
|
27
|
+
handleError(serviceName = '', operation = 'operation', result = {}, show) {
|
|
28
|
+
return (response) => {
|
|
29
|
+
console.error(response);
|
|
30
|
+
if (show) {
|
|
31
|
+
this.showError(serviceName, operation, response);
|
|
32
|
+
}
|
|
33
|
+
return of(result);
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Returns a function that handles Http operation failures.
|
|
38
|
+
* This error handler lets the app continue to run as if no error occurred.
|
|
39
|
+
* @param serviceName = name of the data service that attempted the operation
|
|
40
|
+
* @param operation - name of the operation that failed
|
|
41
|
+
* @param show - optional value to show error
|
|
42
|
+
*/
|
|
43
|
+
handleErrorResult(serviceName = '', operation = 'operation', result = {}, show) {
|
|
44
|
+
return (response) => {
|
|
45
|
+
console.error(response);
|
|
46
|
+
if (show) {
|
|
47
|
+
this.showError(serviceName, operation, response);
|
|
48
|
+
}
|
|
49
|
+
let error;
|
|
50
|
+
if (typeof response.error === 'string' && response.error[0] === '{') {
|
|
51
|
+
error = JSON.parse(response.error);
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
error = response.error;
|
|
55
|
+
}
|
|
56
|
+
if (error instanceof ErrorEvent) {
|
|
57
|
+
error = response.error.message;
|
|
58
|
+
}
|
|
59
|
+
return ObjectHelper.isDefined(error) ? of(error) : of(result);
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
showError(serviceName, operation, response) {
|
|
63
|
+
switch (response.status) {
|
|
64
|
+
case 0: //No Connection
|
|
65
|
+
this.alert.error(`Can't connect to api server.`);
|
|
66
|
+
break;
|
|
67
|
+
case 400: //Bad Request
|
|
68
|
+
let error;
|
|
69
|
+
if (typeof response.error === 'string' && response.error[0] === '{') {
|
|
70
|
+
error = JSON.parse(response.error);
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
error = response.error;
|
|
74
|
+
}
|
|
75
|
+
if (error instanceof ErrorEvent) {
|
|
76
|
+
this.alert.error(`${serviceName}: ${operation} failed: ${response.error.message}`);
|
|
77
|
+
}
|
|
78
|
+
if (typeof error === 'string') {
|
|
79
|
+
this.alert.error(response.error);
|
|
80
|
+
}
|
|
81
|
+
else if (typeof error === 'object') {
|
|
82
|
+
const errors = error.traceId || error.success === false
|
|
83
|
+
? error.errors
|
|
84
|
+
: error;
|
|
85
|
+
const errorMessages = [];
|
|
86
|
+
const properties = Object.getOwnPropertyNames(errors);
|
|
87
|
+
for (let property of properties) {
|
|
88
|
+
const messages = errors[property];
|
|
89
|
+
if (messages instanceof Array) {
|
|
90
|
+
for (let message of messages) {
|
|
91
|
+
const messageKey = `Validation.${message}`;
|
|
92
|
+
let translatedMessage = this.translate.instant(messageKey);
|
|
93
|
+
// if translation not found then use message
|
|
94
|
+
if (messageKey == translatedMessage) {
|
|
95
|
+
translatedMessage = message;
|
|
96
|
+
}
|
|
97
|
+
if (property) {
|
|
98
|
+
const propertyKey = `Fields.${property}`;
|
|
99
|
+
let translatedProperty = this.translate.instant(`Fields.${property}`);
|
|
100
|
+
// if translation not found then use property
|
|
101
|
+
if (propertyKey == translatedProperty) {
|
|
102
|
+
translatedProperty = property;
|
|
103
|
+
}
|
|
104
|
+
errorMessages.push(translatedProperty + ' - ' + translatedMessage);
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
errorMessages.push(translatedMessage);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
this.alert.addRange(AlertType.Danger, errorMessages);
|
|
113
|
+
}
|
|
114
|
+
break;
|
|
115
|
+
case 401: //Unauthorized
|
|
116
|
+
this.alert.error('Unauthorized');
|
|
117
|
+
this.router.navigate(['/login']);
|
|
118
|
+
break;
|
|
119
|
+
case 403: //Forbidden
|
|
120
|
+
this.alert.error('Forbidden');
|
|
121
|
+
break;
|
|
122
|
+
case 404: //Not Found
|
|
123
|
+
this.alert.error('Not Found');
|
|
124
|
+
break;
|
|
125
|
+
case 402: //Payment Required
|
|
126
|
+
this.alert.error('License Payment Required');
|
|
127
|
+
break;
|
|
128
|
+
case 500: //Internal Server Error
|
|
129
|
+
this.alert.error('Internal Server Error');
|
|
130
|
+
break;
|
|
131
|
+
default:
|
|
132
|
+
break;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: HttpErrorHandler, deps: [{ token: i1.AlertService }, { token: i2.TranslateService }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
136
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: HttpErrorHandler }); }
|
|
137
|
+
}
|
|
138
|
+
export { HttpErrorHandler };
|
|
139
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: HttpErrorHandler, decorators: [{
|
|
140
|
+
type: Injectable
|
|
141
|
+
}], ctorParameters: function () { return [{ type: i1.AlertService }, { type: i2.TranslateService }, { type: i3.Router }]; } });
|
|
142
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1lcnJvci1oYW5kbGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96ZWsvc3JjL2xpYi9zZXJ2aWNlcy9odHRwLWVycm9yLWhhbmRsZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHdEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN0QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7O0FBTXRELGdDQUFnQztBQUNoQyxNQUNhLGdCQUFnQjtJQUN6QixZQUNxQixLQUFtQixFQUNuQixTQUEyQixFQUMzQixNQUFjO1FBRmQsVUFBSyxHQUFMLEtBQUssQ0FBYztRQUNuQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBRW5DLDhFQUE4RTtRQUM5RSxzQkFBaUIsR0FBRyxDQUFDLFdBQVcsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUksU0FBUyxHQUFHLFdBQVcsRUFBRSxTQUFTLEVBQU8sRUFBRSxJQUFJLEdBQUcsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2hLLDRCQUF1QixHQUFHLENBQUMsV0FBVyxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBSSxTQUFTLEdBQUcsV0FBVyxFQUFFLFNBQVMsRUFBTyxFQUFFLElBQUksR0FBRyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUpySSxDQUFD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QUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxDQUFDO2lCQUN4RDtnQkFDRCxNQUFNO1lBRVYsS0FBSyxHQUFHLEVBQUMsY0FBYztnQkFDbkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7Z0JBQ2pDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztnQkFDakMsTUFBTTtZQUVWLEtBQUssR0FBRyxFQUFDLFdBQVc7Z0JBQ2hCLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUM5QixNQUFNO1lBRVYsS0FBSyxHQUFHLEVBQUMsV0FBVztnQkFDaEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQzlCLE1BQU07WUFFVixLQUFLLEdBQUcsRUFBQyxrQkFBa0I7Z0JBQ3ZCLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7Z0JBQzdDLE1BQU07WUFFVixLQUFLLEdBQUcsRUFBQyx1QkFBdUI7Z0JBQzVCLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUM7Z0JBQzFDLE1BQU07WUFFVjtnQkFDSSxNQUFNO1NBQ2I7SUFDTCxDQUFDOzhHQWhKUSxnQkFBZ0I7a0hBQWhCLGdCQUFnQjs7U0FBaEIsZ0JBQWdCOzJGQUFoQixnQkFBZ0I7a0JBRDVCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IEFsZXJ0U2VydmljZSB9IGZyb20gJy4vYWxlcnQuc2VydmljZSc7XHJcbmltcG9ydCB7IEFsZXJ0VHlwZSB9IGZyb20gJy4uL21vZGVscyc7XHJcbmltcG9ydCB7IE9iamVjdEhlbHBlciB9IGZyb20gJy4uL3V0aWxzL29iamVjdC1oZWxwZXInO1xyXG5cclxuLyoqIFR5cGUgb2YgdGhlIGhhbmRsZUVycm9yIGZ1bmN0aW9uIHJldHVybmVkIGJ5IEh0dHBFcnJvckhhbmRsZXIuY3JlYXRlSGFuZGxlRXJyb3IgKi9cclxuZXhwb3J0IHR5cGUgSGFuZGxlRXJyb3IgPSA8VCA9IGFueT4ob3BlcmF0aW9uPzogc3RyaW5nLCByZXN1bHQ/OiBULCBzaG93PzogYm9vbGVhbikgPT4gKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gT2JzZXJ2YWJsZTxUPjtcclxuZXhwb3J0IHR5cGUgSGFuZGxlRXJyb3JSZXN1bHQgPSA8VCA9IGFueT4ob3BlcmF0aW9uPzogc3RyaW5nLCByZXN1bHQ/OiBULCBzaG93PzogYm9vbGVhbikgPT4gKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gT2JzZXJ2YWJsZTxUPjtcclxuXHJcbi8qKiBIYW5kbGVzIEh0dHBDbGllbnQgZXJyb3JzICovXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEh0dHBFcnJvckhhbmRsZXIge1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBhbGVydDogQWxlcnRTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIpIHsgfVxyXG5cclxuICAgIC8qKiBDcmVhdGUgY3VycmllZCBoYW5kbGVFcnJvciBmdW5jdGlvbiB0aGF0IGFscmVhZHkga25vd3MgdGhlIHNlcnZpY2UgbmFtZSAqL1xyXG4gICAgY3JlYXRlSGFuZGxlRXJyb3IgPSAoc2VydmljZU5hbWUgPSAnJykgPT4gPFQ+KG9wZXJhdGlvbiA9ICdvcGVyYXRpb24nLCByZXN1bHQgPSB7fSBhcyBULCBzaG93ID0gdHJ1ZSkgPT4gdGhpcy5oYW5kbGVFcnJvcihzZXJ2aWNlTmFtZSwgb3BlcmF0aW9uLCByZXN1bHQsIHNob3cpO1xyXG4gICAgY3JlYXRlSGFuZGxlRXJyb3JSZXN1bHQgPSAoc2VydmljZU5hbWUgPSAnJykgPT4gPFQ+KG9wZXJhdGlvbiA9ICdvcGVyYXRpb24nLCByZXN1bHQgPSB7fSBhcyBULCBzaG93ID0gdHJ1ZSkgPT4gdGhpcy5oYW5kbGVFcnJvclJlc3VsdChzZXJ2aWNlTmFtZSwgb3BlcmF0aW9uLCByZXN1bHQsIHNob3cpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyBhIGZ1bmN0aW9uIHRoYXQgaGFuZGxlcyBIdHRwIG9wZXJhdGlvbiBmYWlsdXJlcy5cclxuICAgICAqIFRoaXMgZXJyb3IgaGFuZGxlciBsZXRzIHRoZSBhcHAgY29udGludWUgdG8gcnVuIGFzIGlmIG5vIGVycm9yIG9jY3VycmVkLlxyXG4gICAgICogQHBhcmFtIHNlcnZpY2VOYW1lID0gbmFtZSBvZiB0aGUgZGF0YSBzZXJ2aWNlIHRoYXQgYXR0ZW1wdGVkIHRoZSBvcGVyYXRpb25cclxuICAgICAqIEBwYXJhbSBvcGVyYXRpb24gLSBuYW1lIG9mIHRoZSBvcGVyYXRpb24gdGhhdCBmYWlsZWRcclxuICAgICAqIEBwYXJhbSByZXN1bHQgLSBvcHRpb25hbCB2YWx1ZSB0byByZXR1cm4gYXMgdGhlIG9ic2VydmFibGUgcmVzdWx0XHJcbiAgICAgKiBAcGFyYW0gc2hvdyAtIG9wdGlvbmFsIHZhbHVlIHRvIHNob3cgZXJyb3JcclxuICAgICAqL1xyXG4gICAgaGFuZGxlRXJyb3I8VD4oc2VydmljZU5hbWUgPSAnJywgb3BlcmF0aW9uID0gJ29wZXJhdGlvbicsIHJlc3VsdCA9IHt9IGFzIFQsIHNob3c/OiBib29sZWFuKSB7XHJcbiAgICAgICAgcmV0dXJuIChyZXNwb25zZTogSHR0cEVycm9yUmVzcG9uc2UpOiBPYnNlcnZhYmxlPFQ+ID0+IHtcclxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihyZXNwb25zZSk7XHJcblxyXG4gICAgICAgICAgICBpZiAoc2hvdykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zaG93RXJyb3Ioc2VydmljZU5hbWUsIG9wZXJhdGlvbiwgcmVzcG9uc2UpXHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHJldHVybiBvZihyZXN1bHQpO1xyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgYSBmdW5jdGlvbiB0aGF0IGhhbmRsZXMgSHR0cCBvcGVyYXRpb24gZmFpbHVyZXMuXHJcbiAgICAgKiBUaGlzIGVycm9yIGhhbmRsZXIgbGV0cyB0aGUgYXBwIGNvbnRpbnVlIHRvIHJ1biBhcyBpZiBubyBlcnJvciBvY2N1cnJlZC5cclxuICAgICAqIEBwYXJhbSBzZXJ2aWNlTmFtZSA9IG5hbWUgb2YgdGhlIGRhdGEgc2VydmljZSB0aGF0IGF0dGVtcHRlZCB0aGUgb3BlcmF0aW9uXHJcbiAgICAgKiBAcGFyYW0gb3BlcmF0aW9uIC0gbmFtZSBvZiB0aGUgb3BlcmF0aW9uIHRoYXQgZmFpbGVkXHJcbiAgICAgKiBAcGFyYW0gc2hvdyAtIG9wdGlvbmFsIHZhbHVlIHRvIHNob3cgZXJyb3JcclxuICAgICAqL1xyXG4gICAgaGFuZGxlRXJyb3JSZXN1bHQ8VD4oc2VydmljZU5hbWUgPSAnJywgb3BlcmF0aW9uID0gJ29wZXJhdGlvbicsIHJlc3VsdCA9IHt9IGFzIFQsIHNob3c/OiBib29sZWFuKSB7XHJcbiAgICAgICAgcmV0dXJuIChyZXNwb25zZTogSHR0cEVycm9yUmVzcG9uc2UpOiBPYnNlcnZhYmxlPGFueT4gPT4ge1xyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKHJlc3BvbnNlKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChzaG93KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNob3dFcnJvcihzZXJ2aWNlTmFtZSwgb3BlcmF0aW9uLCByZXNwb25zZSlcclxuICAgICAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgICAgIGxldCBlcnJvcjogYW55OyAgICAgICAgICAgXHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgcmVzcG9uc2UuZXJyb3IgPT09ICdzdHJpbmcnICYmIHJlc3BvbnNlLmVycm9yWzBdID09PSAneycpIHtcclxuICAgICAgICAgICAgICAgIGVycm9yID0gSlNPTi5wYXJzZShyZXNwb25zZS5lcnJvcik7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBlcnJvciA9IHJlc3BvbnNlLmVycm9yO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvckV2ZW50KSB7XHJcbiAgICAgICAgICAgICAgICBlcnJvciA9IHJlc3BvbnNlLmVycm9yLm1lc3NhZ2U7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHJldHVybiBPYmplY3RIZWxwZXIuaXNEZWZpbmVkKGVycm9yKSA/IG9mKGVycm9yKSA6IG9mKHJlc3VsdCk7XHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgcHJpdmF0ZSBzaG93RXJyb3Ioc2VydmljZU5hbWU6IHN0cmluZywgb3BlcmF0aW9uOiBzdHJpbmcsIHJlc3BvbnNlOiBIdHRwRXJyb3JSZXNwb25zZSkge1xyXG4gICAgICAgIHN3aXRjaCAocmVzcG9uc2Uuc3RhdHVzKSB7XHJcbiAgICAgICAgICAgIGNhc2UgMDovL05vIENvbm5lY3Rpb25cclxuICAgICAgICAgICAgICAgIHRoaXMuYWxlcnQuZXJyb3IoYENhbid0IGNvbm5lY3QgdG8gYXBpIHNlcnZlci5gKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgY2FzZSA0MDA6Ly9CYWQgUmVxdWVzdFxyXG4gICAgICAgICAgICAgICAgbGV0IGVycm9yOiBhbnk7XHJcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHJlc3BvbnNlLmVycm9yID09PSAnc3RyaW5nJyAmJiByZXNwb25zZS5lcnJvclswXSA9PT0gJ3snKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSBKU09OLnBhcnNlKHJlc3BvbnNlLmVycm9yKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSByZXNwb25zZS5lcnJvcjtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvckV2ZW50KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGVydC5lcnJvcihgJHtzZXJ2aWNlTmFtZX06ICR7b3BlcmF0aW9ufSBmYWlsZWQ6ICR7cmVzcG9uc2UuZXJyb3IubWVzc2FnZX1gKTtcclxuICAgICAgICAgICAgICAgIH0gaWYgKHR5cGVvZiBlcnJvciA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFsZXJ0LmVycm9yKHJlc3BvbnNlLmVycm9yIGFzIHN0cmluZyk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBlcnJvciA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvcnMgPSBlcnJvci50cmFjZUlkIHx8IGVycm9yLnN1Y2Nlc3MgPT09IGZhbHNlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gZXJyb3IuZXJyb3JzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogZXJyb3I7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yTWVzc2FnZXM6IHN0cmluZ1tdID0gW107XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJvcGVydGllcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGVycm9ycyk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IHByb3BlcnR5IG9mIHByb3BlcnRpZXMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWVzc2FnZXMgPSBlcnJvcnNbcHJvcGVydHldO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobWVzc2FnZXMgaW5zdGFuY2VvZiBBcnJheSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgbWVzc2FnZSBvZiBtZXNzYWdlcykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2VLZXkgPSBgVmFsaWRhdGlvbi4ke21lc3NhZ2V9YDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdHJhbnNsYXRlZE1lc3NhZ2UgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KG1lc3NhZ2VLZXkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIHRyYW5zbGF0aW9uIG5vdCBmb3VuZCB0aGVuIHVzZSBtZXNzYWdlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1lc3NhZ2VLZXkgPT0gdHJhbnNsYXRlZE1lc3NhZ2UpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRlZE1lc3NhZ2UgPSBtZXNzYWdlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHByb3BlcnR5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHByb3BlcnR5S2V5ID0gYEZpZWxkcy4ke3Byb3BlcnR5fWA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0cmFuc2xhdGVkUHJvcGVydHkgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGBGaWVsZHMuJHtwcm9wZXJ0eX1gKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgdHJhbnNsYXRpb24gbm90IGZvdW5kIHRoZW4gdXNlIHByb3BlcnR5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwcm9wZXJ0eUtleSA9PSB0cmFuc2xhdGVkUHJvcGVydHkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZWRQcm9wZXJ0eSA9IHByb3BlcnR5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlcy5wdXNoKHRyYW5zbGF0ZWRQcm9wZXJ0eSArICcgLSAnICsgdHJhbnNsYXRlZE1lc3NhZ2UpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlcy5wdXNoKHRyYW5zbGF0ZWRNZXNzYWdlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGVydC5hZGRSYW5nZShBbGVydFR5cGUuRGFuZ2VyLCBlcnJvck1lc3NhZ2VzKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgY2FzZSA0MDE6Ly9VbmF1dGhvcml6ZWRcclxuICAgICAgICAgICAgICAgIHRoaXMuYWxlcnQuZXJyb3IoJ1VuYXV0aG9yaXplZCcpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbG9naW4nXSk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgIGNhc2UgNDAzOi8vRm9yYmlkZGVuXHJcbiAgICAgICAgICAgICAgICB0aGlzLmFsZXJ0LmVycm9yKCdGb3JiaWRkZW4nKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgY2FzZSA0MDQ6Ly9Ob3QgRm91bmRcclxuICAgICAgICAgICAgICAgIHRoaXMuYWxlcnQuZXJyb3IoJ05vdCBGb3VuZCcpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICBjYXNlIDQwMjovL1BheW1lbnQgUmVxdWlyZWRcclxuICAgICAgICAgICAgICAgIHRoaXMuYWxlcnQuZXJyb3IoJ0xpY2Vuc2UgUGF5bWVudCBSZXF1aXJlZCcpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICBjYXNlIDUwMDovL0ludGVybmFsIFNlcnZlciBFcnJvclxyXG4gICAgICAgICAgICAgICAgdGhpcy5hbGVydC5lcnJvcignSW50ZXJuYWwgU2VydmVyIEVycm9yJyk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG59Il19
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export * from './auth.service';
|
|
2
|
-
export * from './auth-guard.service';
|
|
3
|
-
export * from './base.service';
|
|
4
|
-
export * from './crud.service';
|
|
5
|
-
export * from './http-error-handler.service';
|
|
6
|
-
export * from './web.api';
|
|
1
|
+
export * from './auth.service';
|
|
2
|
+
export * from './auth-guard.service';
|
|
3
|
+
export * from './base.service';
|
|
4
|
+
export * from './crud.service';
|
|
5
|
+
export * from './http-error-handler.service';
|
|
6
|
+
export * from './web.api';
|
|
7
7
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96ZWsvc3JjL2xpYi9zZXJ2aWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxXQUFXLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2F1dGguc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vYXV0aC1ndWFyZC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9iYXNlLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NydWQuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vaHR0cC1lcnJvci1oYW5kbGVyLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3dlYi5hcGknOyJdfQ==
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { Injectable, Inject } from '@angular/core';
|
|
2
|
+
import { HttpHeaders, HttpParams /*, HttpErrorResponse*/ } from '@angular/common/http';
|
|
3
|
+
import { API_BASE_URL } from '../tokens';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/common/http";
|
|
6
|
+
import * as i2 from "./auth.service";
|
|
7
|
+
class WebApiClient {
|
|
8
|
+
constructor(http, authService, baseUrl) {
|
|
9
|
+
this.http = http;
|
|
10
|
+
this.authService = authService;
|
|
11
|
+
this.baseUrl = baseUrl;
|
|
12
|
+
}
|
|
13
|
+
get(url, params) {
|
|
14
|
+
return this.http.get(this.baseUrl + url, { headers: this.getHeaders(), params: this.toHttpParams(params) });
|
|
15
|
+
/*.catch(catchError(this.handleError(url)))
|
|
16
|
+
.do((res: Response) => {
|
|
17
|
+
// Handle success, maybe display notification
|
|
18
|
+
}, (error: any) => {
|
|
19
|
+
// Handle errors
|
|
20
|
+
})
|
|
21
|
+
.finally(() => {
|
|
22
|
+
// Request completed
|
|
23
|
+
});
|
|
24
|
+
*/
|
|
25
|
+
}
|
|
26
|
+
getString(url, params) {
|
|
27
|
+
return this.http.get(this.baseUrl + url, { headers: this.getHeaders(), responseType: 'text', params: this.toHttpParams(params) });
|
|
28
|
+
}
|
|
29
|
+
getBytes(url, params) {
|
|
30
|
+
return this.http.get(this.baseUrl + url, { headers: this.getHeaders(), responseType: 'arraybuffer', params: this.toHttpParams(params) });
|
|
31
|
+
}
|
|
32
|
+
getBlob(url, params) {
|
|
33
|
+
return this.http.get(this.baseUrl + url, { headers: this.getHeaders(), responseType: 'blob', params: this.toHttpParams(params) });
|
|
34
|
+
}
|
|
35
|
+
toHttpParams(obj) {
|
|
36
|
+
if (!obj)
|
|
37
|
+
return undefined;
|
|
38
|
+
let params = new HttpParams({ encoder: new CustomHttpParamEncoder() });
|
|
39
|
+
for (const key of Object.keys(obj)) {
|
|
40
|
+
const field = obj[key];
|
|
41
|
+
if (field === undefined || field === null || (typeof field === 'string' && field.length === 0))
|
|
42
|
+
continue;
|
|
43
|
+
let value = field;
|
|
44
|
+
// if (typeof field === 'string' && field.length > 0) {
|
|
45
|
+
// value = field.replace(/\+/gi, '%2B');
|
|
46
|
+
// }
|
|
47
|
+
params = params.append(key, value);
|
|
48
|
+
// if (field instanceof Array) {
|
|
49
|
+
// field.forEach((item: any) => {
|
|
50
|
+
// params = params.append(`${key}[]`, item);
|
|
51
|
+
// });
|
|
52
|
+
// } else {
|
|
53
|
+
// params = params.append(key, field);
|
|
54
|
+
// }
|
|
55
|
+
}
|
|
56
|
+
return params;
|
|
57
|
+
//deleteNullProperties(obj);
|
|
58
|
+
//comment because int[] not sending in c# it send "1,2,3,4"
|
|
59
|
+
// return obj
|
|
60
|
+
// ? Object.getOwnPropertyNames(obj).reduce((p, key) => p.set(key, obj[key]), new HttpParams())
|
|
61
|
+
// : undefined;
|
|
62
|
+
}
|
|
63
|
+
//toKeyPairs(obj: any): KeyPair[] | undefined {
|
|
64
|
+
// if (obj instanceof Object) {
|
|
65
|
+
// const properties = Object.getOwnPropertyNames(obj);
|
|
66
|
+
// const result = new Array<KeyPair>();
|
|
67
|
+
// for (let property of properties) {
|
|
68
|
+
// const value = obj[property];
|
|
69
|
+
// result.push({ key: property, value: value });
|
|
70
|
+
// }
|
|
71
|
+
// return result;
|
|
72
|
+
// }
|
|
73
|
+
// return undefined;
|
|
74
|
+
//}
|
|
75
|
+
post(url, body) {
|
|
76
|
+
return this.http.post(this.baseUrl + url, body, { headers: this.getHeaders() });
|
|
77
|
+
//.pipe(
|
|
78
|
+
//catchError(this.handleError(url))
|
|
79
|
+
//);
|
|
80
|
+
}
|
|
81
|
+
put(url, body) {
|
|
82
|
+
return this.http.put(this.baseUrl + url, body, { headers: this.getHeaders() });
|
|
83
|
+
//.pipe(
|
|
84
|
+
//catchError(this.handleError(url))
|
|
85
|
+
//);
|
|
86
|
+
}
|
|
87
|
+
delete(url, body) {
|
|
88
|
+
return this.http.request('delete', this.baseUrl + url, { body, headers: this.getHeaders() });
|
|
89
|
+
//return this.http.delete(environment.url + url, { headers: this.getHeaders() });
|
|
90
|
+
//.pipe(
|
|
91
|
+
//catchError(this.handleError(url))
|
|
92
|
+
//);
|
|
93
|
+
}
|
|
94
|
+
getHeaders() {
|
|
95
|
+
let httpHeaders = new HttpHeaders();
|
|
96
|
+
httpHeaders = httpHeaders.set('Content-Type', 'application/json');
|
|
97
|
+
const tmp = this.authService.user;
|
|
98
|
+
const token = tmp ? tmp.token : undefined;
|
|
99
|
+
if (token)
|
|
100
|
+
httpHeaders = httpHeaders.set('Authorization', token);
|
|
101
|
+
return httpHeaders;
|
|
102
|
+
}
|
|
103
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: WebApiClient, deps: [{ token: i1.HttpClient }, { token: i2.AuthService }, { token: API_BASE_URL }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
104
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: WebApiClient }); }
|
|
105
|
+
}
|
|
106
|
+
export { WebApiClient };
|
|
107
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: WebApiClient, decorators: [{
|
|
108
|
+
type: Injectable
|
|
109
|
+
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.AuthService }, { type: undefined, decorators: [{
|
|
110
|
+
type: Inject,
|
|
111
|
+
args: [API_BASE_URL]
|
|
112
|
+
}] }]; } });
|
|
113
|
+
export class CustomHttpParamEncoder {
|
|
114
|
+
encodeKey(key) {
|
|
115
|
+
return encodeURIComponent(key);
|
|
116
|
+
}
|
|
117
|
+
encodeValue(value) {
|
|
118
|
+
return encodeURIComponent(value);
|
|
119
|
+
}
|
|
120
|
+
decodeKey(key) {
|
|
121
|
+
return decodeURIComponent(key);
|
|
122
|
+
}
|
|
123
|
+
decodeValue(value) {
|
|
124
|
+
return decodeURIComponent(value);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViLmFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3play9zcmMvbGliL3NlcnZpY2VzL3dlYi5hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFjLFdBQVcsRUFBRSxVQUFVLENBQUEsdUJBQXVCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQWtKbEcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFdBQVcsQ0FBQzs7OztBQXBJekMsTUFDYSxZQUFZO0lBQ3JCLFlBQ3VCLElBQWdCLEVBQ2hCLFdBQXdCLEVBQ0osT0FBZTtRQUZuQyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ0osWUFBTyxHQUFQLE9BQU8sQ0FBUTtJQUMxRCxDQUFDO0lBRUQsR0FBRyxDQUFVLEdBQVcsRUFBRSxNQUFZO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUksSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMvRzs7Ozs7Ozs7O01BU0Y7SUFDRixDQUFDO0lBRUQsU0FBUyxDQUFDLEdBQVcsRUFBRSxNQUFlO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3RJLENBQUM7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dCB7IEluamVjdGFibGUsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycywgSHR0cFBhcmFtcy8qLCBIdHRwRXJyb3JSZXNwb25zZSovIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbi8vaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzL29ic2VydmFibGUvb2YnO1xyXG4vL2ltcG9ydCB7IGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcclxuLy9pbXBvcnQgeyBkZWxldGVOdWxsUHJvcGVydGllcyB9IGZyb20gJy4uL3V0aWxzJztcclxuLy9pbXBvcnQgeyBIdHRwRXJyb3JIYW5kbGVyLCBIYW5kbGVFcnJvciB9IGZyb20gJy4vaHR0cC1lcnJvci1oYW5kbGVyLnNlcnZpY2UnO1xyXG5cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgV2ViQXBpQ29uZmlnIHtcclxuICAgIGJhc2VVcmw6IHN0cmluZztcclxufVxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgV2ViQXBpQ2xpZW50IHtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByb3RlY3RlZCByZWFkb25seSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgICAgIHByb3RlY3RlZCByZWFkb25seSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXHJcbiAgICAgICAgQEluamVjdChBUElfQkFTRV9VUkwpIHByaXZhdGUgcmVhZG9ubHkgYmFzZVVybDogc3RyaW5nKSB7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0PFQgPSBhbnk+KHVybDogc3RyaW5nLCBwYXJhbXM/OiBhbnkpOiBPYnNlcnZhYmxlPFQ+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxUPih0aGlzLmJhc2VVcmwgKyB1cmwsIHsgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCksIHBhcmFtczogdGhpcy50b0h0dHBQYXJhbXMocGFyYW1zKSB9KTtcclxuICAgICAgICAvKi5jYXRjaChjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IodXJsKSkpXHJcbiAgICAgICAgLmRvKChyZXM6IFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgIC8vIEhhbmRsZSBzdWNjZXNzLCBtYXliZSBkaXNwbGF5IG5vdGlmaWNhdGlvblxyXG4gICAgICAgIH0sIChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIC8vIEhhbmRsZSBlcnJvcnNcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5maW5hbGx5KCgpID0+IHtcclxuICAgICAgICAgICAgLy8gUmVxdWVzdCBjb21wbGV0ZWRcclxuICAgICAgICB9KTtcclxuICAgICovXHJcbiAgICB9XHJcblxyXG4gICAgZ2V0U3RyaW5nKHVybDogc3RyaW5nLCBwYXJhbXM/OiBvYmplY3QpOiBPYnNlcnZhYmxlPHN0cmluZyB8IG51bGw+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLmJhc2VVcmwgKyB1cmwsIHsgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCksIHJlc3BvbnNlVHlwZTogJ3RleHQnLCBwYXJhbXM6IHRoaXMudG9IdHRwUGFyYW1zKHBhcmFtcykgfSk7XHJcbiAgICB9XHJcbiAgICBnZXRCeXRlcyh1cmw6IHN0cmluZywgcGFyYW1zPzogYW55KTogT2JzZXJ2YWJsZTxBcnJheUJ1ZmZlcj4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuYmFzZVVybCArIHVybCwgeyBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSwgcmVzcG9uc2VUeXBlOiAnYXJyYXlidWZmZXInLCBwYXJhbXM6IHRoaXMudG9IdHRwUGFyYW1zKHBhcmFtcykgfSk7XHJcbiAgICB9XHJcbiAgICBnZXRCbG9iKHVybDogc3RyaW5nLCBwYXJhbXM/OiBhbnkpOiBPYnNlcnZhYmxlPEJsb2I+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLmJhc2VVcmwgKyB1cmwsIHsgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCksIHJlc3BvbnNlVHlwZTogJ2Jsb2InLCBwYXJhbXM6IHRoaXMudG9IdHRwUGFyYW1zKHBhcmFtcykgfSk7XHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgICBwcm90ZWN0ZWQgdG9IdHRwUGFyYW1zKG9iajogYW55KSB7XHJcbiAgICAgICAgaWYgKCFvYmopXHJcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcblxyXG4gICAgICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcyh7IGVuY29kZXI6IG5ldyBDdXN0b21IdHRwUGFyYW1FbmNvZGVyKCkgfSk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMob2JqKSkge1xyXG4gICAgICAgICAgICBjb25zdCBmaWVsZCA9IG9ialtrZXldO1xyXG5cclxuICAgICAgICAgICAgaWYgKGZpZWxkID09PSB1bmRlZmluZWQgfHwgZmllbGQgPT09IG51bGwgfHwgKHR5cGVvZiBmaWVsZCA9PT0gJ3N0cmluZycgJiYgZmllbGQubGVuZ3RoID09PSAwKSlcclxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG5cclxuICAgICAgICAgICAgbGV0IHZhbHVlID0gZmllbGQ7XHJcbiAgICAgICAgICAgIC8vIGlmICh0eXBlb2YgZmllbGQgPT09ICdzdHJpbmcnICYmIGZpZWxkLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgLy8gICAgIHZhbHVlID0gZmllbGQucmVwbGFjZSgvXFwrL2dpLCAnJTJCJyk7XHJcbiAgICAgICAgICAgIC8vIH1cclxuXHJcbiAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoa2V5LCB2YWx1ZSk7XHJcbiAgICAgICAgICAgIC8vIGlmIChmaWVsZCBpbnN0YW5jZW9mIEFycmF5KSB7XHJcbiAgICAgICAgICAgIC8vICAgICBmaWVsZC5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgLy8gICAgICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKGAke2tleX1bXWAsIGl0ZW0pO1xyXG4gICAgICAgICAgICAvLyAgICAgfSk7XHJcbiAgICAgICAgICAgIC8vIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKGtleSwgZmllbGQpO1xyXG4gICAgICAgICAgICAvLyB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBwYXJhbXM7XHJcblxyXG5cclxuICAgICAgICAvL2RlbGV0ZU51bGxQcm9wZXJ0aWVzKG9iaik7XHJcbiAgICAgICAgLy9jb21tZW50IGJlY2F1c2UgaW50W10gbm90IHNlbmRpbmcgaW4gYyMgaXQgc2VuZCBcIjEsMiwzLDRcIlxyXG4gICAgICAgIC8vIHJldHVybiBvYmpcclxuICAgICAgICAvLyAgICAgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhvYmopLnJlZHVjZSgocCwga2V5KSA9PiBwLnNldChrZXksIG9ialtrZXldKSwgbmV3IEh0dHBQYXJhbXMoKSlcclxuICAgICAgICAvLyAgICAgOiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgLy90b0tleVBhaXJzKG9iajogYW55KTogS2V5UGFpcltdIHwgdW5kZWZpbmVkIHtcclxuICAgIC8vICAgIGlmIChvYmogaW5zdGFuY2VvZiBPYmplY3QpIHtcclxuICAgIC8vICAgICAgICBjb25zdCBwcm9wZXJ0aWVzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMob2JqKTtcclxuICAgIC8vICAgICAgICBjb25zdCByZXN1bHQgPSBuZXcgQXJyYXk8S2V5UGFpcj4oKTtcclxuICAgIC8vICAgICAgICBmb3IgKGxldCBwcm9wZXJ0eSBvZiBwcm9wZXJ0aWVzKSB7XHJcbiAgICAvLyAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gb2JqW3Byb3BlcnR5XTtcclxuICAgIC8vICAgICAgICAgICAgcmVzdWx0LnB1c2goeyBrZXk6IHByb3BlcnR5LCB2YWx1ZTogdmFsdWUgfSk7XHJcbiAgICAvLyAgICAgICAgfVxyXG4gICAgLy8gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICAvLyAgICB9XHJcbiAgICAvLyAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgLy99XHJcblxyXG4gICAgcG9zdDxUID0gYW55Pih1cmw6IHN0cmluZywgYm9keT86IGFueSB8IG51bGwpOiBPYnNlcnZhYmxlPFQ+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8VD4odGhpcy5iYXNlVXJsICsgdXJsLCBib2R5LCB7IGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpIH0pO1xyXG4gICAgICAgIC8vLnBpcGUoXHJcbiAgICAgICAgLy9jYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IodXJsKSlcclxuICAgICAgICAvLyk7XHJcbiAgICB9XHJcbiAgICBwdXQ8VCA9IGFueT4odXJsOiBzdHJpbmcsIGJvZHk/OiBhbnkgfCBudWxsKTogT2JzZXJ2YWJsZTxUPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8VD4odGhpcy5iYXNlVXJsICsgdXJsLCBib2R5LCB7IGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpIH0pO1xyXG4gICAgICAgIC8vLnBpcGUoXHJcbiAgICAgICAgLy9jYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IodXJsKSlcclxuICAgICAgICAvLyk7XHJcbiAgICB9XHJcbiAgICBkZWxldGUodXJsOiBzdHJpbmcsIGJvZHk/OiBhbnkgfCBudWxsKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnJlcXVlc3QoJ2RlbGV0ZScsIHRoaXMuYmFzZVVybCArIHVybCwgeyBib2R5LCBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSB9KTtcclxuICAgICAgICAvL3JldHVybiB0aGlzLmh0dHAuZGVsZXRlKGVudmlyb25tZW50LnVybCArIHVybCwgeyBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSB9KTtcclxuICAgICAgICAvLy5waXBlKFxyXG4gICAgICAgIC8vY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKHVybCkpXHJcbiAgICAgICAgLy8pO1xyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgcHJvdGVjdGVkIGdldEhlYWRlcnMoKTogSHR0cEhlYWRlcnMge1xyXG4gICAgICAgIGxldCBodHRwSGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpO1xyXG4gICAgICAgIGh0dHBIZWFkZXJzID0gaHR0cEhlYWRlcnMuc2V0KCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgIGNvbnN0IHRtcCA9IHRoaXMuYXV0aFNlcnZpY2UudXNlcjtcclxuICAgICAgICBjb25zdCB0b2tlbiA9IHRtcCA/IHRtcC50b2tlbiA6IHVuZGVmaW5lZDtcclxuICAgICAgICBpZiAodG9rZW4pXHJcbiAgICAgICAgICAgIGh0dHBIZWFkZXJzID0gaHR0cEhlYWRlcnMuc2V0KCdBdXRob3JpemF0aW9uJywgdG9rZW4pO1xyXG4gICAgICAgIHJldHVybiBodHRwSGVhZGVycztcclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIC8vcHJpdmF0ZSBnZXRQYXJhbXMocGFyYW1zPzogS2V5UGFpcltdIHwgbnVsbCkge1xyXG4gICAgLy8gICAgaWYgKCFwYXJhbXMgfHwgcGFyYW1zLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgLy8gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAvLyAgICB9XHJcbiAgICAvLyAgICBsZXQgaHR0cFBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XHJcbiAgICAvLyAgICBpZiAocGFyYW1zKSB7XHJcbiAgICAvLyAgICAgICAgZm9yIChsZXQgcGFyYW0gb2YgcGFyYW1zKSB7XHJcbiAgICAvLyAgICAgICAgICAgIGh0dHBQYXJhbXMgPSBodHRwUGFyYW1zLnNldChwYXJhbS5rZXksIHBhcmFtLnZhbHVlKTtcclxuICAgIC8vICAgICAgICB9XHJcbiAgICAvLyAgICB9XHJcbiAgICAvLyAgICByZXR1cm4gaHR0cFBhcmFtcztcclxuICAgIC8vfVxyXG59XHJcblxyXG5cclxuaW1wb3J0IHsgSHR0cFBhcmFtZXRlckNvZGVjIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBBUElfQkFTRV9VUkwgfSBmcm9tICcuLi90b2tlbnMnO1xyXG5leHBvcnQgY2xhc3MgQ3VzdG9tSHR0cFBhcmFtRW5jb2RlciBpbXBsZW1lbnRzIEh0dHBQYXJhbWV0ZXJDb2RlYyB7XHJcbiAgICBlbmNvZGVLZXkoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBlbmNvZGVVUklDb21wb25lbnQoa2V5KTtcclxuICAgIH1cclxuICAgIGVuY29kZVZhbHVlKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBlbmNvZGVVUklDb21wb25lbnQodmFsdWUpO1xyXG4gICAgfVxyXG4gICAgZGVjb2RlS2V5KGtleTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGtleSk7XHJcbiAgICB9XHJcbiAgICBkZWNvZGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHZhbHVlKTtcclxuICAgIH1cclxufSJdfQ==
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { InjectionToken } from "@angular/core";
|
|
2
|
-
export const API_BASE_URL = new InjectionToken('API_BASE_URL');
|
|
3
|
-
export const DATE_FORMAT = new InjectionToken('DATE_FORMAT');
|
|
4
|
-
export const LANGUAGE = new InjectionToken('LANGUAGE');
|
|
5
|
-
export const RECAPTCHA_SITE_KEY = new InjectionToken('RECAPTCHA_SITE_KEY');
|
|
1
|
+
import { InjectionToken } from "@angular/core";
|
|
2
|
+
export const API_BASE_URL = new InjectionToken('API_BASE_URL');
|
|
3
|
+
export const DATE_FORMAT = new InjectionToken('DATE_FORMAT');
|
|
4
|
+
export const LANGUAGE = new InjectionToken('LANGUAGE');
|
|
5
|
+
export const RECAPTCHA_SITE_KEY = new InjectionToken('RECAPTCHA_SITE_KEY');
|
|
6
6
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvemVrL3NyYy9saWIvdG9rZW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0MsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLElBQUksY0FBYyxDQUFTLGNBQWMsQ0FBQyxDQUFDO0FBQ3ZFLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxJQUFJLGNBQWMsQ0FBUyxhQUFhLENBQUMsQ0FBQztBQUNyRSxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsSUFBSSxjQUFjLENBQVMsVUFBVSxDQUFDLENBQUM7QUFDL0QsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxjQUFjLENBQVMsb0JBQW9CLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBBUElfQkFTRV9VUkwgPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPignQVBJX0JBU0VfVVJMJyk7XHJcbmV4cG9ydCBjb25zdCBEQVRFX0ZPUk1BVCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdEQVRFX0ZPUk1BVCcpO1xyXG5leHBvcnQgY29uc3QgTEFOR1VBR0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPignTEFOR1VBR0UnKTtcclxuZXhwb3J0IGNvbnN0IFJFQ0FQVENIQV9TSVRFX0tFWSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdSRUNBUFRDSEFfU0lURV9LRVknKTsiXX0=
|
|
@@ -1,114 +1,114 @@
|
|
|
1
|
-
// import { KeyPair } from "../models/key-pair.model";
|
|
2
|
-
// import { Tree } from "../models/tree.model";
|
|
3
|
-
export class ArrayHelper {
|
|
4
|
-
static insert(value, index, v) {
|
|
5
|
-
value.splice(index, 0, v);
|
|
6
|
-
}
|
|
7
|
-
;
|
|
8
|
-
static contains(value, v) {
|
|
9
|
-
for (var i = 0; i < value.length; i++) {
|
|
10
|
-
if (value[i] === v)
|
|
11
|
-
return true;
|
|
12
|
-
}
|
|
13
|
-
return false;
|
|
14
|
-
}
|
|
15
|
-
;
|
|
16
|
-
// static distinct(value: any[]) {
|
|
17
|
-
// var arr: any[] = [];
|
|
18
|
-
// for (var i = 0; i < value.length; i++) {
|
|
19
|
-
// let val = value[i];
|
|
20
|
-
// if (!this.contains(arr, val)) {
|
|
21
|
-
// arr.push(val);
|
|
22
|
-
// }
|
|
23
|
-
// }
|
|
24
|
-
// return arr;
|
|
25
|
-
// }
|
|
26
|
-
static distinct(source) {
|
|
27
|
-
let length = source.length, result = [], seen = new Set();
|
|
28
|
-
for (let index = 0; index < length; index++) {
|
|
29
|
-
let value = source[index];
|
|
30
|
-
if (seen.has(value))
|
|
31
|
-
continue;
|
|
32
|
-
seen.add(value);
|
|
33
|
-
result.push(value);
|
|
34
|
-
}
|
|
35
|
-
return result;
|
|
36
|
-
}
|
|
37
|
-
static filterByKey(filterValue, key, array) {
|
|
38
|
-
if (typeof filterValue === 'undefined' || filterValue == null || (typeof key === 'string' && key.length === 0))
|
|
39
|
-
return array;
|
|
40
|
-
return array.filter(x => x !== undefined && x !== null && x[key] === filterValue);
|
|
41
|
-
}
|
|
42
|
-
static flattenArray(value) {
|
|
43
|
-
let result = [];
|
|
44
|
-
if (value) {
|
|
45
|
-
value.forEach(tree => {
|
|
46
|
-
tree.indent = 0;
|
|
47
|
-
result.push(tree);
|
|
48
|
-
result = result.concat(this.getChildren(tree));
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
return result;
|
|
52
|
-
}
|
|
53
|
-
static getChildren(tree, indent = 1) {
|
|
54
|
-
let result = [];
|
|
55
|
-
if (tree.children) {
|
|
56
|
-
tree.childrenCount = tree.children.length;
|
|
57
|
-
tree.children.forEach(child => {
|
|
58
|
-
child.indent = indent;
|
|
59
|
-
result.push(child);
|
|
60
|
-
result = result.concat(this.getChildren(child, indent + 1));
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
else {
|
|
64
|
-
tree.childrenCount = 0;
|
|
65
|
-
}
|
|
66
|
-
delete tree.children;
|
|
67
|
-
delete tree.childrenIds;
|
|
68
|
-
//delete tree.childrenCount;
|
|
69
|
-
//delete tree.indent;
|
|
70
|
-
return result;
|
|
71
|
-
}
|
|
72
|
-
static treeToKeyPairArray(value) {
|
|
73
|
-
let result = [];
|
|
74
|
-
if (value) {
|
|
75
|
-
value.forEach(tree => {
|
|
76
|
-
result.push({ key: tree.key, value: tree.value });
|
|
77
|
-
result = result.concat(this.getIndentChildren(tree));
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
return result;
|
|
81
|
-
}
|
|
82
|
-
static getIndentChildren(tree, indent = 1) {
|
|
83
|
-
let result = [];
|
|
84
|
-
if (tree.children) {
|
|
85
|
-
tree.children.forEach(child => {
|
|
86
|
-
//result.push({ key: child.key, value: '└' + '─'.repeat(indent) + child.value });
|
|
87
|
-
result.push({ key: child.key, value: ' '.repeat(indent) + child.value });
|
|
88
|
-
result = result.concat(this.getChildren(child, indent + 1));
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
return result;
|
|
92
|
-
}
|
|
93
|
-
static enumToKeyPairBaseArray(value) {
|
|
94
|
-
const keys = Object.keys(value);
|
|
95
|
-
const slice = keys.length / 2;
|
|
96
|
-
let result = [];
|
|
97
|
-
// for (let i = 0; i < slice; i++) {
|
|
98
|
-
// result.push({ key: +keys[i], value: keys[i + slice] } as T);
|
|
99
|
-
// }
|
|
100
|
-
for (let i = slice; i < keys.length; i++) {
|
|
101
|
-
let name = keys[i];
|
|
102
|
-
result.push({ key: +value[name], value: name });
|
|
103
|
-
}
|
|
104
|
-
return result;
|
|
105
|
-
//return Array.from(keys.slice(keys.length / 2), x => { key:x, value:'aaa' } as Object);
|
|
106
|
-
}
|
|
107
|
-
static enumToKeyPairArray(value) {
|
|
108
|
-
return this.enumToKeyPairBaseArray(value);
|
|
109
|
-
}
|
|
110
|
-
static enumToKeyPairExArray(value) {
|
|
111
|
-
return this.enumToKeyPairBaseArray(value);
|
|
112
|
-
}
|
|
113
|
-
}
|
|
1
|
+
// import { KeyPair } from "../models/key-pair.model";
|
|
2
|
+
// import { Tree } from "../models/tree.model";
|
|
3
|
+
export class ArrayHelper {
|
|
4
|
+
static insert(value, index, v) {
|
|
5
|
+
value.splice(index, 0, v);
|
|
6
|
+
}
|
|
7
|
+
;
|
|
8
|
+
static contains(value, v) {
|
|
9
|
+
for (var i = 0; i < value.length; i++) {
|
|
10
|
+
if (value[i] === v)
|
|
11
|
+
return true;
|
|
12
|
+
}
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
;
|
|
16
|
+
// static distinct(value: any[]) {
|
|
17
|
+
// var arr: any[] = [];
|
|
18
|
+
// for (var i = 0; i < value.length; i++) {
|
|
19
|
+
// let val = value[i];
|
|
20
|
+
// if (!this.contains(arr, val)) {
|
|
21
|
+
// arr.push(val);
|
|
22
|
+
// }
|
|
23
|
+
// }
|
|
24
|
+
// return arr;
|
|
25
|
+
// }
|
|
26
|
+
static distinct(source) {
|
|
27
|
+
let length = source.length, result = [], seen = new Set();
|
|
28
|
+
for (let index = 0; index < length; index++) {
|
|
29
|
+
let value = source[index];
|
|
30
|
+
if (seen.has(value))
|
|
31
|
+
continue;
|
|
32
|
+
seen.add(value);
|
|
33
|
+
result.push(value);
|
|
34
|
+
}
|
|
35
|
+
return result;
|
|
36
|
+
}
|
|
37
|
+
static filterByKey(filterValue, key, array) {
|
|
38
|
+
if (typeof filterValue === 'undefined' || filterValue == null || (typeof key === 'string' && key.length === 0))
|
|
39
|
+
return array;
|
|
40
|
+
return array.filter(x => x !== undefined && x !== null && x[key] === filterValue);
|
|
41
|
+
}
|
|
42
|
+
static flattenArray(value) {
|
|
43
|
+
let result = [];
|
|
44
|
+
if (value) {
|
|
45
|
+
value.forEach(tree => {
|
|
46
|
+
tree.indent = 0;
|
|
47
|
+
result.push(tree);
|
|
48
|
+
result = result.concat(this.getChildren(tree));
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
return result;
|
|
52
|
+
}
|
|
53
|
+
static getChildren(tree, indent = 1) {
|
|
54
|
+
let result = [];
|
|
55
|
+
if (tree.children) {
|
|
56
|
+
tree.childrenCount = tree.children.length;
|
|
57
|
+
tree.children.forEach(child => {
|
|
58
|
+
child.indent = indent;
|
|
59
|
+
result.push(child);
|
|
60
|
+
result = result.concat(this.getChildren(child, indent + 1));
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
tree.childrenCount = 0;
|
|
65
|
+
}
|
|
66
|
+
delete tree.children;
|
|
67
|
+
delete tree.childrenIds;
|
|
68
|
+
//delete tree.childrenCount;
|
|
69
|
+
//delete tree.indent;
|
|
70
|
+
return result;
|
|
71
|
+
}
|
|
72
|
+
static treeToKeyPairArray(value) {
|
|
73
|
+
let result = [];
|
|
74
|
+
if (value) {
|
|
75
|
+
value.forEach(tree => {
|
|
76
|
+
result.push({ key: tree.key, value: tree.value });
|
|
77
|
+
result = result.concat(this.getIndentChildren(tree));
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
return result;
|
|
81
|
+
}
|
|
82
|
+
static getIndentChildren(tree, indent = 1) {
|
|
83
|
+
let result = [];
|
|
84
|
+
if (tree.children) {
|
|
85
|
+
tree.children.forEach(child => {
|
|
86
|
+
//result.push({ key: child.key, value: '└' + '─'.repeat(indent) + child.value });
|
|
87
|
+
result.push({ key: child.key, value: ' '.repeat(indent) + child.value });
|
|
88
|
+
result = result.concat(this.getChildren(child, indent + 1));
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
return result;
|
|
92
|
+
}
|
|
93
|
+
static enumToKeyPairBaseArray(value) {
|
|
94
|
+
const keys = Object.keys(value);
|
|
95
|
+
const slice = keys.length / 2;
|
|
96
|
+
let result = [];
|
|
97
|
+
// for (let i = 0; i < slice; i++) {
|
|
98
|
+
// result.push({ key: +keys[i], value: keys[i + slice] } as T);
|
|
99
|
+
// }
|
|
100
|
+
for (let i = slice; i < keys.length; i++) {
|
|
101
|
+
let name = keys[i];
|
|
102
|
+
result.push({ key: +value[name], value: name });
|
|
103
|
+
}
|
|
104
|
+
return result;
|
|
105
|
+
//return Array.from(keys.slice(keys.length / 2), x => { key:x, value:'aaa' } as Object);
|
|
106
|
+
}
|
|
107
|
+
static enumToKeyPairArray(value) {
|
|
108
|
+
return this.enumToKeyPairBaseArray(value);
|
|
109
|
+
}
|
|
110
|
+
static enumToKeyPairExArray(value) {
|
|
111
|
+
return this.enumToKeyPairBaseArray(value);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
114
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXktaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvemVrL3NyYy9saWIvdXRpbHMvYXJyYXktaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHNEQUFzRDtBQUN0RCwrQ0FBK0M7QUFLL0MsTUFBTSxPQUFPLFdBQVc7SUFDcEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFZLEVBQUUsS0FBYSxFQUFFLENBQU07UUFDN0MsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFBQSxDQUFDO0lBRUYsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFZLEVBQUUsQ0FBTTtRQUNoQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNuQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO2dCQUFFLE9BQU8sSUFBSSxDQUFDO1NBQ25DO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUFBLENBQUM7SUFFRixrQ0FBa0M7SUFDbEMsMkJBQTJCO0lBQzNCLCtDQUErQztJQUMvQyw4QkFBOEI7SUFDOUIsMENBQTBDO0lBQzFDLDZCQUE2QjtJQUM3QixZQUFZO0lBQ1osUUFBUTtJQUNSLGtCQUFrQjtJQUNsQixJQUFJO0lBRUosTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFhO1FBQ3pCLElBQUksTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLEVBQUUsRUFBRSxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUUxRCxLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ3pDLElBQUksS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMxQixJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO2dCQUFFLFNBQVM7WUFFOUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNoQixNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3RCO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxXQUFXLENBQUMsV0FBZ0IsRUFBRSxHQUFXLEVBQUUsS0FBWTtRQUMxRCxJQUFJLE9BQU8sV0FBVyxLQUFLLFdBQVcsSUFBSSxXQUFXLElBQUksSUFBSSxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO1lBQzFHLE9BQU8sS0FBSyxDQUFDO1FBRWpCLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxTQUFTLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssV0FBVyxDQUFDLENBQUM7SUFDdEYsQ0FBQztJQUVELE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBWTtRQUM1QixJQUFJLE1BQU0sR0FBVSxFQUFFLENBQUM7UUFDdkIsSUFBSSxLQUFLLEVBQUU7WUFDUCxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNqQixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztnQkFDaEIsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDbEIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ25ELENBQUMsQ0FBQyxDQUFDO1NBQ047UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBRU8sTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFVLEVBQUUsU0FBaUIsQ0FBQztRQUNyRCxJQUFJLE1BQU0sR0FBVSxFQUFFLENBQUM7UUFDdkIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2YsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUMxQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDMUIsS0FBSyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7Z0JBQ3RCLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ25CLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2hFLENBQUMsQ0FBQyxDQUFDO1NBQ047YUFBTTtZQUNILElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDO1NBQzFCO1FBRUQsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUN4Qiw0QkFBNEI7UUFDNUIscUJBQXFCO1FBQ3JCLE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFJRCxNQUFNLENBQUMsa0JBQWtCLENBQUMsS0FBYTtRQUNuQyxJQUFJLE1BQU0sR0FBYyxFQUFFLENBQUM7UUFDM0IsSUFBSSxLQUFLLEVBQUU7WUFDUCxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNqQixNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO2dCQUNsRCxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUN6RCxDQUFDLENBQUMsQ0FBQztTQUNOO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUdPLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxJQUFVLEVBQUUsU0FBaUIsQ0FBQztRQUMzRCxJQUFJLE1BQU0sR0FBYyxFQUFFLENBQUM7UUFDM0IsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQzFCLGlGQUFpRjtnQkFDakYsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO2dCQUM5RSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNoRSxDQUFDLENBQUMsQ0FBQztTQUNOO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUlPLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBb0MsS0FBVTtRQUMvRSxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQzlCLElBQUksTUFBTSxHQUFRLEVBQUUsQ0FBQztRQUNyQixvQ0FBb0M7UUFDcEMsbUVBQW1FO1FBQ25FLElBQUk7UUFDSixLQUFLLElBQUksQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN0QyxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkIsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFPLENBQUMsQ0FBQztTQUN6RDtRQUNELE9BQU8sTUFBTSxDQUFDO1FBQ2Qsd0ZBQXdGO0lBQzVGLENBQUM7SUFDRCxNQUFNLENBQUMsa0JBQWtCLENBQUMsS0FBVTtRQUNoQyxPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBMEIsS0FBSyxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUNELE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxLQUFVO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUE0QixLQUFLLENBQUMsQ0FBQztJQUN6RSxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBpbXBvcnQgeyBLZXlQYWlyIH0gZnJvbSBcIi4uL21vZGVscy9rZXktcGFpci5tb2RlbFwiO1xyXG4vLyBpbXBvcnQgeyBUcmVlIH0gZnJvbSBcIi4uL21vZGVscy90cmVlLm1vZGVsXCI7XHJcblxyXG5pbXBvcnQgeyBLZXlQYWlyLCBLZXlQYWlyRXgsIFRyZWUgfSBmcm9tIFwiLi4vbW9kZWxzXCI7XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIEFycmF5SGVscGVyIHtcclxuICAgIHN0YXRpYyBpbnNlcnQodmFsdWU6IGFueVtdLCBpbmRleDogbnVtYmVyLCB2OiBhbnkpIHtcclxuICAgICAgICB2YWx1ZS5zcGxpY2UoaW5kZXgsIDAsIHYpO1xyXG4gICAgfTtcclxuXHJcbiAgICBzdGF0aWMgY29udGFpbnModmFsdWU6IGFueVtdLCB2OiBhbnkpIHtcclxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmICh2YWx1ZVtpXSA9PT0gdikgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH07XHJcblxyXG4gICAgLy8gc3RhdGljIGRpc3RpbmN0KHZhbHVlOiBhbnlbXSkge1xyXG4gICAgLy8gICAgIHZhciBhcnI6IGFueVtdID0gW107XHJcbiAgICAvLyAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7IGkrKykge1xyXG4gICAgLy8gICAgICAgICBsZXQgdmFsID0gdmFsdWVbaV07XHJcbiAgICAvLyAgICAgICAgIGlmICghdGhpcy5jb250YWlucyhhcnIsIHZhbCkpIHtcclxuICAgIC8vICAgICAgICAgICAgIGFyci5wdXNoKHZhbCk7XHJcbiAgICAvLyAgICAgICAgIH1cclxuICAgIC8vICAgICB9XHJcbiAgICAvLyAgICAgcmV0dXJuIGFycjtcclxuICAgIC8vIH1cclxuXHJcbiAgICBzdGF0aWMgZGlzdGluY3Qoc291cmNlOiBhbnlbXSkge1xyXG4gICAgICAgIGxldCBsZW5ndGggPSBzb3VyY2UubGVuZ3RoLCByZXN1bHQgPSBbXSwgc2VlbiA9IG5ldyBTZXQoKTtcclxuXHJcbiAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgICAgICBsZXQgdmFsdWUgPSBzb3VyY2VbaW5kZXhdO1xyXG4gICAgICAgICAgICBpZiAoc2Vlbi5oYXModmFsdWUpKSBjb250aW51ZTtcclxuXHJcbiAgICAgICAgICAgIHNlZW4uYWRkKHZhbHVlKTtcclxuICAgICAgICAgICAgcmVzdWx0LnB1c2godmFsdWUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgZmlsdGVyQnlLZXkoZmlsdGVyVmFsdWU6IGFueSwga2V5OiBzdHJpbmcsIGFycmF5OiBhbnlbXSkge1xyXG4gICAgICAgIGlmICh0eXBlb2YgZmlsdGVyVmFsdWUgPT09ICd1bmRlZmluZWQnIHx8IGZpbHRlclZhbHVlID09IG51bGwgfHwgKHR5cGVvZiBrZXkgPT09ICdzdHJpbmcnICYmIGtleS5sZW5ndGggPT09IDApKVxyXG4gICAgICAgICAgICByZXR1cm4gYXJyYXk7XHJcblxyXG4gICAgICAgIHJldHVybiBhcnJheS5maWx0ZXIoeCA9PiB4ICE9PSB1bmRlZmluZWQgJiYgeCAhPT0gbnVsbCAmJiB4W2tleV0gPT09IGZpbHRlclZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgZmxhdHRlbkFycmF5KHZhbHVlOiBhbnlbXSk6IGFueVtdIHtcclxuICAgICAgICBsZXQgcmVzdWx0OiBhbnlbXSA9IFtdO1xyXG4gICAgICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICAgICAgICB2YWx1ZS5mb3JFYWNoKHRyZWUgPT4ge1xyXG4gICAgICAgICAgICAgICAgdHJlZS5pbmRlbnQgPSAwO1xyXG4gICAgICAgICAgICAgICAgcmVzdWx0LnB1c2godHJlZSk7XHJcbiAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQuY29uY2F0KHRoaXMuZ2V0Q2hpbGRyZW4odHJlZSkpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHN0YXRpYyBnZXRDaGlsZHJlbih0cmVlOiBUcmVlLCBpbmRlbnQ6IG51bWJlciA9IDEpOiBhbnlbXSB7XHJcbiAgICAgICAgbGV0IHJlc3VsdDogYW55W10gPSBbXTtcclxuICAgICAgICBpZiAodHJlZS5jaGlsZHJlbikge1xyXG4gICAgICAgICAgICB0cmVlLmNoaWxkcmVuQ291bnQgPSB0cmVlLmNoaWxkcmVuLmxlbmd0aDtcclxuICAgICAgICAgICAgdHJlZS5jaGlsZHJlbi5mb3JFYWNoKGNoaWxkID0+IHtcclxuICAgICAgICAgICAgICAgIGNoaWxkLmluZGVudCA9IGluZGVudDtcclxuICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKGNoaWxkKTtcclxuICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5jb25jYXQodGhpcy5nZXRDaGlsZHJlbihjaGlsZCwgaW5kZW50ICsgMSkpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0cmVlLmNoaWxkcmVuQ291bnQgPSAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZGVsZXRlIHRyZWUuY2hpbGRyZW47XHJcbiAgICAgICAgZGVsZXRlIHRyZWUuY2hpbGRyZW5JZHM7XHJcbiAgICAgICAgLy9kZWxldGUgdHJlZS5jaGlsZHJlbkNvdW50O1xyXG4gICAgICAgIC8vZGVsZXRlIHRyZWUuaW5kZW50O1xyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgICBzdGF0aWMgdHJlZVRvS2V5UGFpckFycmF5KHZhbHVlOiBUcmVlW10pIHtcclxuICAgICAgICBsZXQgcmVzdWx0OiBLZXlQYWlyW10gPSBbXTtcclxuICAgICAgICBpZiAodmFsdWUpIHtcclxuICAgICAgICAgICAgdmFsdWUuZm9yRWFjaCh0cmVlID0+IHtcclxuICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKHsga2V5OiB0cmVlLmtleSwgdmFsdWU6IHRyZWUudmFsdWUgfSk7XHJcbiAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQuY29uY2F0KHRoaXMuZ2V0SW5kZW50Q2hpbGRyZW4odHJlZSkpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHByaXZhdGUgc3RhdGljIGdldEluZGVudENoaWxkcmVuKHRyZWU6IFRyZWUsIGluZGVudDogbnVtYmVyID0gMSk6IEtleVBhaXJbXSB7XHJcbiAgICAgICAgbGV0IHJlc3VsdDogS2V5UGFpcltdID0gW107XHJcbiAgICAgICAgaWYgKHRyZWUuY2hpbGRyZW4pIHtcclxuICAgICAgICAgICAgdHJlZS5jaGlsZHJlbi5mb3JFYWNoKGNoaWxkID0+IHtcclxuICAgICAgICAgICAgICAgIC8vcmVzdWx0LnB1c2goeyBrZXk6IGNoaWxkLmtleSwgdmFsdWU6ICfilJQnICsgJ+KUgCcucmVwZWF0KGluZGVudCkgKyBjaGlsZC52YWx1ZSB9KTtcclxuICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKHsga2V5OiBjaGlsZC5rZXksIHZhbHVlOiAnJmVtc3A7Jy5yZXBlYXQoaW5kZW50KSArIGNoaWxkLnZhbHVlIH0pO1xyXG4gICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0LmNvbmNhdCh0aGlzLmdldENoaWxkcmVuKGNoaWxkLCBpbmRlbnQgKyAxKSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgcHJpdmF0ZSBzdGF0aWMgZW51bVRvS2V5UGFpckJhc2VBcnJheTxUIGV4dGVuZHMgS2V5UGFpcjxudW1iZXIsIHN0cmluZz4+KHZhbHVlOiBhbnkpOiBUW10ge1xyXG4gICAgICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyh2YWx1ZSk7XHJcbiAgICAgICAgY29uc3Qgc2xpY2UgPSBrZXlzLmxlbmd0aCAvIDI7XHJcbiAgICAgICAgbGV0IHJlc3VsdDogVFtdID0gW107XHJcbiAgICAgICAgLy8gZm9yIChsZXQgaSA9IDA7IGkgPCBzbGljZTsgaSsrKSB7XHJcbiAgICAgICAgLy8gICAgIHJlc3VsdC5wdXNoKHsga2V5OiAra2V5c1tpXSwgdmFsdWU6IGtleXNbaSArIHNsaWNlXSB9IGFzIFQpO1xyXG4gICAgICAgIC8vIH1cclxuICAgICAgICBmb3IgKGxldCBpID0gc2xpY2U7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGxldCBuYW1lID0ga2V5c1tpXTtcclxuICAgICAgICAgICAgcmVzdWx0LnB1c2goeyBrZXk6ICsgdmFsdWVbbmFtZV0sIHZhbHVlOiBuYW1lIH0gYXMgVCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICAgICAgLy9yZXR1cm4gQXJyYXkuZnJvbShrZXlzLnNsaWNlKGtleXMubGVuZ3RoIC8gMiksIHggPT4geyBrZXk6eCwgdmFsdWU6J2FhYScgfSBhcyBPYmplY3QpO1xyXG4gICAgfVxyXG4gICAgc3RhdGljIGVudW1Ub0tleVBhaXJBcnJheSh2YWx1ZTogYW55KTogS2V5UGFpcjxudW1iZXIsIHN0cmluZz5bXSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZW51bVRvS2V5UGFpckJhc2VBcnJheTxLZXlQYWlyPG51bWJlciwgc3RyaW5nPj4odmFsdWUpO1xyXG4gICAgfVxyXG4gICAgc3RhdGljIGVudW1Ub0tleVBhaXJFeEFycmF5KHZhbHVlOiBhbnkpOiBLZXlQYWlyRXg8bnVtYmVyLCBzdHJpbmc+W10ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVudW1Ub0tleVBhaXJCYXNlQXJyYXk8S2V5UGFpckV4PG51bWJlciwgc3RyaW5nPj4odmFsdWUpO1xyXG4gICAgfVxyXG59Il19
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export class Base64Helper {
|
|
2
|
-
static Utf8ToBase64String(str) {
|
|
3
|
-
return btoa(unescape(encodeURIComponent(str)));
|
|
4
|
-
}
|
|
5
|
-
static Base64StringToUtf8(str) {
|
|
6
|
-
return decodeURIComponent(escape(atob(str)));
|
|
7
|
-
}
|
|
8
|
-
}
|
|
1
|
+
export class Base64Helper {
|
|
2
|
+
static Utf8ToBase64String(str) {
|
|
3
|
+
return btoa(unescape(encodeURIComponent(str)));
|
|
4
|
+
}
|
|
5
|
+
static Base64StringToUtf8(str) {
|
|
6
|
+
return decodeURIComponent(escape(atob(str)));
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
9
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZTY0LWhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3play9zcmMvbGliL3V0aWxzL2Jhc2U2NC1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLFlBQVk7SUFDZCxNQUFNLENBQUMsa0JBQWtCLENBQUMsR0FBVztRQUN4QyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFTSxNQUFNLENBQUMsa0JBQWtCLENBQUMsR0FBVztRQUN4QyxPQUFPLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pELENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBCYXNlNjRIZWxwZXIge1xyXG4gICAgcHVibGljIHN0YXRpYyBVdGY4VG9CYXNlNjRTdHJpbmcoc3RyOiBzdHJpbmcpIHtcclxuICAgICAgICByZXR1cm4gYnRvYSh1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoc3RyKSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgQmFzZTY0U3RyaW5nVG9VdGY4KHN0cjogc3RyaW5nKSB7XHJcbiAgICAgICAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChlc2NhcGUoYXRvYihzdHIpKSk7XHJcbiAgICB9XHJcbn1cclxuIl19
|