@koalarx/ui 12.4.1 → 12.4.2
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/alert/README.md +24 -0
- package/alert/bundles/koalarx-ui-alert.umd.js +153 -0
- package/alert/bundles/koalarx-ui-alert.umd.js.map +1 -0
- package/alert/esm2015/index.js +7 -0
- package/alert/esm2015/koalarx-ui-alert.js +5 -0
- package/alert/esm2015/lib/dialog-alert.component.js +43 -0
- package/alert/esm2015/lib/koala.alert-config.interface.js +2 -0
- package/alert/esm2015/lib/koala.alert.enum.js +9 -0
- package/alert/esm2015/lib/koala.alert.module.js +31 -0
- package/alert/esm2015/lib/koala.alert.service.js +21 -0
- package/alert/esm2015/lib/koala.request-code-to-alert-enum.translate.js +18 -0
- package/alert/fesm2015/koalarx-ui-alert.js +121 -0
- package/alert/fesm2015/koalarx-ui-alert.js.map +1 -0
- package/alert/index.d.ts +6 -6
- package/alert/koalarx-ui-alert.d.ts +4 -0
- package/alert/koalarx-ui-alert.metadata.json +1 -0
- package/alert/lib/dialog-alert.component.d.ts +7 -0
- package/alert/{koala.alert-config.interface.d.ts → lib/koala.alert-config.interface.d.ts} +1 -1
- package/alert/{koala.alert.enum.d.ts → lib/koala.alert.enum.d.ts} +0 -0
- package/alert/lib/koala.alert.module.d.ts +2 -0
- package/alert/{koala.alert.service.d.ts → lib/koala.alert.service.d.ts} +1 -4
- package/alert/{koala.request-code-to-alert-enum.translate.d.ts → lib/koala.request-code-to-alert-enum.translate.d.ts} +0 -0
- package/alert/package.json +19 -0
- package/button/bundles/koalarx-ui-button.umd.js +71 -0
- package/button/bundles/koalarx-ui-button.umd.js.map +1 -0
- package/button/esm2015/index.js +3 -0
- package/button/esm2015/koalarx-ui-button.js +5 -0
- package/button/esm2015/lib/button.component.js +31 -0
- package/button/esm2015/lib/koala.button.module.js +27 -0
- package/button/fesm2015/koalarx-ui-button.js +63 -0
- package/button/fesm2015/koalarx-ui-button.js.map +1 -0
- package/button/index.d.ts +2 -2
- package/button/koalarx-ui-button.d.ts +4 -0
- package/button/koalarx-ui-button.metadata.json +1 -0
- package/button/lib/button.component.d.ts +13 -0
- package/button/lib/koala.button.module.d.ts +2 -0
- package/button/package.json +19 -0
- package/core/README.md +24 -0
- package/core/bundles/koalarx-ui-core.umd.js +1821 -0
- package/core/bundles/koalarx-ui-core.umd.js.map +1 -0
- package/core/esm2015/index.js +51 -0
- package/core/esm2015/koalarx-ui-core.js +7 -0
- package/core/esm2015/lib/environments/koalaEnvironment.js +4 -0
- package/core/esm2015/lib/loader/loader-bar-page.component.js +22 -0
- package/core/esm2015/lib/loader/loader-bar-page.interface.js +2 -0
- package/core/esm2015/lib/loader/loader-config.interface.js +2 -0
- package/core/esm2015/lib/mask-options.js +4 -0
- package/core/esm2015/lib/ngx-koala.module.js +35 -0
- package/core/esm2015/lib/page/koala-language.helper.js +114 -0
- package/core/esm2015/lib/page/koala-oauth2-config.interface.js +2 -0
- package/core/esm2015/lib/page/koala-page-pallet-colors.interface.js +2 -0
- package/core/esm2015/lib/page/koala.page.module.js +46 -0
- package/core/esm2015/lib/page/koala.user-menu-options.interface.js +2 -0
- package/core/esm2015/lib/page/notifications/koala.notification.interface.js +2 -0
- package/core/esm2015/lib/page/notifications/notification.component.js +43 -0
- package/core/esm2015/lib/page/page.component.js +396 -0
- package/core/esm2015/lib/router/koala.parameter-hash-location-stategy.js +16 -0
- package/core/esm2015/lib/services/api-requester/factory/koala.response.factory.js +48 -0
- package/core/esm2015/lib/services/api-requester/helpers/error/koala.client.error.js +3 -0
- package/core/esm2015/lib/services/api-requester/helpers/error/koala.errors.helper.js +46 -0
- package/core/esm2015/lib/services/api-requester/helpers/error/koala.not-found.error.js +3 -0
- package/core/esm2015/lib/services/api-requester/helpers/error/koala.success.error.js +3 -0
- package/core/esm2015/lib/services/api-requester/helpers/error/koala.unhautorized.error.js +3 -0
- package/core/esm2015/lib/services/api-requester/helpers/service/koala.request-header.helper.js +15 -0
- package/core/esm2015/lib/services/api-requester/koala.api-requester.base.js +70 -0
- package/{esm2015/core → core/esm2015/lib}/services/api-requester/koala.api-requester.service.js +11 -8
- package/core/esm2015/lib/services/csv/koala.csv.service.js +38 -0
- package/core/esm2015/lib/services/loader/koala.loader.service.js +32 -0
- package/core/esm2015/lib/services/openid/koala.oauth.config.js +33 -0
- package/core/esm2015/lib/services/openid/koala.oauth2.service.js +196 -0
- package/core/esm2015/lib/services/request/koala.request.service.js +53 -0
- package/core/esm2015/lib/services/token/koala.token.service.js +52 -0
- package/core/esm2015/lib/services/token/token.factory.js +31 -0
- package/core/esm2015/lib/services/xlsx/koala.xlsx-config.interface.js +2 -0
- package/core/esm2015/lib/services/xlsx/koala.xlsx.service.js +61 -0
- package/core/fesm2015/koalarx-ui-core.js +1434 -0
- package/core/fesm2015/koalarx-ui-core.js.map +1 -0
- package/core/index.d.ts +24 -27
- package/core/koalarx-ui-core.d.ts +6 -0
- package/core/koalarx-ui-core.metadata.json +1 -0
- package/core/{environments → lib/environments}/koalaEnvironment.d.ts +0 -0
- package/core/lib/loader/loader-bar-page.component.d.ts +5 -0
- package/core/{loader → lib/loader}/loader-bar-page.interface.d.ts +0 -0
- package/core/{loader → lib/loader}/loader-config.interface.d.ts +0 -0
- package/core/{mask-options.d.ts → lib/mask-options.d.ts} +0 -0
- package/core/lib/ngx-koala.module.d.ts +5 -0
- package/core/{page → lib/page}/koala-language.helper.d.ts +0 -0
- package/core/{page → lib/page}/koala-oauth2-config.interface.d.ts +0 -0
- package/core/{page → lib/page}/koala-page-pallet-colors.interface.d.ts +0 -0
- package/core/lib/page/koala.page.module.d.ts +2 -0
- package/core/{page → lib/page}/koala.user-menu-options.interface.d.ts +0 -0
- package/core/{page → lib/page}/notifications/koala.notification.interface.d.ts +0 -0
- package/core/{page → lib/page}/notifications/notification.component.d.ts +0 -3
- package/core/{page → lib/page}/page.component.d.ts +1 -4
- package/core/lib/router/koala.parameter-hash-location-stategy.d.ts +4 -0
- package/core/{services → lib/services}/api-requester/factory/koala.response.factory.d.ts +0 -0
- package/core/{services → lib/services}/api-requester/helpers/error/koala.client.error.d.ts +0 -0
- package/core/{services → lib/services}/api-requester/helpers/error/koala.errors.helper.d.ts +1 -1
- package/core/{services → lib/services}/api-requester/helpers/error/koala.not-found.error.d.ts +0 -0
- package/core/{services → lib/services}/api-requester/helpers/error/koala.success.error.d.ts +0 -0
- package/core/{services → lib/services}/api-requester/helpers/error/koala.unhautorized.error.d.ts +0 -0
- package/core/{services → lib/services}/api-requester/helpers/service/koala.request-header.helper.d.ts +0 -0
- package/core/{services → lib/services}/api-requester/koala.api-requester.base.d.ts +2 -8
- package/core/{services → lib/services}/api-requester/koala.api-requester.service.d.ts +0 -3
- package/core/{services → lib/services}/csv/koala.csv.service.d.ts +0 -3
- package/core/{services → lib/services}/loader/koala.loader.service.d.ts +0 -3
- package/core/{services → lib/services}/openid/koala.oauth.config.d.ts +0 -0
- package/core/{services → lib/services}/openid/koala.oauth2.service.d.ts +0 -3
- package/core/{services → lib/services}/request/koala.request.service.d.ts +1 -4
- package/core/{services → lib/services}/token/koala.token.service.d.ts +0 -3
- package/core/{services → lib/services}/token/token.factory.d.ts +0 -0
- package/core/{services → lib/services}/xlsx/koala.xlsx-config.interface.d.ts +0 -0
- package/core/{services → lib/services}/xlsx/koala.xlsx.service.d.ts +0 -3
- package/core/package.json +19 -0
- package/{theme → core/theme}/koala.theme.css +0 -0
- package/dialog/README.md +24 -0
- package/dialog/bundles/koalarx-ui-dialog.umd.js +139 -0
- package/dialog/bundles/koalarx-ui-dialog.umd.js.map +1 -0
- package/dialog/esm2015/index.js +4 -0
- package/dialog/esm2015/koalarx-ui-dialog.js +5 -0
- package/dialog/esm2015/lib/dialog.component.js +18 -0
- package/dialog/esm2015/lib/koala.dialog-template.interface.js +2 -0
- package/dialog/esm2015/lib/koala.dialog.module.js +25 -0
- package/dialog/esm2015/lib/koala.dialog.service.js +61 -0
- package/dialog/fesm2015/koalarx-ui-dialog.js +107 -0
- package/dialog/fesm2015/koalarx-ui-dialog.js.map +1 -0
- package/dialog/index.d.ts +3 -3
- package/dialog/koalarx-ui-dialog.d.ts +4 -0
- package/dialog/koalarx-ui-dialog.metadata.json +1 -0
- package/dialog/lib/dialog.component.d.ts +8 -0
- package/dialog/{koala.dialog-template.interface.d.ts → lib/koala.dialog-template.interface.d.ts} +0 -0
- package/dialog/lib/koala.dialog.module.d.ts +2 -0
- package/dialog/{koala.dialog.service.d.ts → lib/koala.dialog.service.d.ts} +0 -3
- package/dialog/package.json +19 -0
- package/dynamic-component/README.md +24 -0
- package/dynamic-component/bundles/koalarx-ui-dynamic-component.umd.js +95 -0
- package/dynamic-component/bundles/koalarx-ui-dynamic-component.umd.js.map +1 -0
- package/dynamic-component/esm2015/index.js +6 -0
- package/dynamic-component/esm2015/koalarx-ui-dynamic-component.js +5 -0
- package/dynamic-component/esm2015/lib/koala-dynamic-component.component.js +2 -0
- package/dynamic-component/esm2015/lib/koala-dynamic-component.directive.js +15 -0
- package/dynamic-component/esm2015/lib/koala-dynamic-component.factory.js +38 -0
- package/dynamic-component/esm2015/lib/koala-dynamic-component.js +7 -0
- package/dynamic-component/esm2015/lib/koala-dynamic-component.module.js +17 -0
- package/dynamic-component/fesm2015/koalarx-ui-dynamic-component.js +79 -0
- package/dynamic-component/fesm2015/koalarx-ui-dynamic-component.js.map +1 -0
- package/dynamic-component/index.d.ts +5 -5
- package/dynamic-component/koalarx-ui-dynamic-component.d.ts +4 -0
- package/dynamic-component/koalarx-ui-dynamic-component.metadata.json +1 -0
- package/dynamic-component/{koala-dynamic-component.component.d.ts → lib/koala-dynamic-component.component.d.ts} +0 -0
- package/dynamic-component/{koala-dynamic-component.d.ts → lib/koala-dynamic-component.d.ts} +0 -0
- package/dynamic-component/lib/koala-dynamic-component.directive.d.ts +5 -0
- package/dynamic-component/{koala-dynamic-component.factory.d.ts → lib/koala-dynamic-component.factory.d.ts} +2 -5
- package/dynamic-component/lib/koala-dynamic-component.module.d.ts +2 -0
- package/dynamic-component/package.json +19 -0
- package/file-button/README.md +24 -0
- package/file-button/bundles/koalarx-ui-file-button.umd.js +553 -0
- package/file-button/bundles/koalarx-ui-file-button.umd.js.map +1 -0
- package/file-button/esm2015/index.js +5 -0
- package/file-button/esm2015/koalarx-ui-file-button.js +5 -0
- package/file-button/esm2015/lib/file-button.component.js +118 -0
- package/file-button/esm2015/lib/koala.btn-file.service.js +26 -0
- package/file-button/esm2015/lib/koala.file-button.module.js +25 -0
- package/file-button/esm2015/lib/koala.file.interface.js +2 -0
- package/file-button/fesm2015/koalarx-ui-file-button.js +171 -0
- package/file-button/fesm2015/koalarx-ui-file-button.js.map +1 -0
- package/file-button/index.d.ts +4 -4
- package/file-button/koalarx-ui-file-button.d.ts +4 -0
- package/file-button/koalarx-ui-file-button.metadata.json +1 -0
- package/file-button/lib/file-button.component.d.ts +26 -0
- package/file-button/{koala.btn-file.service.d.ts → lib/koala.btn-file.service.d.ts} +1 -4
- package/file-button/lib/koala.file-button.module.d.ts +2 -0
- package/file-button/{koala.file.interface.d.ts → lib/koala.file.interface.d.ts} +0 -0
- package/file-button/package.json +19 -0
- package/folder-page/README.md +24 -0
- package/folder-page/bundles/koalarx-ui-folder-page.umd.js +97 -0
- package/folder-page/bundles/koalarx-ui-folder-page.umd.js.map +1 -0
- package/folder-page/esm2015/index.js +4 -0
- package/folder-page/esm2015/koalarx-ui-folder-page.js +5 -0
- package/folder-page/esm2015/lib/folder.component.js +56 -0
- package/folder-page/esm2015/lib/koala-navigate-history.interface.js +2 -0
- package/folder-page/esm2015/lib/koala.folder-page.module.js +27 -0
- package/folder-page/fesm2015/koalarx-ui-folder-page.js +88 -0
- package/folder-page/fesm2015/koalarx-ui-folder-page.js.map +1 -0
- package/folder-page/index.d.ts +3 -2
- package/folder-page/koalarx-ui-folder-page.d.ts +4 -0
- package/folder-page/koalarx-ui-folder-page.metadata.json +1 -0
- package/folder-page/lib/folder.component.d.ts +17 -0
- package/folder-page/{koala-navigate-history.interface.d.ts → lib/koala-navigate-history.interface.d.ts} +0 -0
- package/folder-page/lib/koala.folder-page.module.d.ts +2 -0
- package/folder-page/package.json +19 -0
- package/form/README.md +24 -0
- package/form/bundles/koalarx-ui-form.umd.js +1949 -0
- package/form/bundles/koalarx-ui-form.umd.js.map +1 -0
- package/form/esm2015/index.js +20 -0
- package/form/esm2015/koalarx-ui-form.js +5 -0
- package/form/esm2015/lib/btn-submit/btn-submit.component.js +39 -0
- package/form/esm2015/lib/directives/koala-autofocus.directive.js +25 -0
- package/form/esm2015/lib/dynamic-form/builder/dynamic-form.builder.js +138 -0
- package/form/esm2015/lib/dynamic-form/builder/fields/autocomplete.builder.js +34 -0
- package/form/esm2015/lib/dynamic-form/builder/fields/field.base.js +147 -0
- package/form/esm2015/lib/dynamic-form/builder/fields/field.builder.js +7 -0
- package/form/esm2015/lib/dynamic-form/builder/fields/more-items.builder.js +57 -0
- package/form/esm2015/lib/dynamic-form/dynamic-form.component.js +551 -0
- package/{esm2015/form → form/esm2015/lib}/dynamic-form/enums/dynamic-form-type-field.enum.js +1 -1
- package/form/esm2015/lib/dynamic-form/interfaces/koala-custom-validator-fn.interface.js +2 -0
- package/form/esm2015/lib/dynamic-form/interfaces/koala.dynamic-autocomplete-options.interface.js +2 -0
- package/form/esm2015/lib/dynamic-form/interfaces/koala.dynamic-form-autocomplete-multiple-config.interface.js +2 -0
- package/form/esm2015/lib/dynamic-form/interfaces/koala.dynamic-form-config.interface.js +2 -0
- package/form/esm2015/lib/dynamic-form/interfaces/koala.dynamic-form-field.interface.js +2 -0
- package/form/esm2015/lib/dynamic-form/interfaces/koala.dynamic-form-more-itens-show-field-config.interface.js +2 -0
- package/form/esm2015/lib/dynamic-form/interfaces/koala.dynamic-form-show-field.interface.js +2 -0
- package/form/esm2015/lib/dynamic-form/interfaces/koala.dynamic-set-value.interface.js +2 -0
- package/{esm2015/form → form/esm2015/lib}/dynamic-form/koala.dynamic-form.service.js +11 -8
- package/form/esm2015/lib/dynamic-form/validators/autocomplete-selected.validator.js +10 -0
- package/form/esm2015/lib/dynamic-form/validators/cnpj.validator.js +10 -0
- package/form/esm2015/lib/dynamic-form/validators/cpf.validator.js +10 -0
- package/form/esm2015/lib/dynamic-form/validators/date-max.validator.js +11 -0
- package/form/esm2015/lib/dynamic-form/validators/date-min.validator.js +11 -0
- package/form/esm2015/lib/dynamic-form/validators/koala-dynamic-form-validator-result.helper.js +10 -0
- package/form/esm2015/lib/dynamic-form/validators/validation.helper.js +86 -0
- package/form/esm2015/lib/form.abstract.js +42 -0
- package/form/esm2015/lib/koala.form.module.js +69 -0
- package/form/esm2015/lib/show-invalid-fields/show-invalid-fields.js +9 -0
- package/form/fesm2015/koalarx-ui-form.js +1465 -0
- package/form/fesm2015/koalarx-ui-form.js.map +1 -0
- package/form/index.d.ts +19 -17
- package/form/koalarx-ui-form.d.ts +4 -0
- package/form/koalarx-ui-form.metadata.json +1 -0
- package/form/{btn-submit → lib/btn-submit}/btn-submit.component.d.ts +1 -4
- package/form/lib/directives/koala-autofocus.directive.d.ts +7 -0
- package/form/{dynamic-form → lib/dynamic-form}/builder/dynamic-form.builder.d.ts +0 -0
- package/form/{dynamic-form → lib/dynamic-form}/builder/fields/autocomplete.builder.d.ts +0 -0
- package/form/{dynamic-form → lib/dynamic-form}/builder/fields/field.base.d.ts +0 -0
- package/form/{dynamic-form → lib/dynamic-form}/builder/fields/field.builder.d.ts +0 -0
- package/form/{dynamic-form → lib/dynamic-form}/builder/fields/more-items.builder.d.ts +0 -0
- package/form/{dynamic-form → lib/dynamic-form}/dynamic-form.component.d.ts +2 -5
- package/form/{dynamic-form → lib/dynamic-form}/enums/dynamic-form-type-field.enum.d.ts +0 -0
- package/form/{dynamic-form → lib/dynamic-form}/interfaces/koala-custom-validator-fn.interface.d.ts +0 -0
- package/form/{dynamic-form → lib/dynamic-form}/interfaces/koala.dynamic-autocomplete-options.interface.d.ts +0 -0
- package/form/{dynamic-form → lib/dynamic-form}/interfaces/koala.dynamic-form-autocomplete-multiple-config.interface.d.ts +0 -0
- package/form/{dynamic-form → lib/dynamic-form}/interfaces/koala.dynamic-form-config.interface.d.ts +0 -0
- package/form/{dynamic-form → lib/dynamic-form}/interfaces/koala.dynamic-form-field.interface.d.ts +0 -0
- package/form/{dynamic-form → lib/dynamic-form}/interfaces/koala.dynamic-form-more-itens-show-field-config.interface.d.ts +0 -0
- package/form/{dynamic-form → lib/dynamic-form}/interfaces/koala.dynamic-form-show-field.interface.d.ts +0 -0
- package/form/{dynamic-form → lib/dynamic-form}/interfaces/koala.dynamic-set-value.interface.d.ts +0 -0
- package/form/{dynamic-form → lib/dynamic-form}/koala.dynamic-form.service.d.ts +0 -3
- package/form/{dynamic-form → lib/dynamic-form}/validators/autocomplete-selected.validator.d.ts +0 -0
- package/form/{dynamic-form → lib/dynamic-form}/validators/cnpj.validator.d.ts +0 -0
- package/form/{dynamic-form → lib/dynamic-form}/validators/cpf.validator.d.ts +0 -0
- package/form/{dynamic-form → lib/dynamic-form}/validators/date-max.validator.d.ts +0 -0
- package/form/{dynamic-form → lib/dynamic-form}/validators/date-min.validator.d.ts +0 -0
- package/form/{dynamic-form → lib/dynamic-form}/validators/koala-dynamic-form-validator-result.helper.d.ts +0 -0
- package/form/{dynamic-form → lib/dynamic-form}/validators/validation.helper.d.ts +0 -0
- package/{core → form/lib}/form.abstract.d.ts +1 -1
- package/form/lib/koala.form.module.d.ts +2 -0
- package/form/{show-invalid-fields → lib/show-invalid-fields}/show-invalid-fields.d.ts +0 -0
- package/form/package.json +19 -0
- package/icon/bundles/koalarx-ui-icon.umd.js +76 -0
- package/icon/bundles/koalarx-ui-icon.umd.js.map +1 -0
- package/icon/esm2015/index.js +3 -0
- package/icon/esm2015/koalarx-ui-icon.js +5 -0
- package/icon/esm2015/lib/icon.component.js +45 -0
- package/icon/esm2015/lib/koala.icon.module.js +19 -0
- package/icon/fesm2015/koalarx-ui-icon.js +69 -0
- package/icon/fesm2015/koalarx-ui-icon.js.map +1 -0
- package/icon/index.d.ts +2 -2
- package/icon/koalarx-ui-icon.d.ts +4 -0
- package/icon/koalarx-ui-icon.metadata.json +1 -0
- package/icon/{icon.component.d.ts → lib/icon.component.d.ts} +3 -6
- package/icon/lib/koala.icon.module.d.ts +2 -0
- package/icon/package.json +19 -0
- package/icons-animated/README.md +24 -0
- package/icons-animated/bundles/koalarx-ui-icons-animated.umd.js +138 -0
- package/icons-animated/bundles/koalarx-ui-icons-animated.umd.js.map +1 -0
- package/icons-animated/esm2015/index.js +5 -0
- package/icons-animated/esm2015/koalarx-ui-icons-animated.js +6 -0
- package/icons-animated/esm2015/lib/icons/downloading/downloading-icon-animated.component.js +28 -0
- package/icons-animated/esm2015/lib/icons/loading/loading-icon-animated.component.js +28 -0
- package/icons-animated/esm2015/lib/icons-animated.component.js +15 -0
- package/icons-animated/esm2015/lib/icons-animated.service.js +29 -0
- package/icons-animated/esm2015/lib/koala-icons-animated.module.js +23 -0
- package/icons-animated/fesm2015/koalarx-ui-icons-animated.js +121 -0
- package/icons-animated/fesm2015/koalarx-ui-icons-animated.js.map +1 -0
- package/icons-animated/index.d.ts +4 -4
- package/icons-animated/koalarx-ui-icons-animated.d.ts +5 -0
- package/icons-animated/koalarx-ui-icons-animated.metadata.json +1 -0
- package/icons-animated/{icons → lib/icons}/downloading/downloading-icon-animated.component.d.ts +0 -3
- package/icons-animated/{icons → lib/icons}/loading/loading-icon-animated.component.d.ts +0 -3
- package/icons-animated/lib/icons-animated.component.d.ts +5 -0
- package/icons-animated/lib/icons-animated.service.d.ts +6 -0
- package/icons-animated/lib/koala-icons-animated.module.d.ts +2 -0
- package/icons-animated/package.json +19 -0
- package/list/README.md +24 -0
- package/list/bundles/koalarx-ui-list.umd.js +882 -0
- package/list/bundles/koalarx-ui-list.umd.js.map +1 -0
- package/list/esm2015/index.js +11 -0
- package/list/esm2015/koalarx-ui-list.js +5 -0
- package/list/esm2015/lib/koala-list-filter.interface.js +2 -0
- package/list/esm2015/lib/koala-list-form-filter.interface.js +2 -0
- package/list/esm2015/lib/koala-list-item-menu-option.interface.js +2 -0
- package/list/esm2015/lib/koala-list-item.interface.js +2 -0
- package/list/esm2015/lib/koala.list-config.interface.js +2 -0
- package/list/esm2015/lib/koala.list.module.js +40 -0
- package/list/esm2015/lib/koala.list.service.js +13 -0
- package/list/esm2015/lib/list-builder/list.builder.js +85 -0
- package/list/esm2015/lib/list.abstract.js +174 -0
- package/list/esm2015/lib/list.component.js +151 -0
- package/list/esm2015/lib/providers/pagination/pagination.provider.js +30 -0
- package/list/fesm2015/koalarx-ui-list.js +481 -0
- package/list/fesm2015/koalarx-ui-list.js.map +1 -0
- package/list/index.d.ts +10 -9
- package/list/koalarx-ui-list.d.ts +4 -0
- package/list/koalarx-ui-list.metadata.json +1 -0
- package/list/{koala-list-filter.interface.d.ts → lib/koala-list-filter.interface.d.ts} +1 -1
- package/list/{koala-list-form-filter.interface.d.ts → lib/koala-list-form-filter.interface.d.ts} +0 -0
- package/list/{koala-list-item-menu-option.interface.d.ts → lib/koala-list-item-menu-option.interface.d.ts} +0 -0
- package/list/{koala-list-item.interface.d.ts → lib/koala-list-item.interface.d.ts} +1 -1
- package/list/{koala.list-config.interface.d.ts → lib/koala.list-config.interface.d.ts} +2 -2
- package/list/lib/koala.list.module.d.ts +2 -0
- package/list/lib/koala.list.service.d.ts +4 -0
- package/list/{list-builder → lib/list-builder}/list.builder.d.ts +1 -1
- package/list/{list.abstract.d.ts → lib/list.abstract.d.ts} +7 -7
- package/list/{list.component.d.ts → lib/list.component.d.ts} +12 -15
- package/{core → list/lib}/providers/pagination/pagination.provider.d.ts +0 -3
- package/list/package.json +19 -0
- package/menu/README.md +24 -0
- package/menu/bundles/koalarx-ui-menu.umd.js +511 -0
- package/menu/bundles/koalarx-ui-menu.umd.js.map +1 -0
- package/menu/esm2015/index.js +6 -0
- package/menu/esm2015/koalarx-ui-menu.js +5 -0
- package/menu/esm2015/lib/koala.menu-module.interface.js +2 -0
- package/menu/esm2015/lib/koala.menu-tool.interface.js +2 -0
- package/menu/esm2015/lib/koala.menu.module.js +25 -0
- package/menu/esm2015/lib/koala.menu.service.js +22 -0
- package/menu/esm2015/lib/menu.component.js +104 -0
- package/menu/fesm2015/koalarx-ui-menu.js +153 -0
- package/menu/fesm2015/koalarx-ui-menu.js.map +1 -0
- package/menu/index.d.ts +5 -5
- package/menu/koalarx-ui-menu.d.ts +4 -0
- package/menu/koalarx-ui-menu.metadata.json +1 -0
- package/menu/{koala.menu-module.interface.d.ts → lib/koala.menu-module.interface.d.ts} +0 -0
- package/menu/{koala.menu-tool.interface.d.ts → lib/koala.menu-tool.interface.d.ts} +0 -0
- package/menu/lib/koala.menu.module.d.ts +2 -0
- package/menu/lib/koala.menu.service.d.ts +7 -0
- package/menu/{menu.component.d.ts → lib/menu.component.d.ts} +4 -6
- package/menu/package.json +19 -0
- package/package.json +3 -12
- package/question/README.md +24 -0
- package/question/bundles/koalarx-ui-question.umd.js +104 -0
- package/question/bundles/koalarx-ui-question.umd.js.map +1 -0
- package/question/esm2015/index.js +5 -0
- package/question/esm2015/koalarx-ui-question.js +5 -0
- package/question/esm2015/lib/dialog-question.component.js +20 -0
- package/question/esm2015/lib/koala-question-config.interface.js +2 -0
- package/question/esm2015/lib/koala.question.module.js +27 -0
- package/question/esm2015/lib/koala.question.service.js +28 -0
- package/question/fesm2015/koalarx-ui-question.js +77 -0
- package/question/fesm2015/koalarx-ui-question.js.map +1 -0
- package/question/index.d.ts +4 -4
- package/question/koalarx-ui-question.d.ts +4 -0
- package/question/koalarx-ui-question.metadata.json +1 -0
- package/question/lib/dialog-question.component.d.ts +7 -0
- package/question/{koala-question-config.interface.d.ts → lib/koala-question-config.interface.d.ts} +1 -1
- package/question/lib/koala.question.module.d.ts +2 -0
- package/question/{koala.question.service.d.ts → lib/koala.question.service.d.ts} +1 -4
- package/question/package.json +19 -0
- package/snackbar/README.md +24 -0
- package/snackbar/bundles/koalarx-ui-snackbar.umd.js +93 -0
- package/snackbar/bundles/koalarx-ui-snackbar.umd.js.map +1 -0
- package/snackbar/esm2015/index.js +5 -0
- package/snackbar/esm2015/koalarx-ui-snackbar.js +5 -0
- package/snackbar/esm2015/lib/koala.snackbar.component.js +20 -0
- package/snackbar/esm2015/lib/koala.snackbar.interface.js +2 -0
- package/snackbar/esm2015/lib/koala.snackbar.module.js +26 -0
- package/snackbar/esm2015/lib/koala.snackbar.service.js +35 -0
- package/snackbar/fesm2015/koalarx-ui-snackbar.js +81 -0
- package/snackbar/fesm2015/koalarx-ui-snackbar.js.map +1 -0
- package/snackbar/index.d.ts +4 -4
- package/snackbar/koalarx-ui-snackbar.d.ts +4 -0
- package/snackbar/koalarx-ui-snackbar.metadata.json +1 -0
- package/snackbar/{koala.snackbar.component.d.ts → lib/koala.snackbar.component.d.ts} +0 -3
- package/snackbar/{koala.snackbar.interface.d.ts → lib/koala.snackbar.interface.d.ts} +0 -0
- package/snackbar/lib/koala.snackbar.module.d.ts +2 -0
- package/snackbar/{koala.snackbar.service.d.ts → lib/koala.snackbar.service.d.ts} +0 -3
- package/snackbar/package.json +19 -0
- package/README.md +0 -9
- package/alert/dialog-alert.component.d.ts +0 -10
- package/alert/koala.alert.module.d.ts +0 -12
- package/bundles/koalarx-ui.umd.js +0 -9165
- package/bundles/koalarx-ui.umd.js.map +0 -1
- package/button/button.component.d.ts +0 -16
- package/button/koala.button.module.d.ts +0 -12
- package/core/directives/koala-autofocus.directive.d.ts +0 -10
- package/core/loader/loader-bar-page.component.d.ts +0 -8
- package/core/ngx-koala.module.d.ts +0 -12
- package/core/page/koala.page.module.d.ts +0 -21
- package/core/router/koala.parameter-hash-location-stategy.d.ts +0 -7
- package/dialog/dialog.component.d.ts +0 -11
- package/dialog/koala.dialog.module.d.ts +0 -11
- package/dynamic-component/koala-dynamic-component.directive.d.ts +0 -8
- package/dynamic-component/koala-dynamic-component.module.d.ts +0 -8
- package/esm2015/alert/dialog-alert.component.js +0 -109
- package/esm2015/alert/index.js +0 -10
- package/esm2015/alert/koala.alert-config.interface.js +0 -2
- package/esm2015/alert/koala.alert.enum.js +0 -9
- package/esm2015/alert/koala.alert.module.js +0 -49
- package/esm2015/alert/koala.alert.service.js +0 -19
- package/esm2015/alert/koala.request-code-to-alert-enum.translate.js +0 -18
- package/esm2015/button/button.component.js +0 -113
- package/esm2015/button/index.js +0 -6
- package/esm2015/button/koala.button.module.js +0 -43
- package/esm2015/core/directives/koala-autofocus.directive.js +0 -25
- package/esm2015/core/environments/koalaEnvironment.js +0 -4
- package/esm2015/core/form.abstract.js +0 -42
- package/esm2015/core/index.js +0 -61
- package/esm2015/core/loader/loader-bar-page.component.js +0 -38
- package/esm2015/core/loader/loader-bar-page.interface.js +0 -2
- package/esm2015/core/loader/loader-config.interface.js +0 -2
- package/esm2015/core/mask-options.js +0 -4
- package/esm2015/core/ngx-koala.module.js +0 -51
- package/esm2015/core/page/koala-language.helper.js +0 -114
- package/esm2015/core/page/koala-oauth2-config.interface.js +0 -2
- package/esm2015/core/page/koala-page-pallet-colors.interface.js +0 -2
- package/esm2015/core/page/koala.page.module.js +0 -79
- package/esm2015/core/page/koala.user-menu-options.interface.js +0 -2
- package/esm2015/core/page/notifications/koala.notification.interface.js +0 -2
- package/esm2015/core/page/notifications/notification.component.js +0 -127
- package/esm2015/core/page/page.component.js +0 -627
- package/esm2015/core/providers/pagination/pagination.provider.js +0 -32
- package/esm2015/core/router/koala.parameter-hash-location-stategy.js +0 -19
- package/esm2015/core/services/api-requester/factory/koala.response.factory.js +0 -48
- package/esm2015/core/services/api-requester/helpers/error/koala.client.error.js +0 -3
- package/esm2015/core/services/api-requester/helpers/error/koala.errors.helper.js +0 -46
- package/esm2015/core/services/api-requester/helpers/error/koala.not-found.error.js +0 -3
- package/esm2015/core/services/api-requester/helpers/error/koala.success.error.js +0 -3
- package/esm2015/core/services/api-requester/helpers/error/koala.unhautorized.error.js +0 -3
- package/esm2015/core/services/api-requester/helpers/service/koala.request-header.helper.js +0 -15
- package/esm2015/core/services/api-requester/koala.api-requester.base.js +0 -70
- package/esm2015/core/services/csv/koala.csv.service.js +0 -36
- package/esm2015/core/services/loader/koala.loader.service.js +0 -34
- package/esm2015/core/services/openid/koala.oauth.config.js +0 -33
- package/esm2015/core/services/openid/koala.oauth2.service.js +0 -194
- package/esm2015/core/services/request/koala.request.service.js +0 -53
- package/esm2015/core/services/token/koala.token.service.js +0 -53
- package/esm2015/core/services/token/token.factory.js +0 -31
- package/esm2015/core/services/xlsx/koala.xlsx-config.interface.js +0 -2
- package/esm2015/core/services/xlsx/koala.xlsx.service.js +0 -63
- package/esm2015/dialog/dialog.component.js +0 -72
- package/esm2015/dialog/index.js +0 -7
- package/esm2015/dialog/koala.dialog-template.interface.js +0 -2
- package/esm2015/dialog/koala.dialog.module.js +0 -39
- package/esm2015/dialog/koala.dialog.service.js +0 -57
- package/esm2015/dynamic-component/index.js +0 -9
- package/esm2015/dynamic-component/koala-dynamic-component.component.js +0 -2
- package/esm2015/dynamic-component/koala-dynamic-component.directive.js +0 -16
- package/esm2015/dynamic-component/koala-dynamic-component.factory.js +0 -44
- package/esm2015/dynamic-component/koala-dynamic-component.js +0 -7
- package/esm2015/dynamic-component/koala-dynamic-component.module.js +0 -24
- package/esm2015/file-button/file-button.component.js +0 -183
- package/esm2015/file-button/index.js +0 -8
- package/esm2015/file-button/koala.btn-file.service.js +0 -28
- package/esm2015/file-button/koala.file-button.module.js +0 -39
- package/esm2015/file-button/koala.file.interface.js +0 -2
- package/esm2015/folder-page/folder.component.js +0 -157
- package/esm2015/folder-page/index.js +0 -6
- package/esm2015/folder-page/koala-navigate-history.interface.js +0 -2
- package/esm2015/folder-page/koala.folder-page.module.js +0 -43
- package/esm2015/form/btn-submit/btn-submit.component.js +0 -110
- package/esm2015/form/dynamic-form/builder/dynamic-form.builder.js +0 -138
- package/esm2015/form/dynamic-form/builder/fields/autocomplete.builder.js +0 -34
- package/esm2015/form/dynamic-form/builder/fields/field.base.js +0 -147
- package/esm2015/form/dynamic-form/builder/fields/field.builder.js +0 -7
- package/esm2015/form/dynamic-form/builder/fields/more-items.builder.js +0 -57
- package/esm2015/form/dynamic-form/dynamic-form.component.js +0 -1861
- package/esm2015/form/dynamic-form/interfaces/koala-custom-validator-fn.interface.js +0 -2
- package/esm2015/form/dynamic-form/interfaces/koala.dynamic-autocomplete-options.interface.js +0 -2
- package/esm2015/form/dynamic-form/interfaces/koala.dynamic-form-autocomplete-multiple-config.interface.js +0 -2
- package/esm2015/form/dynamic-form/interfaces/koala.dynamic-form-config.interface.js +0 -2
- package/esm2015/form/dynamic-form/interfaces/koala.dynamic-form-field.interface.js +0 -2
- package/esm2015/form/dynamic-form/interfaces/koala.dynamic-form-more-itens-show-field-config.interface.js +0 -2
- package/esm2015/form/dynamic-form/interfaces/koala.dynamic-form-show-field.interface.js +0 -2
- package/esm2015/form/dynamic-form/interfaces/koala.dynamic-set-value.interface.js +0 -2
- package/esm2015/form/dynamic-form/validators/autocomplete-selected.validator.js +0 -10
- package/esm2015/form/dynamic-form/validators/cnpj.validator.js +0 -10
- package/esm2015/form/dynamic-form/validators/cpf.validator.js +0 -10
- package/esm2015/form/dynamic-form/validators/date-max.validator.js +0 -11
- package/esm2015/form/dynamic-form/validators/date-min.validator.js +0 -11
- package/esm2015/form/dynamic-form/validators/koala-dynamic-form-validator-result.helper.js +0 -10
- package/esm2015/form/dynamic-form/validators/validation.helper.js +0 -86
- package/esm2015/form/index.js +0 -21
- package/esm2015/form/koala.form.module.js +0 -135
- package/esm2015/form/show-invalid-fields/show-invalid-fields.js +0 -9
- package/esm2015/icon/icon.component.js +0 -458
- package/esm2015/icon/index.js +0 -6
- package/esm2015/icon/koala.icon.module.js +0 -27
- package/esm2015/icons-animated/icons/downloading/downloading-icon-animated.component.js +0 -40
- package/esm2015/icons-animated/icons/loading/loading-icon-animated.component.js +0 -58
- package/esm2015/icons-animated/icons-animated.component.js +0 -48
- package/esm2015/icons-animated/icons-animated.service.js +0 -32
- package/esm2015/icons-animated/index.js +0 -8
- package/esm2015/icons-animated/koala-icons-animated.module.js +0 -33
- package/esm2015/koalarx-ui.js +0 -5
- package/esm2015/list/index.js +0 -13
- package/esm2015/list/koala-list-filter.interface.js +0 -2
- package/esm2015/list/koala-list-form-filter.interface.js +0 -2
- package/esm2015/list/koala-list-item-menu-option.interface.js +0 -2
- package/esm2015/list/koala-list-item.interface.js +0 -2
- package/esm2015/list/koala.list-config.interface.js +0 -2
- package/esm2015/list/koala.list.module.js +0 -67
- package/esm2015/list/koala.list.service.js +0 -15
- package/esm2015/list/list-builder/list.builder.js +0 -85
- package/esm2015/list/list.abstract.js +0 -161
- package/esm2015/list/list.component.js +0 -498
- package/esm2015/menu/index.js +0 -9
- package/esm2015/menu/koala.menu-module.interface.js +0 -2
- package/esm2015/menu/koala.menu-tool.interface.js +0 -2
- package/esm2015/menu/koala.menu.module.js +0 -39
- package/esm2015/menu/koala.menu.service.js +0 -24
- package/esm2015/menu/menu.component.js +0 -289
- package/esm2015/public-api.js +0 -18
- package/esm2015/question/dialog-question.component.js +0 -72
- package/esm2015/question/index.js +0 -8
- package/esm2015/question/koala-question-config.interface.js +0 -2
- package/esm2015/question/koala.question.module.js +0 -43
- package/esm2015/question/koala.question.service.js +0 -26
- package/esm2015/snackbar/index.js +0 -8
- package/esm2015/snackbar/koala.snackbar.component.js +0 -48
- package/esm2015/snackbar/koala.snackbar.interface.js +0 -2
- package/esm2015/snackbar/koala.snackbar.module.js +0 -39
- package/esm2015/snackbar/koala.snackbar.service.js +0 -35
- package/fesm2015/koalarx-ui.js +0 -7726
- package/fesm2015/koalarx-ui.js.map +0 -1
- package/file-button/file-button.component.d.ts +0 -29
- package/file-button/koala.file-button.module.d.ts +0 -11
- package/folder-page/folder.component.d.ts +0 -20
- package/folder-page/koala.folder-page.module.d.ts +0 -12
- package/form/koala.form.module.d.ts +0 -25
- package/icon/koala.icon.module.d.ts +0 -8
- package/icons-animated/icons-animated.component.d.ts +0 -8
- package/icons-animated/icons-animated.service.d.ts +0 -9
- package/icons-animated/koala-icons-animated.module.d.ts +0 -10
- package/koalarx-ui.d.ts +0 -5
- package/list/koala.list.module.d.ts +0 -16
- package/list/koala.list.service.d.ts +0 -7
- package/menu/koala.menu.module.d.ts +0 -11
- package/menu/koala.menu.service.d.ts +0 -9
- package/public-api.d.ts +0 -14
- package/question/dialog-question.component.d.ts +0 -10
- package/question/koala.question.module.d.ts +0 -12
- package/snackbar/koala.snackbar.module.d.ts +0 -10
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
import { Injectable } from '@angular/core';
|
|
3
|
+
import { BehaviorSubject } from 'rxjs';
|
|
4
|
+
import { HttpClient } from '@angular/common/http';
|
|
5
|
+
import { koala } from "@koalarx/utils";
|
|
6
|
+
import { Router } from "@angular/router";
|
|
7
|
+
import { KoalaTokenService } from "../token/koala.token.service";
|
|
8
|
+
import { KoalaOauthConfig } from "./koala.oauth.config";
|
|
9
|
+
import { KlDelay } from "@koalarx/utils/dist/utils/KlDelay";
|
|
10
|
+
const STATE_STORAGE_NAME = 'koala_openid_state';
|
|
11
|
+
export class KoalaOAuth2Service {
|
|
12
|
+
constructor(http, router, tokenService) {
|
|
13
|
+
this.http = http;
|
|
14
|
+
this.router = router;
|
|
15
|
+
this.tokenService = tokenService;
|
|
16
|
+
this.events = new BehaviorSubject(null);
|
|
17
|
+
this.token = {};
|
|
18
|
+
this.generateState();
|
|
19
|
+
}
|
|
20
|
+
ngOnDestroy() {
|
|
21
|
+
if (this.eventSubscription) {
|
|
22
|
+
this.eventSubscription.unsubscribe();
|
|
23
|
+
}
|
|
24
|
+
if (this.refreshTokenInterval) {
|
|
25
|
+
clearInterval(this.refreshTokenInterval);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
hasOpenIdConfig() {
|
|
29
|
+
return !!this.openIdOptions;
|
|
30
|
+
}
|
|
31
|
+
configure(options) {
|
|
32
|
+
this.config = options;
|
|
33
|
+
}
|
|
34
|
+
loadDiscoveryDocumentAndTryLogin() {
|
|
35
|
+
if (this.eventSubscription) {
|
|
36
|
+
this.eventSubscription.unsubscribe();
|
|
37
|
+
}
|
|
38
|
+
this.eventSubscription = this.events.subscribe(event => {
|
|
39
|
+
if (event === 'authenticate') {
|
|
40
|
+
this.generateState();
|
|
41
|
+
localStorage.setItem(STATE_STORAGE_NAME, this.state);
|
|
42
|
+
window.location.href = `${this.openIdOptions.authorization_endpoint}?response_type=${this.config.responseType}&client_id=${this.config.clientId}&state=${this.state}&redirect_uri=${this.config.redirectUri}&scope=${this.config.scope}`;
|
|
43
|
+
}
|
|
44
|
+
else if (event === 'getToken') {
|
|
45
|
+
const urlParams = new URLSearchParams(window.location.search);
|
|
46
|
+
const state = urlParams.get('state');
|
|
47
|
+
if (state === this.state) {
|
|
48
|
+
const code = urlParams.get('code');
|
|
49
|
+
this.getToken(code);
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
this.logout();
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
else if (event === 'getClaims' || (event === 'refreshToken' && !this.claims)) {
|
|
56
|
+
this.getClaims();
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
return new Promise((resolve, reject) => {
|
|
60
|
+
this.http.get(`${this.config.issuer}/.well-known/openid-configuration`).subscribe(options => {
|
|
61
|
+
this.openIdOptions = options;
|
|
62
|
+
if (window.location.href.indexOf(`state=${this.state}`) >= 0) {
|
|
63
|
+
this.events.next('getToken');
|
|
64
|
+
}
|
|
65
|
+
else if (!this.tokenService.getOAuth2Token()) {
|
|
66
|
+
this.events.next('loadedConfig');
|
|
67
|
+
}
|
|
68
|
+
resolve(true);
|
|
69
|
+
}, e => {
|
|
70
|
+
console.error(e);
|
|
71
|
+
this.events.next('errorLoadConfig');
|
|
72
|
+
reject(e);
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
initLoginFlow(name) {
|
|
77
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
78
|
+
if (name) {
|
|
79
|
+
KoalaOauthConfig.setConfig(name);
|
|
80
|
+
yield KlDelay.waitFor(1000);
|
|
81
|
+
}
|
|
82
|
+
this.events.next('authenticate');
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
getIdentityClaims() {
|
|
86
|
+
return this.claims;
|
|
87
|
+
}
|
|
88
|
+
getAccessToken() {
|
|
89
|
+
return this.token.access_token;
|
|
90
|
+
}
|
|
91
|
+
getIdToken() {
|
|
92
|
+
return this.token.id_token;
|
|
93
|
+
}
|
|
94
|
+
getRefreshToken() {
|
|
95
|
+
return this.token.refresh_token;
|
|
96
|
+
}
|
|
97
|
+
getAccessTokenExpiration() {
|
|
98
|
+
const expires_in = new Date();
|
|
99
|
+
expires_in.setSeconds(this.token.expires_in);
|
|
100
|
+
return expires_in.toString();
|
|
101
|
+
}
|
|
102
|
+
getCode() {
|
|
103
|
+
return this.code;
|
|
104
|
+
}
|
|
105
|
+
logout() {
|
|
106
|
+
const logoutInterval = setInterval(() => {
|
|
107
|
+
if (this.hasOpenIdConfig()) {
|
|
108
|
+
if (this.openIdOptions.end_session_endpoint) {
|
|
109
|
+
this.claims = null;
|
|
110
|
+
this.token = null;
|
|
111
|
+
const iframeLogout = document.createElement('iframe');
|
|
112
|
+
iframeLogout.style.display = 'none';
|
|
113
|
+
iframeLogout.src = this.openIdOptions.end_session_endpoint;
|
|
114
|
+
document.querySelector('body').appendChild(iframeLogout);
|
|
115
|
+
}
|
|
116
|
+
this.events.next('logout');
|
|
117
|
+
clearInterval(logoutInterval);
|
|
118
|
+
}
|
|
119
|
+
}, 300);
|
|
120
|
+
}
|
|
121
|
+
initRefreshTokenInterval(code, refreshToken) {
|
|
122
|
+
if (!this.refreshTokenInterval) {
|
|
123
|
+
this.refreshTokenInterval = setInterval(() => {
|
|
124
|
+
const refreshTokenDate = new Date();
|
|
125
|
+
refreshTokenDate.setMinutes(refreshTokenDate.getMinutes() + 1);
|
|
126
|
+
const token = this.tokenService.getOAuth2Token();
|
|
127
|
+
if (token) {
|
|
128
|
+
const expires_in = token.expired;
|
|
129
|
+
if (expires_in) {
|
|
130
|
+
if (new Date(expires_in) <= refreshTokenDate) {
|
|
131
|
+
this.getToken(code, refreshToken);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}, 1000);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
getToken(code, refreshToken) {
|
|
139
|
+
var _a, _b;
|
|
140
|
+
if (refreshToken) {
|
|
141
|
+
clearInterval(this.refreshTokenInterval);
|
|
142
|
+
this.refreshTokenInterval = null;
|
|
143
|
+
}
|
|
144
|
+
const formData = new URLSearchParams();
|
|
145
|
+
let data = koala({
|
|
146
|
+
grant_type: (refreshToken ? 'refresh_token' : 'authorization_code'),
|
|
147
|
+
code,
|
|
148
|
+
redirect_uri: this.config.redirectUri,
|
|
149
|
+
client_id: this.config.clientId
|
|
150
|
+
}).object().merge((_a = this.config.customQueryParams) !== null && _a !== void 0 ? _a : {}).getValue();
|
|
151
|
+
if (refreshToken) {
|
|
152
|
+
data = koala(data).object().merge({ refresh_token: refreshToken }).getValue();
|
|
153
|
+
}
|
|
154
|
+
if (!this.code) {
|
|
155
|
+
this.code = code;
|
|
156
|
+
}
|
|
157
|
+
Object.keys(data).forEach(indexName => {
|
|
158
|
+
formData.append(indexName, data[indexName]);
|
|
159
|
+
});
|
|
160
|
+
this.http.post((_b = this.config.endpointToken) !== null && _b !== void 0 ? _b : this.openIdOptions.token_endpoint, formData.toString(), {
|
|
161
|
+
headers: {
|
|
162
|
+
'Content-Type': 'application/x-www-form-urlencoded'
|
|
163
|
+
}
|
|
164
|
+
}).subscribe((token) => {
|
|
165
|
+
this.token = token;
|
|
166
|
+
this.events.next((refreshToken ? 'refreshToken' : 'getClaims'));
|
|
167
|
+
}, () => this.events.next('getTokenError'));
|
|
168
|
+
}
|
|
169
|
+
getClaims() {
|
|
170
|
+
var _a;
|
|
171
|
+
this.http.get((_a = this.config.endpointClaims) !== null && _a !== void 0 ? _a : this.openIdOptions.userinfo_endpoint, {
|
|
172
|
+
headers: {
|
|
173
|
+
Authorization: `Bearer ${this.getAccessToken()}`
|
|
174
|
+
}
|
|
175
|
+
}).subscribe(userInfo => {
|
|
176
|
+
this.claims = userInfo;
|
|
177
|
+
this.state = null;
|
|
178
|
+
localStorage.removeItem(STATE_STORAGE_NAME);
|
|
179
|
+
this.events.next(this.events.getValue() === 'refreshToken' ? 'refreshToken' : 'userAuthenticated');
|
|
180
|
+
}, () => this.events.next('loadedConfig'));
|
|
181
|
+
}
|
|
182
|
+
generateState() {
|
|
183
|
+
this.state = localStorage.getItem(STATE_STORAGE_NAME) ?
|
|
184
|
+
localStorage.getItem(STATE_STORAGE_NAME) :
|
|
185
|
+
koala('').string().random(30, true, true, true).getValue();
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
KoalaOAuth2Service.decorators = [
|
|
189
|
+
{ type: Injectable }
|
|
190
|
+
];
|
|
191
|
+
KoalaOAuth2Service.ctorParameters = () => [
|
|
192
|
+
{ type: HttpClient },
|
|
193
|
+
{ type: Router },
|
|
194
|
+
{ type: KoalaTokenService }
|
|
195
|
+
];
|
|
196
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia29hbGEub2F1dGgyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvc2VydmljZXMvb3BlbmlkL2tvYWxhLm9hdXRoMi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQXlENUQsTUFBTSxrQkFBa0IsR0FBRyxvQkFBb0IsQ0FBQztBQUdoRCxNQUFNLE9BQU8sa0JBQWtCO0lBVzdCLFlBQ1UsSUFBZ0IsRUFDaEIsTUFBYyxFQUNkLFlBQStCO1FBRi9CLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGlCQUFZLEdBQVosWUFBWSxDQUFtQjtRQWJsQyxXQUFNLEdBQUcsSUFBSSxlQUFlLENBQVksSUFBSSxDQUFDLENBQUM7UUFNN0MsVUFBSyxHQUFTLEVBQUUsQ0FBQztRQVN2QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUMxQixJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLENBQUM7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QUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLEtBQUssY0FBYyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDckcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVPLGFBQWE7UUFDbkIsSUFBSSxDQUFDLEtBQUssR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQztZQUMxQyxZQUFZLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQztZQUMxQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzFFLENBQUM7OztZQXpNRixVQUFVOzs7WUFoRUYsVUFBVTtZQUVWLE1BQU07WUFDTixpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsga29hbGEgfSBmcm9tIFwiQGtvYWxhcngvdXRpbHNcIjtcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcbmltcG9ydCB7IEtvYWxhVG9rZW5TZXJ2aWNlIH0gZnJvbSBcIi4uL3Rva2VuL2tvYWxhLnRva2VuLnNlcnZpY2VcIjtcbmltcG9ydCB7IEtvYWxhT2F1dGhDb25maWcgfSBmcm9tIFwiLi9rb2FsYS5vYXV0aC5jb25maWdcIjtcbmltcG9ydCB7IEtsRGVsYXkgfSBmcm9tIFwiQGtvYWxhcngvdXRpbHMvZGlzdC91dGlscy9LbERlbGF5XCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgS29hbGFPQXV0aDJDb25maWcge1xuICByZWRpcmVjdFVyaTogc3RyaW5nO1xuICByZXNwb25zZVR5cGU6IHN0cmluZztcbiAgY2xpZW50SWQ6IHN0cmluZztcbiAgc2NvcGU6IHN0cmluZztcbiAgaXNzdWVyOiBzdHJpbmc7XG4gIHJlZGlyZWN0VXJpQWZ0ZXJBdXRoPzogc3RyaW5nO1xuICBjdXN0b21RdWVyeVBhcmFtcz86IG9iamVjdDtcbiAgZW5kcG9pbnRUb2tlbj86IHN0cmluZztcbiAgZW5kcG9pbnRDbGFpbXM/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgS29hbGFPcGVuSWRDb25maWcge1xuICBhdXRob3JpemF0aW9uX2VuZHBvaW50OiBzdHJpbmc7XG4gIGNoZWNrX3Nlc3Npb25faWZyYW1lOiBzdHJpbmc7XG4gIGNsYWltX3R5cGVzX3N1cHBvcnRlZDogc3RyaW5nW107XG4gIGNsYWltc19wYXJhbWV0ZXJfc3VwcG9ydGVkOiBib29sZWFuO1xuICBjbGFpbXNfc3VwcG9ydGVkOiBzdHJpbmdbXTtcbiAgY29kZV9jaGFsbGVuZ2VfbWV0aG9kc19zdXBwb3J0ZWQ6IHN0cmluZ1tdO1xuICBlbmRfc2Vzc2lvbl9lbmRwb2ludDogc3RyaW5nO1xuICBncmFudF90eXBlc19zdXBwb3J0ZWQ6IHN0cmluZ1tdO1xuICBpZF90b2tlbl9lbmNyeXB0aW9uX2FsZ192YWx1ZXNfc3VwcG9ydGVkOiBzdHJpbmdbXTtcbiAgaWRfdG9rZW5fZW5jcnlwdGlvbl9lbmNfdmFsdWVzX3N1cHBvcnRlZDogc3RyaW5nW107XG4gIGlkX3Rva2VuX3NpZ25pbmdfYWxnX3ZhbHVlc19zdXBwb3J0ZWQ6IHN0cmluZ1tdO1xuICBpbnRyb3NwZWN0aW9uX2VuZHBvaW50OiBzdHJpbmc7XG4gIGlzc3Vlcjogc3RyaW5nO1xuICBqd2tzX3VyaTogc3RyaW5nO1xuICByZWdpc3RyYXRpb25fZW5kcG9pbnQ6IHN0cmluZztcbiAgcmVxdWVzdF9vYmplY3Rfc2lnbmluZ19hbGdfdmFsdWVzX3N1cHBvcnRlZDogc3RyaW5nW107XG4gIHJlcXVlc3RfcGFyYW1ldGVyX3N1cHBvcnRlZDogYm9vbGVhbjtcbiAgcmVxdWVzdF91cmlfcGFyYW1ldGVyX3N1cHBvcnRlZDogYm9vbGVhbjtcbiAgcmVzcG9uc2VfbW9kZXNfc3VwcG9ydGVkOiBzdHJpbmdbXTtcbiAgcmVzcG9uc2VfdHlwZXNfc3VwcG9ydGVkOiBzdHJpbmdbXTtcbiAgc2NvcGVzX3N1cHBvcnRlZDogc3RyaW5nW107XG4gIHN1YmplY3RfdHlwZXNfc3VwcG9ydGVkOiBzdHJpbmdbXTtcbiAgdGxzX2NsaWVudF9jZXJ0aWZpY2F0ZV9ib3VuZF9hY2Nlc3NfdG9rZW5zOiBib29sZWFuO1xuICB0b2tlbl9lbmRwb2ludDogc3RyaW5nO1xuICB0b2tlbl9lbmRwb2ludF9hdXRoX21ldGhvZHNfc3VwcG9ydGVkOiBzdHJpbmdbXTtcbiAgdG9rZW5fZW5kcG9pbnRfYXV0aF9zaWduaW5nX2FsZ192YWx1ZXNfc3VwcG9ydGVkOiBzdHJpbmdbXTtcbiAgdG9rZW5faW50cm9zcGVjdGlvbl9lbmRwb2ludDogc3RyaW5nO1xuICB1c2VyaW5mb19lbmRwb2ludDogc3RyaW5nO1xuICB1c2VyaW5mb19zaWduaW5nX2FsZ192YWx1ZXNfc3VwcG9ydGVkOiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IHR5cGUgRXZlbnRUeXBlID1cbiAgJ2xvYWRlZENvbmZpZydcbiAgfCAnZ2V0VG9rZW4nXG4gIHwgJ2dldFRva2VuRXJyb3InXG4gIHwgJ3JlZnJlc2hUb2tlbidcbiAgfCAnZ2V0Q2xhaW1zJ1xuICB8ICd1c2VyQXV0aGVudGljYXRlZCdcbiAgfCAnYXV0aGVudGljYXRlJ1xuICB8ICdsb2dvdXQnXG4gIHwgJ2Vycm9yTG9hZENvbmZpZyc7XG5cbmNvbnN0IFNUQVRFX1NUT1JBR0VfTkFNRSA9ICdrb2FsYV9vcGVuaWRfc3RhdGUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgS29hbGFPQXV0aDJTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHVibGljIGV2ZW50cyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RXZlbnRUeXBlPihudWxsKTtcbiAgcHJpdmF0ZSBjb25maWc6IEtvYWxhT0F1dGgyQ29uZmlnO1xuICBwcml2YXRlIG9wZW5JZE9wdGlvbnM6IEtvYWxhT3BlbklkQ29uZmlnO1xuICBwcml2YXRlIGV2ZW50U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgc3RhdGU/OiBzdHJpbmc7XG4gIHByaXZhdGUgY29kZT86IHN0cmluZztcbiAgcHJpdmF0ZSB0b2tlbj86IGFueSA9IHt9O1xuICBwcml2YXRlIGNsYWltcz86IGFueTtcbiAgcHJpdmF0ZSByZWZyZXNoVG9rZW5JbnRlcnZhbD86IGFueTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHRva2VuU2VydmljZTogS29hbGFUb2tlblNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5nZW5lcmF0ZVN0YXRlKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy5ldmVudFN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5ldmVudFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5yZWZyZXNoVG9rZW5JbnRlcnZhbCkge1xuICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLnJlZnJlc2hUb2tlbkludGVydmFsKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaGFzT3BlbklkQ29uZmlnKCkge1xuICAgIHJldHVybiAhIXRoaXMub3BlbklkT3B0aW9ucztcbiAgfVxuXG4gIHB1YmxpYyBjb25maWd1cmUob3B0aW9uczogS29hbGFPQXV0aDJDb25maWcpIHtcbiAgICB0aGlzLmNvbmZpZyA9IG9wdGlvbnM7XG4gIH1cblxuICBwdWJsaWMgbG9hZERpc2NvdmVyeURvY3VtZW50QW5kVHJ5TG9naW4oKSB7XG5cbiAgICBpZiAodGhpcy5ldmVudFN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5ldmVudFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICB0aGlzLmV2ZW50U3Vic2NyaXB0aW9uID0gdGhpcy5ldmVudHMuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgIGlmIChldmVudCA9PT0gJ2F1dGhlbnRpY2F0ZScpIHtcbiAgICAgICAgdGhpcy5nZW5lcmF0ZVN0YXRlKCk7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFNUQVRFX1NUT1JBR0VfTkFNRSwgdGhpcy5zdGF0ZSk7XG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gYCR7dGhpcy5vcGVuSWRPcHRpb25zLmF1dGhvcml6YXRpb25fZW5kcG9pbnR9P3Jlc3BvbnNlX3R5cGU9JHt0aGlzLmNvbmZpZy5yZXNwb25zZVR5cGV9JmNsaWVudF9pZD0ke3RoaXMuY29uZmlnLmNsaWVudElkfSZzdGF0ZT0ke3RoaXMuc3RhdGV9JnJlZGlyZWN0X3VyaT0ke3RoaXMuY29uZmlnLnJlZGlyZWN0VXJpfSZzY29wZT0ke3RoaXMuY29uZmlnLnNjb3BlfWA7XG4gICAgICB9IGVsc2UgaWYgKGV2ZW50ID09PSAnZ2V0VG9rZW4nKSB7XG4gICAgICAgIGNvbnN0IHVybFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7XG4gICAgICAgIGNvbnN0IHN0YXRlID0gdXJsUGFyYW1zLmdldCgnc3RhdGUnKTtcbiAgICAgICAgaWYgKHN0YXRlID09PSB0aGlzLnN0YXRlKSB7XG4gICAgICAgICAgY29uc3QgY29kZSA9IHVybFBhcmFtcy5nZXQoJ2NvZGUnKTtcbiAgICAgICAgICB0aGlzLmdldFRva2VuKGNvZGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMubG9nb3V0KCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoZXZlbnQgPT09ICdnZXRDbGFpbXMnIHx8IChldmVudCA9PT0gJ3JlZnJlc2hUb2tlbicgJiYgIXRoaXMuY2xhaW1zKSkge1xuICAgICAgICB0aGlzLmdldENsYWltcygpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMuaHR0cC5nZXQ8S29hbGFPcGVuSWRDb25maWc+KGAke3RoaXMuY29uZmlnLmlzc3Vlcn0vLndlbGwta25vd24vb3BlbmlkLWNvbmZpZ3VyYXRpb25gKS5zdWJzY3JpYmUob3B0aW9ucyA9PiB7XG4gICAgICAgIHRoaXMub3BlbklkT3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgICAgIGlmICh3aW5kb3cubG9jYXRpb24uaHJlZi5pbmRleE9mKGBzdGF0ZT0ke3RoaXMuc3RhdGV9YCkgPj0gMCkge1xuICAgICAgICAgIHRoaXMuZXZlbnRzLm5leHQoJ2dldFRva2VuJyk7XG4gICAgICAgIH0gZWxzZSBpZiAoIXRoaXMudG9rZW5TZXJ2aWNlLmdldE9BdXRoMlRva2VuKCkpIHtcbiAgICAgICAgICB0aGlzLmV2ZW50cy5uZXh0KCdsb2FkZWRDb25maWcnKTtcbiAgICAgICAgfVxuICAgICAgICByZXNvbHZlKHRydWUpO1xuICAgICAgfSwgZSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICAgIHRoaXMuZXZlbnRzLm5leHQoJ2Vycm9yTG9hZENvbmZpZycpO1xuICAgICAgICByZWplY3QoZSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBpbml0TG9naW5GbG93KG5hbWU/OiBzdHJpbmcpIHtcbiAgICBpZiAobmFtZSkge1xuICAgICAgS29hbGFPYXV0aENvbmZpZy5zZXRDb25maWcobmFtZSk7XG4gICAgICBhd2FpdCBLbERlbGF5LndhaXRGb3IoMTAwMCk7XG4gICAgfVxuXG4gICAgdGhpcy5ldmVudHMubmV4dCgnYXV0aGVudGljYXRlJyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0SWRlbnRpdHlDbGFpbXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuY2xhaW1zO1xuICB9XG5cbiAgcHVibGljIGdldEFjY2Vzc1Rva2VuKCkge1xuICAgIHJldHVybiB0aGlzLnRva2VuLmFjY2Vzc190b2tlbjtcbiAgfVxuXG4gIHB1YmxpYyBnZXRJZFRva2VuKCkge1xuICAgIHJldHVybiB0aGlzLnRva2VuLmlkX3Rva2VuO1xuICB9XG5cbiAgcHVibGljIGdldFJlZnJlc2hUb2tlbigpIHtcbiAgICByZXR1cm4gdGhpcy50b2tlbi5yZWZyZXNoX3Rva2VuO1xuICB9XG5cbiAgcHVibGljIGdldEFjY2Vzc1Rva2VuRXhwaXJhdGlvbigpIHtcbiAgICBjb25zdCBleHBpcmVzX2luID0gbmV3IERhdGUoKTtcbiAgICBleHBpcmVzX2luLnNldFNlY29uZHModGhpcy50b2tlbi5leHBpcmVzX2luKTtcbiAgICByZXR1cm4gZXhwaXJlc19pbi50b1N0cmluZygpO1xuICB9XG5cbiAgcHVibGljIGdldENvZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29kZTtcbiAgfVxuXG4gIHB1YmxpYyBsb2dvdXQoKSB7XG4gICAgY29uc3QgbG9nb3V0SW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5oYXNPcGVuSWRDb25maWcoKSkge1xuICAgICAgICBpZiAodGhpcy5vcGVuSWRPcHRpb25zLmVuZF9zZXNzaW9uX2VuZHBvaW50KSB7XG4gICAgICAgICAgdGhpcy5jbGFpbXMgPSBudWxsO1xuICAgICAgICAgIHRoaXMudG9rZW4gPSBudWxsO1xuICAgICAgICAgIGNvbnN0IGlmcmFtZUxvZ291dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpO1xuICAgICAgICAgIGlmcmFtZUxvZ291dC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICAgIGlmcmFtZUxvZ291dC5zcmMgPSB0aGlzLm9wZW5JZE9wdGlvbnMuZW5kX3Nlc3Npb25fZW5kcG9pbnQ7XG4gICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignYm9keScpLmFwcGVuZENoaWxkKGlmcmFtZUxvZ291dCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5ldmVudHMubmV4dCgnbG9nb3V0Jyk7XG4gICAgICAgIGNsZWFySW50ZXJ2YWwobG9nb3V0SW50ZXJ2YWwpO1xuICAgICAgfVxuICAgIH0sIDMwMCk7XG4gIH1cblxuICBwdWJsaWMgaW5pdFJlZnJlc2hUb2tlbkludGVydmFsKGNvZGU6IHN0cmluZywgcmVmcmVzaFRva2VuOiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMucmVmcmVzaFRva2VuSW50ZXJ2YWwpIHtcbiAgICAgIHRoaXMucmVmcmVzaFRva2VuSW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlZnJlc2hUb2tlbkRhdGUgPSBuZXcgRGF0ZSgpO1xuICAgICAgICByZWZyZXNoVG9rZW5EYXRlLnNldE1pbnV0ZXMocmVmcmVzaFRva2VuRGF0ZS5nZXRNaW51dGVzKCkgKyAxKTtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLnRva2VuU2VydmljZS5nZXRPQXV0aDJUb2tlbigpO1xuICAgICAgICBpZiAodG9rZW4pIHtcbiAgICAgICAgICBjb25zdCBleHBpcmVzX2luID0gdG9rZW4uZXhwaXJlZDtcbiAgICAgICAgICBpZiAoZXhwaXJlc19pbikge1xuICAgICAgICAgICAgaWYgKG5ldyBEYXRlKGV4cGlyZXNfaW4pIDw9IHJlZnJlc2hUb2tlbkRhdGUpIHtcbiAgICAgICAgICAgICAgdGhpcy5nZXRUb2tlbihjb2RlLCByZWZyZXNoVG9rZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSwgMTAwMCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRUb2tlbihjb2RlOiBzdHJpbmcsIHJlZnJlc2hUb2tlbj86IHN0cmluZykge1xuICAgIGlmIChyZWZyZXNoVG9rZW4pIHtcbiAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5yZWZyZXNoVG9rZW5JbnRlcnZhbCk7XG4gICAgICB0aGlzLnJlZnJlc2hUb2tlbkludGVydmFsID0gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKTtcbiAgICBsZXQgZGF0YSA9IGtvYWxhKHtcbiAgICAgIGdyYW50X3R5cGU6IChyZWZyZXNoVG9rZW4gPyAncmVmcmVzaF90b2tlbicgOiAnYXV0aG9yaXphdGlvbl9jb2RlJyksXG4gICAgICBjb2RlLFxuICAgICAgcmVkaXJlY3RfdXJpOiB0aGlzLmNvbmZpZy5yZWRpcmVjdFVyaSxcbiAgICAgIGNsaWVudF9pZDogdGhpcy5jb25maWcuY2xpZW50SWRcbiAgICB9KS5vYmplY3QoKS5tZXJnZSh0aGlzLmNvbmZpZy5jdXN0b21RdWVyeVBhcmFtcyA/PyB7fSkuZ2V0VmFsdWUoKTtcblxuICAgIGlmIChyZWZyZXNoVG9rZW4pIHtcbiAgICAgIGRhdGEgPSBrb2FsYShkYXRhKS5vYmplY3QoKS5tZXJnZSh7cmVmcmVzaF90b2tlbjogcmVmcmVzaFRva2VufSkuZ2V0VmFsdWUoKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuY29kZSkge1xuICAgICAgdGhpcy5jb2RlID0gY29kZTtcbiAgICB9XG5cbiAgICBPYmplY3Qua2V5cyhkYXRhKS5mb3JFYWNoKGluZGV4TmFtZSA9PiB7XG4gICAgICBmb3JtRGF0YS5hcHBlbmQoaW5kZXhOYW1lLCBkYXRhW2luZGV4TmFtZV0pO1xuICAgIH0pO1xuXG4gICAgdGhpcy5odHRwLnBvc3QodGhpcy5jb25maWcuZW5kcG9pbnRUb2tlbiA/PyB0aGlzLm9wZW5JZE9wdGlvbnMudG9rZW5fZW5kcG9pbnQsIGZvcm1EYXRhLnRvU3RyaW5nKCksIHtcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnXG4gICAgICB9XG4gICAgfSkuc3Vic2NyaWJlKCh0b2tlbjogYW55KSA9PiB7XG4gICAgICB0aGlzLnRva2VuID0gdG9rZW47XG4gICAgICB0aGlzLmV2ZW50cy5uZXh0KChyZWZyZXNoVG9rZW4gPyAncmVmcmVzaFRva2VuJyA6ICdnZXRDbGFpbXMnKSk7XG4gICAgfSwgKCkgPT4gdGhpcy5ldmVudHMubmV4dCgnZ2V0VG9rZW5FcnJvcicpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2xhaW1zKCkge1xuICAgIHRoaXMuaHR0cC5nZXQodGhpcy5jb25maWcuZW5kcG9pbnRDbGFpbXMgPz8gdGhpcy5vcGVuSWRPcHRpb25zLnVzZXJpbmZvX2VuZHBvaW50LCB7XG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHt0aGlzLmdldEFjY2Vzc1Rva2VuKCl9YFxuICAgICAgfVxuICAgIH0pLnN1YnNjcmliZSh1c2VySW5mbyA9PiB7XG4gICAgICB0aGlzLmNsYWltcyA9IHVzZXJJbmZvO1xuICAgICAgdGhpcy5zdGF0ZSA9IG51bGw7XG4gICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShTVEFURV9TVE9SQUdFX05BTUUpO1xuICAgICAgdGhpcy5ldmVudHMubmV4dCh0aGlzLmV2ZW50cy5nZXRWYWx1ZSgpID09PSAncmVmcmVzaFRva2VuJyA/ICdyZWZyZXNoVG9rZW4nIDogJ3VzZXJBdXRoZW50aWNhdGVkJyk7XG4gICAgfSwgKCkgPT4gdGhpcy5ldmVudHMubmV4dCgnbG9hZGVkQ29uZmlnJykpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZVN0YXRlKCkge1xuICAgIHRoaXMuc3RhdGUgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShTVEFURV9TVE9SQUdFX05BTUUpID9cbiAgICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLmdldEl0ZW0oU1RBVEVfU1RPUkFHRV9OQU1FKSA6XG4gICAgICAgICAgICAgICAgIGtvYWxhKCcnKS5zdHJpbmcoKS5yYW5kb20oMzAsIHRydWUsIHRydWUsIHRydWUpLmdldFZhbHVlKCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { KoalaAlertEnum, KoalaAlertService, KoalaRequestCodeToAlertEnumTranslate } from '@koalarx/ui/alert';
|
|
3
|
+
import { KoalaLanguageHelper } from "../../page/koala-language.helper";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@koalarx/ui/alert";
|
|
6
|
+
export class KoalaRequestService {
|
|
7
|
+
constructor(koalaAlertService) {
|
|
8
|
+
this.koalaAlertService = koalaAlertService;
|
|
9
|
+
}
|
|
10
|
+
request(request, success, error) {
|
|
11
|
+
if (request instanceof Promise) {
|
|
12
|
+
request.then((response) => {
|
|
13
|
+
if (success) {
|
|
14
|
+
success(response);
|
|
15
|
+
}
|
|
16
|
+
}).catch(e => {
|
|
17
|
+
if (error) {
|
|
18
|
+
error(e);
|
|
19
|
+
}
|
|
20
|
+
this.showAlertError(e);
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
return request.subscribe((response) => {
|
|
25
|
+
if (success) {
|
|
26
|
+
success(response);
|
|
27
|
+
}
|
|
28
|
+
}, (e) => {
|
|
29
|
+
if (error) {
|
|
30
|
+
error(e);
|
|
31
|
+
}
|
|
32
|
+
this.showAlertError(e);
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
showAlertError(e) {
|
|
37
|
+
const alertEnum = KoalaRequestCodeToAlertEnumTranslate.translate(e.statusCode);
|
|
38
|
+
this.koalaAlertService.create({
|
|
39
|
+
alertEnum,
|
|
40
|
+
message: alertEnum === KoalaAlertEnum.internalServerError
|
|
41
|
+
? KoalaLanguageHelper.getInternalServerErrorMessage()
|
|
42
|
+
: e.message
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
KoalaRequestService.ɵprov = i0.ɵɵdefineInjectable({ factory: function KoalaRequestService_Factory() { return new KoalaRequestService(i0.ɵɵinject(i1.KoalaAlertService)); }, token: KoalaRequestService, providedIn: "any" });
|
|
47
|
+
KoalaRequestService.decorators = [
|
|
48
|
+
{ type: Injectable, args: [{ providedIn: "any" },] }
|
|
49
|
+
];
|
|
50
|
+
KoalaRequestService.ctorParameters = () => [
|
|
51
|
+
{ type: KoalaAlertService }
|
|
52
|
+
];
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia29hbGEucmVxdWVzdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3NlcnZpY2VzL3JlcXVlc3Qva29hbGEucmVxdWVzdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxpQkFBaUIsRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzVHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7QUFHdkUsTUFBTSxPQUFPLG1CQUFtQjtJQUU5QixZQUFvQixpQkFBb0M7UUFBcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtJQUN4RCxDQUFDO0lBRU0sT0FBTyxDQUNaLE9BQW1DLEVBQ25DLE9BQStCLEVBQy9CLEtBQTBCO1FBRTFCLElBQUksT0FBTyxZQUFZLE9BQU8sRUFBRTtZQUM5QixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7Z0JBQ3hCLElBQUksT0FBTyxFQUFFO29CQUNYLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztpQkFDbkI7WUFDSCxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ1gsSUFBSSxLQUFLLEVBQUU7b0JBQ1QsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUNWO2dCQUNELElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDekIsQ0FBQyxDQUFDLENBQUM7U0FDSjthQUFNO1lBQ0wsT0FBTyxPQUFPLENBQUMsU0FBUyxDQUN0QixDQUFDLFFBQVEsRUFBRSxFQUFFO2dCQUNYLElBQUksT0FBTyxFQUFFO29CQUNYLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztpQkFDbkI7WUFDSCxDQUFDLEVBQ0QsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDSixJQUFJLEtBQUssRUFBRTtvQkFDVCxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ1Y7Z0JBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN6QixDQUFDLENBQ0YsQ0FBQztTQUNIO0lBQ0gsQ0FBQztJQUVPLGNBQWMsQ0FBQyxDQUFNO1FBQzNCLE1BQU0sU0FBUyxHQUFHLG9DQUFvQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDL0UsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQztZQUM1QixTQUFTO1lBQ1QsT0FBTyxFQUFFLFNBQVMsS0FBSyxjQUFjLENBQUMsbUJBQW1CO2dCQUNoRCxDQUFDLENBQUMsbUJBQW1CLENBQUMsNkJBQTZCLEVBQUU7Z0JBQ3JELENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTztTQUNyQixDQUFDLENBQUM7SUFDTCxDQUFDOzs7O1lBL0NGLFVBQVUsU0FBQyxFQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUM7OztZQUhOLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEtvYWxhQWxlcnRFbnVtLCBLb2FsYUFsZXJ0U2VydmljZSwgS29hbGFSZXF1ZXN0Q29kZVRvQWxlcnRFbnVtVHJhbnNsYXRlIH0gZnJvbSAnQGtvYWxhcngvdWkvYWxlcnQnO1xuaW1wb3J0IHsgS29hbGFMYW5ndWFnZUhlbHBlciB9IGZyb20gXCIuLi8uLi9wYWdlL2tvYWxhLWxhbmd1YWdlLmhlbHBlclwiO1xuXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogXCJhbnlcIn0pXG5leHBvcnQgY2xhc3MgS29hbGFSZXF1ZXN0U2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBrb2FsYUFsZXJ0U2VydmljZTogS29hbGFBbGVydFNlcnZpY2UpIHtcbiAgfVxuXG4gIHB1YmxpYyByZXF1ZXN0PFQ+KFxuICAgIHJlcXVlc3Q6IFByb21pc2U8VD4gfCBPYnNlcnZhYmxlPFQ+LFxuICAgIHN1Y2Nlc3M/OiAocmVzcG9uc2U6IFQpID0+IHZvaWQsXG4gICAgZXJyb3I/OiAoZXJyb3I6IFQpID0+IHZvaWRcbiAgKSB7XG4gICAgaWYgKHJlcXVlc3QgaW5zdGFuY2VvZiBQcm9taXNlKSB7XG4gICAgICByZXF1ZXN0LnRoZW4oKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgIGlmIChzdWNjZXNzKSB7XG4gICAgICAgICAgc3VjY2VzcyhyZXNwb25zZSk7XG4gICAgICAgIH1cbiAgICAgIH0pLmNhdGNoKGUgPT4ge1xuICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICBlcnJvcihlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNob3dBbGVydEVycm9yKGUpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiByZXF1ZXN0LnN1YnNjcmliZShcbiAgICAgICAgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgaWYgKHN1Y2Nlc3MpIHtcbiAgICAgICAgICAgIHN1Y2Nlc3MocmVzcG9uc2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgKGUpID0+IHtcbiAgICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgIGVycm9yKGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLnNob3dBbGVydEVycm9yKGUpO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2hvd0FsZXJ0RXJyb3IoZTogYW55KSB7XG4gICAgY29uc3QgYWxlcnRFbnVtID0gS29hbGFSZXF1ZXN0Q29kZVRvQWxlcnRFbnVtVHJhbnNsYXRlLnRyYW5zbGF0ZShlLnN0YXR1c0NvZGUpO1xuICAgIHRoaXMua29hbGFBbGVydFNlcnZpY2UuY3JlYXRlKHtcbiAgICAgIGFsZXJ0RW51bSxcbiAgICAgIG1lc3NhZ2U6IGFsZXJ0RW51bSA9PT0gS29hbGFBbGVydEVudW0uaW50ZXJuYWxTZXJ2ZXJFcnJvclxuICAgICAgICAgICAgICAgPyBLb2FsYUxhbmd1YWdlSGVscGVyLmdldEludGVybmFsU2VydmVyRXJyb3JNZXNzYWdlKClcbiAgICAgICAgICAgICAgIDogZS5tZXNzYWdlXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import jwt from 'jwt-decode';
|
|
2
|
+
import { Injectable } from '@angular/core';
|
|
3
|
+
import { BehaviorSubject } from 'rxjs';
|
|
4
|
+
import { TokenFactory } from "./token.factory";
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class KoalaTokenService {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.token$ = new BehaviorSubject(null);
|
|
9
|
+
this.verifySession();
|
|
10
|
+
}
|
|
11
|
+
ngOnDestroy() {
|
|
12
|
+
if (this.intervalToken) {
|
|
13
|
+
clearInterval(this.intervalToken);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
setToken(token) {
|
|
17
|
+
if (TokenFactory.hasToken()) {
|
|
18
|
+
this.token$.next(token);
|
|
19
|
+
}
|
|
20
|
+
TokenFactory.setToken(token);
|
|
21
|
+
}
|
|
22
|
+
getToken() {
|
|
23
|
+
return this.token$;
|
|
24
|
+
}
|
|
25
|
+
getDecodedToken() {
|
|
26
|
+
return (TokenFactory.hasToken() ? jwt(TokenFactory.getToken()) : null);
|
|
27
|
+
}
|
|
28
|
+
getOAuth2Token() {
|
|
29
|
+
return (TokenFactory.hasToken() ? jwt(TokenFactory.getToken()) : null);
|
|
30
|
+
}
|
|
31
|
+
removeToken() {
|
|
32
|
+
TokenFactory.removeToken();
|
|
33
|
+
}
|
|
34
|
+
verifySession() {
|
|
35
|
+
TokenFactory.init();
|
|
36
|
+
this.token$.next(TokenFactory.getToken());
|
|
37
|
+
this.intervalToken = setInterval(() => {
|
|
38
|
+
if (!TokenFactory.hasToken() && this.token$.getValue()) {
|
|
39
|
+
this.token$.next(null);
|
|
40
|
+
}
|
|
41
|
+
else if (TokenFactory.hasToken() && !this.token$.getValue()) {
|
|
42
|
+
this.token$.next(TokenFactory.getToken());
|
|
43
|
+
}
|
|
44
|
+
}, 300);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
KoalaTokenService.ɵprov = i0.ɵɵdefineInjectable({ factory: function KoalaTokenService_Factory() { return new KoalaTokenService(); }, token: KoalaTokenService, providedIn: "any" });
|
|
48
|
+
KoalaTokenService.decorators = [
|
|
49
|
+
{ type: Injectable, args: [{ providedIn: "any" },] }
|
|
50
|
+
];
|
|
51
|
+
KoalaTokenService.ctorParameters = () => [];
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia29hbGEudG9rZW4uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9zZXJ2aWNlcy90b2tlbi9rb2FsYS50b2tlbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sR0FBRyxNQUFNLFlBQVksQ0FBQztBQUU3QixPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQVkvQyxNQUFNLE9BQU8saUJBQWlCO0lBSTVCO1FBSFEsV0FBTSxHQUFHLElBQUksZUFBZSxDQUFTLElBQUksQ0FBQyxDQUFDO1FBSWpELElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN0QixhQUFhLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQ25DO0lBQ0gsQ0FBQztJQUVNLFFBQVEsQ0FBQyxLQUFhO1FBQzNCLElBQUksWUFBWSxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FBRTtRQUN6RCxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFTSxRQUFRO1FBQ2IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFFTSxlQUFlO1FBQ3BCLE9BQU8sQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVNLGNBQWM7UUFDbkIsT0FBTyxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRU0sV0FBVztRQUNoQixZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVPLGFBQWE7UUFDbkIsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxhQUFhLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRTtZQUNwQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLEVBQUU7Z0JBQ3RELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3hCO2lCQUFNLElBQUksWUFBWSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsRUFBRTtnQkFDN0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7YUFDM0M7UUFDSCxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDVixDQUFDOzs7O1lBOUNGLFVBQVUsU0FBQyxFQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgand0IGZyb20gJ2p3dC1kZWNvZGUnO1xuXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVG9rZW5GYWN0b3J5IH0gZnJvbSBcIi4vdG9rZW4uZmFjdG9yeVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEtvYWxhT0F1dGgyVG9rZW5JbnRlcmZhY2Uge1xuICBhY2Nlc3NUb2tlbjogc3RyaW5nO1xuICBpZFRva2VuOiBzdHJpbmc7XG4gIHJlZnJlc2hUb2tlbjogc3RyaW5nO1xuICBsb2dpbjogc3RyaW5nO1xuICBleHBpcmVkOiBudW1iZXI7XG4gIGNvZGU6IHN0cmluZztcbn1cblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46IFwiYW55XCJ9KVxuZXhwb3J0IGNsYXNzIEtvYWxhVG9rZW5TZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSB0b2tlbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4obnVsbCk7XG4gIHByaXZhdGUgaW50ZXJ2YWxUb2tlbjogYW55O1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMudmVyaWZ5U2Vzc2lvbigpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuaW50ZXJ2YWxUb2tlbikge1xuICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLmludGVydmFsVG9rZW4pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXRUb2tlbih0b2tlbjogc3RyaW5nKSB7XG4gICAgaWYgKFRva2VuRmFjdG9yeS5oYXNUb2tlbigpKSB7IHRoaXMudG9rZW4kLm5leHQodG9rZW4pOyB9XG4gICAgVG9rZW5GYWN0b3J5LnNldFRva2VuKHRva2VuKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRUb2tlbigpOiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW4kO1xuICB9XG5cbiAgcHVibGljIGdldERlY29kZWRUb2tlbjxUPigpOiBUfG51bGwge1xuICAgIHJldHVybiAoVG9rZW5GYWN0b3J5Lmhhc1Rva2VuKCkgPyBqd3QoVG9rZW5GYWN0b3J5LmdldFRva2VuKCkpIDogbnVsbCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0T0F1dGgyVG9rZW4oKTogS29hbGFPQXV0aDJUb2tlbkludGVyZmFjZXxudWxsIHtcbiAgICByZXR1cm4gKFRva2VuRmFjdG9yeS5oYXNUb2tlbigpID8gand0KFRva2VuRmFjdG9yeS5nZXRUb2tlbigpKSA6IG51bGwpO1xuICB9XG5cbiAgcHVibGljIHJlbW92ZVRva2VuKCkge1xuICAgIFRva2VuRmFjdG9yeS5yZW1vdmVUb2tlbigpO1xuICB9XG5cbiAgcHJpdmF0ZSB2ZXJpZnlTZXNzaW9uKCkge1xuICAgIFRva2VuRmFjdG9yeS5pbml0KCk7XG4gICAgdGhpcy50b2tlbiQubmV4dChUb2tlbkZhY3RvcnkuZ2V0VG9rZW4oKSk7XG4gICAgdGhpcy5pbnRlcnZhbFRva2VuID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgaWYgKCFUb2tlbkZhY3RvcnkuaGFzVG9rZW4oKSAmJiB0aGlzLnRva2VuJC5nZXRWYWx1ZSgpKSB7XG4gICAgICAgIHRoaXMudG9rZW4kLm5leHQobnVsbCk7XG4gICAgICB9IGVsc2UgaWYgKFRva2VuRmFjdG9yeS5oYXNUb2tlbigpICYmICF0aGlzLnRva2VuJC5nZXRWYWx1ZSgpKSB7XG4gICAgICAgIHRoaXMudG9rZW4kLm5leHQoVG9rZW5GYWN0b3J5LmdldFRva2VuKCkpO1xuICAgICAgfVxuICAgIH0sIDMwMCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { KoalaEnvironment } from "../../environments/koalaEnvironment";
|
|
2
|
+
// @dynamic
|
|
3
|
+
export class TokenFactory {
|
|
4
|
+
static init() {
|
|
5
|
+
var _a, _b;
|
|
6
|
+
if (!!localStorage.getItem((_a = KoalaEnvironment.environment) === null || _a === void 0 ? void 0 : _a.storageTokenName)) {
|
|
7
|
+
TokenFactory.setToken(localStorage.getItem((_b = KoalaEnvironment.environment) === null || _b === void 0 ? void 0 : _b.storageTokenName));
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
static setToken(token) {
|
|
11
|
+
var _a;
|
|
12
|
+
localStorage.setItem((_a = KoalaEnvironment.environment) === null || _a === void 0 ? void 0 : _a.storageTokenName, token);
|
|
13
|
+
this.token = token;
|
|
14
|
+
}
|
|
15
|
+
static getToken() {
|
|
16
|
+
return this.token;
|
|
17
|
+
}
|
|
18
|
+
static removeToken() {
|
|
19
|
+
var _a;
|
|
20
|
+
localStorage.removeItem((_a = KoalaEnvironment.environment) === null || _a === void 0 ? void 0 : _a.storageTokenName);
|
|
21
|
+
this.token = null;
|
|
22
|
+
}
|
|
23
|
+
static hasToken() {
|
|
24
|
+
var _a;
|
|
25
|
+
return !!this.token && !!localStorage.getItem((_a = KoalaEnvironment.environment) === null || _a === void 0 ? void 0 : _a.storageTokenName);
|
|
26
|
+
}
|
|
27
|
+
static logout() {
|
|
28
|
+
this.removeToken();
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4uZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9zZXJ2aWNlcy90b2tlbi90b2tlbi5mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRXZFLFdBQVc7QUFDWCxNQUFNLE9BQU8sWUFBWTtJQUdoQixNQUFNLENBQUMsSUFBSTs7UUFDaEIsSUFBSSxDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFBLGdCQUFnQixDQUFDLFdBQVcsMENBQUUsZ0JBQWdCLENBQUMsRUFBRTtZQUMxRSxZQUFZLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsTUFBQSxnQkFBZ0IsQ0FBQyxXQUFXLDBDQUFFLGdCQUFnQixDQUFDLENBQUMsQ0FBQztTQUM3RjtJQUNILENBQUM7SUFFTSxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQWE7O1FBQ2xDLFlBQVksQ0FBQyxPQUFPLENBQUMsTUFBQSxnQkFBZ0IsQ0FBQyxXQUFXLDBDQUFFLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVFLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7SUFFTSxNQUFNLENBQUMsUUFBUTtRQUNwQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxXQUFXOztRQUN2QixZQUFZLENBQUMsVUFBVSxDQUFDLE1BQUEsZ0JBQWdCLENBQUMsV0FBVywwQ0FBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO0lBQ3BCLENBQUM7SUFFTSxNQUFNLENBQUMsUUFBUTs7UUFDcEIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFBLGdCQUFnQixDQUFDLFdBQVcsMENBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUNoRyxDQUFDO0lBRU0sTUFBTSxDQUFDLE1BQU07UUFDbEIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEtvYWxhRW52aXJvbm1lbnQgfSBmcm9tIFwiLi4vLi4vZW52aXJvbm1lbnRzL2tvYWxhRW52aXJvbm1lbnRcIjtcblxuLy8gQGR5bmFtaWNcbmV4cG9ydCBjbGFzcyBUb2tlbkZhY3Rvcnkge1xuICBwcml2YXRlIHN0YXRpYyB0b2tlbj86IHN0cmluZztcblxuICBwdWJsaWMgc3RhdGljIGluaXQoKSB7XG4gICAgaWYgKCEhbG9jYWxTdG9yYWdlLmdldEl0ZW0oS29hbGFFbnZpcm9ubWVudC5lbnZpcm9ubWVudD8uc3RvcmFnZVRva2VuTmFtZSkpIHtcbiAgICAgIFRva2VuRmFjdG9yeS5zZXRUb2tlbihsb2NhbFN0b3JhZ2UuZ2V0SXRlbShLb2FsYUVudmlyb25tZW50LmVudmlyb25tZW50Py5zdG9yYWdlVG9rZW5OYW1lKSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHN0YXRpYyBzZXRUb2tlbih0b2tlbjogc3RyaW5nKSB7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oS29hbGFFbnZpcm9ubWVudC5lbnZpcm9ubWVudD8uc3RvcmFnZVRva2VuTmFtZSwgdG9rZW4pO1xuICAgIHRoaXMudG9rZW4gPSB0b2tlbjtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZ2V0VG9rZW4oKSB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW47XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHJlbW92ZVRva2VuKCkge1xuICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKEtvYWxhRW52aXJvbm1lbnQuZW52aXJvbm1lbnQ/LnN0b3JhZ2VUb2tlbk5hbWUpO1xuICAgIHRoaXMudG9rZW4gPSBudWxsO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBoYXNUb2tlbigpIHtcbiAgICByZXR1cm4gISF0aGlzLnRva2VuICYmICEhbG9jYWxTdG9yYWdlLmdldEl0ZW0oS29hbGFFbnZpcm9ubWVudC5lbnZpcm9ubWVudD8uc3RvcmFnZVRva2VuTmFtZSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGxvZ291dCgpIHtcbiAgICB0aGlzLnJlbW92ZVRva2VuKCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia29hbGEueGxzeC1jb25maWcuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3NlcnZpY2VzL3hsc3gva29hbGEueGxzeC1jb25maWcuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEtvYWxhWGxzeENvbmZpZ0ludGVyZmFjZSB7XG4gIGZpbGVuYW1lOiBzdHJpbmc7XG4gIHNoZWV0TmFtZTogc3RyaW5nO1xuICB0aXRsZT86IHN0cmluZztcbiAgdGl0bGVGb250Q29sb3I/OiBzdHJpbmc7XG4gIHRpdGxlQmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICBoZWFkZXJGb250Q29sb3I/OiBzdHJpbmc7XG4gIGhlYWRlckJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgcGFzc3dvcmQ/OiBzdHJpbmc7XG59XG4iXX0=
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
import * as Excel from "exceljs/dist/exceljs.min.js";
|
|
3
|
+
import * as fs from 'file-saver';
|
|
4
|
+
import { Injectable } from "@angular/core";
|
|
5
|
+
import { koala } from "@koalarx/utils";
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export class KoalaXlsxService {
|
|
8
|
+
convertJsonToXlsx(json, config) {
|
|
9
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
10
|
+
const title = config.title;
|
|
11
|
+
const header = [];
|
|
12
|
+
Object.keys(json[0]).forEach(name => {
|
|
13
|
+
header.push(koala(name).string().normalize().getValue().toUpperCase());
|
|
14
|
+
});
|
|
15
|
+
const workbook = new Excel.Workbook();
|
|
16
|
+
const worksheet = workbook.addWorksheet(config.sheetName);
|
|
17
|
+
if (config.password)
|
|
18
|
+
yield worksheet.protect(config.password, {
|
|
19
|
+
selectLockedCells: false,
|
|
20
|
+
selectUnlockedCells: false,
|
|
21
|
+
scenarios: false
|
|
22
|
+
});
|
|
23
|
+
const titleRow = worksheet.addRow([title]);
|
|
24
|
+
titleRow.alignment = { horizontal: "center" };
|
|
25
|
+
titleRow.font = { bold: true, color: { argb: config.titleFontColor.replace('#', '') } };
|
|
26
|
+
titleRow.fill = {
|
|
27
|
+
type: 'pattern',
|
|
28
|
+
pattern: 'solid',
|
|
29
|
+
fgColor: { argb: config.titleBackgroundColor.replace('#', '') },
|
|
30
|
+
bgColor: { argb: config.titleBackgroundColor.replace('#', '') }
|
|
31
|
+
};
|
|
32
|
+
worksheet.mergeCells(`A1:${worksheet.getCell(1, Object.keys(json[0]).length).address}`);
|
|
33
|
+
const headerRow = worksheet.addRow(header);
|
|
34
|
+
headerRow.eachCell((cell, number) => {
|
|
35
|
+
cell.fill = {
|
|
36
|
+
type: 'pattern',
|
|
37
|
+
pattern: 'solid',
|
|
38
|
+
fgColor: { argb: config.headerBackgroundColor.replace('#', '') },
|
|
39
|
+
bgColor: { argb: config.headerBackgroundColor.replace('#', '') }
|
|
40
|
+
};
|
|
41
|
+
cell.font = {
|
|
42
|
+
color: { argb: config.headerFontColor.replace('#', '') }
|
|
43
|
+
};
|
|
44
|
+
});
|
|
45
|
+
json.forEach(item => {
|
|
46
|
+
const data = [];
|
|
47
|
+
Object.values(item).forEach(value => data.push(value));
|
|
48
|
+
worksheet.addRow(data);
|
|
49
|
+
});
|
|
50
|
+
workbook.xlsx.writeBuffer().then((data) => {
|
|
51
|
+
let blob = new Blob([data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
|
|
52
|
+
fs.saveAs(blob, config.filename + '.xlsx');
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
KoalaXlsxService.ɵprov = i0.ɵɵdefineInjectable({ factory: function KoalaXlsxService_Factory() { return new KoalaXlsxService(); }, token: KoalaXlsxService, providedIn: "any" });
|
|
58
|
+
KoalaXlsxService.decorators = [
|
|
59
|
+
{ type: Injectable, args: [{ providedIn: "any" },] }
|
|
60
|
+
];
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia29hbGEueGxzeC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3NlcnZpY2VzL3hsc3gva29hbGEueGxzeC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEtBQUssS0FBSyxNQUFNLDZCQUE2QixDQUFDO0FBRXJELE9BQU8sS0FBSyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRWpDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUd2QyxNQUFNLE9BQU8sZ0JBQWdCO0lBRWQsaUJBQWlCLENBQUMsSUFBVyxFQUFFLE1BQWdDOztZQUMxRSxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO1lBQzNCLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQztZQUVsQixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDbEMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztZQUN6RSxDQUFDLENBQUMsQ0FBQztZQUVILE1BQU0sUUFBUSxHQUF5QixJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM1RCxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUMxRCxJQUFJLE1BQU0sQ0FBQyxRQUFRO2dCQUFFLE1BQU0sU0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFO29CQUM1RCxpQkFBaUIsRUFBRSxLQUFLO29C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QUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBFeGNlbCBmcm9tIFwiZXhjZWxqcy9kaXN0L2V4Y2VsanMubWluLmpzXCI7XG5pbXBvcnQgKiBhcyBFeGNlbFByb3BlciBmcm9tIFwiZXhjZWxqc1wiO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZmlsZS1zYXZlcic7XG5cbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgS29hbGFYbHN4Q29uZmlnSW50ZXJmYWNlIH0gZnJvbSBcIi4va29hbGEueGxzeC1jb25maWcuaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBrb2FsYSB9IGZyb20gXCJAa29hbGFyeC91dGlsc1wiO1xuXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogXCJhbnlcIn0pXG5leHBvcnQgY2xhc3MgS29hbGFYbHN4U2VydmljZSB7XG5cbiAgcHVibGljIGFzeW5jIGNvbnZlcnRKc29uVG9YbHN4KGpzb246IGFueVtdLCBjb25maWc6IEtvYWxhWGxzeENvbmZpZ0ludGVyZmFjZSkge1xuICAgIGNvbnN0IHRpdGxlID0gY29uZmlnLnRpdGxlO1xuICAgIGNvbnN0IGhlYWRlciA9IFtdO1xuXG4gICAgT2JqZWN0LmtleXMoanNvblswXSkuZm9yRWFjaChuYW1lID0+IHtcbiAgICAgIGhlYWRlci5wdXNoKGtvYWxhKG5hbWUpLnN0cmluZygpLm5vcm1hbGl6ZSgpLmdldFZhbHVlKCkudG9VcHBlckNhc2UoKSk7XG4gICAgfSk7XG5cbiAgICBjb25zdCB3b3JrYm9vazogRXhjZWxQcm9wZXIuV29ya2Jvb2sgPSBuZXcgRXhjZWwuV29ya2Jvb2soKTtcbiAgICBjb25zdCB3b3Jrc2hlZXQgPSB3b3JrYm9vay5hZGRXb3Jrc2hlZXQoY29uZmlnLnNoZWV0TmFtZSk7XG4gICAgaWYgKGNvbmZpZy5wYXNzd29yZCkgYXdhaXQgd29ya3NoZWV0LnByb3RlY3QoY29uZmlnLnBhc3N3b3JkLCB7XG4gICAgICBzZWxlY3RMb2NrZWRDZWxsczogZmFsc2UsXG4gICAgICBzZWxlY3RVbmxvY2tlZENlbGxzOiBmYWxzZSxcbiAgICAgIHNjZW5hcmlvczogZmFsc2VcbiAgICB9KTtcblxuICAgIGNvbnN0IHRpdGxlUm93ID0gd29ya3NoZWV0LmFkZFJvdyhbdGl0bGVdKTtcbiAgICB0aXRsZVJvdy5hbGlnbm1lbnQgPSB7aG9yaXpvbnRhbDogXCJjZW50ZXJcIn07XG4gICAgdGl0bGVSb3cuZm9udCA9IHtib2xkOiB0cnVlLCBjb2xvcjoge2FyZ2I6IGNvbmZpZy50aXRsZUZvbnRDb2xvci5yZXBsYWNlKCcjJywgJycpfX07XG4gICAgdGl0bGVSb3cuZmlsbCA9IHtcbiAgICAgIHR5cGU6ICdwYXR0ZXJuJyxcbiAgICAgIHBhdHRlcm46ICdzb2xpZCcsXG4gICAgICBmZ0NvbG9yOiB7YXJnYjogY29uZmlnLnRpdGxlQmFja2dyb3VuZENvbG9yLnJlcGxhY2UoJyMnLCAnJyl9LFxuICAgICAgYmdDb2xvcjoge2FyZ2I6IGNvbmZpZy50aXRsZUJhY2tncm91bmRDb2xvci5yZXBsYWNlKCcjJywgJycpfVxuICAgIH1cbiAgICB3b3Jrc2hlZXQubWVyZ2VDZWxscyhgQTE6JHt3b3Jrc2hlZXQuZ2V0Q2VsbCgxLCBPYmplY3Qua2V5cyhqc29uWzBdKS5sZW5ndGgpLmFkZHJlc3N9YCk7XG5cbiAgICBjb25zdCBoZWFkZXJSb3cgPSB3b3Jrc2hlZXQuYWRkUm93KGhlYWRlcik7XG4gICAgaGVhZGVyUm93LmVhY2hDZWxsKChjZWxsLCBudW1iZXIpID0+IHtcbiAgICAgIGNlbGwuZmlsbCA9IHtcbiAgICAgICAgdHlwZTogJ3BhdHRlcm4nLFxuICAgICAgICBwYXR0ZXJuOiAnc29saWQnLFxuICAgICAgICBmZ0NvbG9yOiB7YXJnYjogY29uZmlnLmhlYWRlckJhY2tncm91bmRDb2xvci5yZXBsYWNlKCcjJywgJycpfSxcbiAgICAgICAgYmdDb2xvcjoge2FyZ2I6IGNvbmZpZy5oZWFkZXJCYWNrZ3JvdW5kQ29sb3IucmVwbGFjZSgnIycsICcnKX1cbiAgICAgIH07XG4gICAgICBjZWxsLmZvbnQgPSB7XG4gICAgICAgIGNvbG9yOiB7YXJnYjogY29uZmlnLmhlYWRlckZvbnRDb2xvci5yZXBsYWNlKCcjJywgJycpfVxuICAgICAgfTtcbiAgICB9KTtcblxuICAgIGpzb24uZm9yRWFjaChpdGVtID0+IHtcbiAgICAgIGNvbnN0IGRhdGEgPSBbXTtcbiAgICAgIE9iamVjdC52YWx1ZXMoaXRlbSkuZm9yRWFjaCh2YWx1ZSA9PiBkYXRhLnB1c2godmFsdWUpKTtcbiAgICAgIHdvcmtzaGVldC5hZGRSb3coZGF0YSk7XG4gICAgfSk7XG5cbiAgICB3b3JrYm9vay54bHN4LndyaXRlQnVmZmVyKCkudGhlbigoZGF0YSkgPT4ge1xuICAgICAgbGV0IGJsb2IgPSBuZXcgQmxvYihbZGF0YV0sIHt0eXBlOiAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQnfSk7XG4gICAgICBmcy5zYXZlQXMoYmxvYiwgY29uZmlnLmZpbGVuYW1lICsgJy54bHN4Jyk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|