@koalarx/ui 12.7.19 → 13.0.3
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/{esm2015/index.js → esm2020/index.mjs} +0 -0
- package/alert/{esm2015/koalarx-ui-alert.js → esm2020/koalarx-ui-alert.mjs} +0 -0
- package/alert/esm2020/lib/dialog-alert.component.mjs +48 -0
- package/alert/{esm2015/lib/koala.alert-config.interface.js → esm2020/lib/koala.alert-config.interface.mjs} +0 -0
- package/alert/{esm2015/lib/koala.alert.enum.js → esm2020/lib/koala.alert.enum.mjs} +0 -0
- package/alert/esm2020/lib/koala.alert.module.mjs +48 -0
- package/alert/esm2020/lib/koala.alert.service.mjs +19 -0
- package/alert/{esm2015/lib/koala.request-code-to-alert-enum.translate.js → esm2020/lib/koala.request-code-to-alert-enum.translate.mjs} +0 -0
- package/alert/fesm2015/koalarx-ui-alert.mjs +141 -0
- package/alert/fesm2015/koalarx-ui-alert.mjs.map +1 -0
- package/alert/fesm2020/koalarx-ui-alert.mjs +139 -0
- package/alert/fesm2020/koalarx-ui-alert.mjs.map +1 -0
- package/alert/koalarx-ui-alert.d.ts +1 -0
- package/alert/lib/dialog-alert.component.d.ts +3 -0
- package/alert/lib/koala.alert.module.d.ts +10 -0
- package/alert/lib/koala.alert.service.d.ts +3 -0
- package/alert/package.json +18 -6
- package/button/{esm2015/index.js → esm2020/index.mjs} +0 -0
- package/button/{esm2015/koalarx-ui-button.js → esm2020/koalarx-ui-button.mjs} +0 -0
- package/button/esm2020/lib/button.component.mjs +44 -0
- package/button/esm2020/lib/koala.button.module.mjs +42 -0
- package/button/fesm2015/koalarx-ui-button.mjs +90 -0
- package/button/fesm2015/koalarx-ui-button.mjs.map +1 -0
- package/button/fesm2020/koalarx-ui-button.mjs +90 -0
- package/button/fesm2020/koalarx-ui-button.mjs.map +1 -0
- package/button/koalarx-ui-button.d.ts +1 -0
- package/button/lib/button.component.d.ts +6 -1
- package/button/lib/koala.button.module.d.ts +10 -0
- package/button/package.json +18 -6
- package/common/{esm2015/index.js → esm2020/index.mjs} +0 -0
- package/common/{esm2015/koalarx-ui-common.js → esm2020/koalarx-ui-common.mjs} +0 -0
- package/common/{esm2015/lib/mask-options.js → esm2020/lib/mask-options.mjs} +0 -0
- package/common/esm2020/lib/services/csv/koala.csv.service.mjs +36 -0
- package/common/{esm2015/lib/services/xlsx/koala.xlsx-config.interface.js → esm2020/lib/services/xlsx/koala.xlsx-config.interface.mjs} +0 -0
- package/common/esm2020/lib/services/xlsx/koala.xlsx.service.mjs +73 -0
- package/common/fesm2015/{koalarx-ui-common.js → koalarx-ui-common.mjs} +14 -14
- package/common/fesm2015/koalarx-ui-common.mjs.map +1 -0
- package/common/fesm2020/koalarx-ui-common.mjs +118 -0
- package/common/fesm2020/koalarx-ui-common.mjs.map +1 -0
- package/common/koalarx-ui-common.d.ts +1 -0
- package/common/lib/services/csv/koala.csv.service.d.ts +3 -0
- package/common/lib/services/xlsx/koala.xlsx.service.d.ts +3 -0
- package/common/package.json +18 -6
- package/core/esm2020/index.mjs +35 -0
- package/core/esm2020/koalarx-ui-core.mjs +5 -0
- package/core/{esm2015/lib/environments/koalaEnvironment.js → esm2020/lib/environments/koalaEnvironment.mjs} +0 -0
- package/core/esm2020/lib/loader/loader-bar-page.component.mjs +24 -0
- package/core/{esm2015/lib/loader/loader-bar-page.interface.js → esm2020/lib/loader/loader-bar-page.interface.mjs} +0 -0
- package/core/{esm2015/lib/loader/loader-config.interface.js → esm2020/lib/loader/loader-config.interface.mjs} +0 -0
- package/core/esm2020/lib/ngx-koala.module.mjs +49 -0
- package/core/{esm2015/lib/page/koala-language.helper.js → esm2020/lib/page/koala-language.helper.mjs} +0 -0
- package/core/{esm2015/lib/page/koala-page-pallet-colors.interface.js → esm2020/lib/page/koala-page-pallet-colors.interface.mjs} +0 -0
- package/core/esm2020/lib/page/koala.page.module.mjs +78 -0
- package/core/{esm2015/lib/page/koala.user-menu-options.interface.js → esm2020/lib/page/koala.user-menu-options.interface.mjs} +0 -0
- package/core/{esm2015/lib/page/notifications/koala.notification.interface.js → esm2020/lib/page/notifications/koala.notification.interface.mjs} +0 -0
- package/core/esm2020/lib/page/notifications/notification.component.mjs +47 -0
- package/core/esm2020/lib/page/page.component.mjs +404 -0
- package/core/esm2020/lib/router/koala.parameter-hash-location-stategy.mjs +18 -0
- package/core/esm2020/lib/services/api-requester/factory/koala.response.factory.mjs +44 -0
- package/core/{esm2015/lib/services/api-requester/helpers/error/koala.client.error.js → esm2020/lib/services/api-requester/helpers/error/koala.client.error.mjs} +0 -0
- package/core/{esm2015/lib/services/api-requester/helpers/error/koala.errors.helper.js → esm2020/lib/services/api-requester/helpers/error/koala.errors.helper.mjs} +0 -0
- package/core/{esm2015/lib/services/api-requester/helpers/error/koala.not-found.error.js → esm2020/lib/services/api-requester/helpers/error/koala.not-found.error.mjs} +0 -0
- package/core/{esm2015/lib/services/api-requester/helpers/error/koala.success.error.js → esm2020/lib/services/api-requester/helpers/error/koala.success.error.mjs} +0 -0
- package/core/{esm2015/lib/services/api-requester/helpers/error/koala.unhautorized.error.js → esm2020/lib/services/api-requester/helpers/error/koala.unhautorized.error.mjs} +0 -0
- package/core/{esm2015/lib/services/api-requester/helpers/service/koala.request-header.helper.js → esm2020/lib/services/api-requester/helpers/service/koala.request-header.helper.mjs} +0 -0
- package/core/esm2020/lib/services/api-requester/koala.api-requester.base.mjs +63 -0
- package/core/esm2020/lib/services/api-requester/koala.api-requester.service.mjs +148 -0
- package/core/esm2020/lib/services/loader/koala.loader.service.mjs +34 -0
- package/core/{esm2015/lib/services/openid/koala-oauth2-config.interface.js → esm2020/lib/services/openid/koala-oauth2-config.interface.mjs} +0 -0
- package/core/esm2020/lib/services/openid/koala.oauth.config.mjs +30 -0
- package/core/esm2020/lib/services/openid/koala.oauth2.service.mjs +194 -0
- package/core/esm2020/lib/services/request/koala.request.service.mjs +52 -0
- package/core/{esm2015/lib/services/token/koala.token.service.js → esm2020/lib/services/token/koala.token.service.mjs} +7 -6
- package/core/esm2020/lib/services/token/token.factory.mjs +27 -0
- package/core/fesm2015/{koalarx-ui-core.js → koalarx-ui-core.mjs} +266 -191
- package/core/fesm2015/koalarx-ui-core.mjs.map +1 -0
- package/core/fesm2020/koalarx-ui-core.mjs +1384 -0
- package/core/fesm2020/koalarx-ui-core.mjs.map +1 -0
- package/core/index.d.ts +1 -0
- package/core/koalarx-ui-core.d.ts +1 -2
- package/core/lib/loader/loader-bar-page.component.d.ts +5 -1
- package/core/lib/ngx-koala.module.d.ts +7 -0
- package/core/lib/page/koala.page.module.d.ts +19 -0
- package/core/lib/page/notifications/notification.component.d.ts +3 -0
- package/core/lib/page/page.component.d.ts +3 -0
- package/core/lib/router/koala.parameter-hash-location-stategy.d.ts +3 -0
- package/core/lib/services/api-requester/koala.api-requester.service.d.ts +4 -0
- package/core/lib/services/loader/koala.loader.service.d.ts +3 -0
- package/core/lib/services/openid/koala.oauth2.service.d.ts +3 -0
- package/core/lib/services/request/koala.request.service.d.ts +3 -0
- package/core/lib/services/token/koala.token.service.d.ts +3 -0
- package/core/package.json +18 -6
- package/dialog/{esm2015/index.js → esm2020/index.mjs} +0 -0
- package/dialog/{esm2015/koalarx-ui-dialog.js → esm2020/koalarx-ui-dialog.mjs} +0 -0
- package/dialog/esm2020/lib/dialog.component.mjs +25 -0
- package/dialog/{esm2015/lib/koala.dialog-template.interface.js → esm2020/lib/koala.dialog-template.interface.mjs} +0 -0
- package/dialog/esm2020/lib/koala.dialog.module.mjs +38 -0
- package/dialog/esm2020/lib/koala.dialog.service.mjs +57 -0
- package/dialog/fesm2015/koalarx-ui-dialog.mjs +121 -0
- package/dialog/fesm2015/koalarx-ui-dialog.mjs.map +1 -0
- package/dialog/fesm2020/koalarx-ui-dialog.mjs +121 -0
- package/dialog/fesm2020/koalarx-ui-dialog.mjs.map +1 -0
- package/dialog/koalarx-ui-dialog.d.ts +1 -0
- package/dialog/lib/dialog.component.d.ts +3 -0
- package/dialog/lib/koala.dialog.module.d.ts +9 -0
- package/dialog/lib/koala.dialog.service.d.ts +3 -0
- package/dialog/package.json +18 -6
- package/dynamic-component/{esm2015/index.js → esm2020/index.mjs} +0 -0
- package/dynamic-component/{esm2015/koalarx-ui-dynamic-component.js → esm2020/koalarx-ui-dynamic-component.mjs} +0 -0
- package/dynamic-component/{esm2015/lib/koala-dynamic-component.component.js → esm2020/lib/koala-dynamic-component.component.mjs} +0 -0
- package/dynamic-component/esm2020/lib/koala-dynamic-component.directive.mjs +16 -0
- package/dynamic-component/esm2020/lib/koala-dynamic-component.factory.mjs +41 -0
- package/dynamic-component/{esm2015/lib/koala-dynamic-component.js → esm2020/lib/koala-dynamic-component.mjs} +0 -0
- package/dynamic-component/esm2020/lib/koala-dynamic-component.module.mjs +23 -0
- package/dynamic-component/fesm2015/koalarx-ui-dynamic-component.mjs +87 -0
- package/dynamic-component/fesm2015/koalarx-ui-dynamic-component.mjs.map +1 -0
- package/dynamic-component/fesm2020/koalarx-ui-dynamic-component.mjs +86 -0
- package/dynamic-component/fesm2020/koalarx-ui-dynamic-component.mjs.map +1 -0
- package/dynamic-component/koalarx-ui-dynamic-component.d.ts +1 -0
- package/dynamic-component/lib/koala-dynamic-component.directive.d.ts +3 -0
- package/dynamic-component/lib/koala-dynamic-component.factory.d.ts +3 -0
- package/dynamic-component/lib/koala-dynamic-component.module.d.ts +6 -0
- package/dynamic-component/package.json +18 -6
- package/file-button/{esm2015/index.js → esm2020/index.mjs} +0 -0
- package/file-button/{esm2015/koalarx-ui-file-button.js → esm2020/koalarx-ui-file-button.mjs} +0 -0
- package/file-button/esm2020/lib/file-button.component.mjs +125 -0
- package/file-button/esm2020/lib/koala.btn-file.service.mjs +25 -0
- package/file-button/esm2020/lib/koala.file-button.module.mjs +38 -0
- package/file-button/{esm2015/lib/koala.file.interface.js → esm2020/lib/koala.file.interface.mjs} +0 -0
- package/file-button/fesm2015/koalarx-ui-file-button.mjs +199 -0
- package/file-button/fesm2015/koalarx-ui-file-button.mjs.map +1 -0
- package/file-button/fesm2020/koalarx-ui-file-button.mjs +189 -0
- package/file-button/fesm2020/koalarx-ui-file-button.mjs.map +1 -0
- package/file-button/koalarx-ui-file-button.d.ts +1 -0
- package/file-button/lib/file-button.component.d.ts +4 -1
- package/file-button/lib/koala.btn-file.service.d.ts +3 -0
- package/file-button/lib/koala.file-button.module.d.ts +9 -0
- package/file-button/package.json +18 -6
- package/folder-page/{esm2015/index.js → esm2020/index.mjs} +0 -0
- package/folder-page/{esm2015/koalarx-ui-folder-page.js → esm2020/koalarx-ui-folder-page.mjs} +0 -0
- package/folder-page/esm2020/lib/folder.component.mjs +70 -0
- package/folder-page/{esm2015/lib/koala-navigate-history.interface.js → esm2020/lib/koala-navigate-history.interface.mjs} +0 -0
- package/folder-page/esm2020/lib/koala.folder-page.module.mjs +42 -0
- package/folder-page/fesm2015/koalarx-ui-folder-page.mjs +117 -0
- package/folder-page/fesm2015/koalarx-ui-folder-page.mjs.map +1 -0
- package/folder-page/fesm2020/koalarx-ui-folder-page.mjs +116 -0
- package/folder-page/fesm2020/koalarx-ui-folder-page.mjs.map +1 -0
- package/folder-page/koalarx-ui-folder-page.d.ts +1 -0
- package/folder-page/lib/folder.component.d.ts +6 -2
- package/folder-page/lib/koala.folder-page.module.d.ts +10 -0
- package/folder-page/package.json +18 -6
- package/form/{esm2015/index.js → esm2020/index.mjs} +0 -0
- package/form/{esm2015/koalarx-ui-form.js → esm2020/koalarx-ui-form.mjs} +0 -0
- package/form/esm2020/lib/btn-submit/btn-submit.component.mjs +49 -0
- package/form/esm2020/lib/directives/koala-autofocus.directive.mjs +25 -0
- package/form/esm2020/lib/dynamic-form/builder/dynamic-form.builder.mjs +138 -0
- package/form/{esm2015/lib/dynamic-form/builder/fields/autocomplete.builder.js → esm2020/lib/dynamic-form/builder/fields/autocomplete.builder.mjs} +0 -0
- package/form/esm2020/lib/dynamic-form/builder/fields/field.base.mjs +148 -0
- package/form/{esm2015/lib/dynamic-form/builder/fields/field.builder.js → esm2020/lib/dynamic-form/builder/fields/field.builder.mjs} +0 -0
- package/form/esm2020/lib/dynamic-form/builder/fields/more-items.builder.mjs +57 -0
- package/form/esm2020/lib/dynamic-form/dynamic-form.component.mjs +581 -0
- package/form/{esm2015/lib/dynamic-form/enums/dynamic-form-type-field.enum.js → esm2020/lib/dynamic-form/enums/dynamic-form-type-field.enum.mjs} +0 -0
- package/form/{esm2015/lib/dynamic-form/interfaces/koala-custom-validator-fn.interface.js → esm2020/lib/dynamic-form/interfaces/koala-custom-validator-fn.interface.mjs} +0 -0
- package/form/{esm2015/lib/dynamic-form/interfaces/koala.dynamic-autocomplete-options.interface.js → esm2020/lib/dynamic-form/interfaces/koala.dynamic-autocomplete-options.interface.mjs} +0 -0
- package/form/{esm2015/lib/dynamic-form/interfaces/koala.dynamic-form-autocomplete-multiple-config.interface.js → esm2020/lib/dynamic-form/interfaces/koala.dynamic-form-autocomplete-multiple-config.interface.mjs} +0 -0
- package/form/{esm2015/lib/dynamic-form/interfaces/koala.dynamic-form-config.interface.js → esm2020/lib/dynamic-form/interfaces/koala.dynamic-form-config.interface.mjs} +0 -0
- package/form/{esm2015/lib/dynamic-form/interfaces/koala.dynamic-form-field.interface.js → esm2020/lib/dynamic-form/interfaces/koala.dynamic-form-field.interface.mjs} +0 -0
- package/form/{esm2015/lib/dynamic-form/interfaces/koala.dynamic-form-more-itens-show-field-config.interface.js → esm2020/lib/dynamic-form/interfaces/koala.dynamic-form-more-itens-show-field-config.interface.mjs} +0 -0
- package/form/{esm2015/lib/dynamic-form/interfaces/koala.dynamic-form-show-field.interface.js → esm2020/lib/dynamic-form/interfaces/koala.dynamic-form-show-field.interface.mjs} +0 -0
- package/form/{esm2015/lib/dynamic-form/interfaces/koala.dynamic-set-value.interface.js → esm2020/lib/dynamic-form/interfaces/koala.dynamic-set-value.interface.mjs} +0 -0
- package/form/esm2020/lib/dynamic-form/koala.dynamic-form.service.mjs +199 -0
- package/form/{esm2015/lib/dynamic-form/validators/autocomplete-selected.validator.js → esm2020/lib/dynamic-form/validators/autocomplete-selected.validator.mjs} +0 -0
- package/form/{esm2015/lib/dynamic-form/validators/cnpj.validator.js → esm2020/lib/dynamic-form/validators/cnpj.validator.mjs} +0 -0
- package/form/{esm2015/lib/dynamic-form/validators/cpf.validator.js → esm2020/lib/dynamic-form/validators/cpf.validator.mjs} +0 -0
- package/form/{esm2015/lib/dynamic-form/validators/date-max.validator.js → esm2020/lib/dynamic-form/validators/date-max.validator.mjs} +0 -0
- package/form/{esm2015/lib/dynamic-form/validators/date-min.validator.js → esm2020/lib/dynamic-form/validators/date-min.validator.mjs} +0 -0
- package/form/{esm2015/lib/dynamic-form/validators/koala-dynamic-form-validator-result.helper.js → esm2020/lib/dynamic-form/validators/koala-dynamic-form-validator-result.helper.mjs} +0 -0
- package/form/{esm2015/lib/dynamic-form/validators/validation.helper.js → esm2020/lib/dynamic-form/validators/validation.helper.mjs} +0 -0
- package/form/{esm2015/lib/form.abstract.js → esm2020/lib/form.abstract.mjs} +0 -0
- package/form/esm2020/lib/koala.form.module.mjs +134 -0
- package/form/{esm2015/lib/show-invalid-fields/show-invalid-fields.js → esm2020/lib/show-invalid-fields/show-invalid-fields.mjs} +0 -0
- package/form/fesm2015/koalarx-ui-form.mjs +1575 -0
- package/form/fesm2015/koalarx-ui-form.mjs.map +1 -0
- package/form/fesm2020/koalarx-ui-form.mjs +1557 -0
- package/form/fesm2020/koalarx-ui-form.mjs.map +1 -0
- package/form/koalarx-ui-form.d.ts +1 -0
- package/form/lib/btn-submit/btn-submit.component.d.ts +3 -0
- package/form/lib/directives/koala-autofocus.directive.d.ts +3 -0
- package/form/lib/dynamic-form/dynamic-form.component.d.ts +7 -1
- package/form/lib/dynamic-form/koala.dynamic-form.service.d.ts +3 -0
- package/form/lib/koala.form.module.d.ts +23 -0
- package/form/package.json +18 -6
- package/icon/{esm2015/index.js → esm2020/index.mjs} +2 -1
- package/icon/{esm2015/koalarx-ui-icon.js → esm2020/koalarx-ui-icon.mjs} +0 -0
- package/icon/esm2020/lib/icon.component.mjs +46 -0
- package/icon/esm2020/lib/koala.icon.module.mjs +26 -0
- package/icon/esm2020/lib/koala.icon.type.mjs +2 -0
- package/icon/fesm2015/koalarx-ui-icon.mjs +77 -0
- package/icon/{esm2015/lib/icon.component.js → fesm2015/koalarx-ui-icon.mjs.map} +1 -45
- package/icon/fesm2020/koalarx-ui-icon.mjs +76 -0
- package/icon/{fesm2015/koalarx-ui-icon.js → fesm2020/koalarx-ui-icon.mjs.map} +1 -69
- package/icon/index.d.ts +1 -0
- package/icon/koalarx-ui-icon.d.ts +1 -0
- package/icon/lib/icon.component.d.ts +4 -1
- package/icon/lib/koala.icon.module.d.ts +6 -0
- package/icon/lib/koala.icon.type.d.ts +1 -0
- package/icon/package.json +18 -6
- package/icons-animated/{esm2015/index.js → esm2020/index.mjs} +0 -0
- package/icons-animated/esm2020/koalarx-ui-icons-animated.mjs +5 -0
- package/icons-animated/esm2020/lib/icons/downloading/downloading-icon-animated.component.mjs +23 -0
- package/icons-animated/esm2020/lib/icons/loading/loading-icon-animated.component.mjs +23 -0
- package/icons-animated/esm2020/lib/icons-animated.component.mjs +20 -0
- package/icons-animated/esm2020/lib/icons-animated.service.mjs +32 -0
- package/icons-animated/esm2020/lib/koala-icons-animated.module.mjs +32 -0
- package/icons-animated/fesm2015/koalarx-ui-icons-animated.mjs +122 -0
- package/icons-animated/fesm2015/koalarx-ui-icons-animated.mjs.map +1 -0
- package/icons-animated/fesm2020/koalarx-ui-icons-animated.mjs +120 -0
- package/icons-animated/fesm2020/koalarx-ui-icons-animated.mjs.map +1 -0
- package/icons-animated/koalarx-ui-icons-animated.d.ts +1 -1
- package/icons-animated/lib/icons/downloading/downloading-icon-animated.component.d.ts +5 -2
- package/icons-animated/lib/icons/loading/loading-icon-animated.component.d.ts +5 -2
- package/icons-animated/lib/icons-animated.component.d.ts +3 -0
- package/icons-animated/lib/icons-animated.service.d.ts +3 -0
- package/icons-animated/lib/koala-icons-animated.module.d.ts +8 -0
- package/icons-animated/package.json +18 -6
- package/list/{esm2015/index.js → esm2020/index.mjs} +0 -0
- package/list/{esm2015/koalarx-ui-list.js → esm2020/koalarx-ui-list.mjs} +0 -0
- package/list/{esm2015/lib/koala-list-btn-collapse-sub-list-config.interface.js → esm2020/lib/koala-list-btn-collapse-sub-list-config.interface.mjs} +0 -0
- package/list/{esm2015/lib/koala-list-filter.interface.js → esm2020/lib/koala-list-filter.interface.mjs} +0 -0
- package/list/{esm2015/lib/koala-list-form-filter.interface.js → esm2020/lib/koala-list-form-filter.interface.mjs} +0 -0
- package/list/{esm2015/lib/koala-list-item-menu-option.interface.js → esm2020/lib/koala-list-item-menu-option.interface.mjs} +0 -0
- package/list/{esm2015/lib/koala-list-item.interface.js → esm2020/lib/koala-list-item.interface.mjs} +0 -0
- package/list/{esm2015/lib/koala.list-config.interface.js → esm2020/lib/koala.list-config.interface.mjs} +0 -0
- package/list/esm2020/lib/koala.list.module.mjs +70 -0
- package/list/esm2020/lib/koala.list.service.mjs +15 -0
- package/list/esm2020/lib/list-builder/list.builder.mjs +97 -0
- package/list/esm2020/lib/list.abstract.mjs +157 -0
- package/list/esm2020/lib/list.component.mjs +171 -0
- package/list/esm2020/lib/providers/pagination/pagination.provider.mjs +32 -0
- package/list/fesm2015/koalarx-ui-list.mjs +559 -0
- package/list/fesm2015/koalarx-ui-list.mjs.map +1 -0
- package/list/fesm2020/koalarx-ui-list.mjs +529 -0
- package/list/fesm2020/koalarx-ui-list.mjs.map +1 -0
- package/list/koalarx-ui-list.d.ts +1 -0
- package/list/lib/koala.list.module.d.ts +15 -0
- package/list/lib/koala.list.service.d.ts +3 -0
- package/list/lib/list.component.d.ts +3 -0
- package/list/lib/providers/pagination/pagination.provider.d.ts +3 -0
- package/list/package.json +18 -6
- package/menu/{esm2015/index.js → esm2020/index.mjs} +0 -0
- package/menu/{esm2015/koalarx-ui-menu.js → esm2020/koalarx-ui-menu.mjs} +0 -0
- package/menu/{esm2015/lib/koala.menu-module.interface.js → esm2020/lib/koala.menu-module.interface.mjs} +0 -0
- package/menu/{esm2015/lib/koala.menu-tool.interface.js → esm2020/lib/koala.menu-tool.interface.mjs} +0 -0
- package/menu/esm2020/lib/koala.menu.module.mjs +38 -0
- package/menu/esm2020/lib/koala.menu.service.mjs +24 -0
- package/menu/esm2020/lib/menu.component.mjs +100 -0
- package/menu/fesm2015/koalarx-ui-menu.mjs +167 -0
- package/menu/fesm2015/koalarx-ui-menu.mjs.map +1 -0
- package/menu/fesm2020/koalarx-ui-menu.mjs +162 -0
- package/menu/fesm2020/koalarx-ui-menu.mjs.map +1 -0
- package/menu/koalarx-ui-menu.d.ts +1 -0
- package/menu/lib/koala.menu.module.d.ts +9 -0
- package/menu/lib/koala.menu.service.d.ts +3 -0
- package/menu/lib/menu.component.d.ts +6 -0
- package/menu/package.json +18 -6
- package/package.json +10 -9
- package/question/{esm2015/index.js → esm2020/index.mjs} +0 -0
- package/question/{esm2015/koalarx-ui-question.js → esm2020/koalarx-ui-question.mjs} +0 -0
- package/question/esm2020/lib/dialog-question.component.mjs +25 -0
- package/question/{esm2015/lib/koala-question-config.interface.js → esm2020/lib/koala-question-config.interface.mjs} +0 -0
- package/question/esm2020/lib/koala.question.module.mjs +42 -0
- package/question/esm2020/lib/koala.question.service.mjs +26 -0
- package/question/fesm2015/koalarx-ui-question.mjs +95 -0
- package/question/fesm2015/koalarx-ui-question.mjs.map +1 -0
- package/question/fesm2020/koalarx-ui-question.mjs +93 -0
- package/question/fesm2020/koalarx-ui-question.mjs.map +1 -0
- package/question/koalarx-ui-question.d.ts +1 -0
- package/question/lib/dialog-question.component.d.ts +3 -0
- package/question/lib/koala.question.module.d.ts +10 -0
- package/question/lib/koala.question.service.d.ts +3 -0
- package/question/package.json +18 -6
- package/snackbar/{esm2015/index.js → esm2020/index.mjs} +0 -0
- package/snackbar/{esm2015/koalarx-ui-snackbar.js → esm2020/koalarx-ui-snackbar.mjs} +0 -0
- package/snackbar/esm2020/lib/koala.snackbar.component.mjs +22 -0
- package/snackbar/{esm2015/lib/koala.snackbar.interface.js → esm2020/lib/koala.snackbar.interface.mjs} +0 -0
- package/snackbar/esm2020/lib/koala.snackbar.module.mjs +38 -0
- package/snackbar/esm2020/lib/koala.snackbar.service.mjs +35 -0
- package/snackbar/fesm2015/koalarx-ui-snackbar.mjs +95 -0
- package/snackbar/fesm2015/koalarx-ui-snackbar.mjs.map +1 -0
- package/snackbar/fesm2020/koalarx-ui-snackbar.mjs +93 -0
- package/snackbar/fesm2020/koalarx-ui-snackbar.mjs.map +1 -0
- package/snackbar/koalarx-ui-snackbar.d.ts +1 -0
- package/snackbar/lib/koala.snackbar.component.d.ts +3 -0
- package/snackbar/lib/koala.snackbar.module.d.ts +8 -0
- package/snackbar/lib/koala.snackbar.service.d.ts +3 -0
- package/snackbar/package.json +18 -6
- package/alert/bundles/koalarx-ui-alert.umd.js +0 -153
- package/alert/bundles/koalarx-ui-alert.umd.js.map +0 -1
- package/alert/esm2015/lib/dialog-alert.component.js +0 -43
- package/alert/esm2015/lib/koala.alert.module.js +0 -31
- package/alert/esm2015/lib/koala.alert.service.js +0 -21
- package/alert/fesm2015/koalarx-ui-alert.js +0 -121
- package/alert/fesm2015/koalarx-ui-alert.js.map +0 -1
- package/alert/koalarx-ui-alert.metadata.json +0 -1
- package/button/bundles/koalarx-ui-button.umd.js +0 -71
- package/button/bundles/koalarx-ui-button.umd.js.map +0 -1
- package/button/esm2015/lib/button.component.js +0 -31
- package/button/esm2015/lib/koala.button.module.js +0 -27
- package/button/fesm2015/koalarx-ui-button.js +0 -63
- package/button/fesm2015/koalarx-ui-button.js.map +0 -1
- package/button/koalarx-ui-button.metadata.json +0 -1
- package/common/bundles/koalarx-ui-common.umd.js +0 -481
- package/common/bundles/koalarx-ui-common.umd.js.map +0 -1
- package/common/esm2015/lib/services/csv/koala.csv.service.js +0 -38
- package/common/esm2015/lib/services/xlsx/koala.xlsx.service.js +0 -74
- package/common/fesm2015/koalarx-ui-common.js.map +0 -1
- package/common/koalarx-ui-common.metadata.json +0 -1
- package/core/bundles/koalarx-ui-core.umd.js +0 -1716
- package/core/bundles/koalarx-ui-core.umd.js.map +0 -1
- package/core/esm2015/index.js +0 -34
- package/core/esm2015/koalarx-ui-core.js +0 -7
- package/core/esm2015/lib/loader/loader-bar-page.component.js +0 -22
- package/core/esm2015/lib/ngx-koala.module.js +0 -35
- package/core/esm2015/lib/page/koala.page.module.js +0 -46
- package/core/esm2015/lib/page/notifications/notification.component.js +0 -43
- package/core/esm2015/lib/page/page.component.js +0 -396
- package/core/esm2015/lib/router/koala.parameter-hash-location-stategy.js +0 -16
- package/core/esm2015/lib/services/api-requester/factory/koala.response.factory.js +0 -48
- package/core/esm2015/lib/services/api-requester/koala.api-requester.base.js +0 -70
- package/core/esm2015/lib/services/api-requester/koala.api-requester.service.js +0 -134
- package/core/esm2015/lib/services/loader/koala.loader.service.js +0 -32
- package/core/esm2015/lib/services/openid/koala.oauth.config.js +0 -33
- package/core/esm2015/lib/services/openid/koala.oauth2.service.js +0 -201
- package/core/esm2015/lib/services/request/koala.request.service.js +0 -53
- package/core/esm2015/lib/services/token/token.factory.js +0 -31
- package/core/fesm2015/koalarx-ui-core.js.map +0 -1
- package/core/koalarx-ui-core.metadata.json +0 -1
- package/dialog/bundles/koalarx-ui-dialog.umd.js +0 -139
- package/dialog/bundles/koalarx-ui-dialog.umd.js.map +0 -1
- package/dialog/esm2015/lib/dialog.component.js +0 -18
- package/dialog/esm2015/lib/koala.dialog.module.js +0 -25
- package/dialog/esm2015/lib/koala.dialog.service.js +0 -61
- package/dialog/fesm2015/koalarx-ui-dialog.js +0 -107
- package/dialog/fesm2015/koalarx-ui-dialog.js.map +0 -1
- package/dialog/koalarx-ui-dialog.metadata.json +0 -1
- package/dynamic-component/bundles/koalarx-ui-dynamic-component.umd.js +0 -95
- package/dynamic-component/bundles/koalarx-ui-dynamic-component.umd.js.map +0 -1
- package/dynamic-component/esm2015/lib/koala-dynamic-component.directive.js +0 -15
- package/dynamic-component/esm2015/lib/koala-dynamic-component.factory.js +0 -38
- package/dynamic-component/esm2015/lib/koala-dynamic-component.module.js +0 -17
- package/dynamic-component/fesm2015/koalarx-ui-dynamic-component.js +0 -79
- package/dynamic-component/fesm2015/koalarx-ui-dynamic-component.js.map +0 -1
- package/dynamic-component/koalarx-ui-dynamic-component.metadata.json +0 -1
- package/file-button/bundles/koalarx-ui-file-button.umd.js +0 -553
- package/file-button/bundles/koalarx-ui-file-button.umd.js.map +0 -1
- package/file-button/esm2015/lib/file-button.component.js +0 -118
- package/file-button/esm2015/lib/koala.btn-file.service.js +0 -26
- package/file-button/esm2015/lib/koala.file-button.module.js +0 -25
- package/file-button/fesm2015/koalarx-ui-file-button.js +0 -171
- package/file-button/fesm2015/koalarx-ui-file-button.js.map +0 -1
- package/file-button/koalarx-ui-file-button.metadata.json +0 -1
- package/folder-page/bundles/koalarx-ui-folder-page.umd.js +0 -97
- package/folder-page/bundles/koalarx-ui-folder-page.umd.js.map +0 -1
- package/folder-page/esm2015/lib/folder.component.js +0 -56
- package/folder-page/esm2015/lib/koala.folder-page.module.js +0 -27
- package/folder-page/fesm2015/koalarx-ui-folder-page.js +0 -88
- package/folder-page/fesm2015/koalarx-ui-folder-page.js.map +0 -1
- package/folder-page/koalarx-ui-folder-page.metadata.json +0 -1
- package/form/bundles/koalarx-ui-form.umd.js +0 -1969
- package/form/bundles/koalarx-ui-form.umd.js.map +0 -1
- package/form/esm2015/lib/btn-submit/btn-submit.component.js +0 -39
- package/form/esm2015/lib/directives/koala-autofocus.directive.js +0 -25
- package/form/esm2015/lib/dynamic-form/builder/dynamic-form.builder.js +0 -141
- package/form/esm2015/lib/dynamic-form/builder/fields/field.base.js +0 -151
- package/form/esm2015/lib/dynamic-form/builder/fields/more-items.builder.js +0 -57
- package/form/esm2015/lib/dynamic-form/dynamic-form.component.js +0 -564
- package/form/esm2015/lib/dynamic-form/koala.dynamic-form.service.js +0 -204
- package/form/esm2015/lib/koala.form.module.js +0 -69
- package/form/fesm2015/koalarx-ui-form.js +0 -1487
- package/form/fesm2015/koalarx-ui-form.js.map +0 -1
- package/form/koalarx-ui-form.metadata.json +0 -1
- package/icon/bundles/koalarx-ui-icon.umd.js +0 -76
- package/icon/bundles/koalarx-ui-icon.umd.js.map +0 -1
- package/icon/esm2015/lib/koala.icon.module.js +0 -19
- package/icon/fesm2015/koalarx-ui-icon.js.map +0 -1
- package/icon/koalarx-ui-icon.metadata.json +0 -1
- package/icons-animated/bundles/koalarx-ui-icons-animated.umd.js +0 -138
- package/icons-animated/bundles/koalarx-ui-icons-animated.umd.js.map +0 -1
- package/icons-animated/esm2015/koalarx-ui-icons-animated.js +0 -6
- package/icons-animated/esm2015/lib/icons/downloading/downloading-icon-animated.component.js +0 -28
- package/icons-animated/esm2015/lib/icons/loading/loading-icon-animated.component.js +0 -28
- package/icons-animated/esm2015/lib/icons-animated.component.js +0 -15
- package/icons-animated/esm2015/lib/icons-animated.service.js +0 -29
- package/icons-animated/esm2015/lib/koala-icons-animated.module.js +0 -23
- package/icons-animated/fesm2015/koalarx-ui-icons-animated.js +0 -121
- package/icons-animated/fesm2015/koalarx-ui-icons-animated.js.map +0 -1
- package/icons-animated/koalarx-ui-icons-animated.metadata.json +0 -1
- package/list/bundles/koalarx-ui-list.umd.js +0 -914
- package/list/bundles/koalarx-ui-list.umd.js.map +0 -1
- package/list/esm2015/lib/koala.list.module.js +0 -42
- package/list/esm2015/lib/koala.list.service.js +0 -13
- package/list/esm2015/lib/list-builder/list.builder.js +0 -101
- package/list/esm2015/lib/list.abstract.js +0 -174
- package/list/esm2015/lib/list.component.js +0 -166
- package/list/esm2015/lib/providers/pagination/pagination.provider.js +0 -30
- package/list/fesm2015/koalarx-ui-list.js +0 -514
- package/list/fesm2015/koalarx-ui-list.js.map +0 -1
- package/list/koalarx-ui-list.metadata.json +0 -1
- package/menu/bundles/koalarx-ui-menu.umd.js +0 -511
- package/menu/bundles/koalarx-ui-menu.umd.js.map +0 -1
- package/menu/esm2015/lib/koala.menu.module.js +0 -25
- package/menu/esm2015/lib/koala.menu.service.js +0 -22
- package/menu/esm2015/lib/menu.component.js +0 -104
- package/menu/fesm2015/koalarx-ui-menu.js +0 -153
- package/menu/fesm2015/koalarx-ui-menu.js.map +0 -1
- package/menu/koalarx-ui-menu.metadata.json +0 -1
- package/question/bundles/koalarx-ui-question.umd.js +0 -104
- package/question/bundles/koalarx-ui-question.umd.js.map +0 -1
- package/question/esm2015/lib/dialog-question.component.js +0 -20
- package/question/esm2015/lib/koala.question.module.js +0 -27
- package/question/esm2015/lib/koala.question.service.js +0 -28
- package/question/fesm2015/koalarx-ui-question.js +0 -77
- package/question/fesm2015/koalarx-ui-question.js.map +0 -1
- package/question/koalarx-ui-question.metadata.json +0 -1
- package/snackbar/bundles/koalarx-ui-snackbar.umd.js +0 -93
- package/snackbar/bundles/koalarx-ui-snackbar.umd.js.map +0 -1
- package/snackbar/esm2015/lib/koala.snackbar.component.js +0 -20
- package/snackbar/esm2015/lib/koala.snackbar.module.js +0 -26
- package/snackbar/esm2015/lib/koala.snackbar.service.js +0 -35
- package/snackbar/fesm2015/koalarx-ui-snackbar.js +0 -81
- package/snackbar/fesm2015/koalarx-ui-snackbar.js.map +0 -1
- package/snackbar/koalarx-ui-snackbar.metadata.json +0 -1
|
@@ -1,396 +0,0 @@
|
|
|
1
|
-
import { __awaiter } from "tslib";
|
|
2
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
3
|
-
import { NavigationCancel, NavigationEnd, NavigationError, NavigationStart, Router } from '@angular/router';
|
|
4
|
-
import { BehaviorSubject } from 'rxjs';
|
|
5
|
-
import { KoalaTokenService } from '../services/token/koala.token.service';
|
|
6
|
-
import { KoalaLoaderService } from '../services/loader/koala.loader.service';
|
|
7
|
-
import { KoalaMenuService, menuStateSubject } from '@koalarx/ui/menu';
|
|
8
|
-
import jwtEncode from "jwt-encode";
|
|
9
|
-
import { TokenFactory } from "../services/token/token.factory";
|
|
10
|
-
import { KoalaOAuth2Service } from "../services/openid/koala.oauth2.service";
|
|
11
|
-
import { KoalaEnvironment } from "../environments/koalaEnvironment";
|
|
12
|
-
import { KoalaOauthConfig } from "../services/openid/koala.oauth.config";
|
|
13
|
-
import { KoalaLanguageHelper } from "./koala-language.helper";
|
|
14
|
-
import { DeviceDetectorService } from "ngx-device-detector";
|
|
15
|
-
export class PageComponent {
|
|
16
|
-
constructor(tokenService, router, loaderService, menuService, oauth2Service, deviceService) {
|
|
17
|
-
this.tokenService = tokenService;
|
|
18
|
-
this.router = router;
|
|
19
|
-
this.loaderService = loaderService;
|
|
20
|
-
this.menuService = menuService;
|
|
21
|
-
this.oauth2Service = oauth2Service;
|
|
22
|
-
this.deviceService = deviceService;
|
|
23
|
-
this.showMenu = true;
|
|
24
|
-
this.startMenuOpened = true;
|
|
25
|
-
this.userMenuOptions = [];
|
|
26
|
-
this.language = 'ptBr';
|
|
27
|
-
this.validatingScope = new EventEmitter(false);
|
|
28
|
-
this.logoutEmitter = new EventEmitter(false);
|
|
29
|
-
this.deleteAllNotifications = new EventEmitter(false);
|
|
30
|
-
this.deleteNotification = new EventEmitter(null);
|
|
31
|
-
this.username$ = new BehaviorSubject('');
|
|
32
|
-
this.firstUserLetter$ = new BehaviorSubject('');
|
|
33
|
-
this.logged$ = new BehaviorSubject(false);
|
|
34
|
-
this.validationScope$ = new BehaviorSubject(false);
|
|
35
|
-
this.isMobile = this.deviceService.isMobile();
|
|
36
|
-
this.defaultPalletColors = {
|
|
37
|
-
scrollbarColor: '#1976D2',
|
|
38
|
-
scrollbarColorHover: '#1565C0',
|
|
39
|
-
userPresentationBackground: '#f1f1f1',
|
|
40
|
-
userPresentationUserBackground: '#1976D2',
|
|
41
|
-
userPresentationUserFontColor: '#fff',
|
|
42
|
-
firstColor: '#fff',
|
|
43
|
-
secondColor: '#F1F1F1',
|
|
44
|
-
bodyBackground: '#eeeeee',
|
|
45
|
-
checkboxBackground: '#1976d2',
|
|
46
|
-
checkboxColor: '#ffffff',
|
|
47
|
-
fontColor: '#1976D2',
|
|
48
|
-
fontHoverColor: '#1976D2',
|
|
49
|
-
fontActiveColor: '#1565C0',
|
|
50
|
-
menuTitleBackground: 'rgba(0,0,0,.1)',
|
|
51
|
-
menuTitleColor: 'rgba(0,0,0,.3)',
|
|
52
|
-
menuBackground: '#fafafa',
|
|
53
|
-
menuOptionsBackground: '#eaeaea',
|
|
54
|
-
menuOptionsColor: '#a5a5a5',
|
|
55
|
-
menuOptionsColorHover: '#1976D2',
|
|
56
|
-
menuOptionsColorActive: '#1565c0',
|
|
57
|
-
toolbarBackground: '#ffffff',
|
|
58
|
-
toolbarColor: '#1976d2',
|
|
59
|
-
listBackground: '#fff',
|
|
60
|
-
listContentBackground: '#fff',
|
|
61
|
-
listTitleItemColor: '#838383',
|
|
62
|
-
listItemColor: '#3e3e3e',
|
|
63
|
-
listItemBackgroudHover: '#F1F1F1',
|
|
64
|
-
listItemBackgroundActive: '#EEE',
|
|
65
|
-
shadowColorTableList: 'rgba(25, 118, 210, .4)'
|
|
66
|
-
};
|
|
67
|
-
this.loaderSubject = loaderService.getLoaderSubject();
|
|
68
|
-
}
|
|
69
|
-
ngOnInit() {
|
|
70
|
-
var _a;
|
|
71
|
-
KoalaLanguageHelper.setLanguage(this.language);
|
|
72
|
-
this.initOAuth2();
|
|
73
|
-
if (this.openPages) {
|
|
74
|
-
if (this.openPages.indexOf('/') < 0) {
|
|
75
|
-
this.openPages.push('/');
|
|
76
|
-
}
|
|
77
|
-
if (this.openPages.indexOf('/login') < 0) {
|
|
78
|
-
this.openPages.push('/login');
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
else {
|
|
82
|
-
this.openPages = [
|
|
83
|
-
'/',
|
|
84
|
-
'/login'
|
|
85
|
-
];
|
|
86
|
-
}
|
|
87
|
-
(_a = this.tokenService.getToken()) === null || _a === void 0 ? void 0 : _a.subscribe(token => {
|
|
88
|
-
var _a, _b;
|
|
89
|
-
this.logged$.next(!!token);
|
|
90
|
-
if (this.logged$.getValue()) {
|
|
91
|
-
const decodedToken = this.tokenService.getDecodedToken();
|
|
92
|
-
this.username$.next(decodedToken.login);
|
|
93
|
-
this.firstUserLetter$.next(decodedToken.login.charAt(0).toUpperCase());
|
|
94
|
-
if (!this.isMobile) {
|
|
95
|
-
this.menuService.open();
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
if (this.logged$.getValue() && ((_a = this.openPages) === null || _a === void 0 ? void 0 : _a.indexOf(this.currentUrl)) >= 0 && this.defaultPage) {
|
|
99
|
-
this.router.navigate([this.defaultPage]).then();
|
|
100
|
-
}
|
|
101
|
-
else if (!this.logged$.getValue() && this.currentUrl && ((_b = this.openPages) === null || _b === void 0 ? void 0 : _b.indexOf(this.currentUrl)) < 0) {
|
|
102
|
-
this.router.navigate(['login']).then();
|
|
103
|
-
return false;
|
|
104
|
-
}
|
|
105
|
-
});
|
|
106
|
-
this.router.events.subscribe(event => {
|
|
107
|
-
var _a, _b;
|
|
108
|
-
switch (true) {
|
|
109
|
-
case event instanceof NavigationStart: {
|
|
110
|
-
this.loaderService.create({ typeLoader: 'indeterminate' });
|
|
111
|
-
break;
|
|
112
|
-
}
|
|
113
|
-
case event instanceof NavigationEnd:
|
|
114
|
-
case event instanceof NavigationCancel:
|
|
115
|
-
case event instanceof NavigationError: {
|
|
116
|
-
this.loaderService.dismiss();
|
|
117
|
-
if (event instanceof NavigationEnd) {
|
|
118
|
-
if (this.isMobile) {
|
|
119
|
-
this.menuService.close();
|
|
120
|
-
}
|
|
121
|
-
this.currentUrl = event.url.split('?')[0];
|
|
122
|
-
if (event.url.indexOf('/login?clientId=') < 0) {
|
|
123
|
-
if (this.logged$.getValue() && this.defaultPage && ((_a = this.openPages) === null || _a === void 0 ? void 0 : _a.indexOf(this.currentUrl)) >= 0) {
|
|
124
|
-
this.router.navigate([this.defaultPage]).then();
|
|
125
|
-
return false;
|
|
126
|
-
}
|
|
127
|
-
else if (!this.logged$.getValue() && ((_b = this.openPages) === null || _b === void 0 ? void 0 : _b.indexOf(this.currentUrl)) < 0) {
|
|
128
|
-
this.router.navigate(['login']).then();
|
|
129
|
-
return false;
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
break;
|
|
134
|
-
}
|
|
135
|
-
default: {
|
|
136
|
-
break;
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
});
|
|
140
|
-
if (this.palletColors) {
|
|
141
|
-
Object.keys(this.defaultPalletColors).forEach(indexName => {
|
|
142
|
-
if (!this.palletColors.hasOwnProperty(indexName) ||
|
|
143
|
-
!this.palletColors[indexName]) {
|
|
144
|
-
this.palletColors[indexName] = this.defaultPalletColors[indexName];
|
|
145
|
-
}
|
|
146
|
-
});
|
|
147
|
-
}
|
|
148
|
-
else {
|
|
149
|
-
this.palletColors = this.defaultPalletColors;
|
|
150
|
-
}
|
|
151
|
-
this.defineColor();
|
|
152
|
-
if (this.showMenu) {
|
|
153
|
-
menuStateSubject.subscribe((state) => __awaiter(this, void 0, void 0, function* () {
|
|
154
|
-
if (this.menu) {
|
|
155
|
-
if (state === 'close') {
|
|
156
|
-
if (this.menu.opened) {
|
|
157
|
-
yield this.menu.close();
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
else if (state === 'open') {
|
|
161
|
-
if (!this.menu.opened) {
|
|
162
|
-
yield this.menu.open();
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
}));
|
|
167
|
-
if (this.startMenuOpened && this.logged$.getValue()) {
|
|
168
|
-
if (!this.isMobile) {
|
|
169
|
-
this.menuService.open();
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
else {
|
|
173
|
-
this.menuService.close();
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
else {
|
|
177
|
-
this.menuService.close();
|
|
178
|
-
}
|
|
179
|
-
this.validationScope$.subscribe(scope => this.validatingScope.emit(scope));
|
|
180
|
-
}
|
|
181
|
-
toogleMenu() {
|
|
182
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
183
|
-
this.menuService.clearConfig();
|
|
184
|
-
if (this.menu) {
|
|
185
|
-
yield this.menu.toggle();
|
|
186
|
-
}
|
|
187
|
-
});
|
|
188
|
-
}
|
|
189
|
-
logout() {
|
|
190
|
-
var _a;
|
|
191
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
192
|
-
if ((_a = KoalaEnvironment.environment) === null || _a === void 0 ? void 0 : _a.oauthConfig) {
|
|
193
|
-
this.oauth2Service.logout();
|
|
194
|
-
}
|
|
195
|
-
this.menuService.close();
|
|
196
|
-
this.tokenService.removeToken();
|
|
197
|
-
this.tokenService.getToken().next(null);
|
|
198
|
-
this.logoutEmitter.emit(true);
|
|
199
|
-
});
|
|
200
|
-
}
|
|
201
|
-
defineColor() {
|
|
202
|
-
const css = `
|
|
203
|
-
*::-webkit-scrollbar-thumb {background: ${this.palletColors.scrollbarColor};width: 2px;}
|
|
204
|
-
*::-webkit-scrollbar-thumb:hover {background: ${this.palletColors.scrollbarColorHover};}
|
|
205
|
-
input:-webkit-autofill, input:-webkit-autofill:focus, input:-webkit-autofill:hover {color: ${this.palletColors.fontColor}!important;}
|
|
206
|
-
.menu-container,
|
|
207
|
-
body {background: ${this.palletColors.bodyBackground}!important;}
|
|
208
|
-
input:-webkit-autofill, input:-webkit-autofill:focus, input:-webkit-autofill:hover {-webkit-box-shadow: 0 0 0 1000px ${this.palletColors.firstColor} inset !important;}
|
|
209
|
-
.mat-button-disabled,
|
|
210
|
-
input::placeholder,
|
|
211
|
-
.mat-form-field-appearance-outline .mat-form-field-outline {color: ${this.palletColors.fontColor}!important;opacity: .6;}
|
|
212
|
-
.mat-hint,
|
|
213
|
-
.mat-expansion-indicator::after,
|
|
214
|
-
.more-items-content .items .titleForm,
|
|
215
|
-
fieldset legend,
|
|
216
|
-
.mat-paginator-container,
|
|
217
|
-
.mat-form-field-flex mat-icon {color: ${this.palletColors.fontColor}!important;}
|
|
218
|
-
.mat-paginator-container,
|
|
219
|
-
.mat-card,
|
|
220
|
-
.mat-expansion-panel,
|
|
221
|
-
.mat-select-panel,
|
|
222
|
-
.mat-autocomplete-panel,
|
|
223
|
-
.mat-menu-panel {background: ${this.palletColors.firstColor}}
|
|
224
|
-
.mat-selected {background-color: rgba(0,0,0,.3)!important;}
|
|
225
|
-
.question p,
|
|
226
|
-
.alert-message,
|
|
227
|
-
.mat-action-row,
|
|
228
|
-
.mat-option,
|
|
229
|
-
.mat-menu-item,
|
|
230
|
-
.mat-menu-item mat-icon {color: ${this.palletColors.fontColor}!important}
|
|
231
|
-
.mat-select-value,
|
|
232
|
-
.mat-select-arrow,
|
|
233
|
-
.mat-form-field input,
|
|
234
|
-
.mat-form-field textarea,
|
|
235
|
-
.mat-form-field-appearance-outline:not(.mat-form-field-invalid) .mat-form-field-outline-thick,
|
|
236
|
-
.mat-form-field label,
|
|
237
|
-
.select-multiple-native select {color: ${this.palletColors.fontColor}!important;caret-color: ${this.palletColors.fontColor}!important;}
|
|
238
|
-
.mat-form-field-underline,
|
|
239
|
-
.mat-form-field-appearance-fill .mat-form-field-underline::before,
|
|
240
|
-
.mat-form-field-ripple {background: ${this.palletColors.fontColor}!important;}
|
|
241
|
-
.mat-checkbox-checked.mat-accent .mat-checkbox-background, .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background,
|
|
242
|
-
.mat-checkbox:not(.mat-checkbox-disabled).mat-accent .mat-checkbox-ripple .mat-ripple-element {background-color: ${this.palletColors.checkboxBackground} !important;}
|
|
243
|
-
.mat-checkbox-checkmark-path {stroke: ${this.palletColors.checkboxColor} !important;}
|
|
244
|
-
.mat-checkbox-checkmark {fill: ${this.palletColors.checkboxColor} !important;}
|
|
245
|
-
.mat-checkbox-mixedmark {background-color: ${this.palletColors.checkboxColor} !important;}
|
|
246
|
-
.mat-checkbox-frame {border-color: ${this.palletColors.checkboxOutlineColor}!important;}
|
|
247
|
-
.mat-checkbox-label {color: ${this.palletColors.fontColor}!important;}
|
|
248
|
-
.mat-radio-outer-circle {border-color: ${this.palletColors.checkboxBackground}!important;}
|
|
249
|
-
.mat-radio-ripple .mat-ripple-element, .mat-radio-inner-circle {background-color: ${this.palletColors.checkboxBackground} !important;}
|
|
250
|
-
.home-list-cards .list .mat-list-item-content .mat-icon {color: ${this.palletColors.fontColor};}
|
|
251
|
-
.home-list-cards .list button .mat-badge-content {background: ${this.palletColors.fontColor};}
|
|
252
|
-
.koala-dialog .mat-dialog-title h2 {color: ${this.palletColors.fontColor};}
|
|
253
|
-
.koala-dialog .mat-dialog-title mat-icon {color: ${this.palletColors.fontColor}!important;}
|
|
254
|
-
.koala-dialog .mat-dialog-container {background: ${this.palletColors.firstColor}}
|
|
255
|
-
.list-filter mat-icon {color: ${this.palletColors.filterIconColor}!important;}
|
|
256
|
-
koala-page .menu-options {background: ${this.palletColors.menuBackground};}
|
|
257
|
-
koala-page .toolbar {background: ${this.palletColors.toolbarBackground};}
|
|
258
|
-
koala-page .toolbar .btn-collapse-menu,
|
|
259
|
-
koala-page .btn-toolbar span{color: ${this.palletColors.toolbarColor};}
|
|
260
|
-
koala-page .btn-toolbar span.icon-user,
|
|
261
|
-
.user-presentation span.icon-user {background: ${this.palletColors.userPresentationUserBackground};color: ${this.palletColors.userPresentationUserFontColor};}
|
|
262
|
-
.user-presentation {background: ${this.palletColors.userPresentationBackground};}
|
|
263
|
-
.user-presentation span.username {color: ${this.palletColors.toolbarColor};}
|
|
264
|
-
.mat-drawer.mat-drawer-push {background-color: ${this.palletColors.bodyBackground};}
|
|
265
|
-
koala-menu .title {background: ${this.palletColors.menuTitleBackground};color: ${this.palletColors.menuTitleColor};}
|
|
266
|
-
koala-menu ul li,
|
|
267
|
-
koala-menu ul li a {color: ${this.palletColors.menuOptionsColor};}
|
|
268
|
-
koala-menu ul li:hover,
|
|
269
|
-
koala-menu ul li:hover a {color: ${this.palletColors.menuOptionsColorHover} !important;}
|
|
270
|
-
koala-menu ul li.active,
|
|
271
|
-
koala-menu ul li.expanded {color: ${this.palletColors.menuOptionsColorActive} !important;border-left: 4px solid ${this.palletColors.menuOptionsColorActive} !important;background: ${this.palletColors.menuOptionsBackground} !important;}
|
|
272
|
-
koala-menu ul li.active a,
|
|
273
|
-
koala-menu ul li.expanded a {color: ${this.palletColors.menuOptionsColorActive} !important;background: ${this.palletColors.menuOptionsBackground} !important;}
|
|
274
|
-
koala-menu ul li li:hover,
|
|
275
|
-
koala-menu ul li li:hover a {color: ${this.palletColors.menuOptionsColorHover} !important;}
|
|
276
|
-
koala-menu ul li li.active,
|
|
277
|
-
koala-menu ul li li.active a {color: ${this.palletColors.menuOptionsColorActive} !important;}
|
|
278
|
-
koala-menu ul li koala-icon svg *,
|
|
279
|
-
koala-menu ul li a koala-icon svg * {fill: ${this.palletColors.menuOptionsColor};}
|
|
280
|
-
koala-menu ul li:hover koala-icon svg *,
|
|
281
|
-
koala-menu ul li:hover a koala-icon svg * {fill: ${this.palletColors.menuOptionsColorHover} !important;}
|
|
282
|
-
koala-menu ul li.active koala-icon *,
|
|
283
|
-
koala-menu ul li.expanded koala-icon * {fill: ${this.palletColors.menuOptionsColorActive} !important;}
|
|
284
|
-
koala-menu ul li li:hover koala-icon *,
|
|
285
|
-
koala-menu ul li li:hover a koala-icon * {fill: ${this.palletColors.menuOptionsColorHover} !important;}
|
|
286
|
-
koala-menu ul li li.active koala-icon *,
|
|
287
|
-
koala-menu ul li li.active a koala-icon * {fill: ${this.palletColors.menuOptionsColorActive}!important;}
|
|
288
|
-
.notifications-content .title {color: ${this.palletColors.notificationTitleColor}!important;}
|
|
289
|
-
.notifications-content .empty,
|
|
290
|
-
.notifications-content .titleList {color: ${this.palletColors.notificationContentTitleColor}!important;}
|
|
291
|
-
.notifications-content .iconList {color: ${this.palletColors.notificationContentIconColor}!important;}
|
|
292
|
-
.notifications-content .textList {color: ${this.palletColors.notificationTitleColor}!important;}
|
|
293
|
-
.list-container {box-shadow: 0 1px 3px ${this.palletColors.shadowColorTableList};}
|
|
294
|
-
.list-container .list table.table-hover tr:hover {background: ${this.palletColors.listItemBackgroudHover};}
|
|
295
|
-
.list-container .list table.table-hover tr:active {background: ${this.palletColors.listItemBackgroundActive};}
|
|
296
|
-
.list-container .list-filter .advanced {background: ${this.palletColors.firstColor};}
|
|
297
|
-
.list-container nav.menu-list {background: ${this.palletColors.firstColor};color: rgba(25, 118, 210, .3);}
|
|
298
|
-
.content {background: ${this.palletColors.listContentBackground};}
|
|
299
|
-
.mat-tab-group .mat-tab-label {color: ${this.palletColors.fontColor};}
|
|
300
|
-
.mat-tab-group .mat-ink-bar {background-color: ${this.palletColors.fontColor}!important;}
|
|
301
|
-
.mat-table {background: ${this.palletColors.listBackground};color: ${this.palletColors.fontColor};}
|
|
302
|
-
.mat-table th {color: ${this.palletColors.listTitleItemColor}!important;}
|
|
303
|
-
.mat-sort-header-arrow {color: ${this.palletColors.listItemColor}!important;}
|
|
304
|
-
.mat-table td {color: ${this.palletColors.listItemColor}!important;}`;
|
|
305
|
-
const head = document.head || document.getElementsByTagName('head')[0];
|
|
306
|
-
const style = document.createElement('style');
|
|
307
|
-
head.appendChild(style);
|
|
308
|
-
style.appendChild(document.createTextNode(css));
|
|
309
|
-
}
|
|
310
|
-
initOAuth2() {
|
|
311
|
-
KoalaOauthConfig.config.subscribe(config => this.startConfig(config));
|
|
312
|
-
if (KoalaOauthConfig.hasConfig()) {
|
|
313
|
-
KoalaOauthConfig.setConfig(KoalaOauthConfig.getConfig());
|
|
314
|
-
}
|
|
315
|
-
}
|
|
316
|
-
startConfig(config) {
|
|
317
|
-
var _a, _b;
|
|
318
|
-
if (config.clientId) {
|
|
319
|
-
this.oauth2Service.configure({
|
|
320
|
-
redirectUri: window.location.origin,
|
|
321
|
-
redirectUriAfterAuth: this.defaultPage,
|
|
322
|
-
responseType: 'code',
|
|
323
|
-
clientId: config.clientId,
|
|
324
|
-
scope: config.scope,
|
|
325
|
-
issuer: config.domain,
|
|
326
|
-
customQueryParams: config.customQueryParams,
|
|
327
|
-
endpointToken: (_a = config.endpointToken) !== null && _a !== void 0 ? _a : null,
|
|
328
|
-
endpointClaims: (_b = config.endpointClaims) !== null && _b !== void 0 ? _b : null
|
|
329
|
-
});
|
|
330
|
-
this.oauth2Service.loadDiscoveryDocumentAndTryLogin().then();
|
|
331
|
-
if (this.oauthEventsSubscription) {
|
|
332
|
-
this.oauthEventsSubscription.unsubscribe();
|
|
333
|
-
}
|
|
334
|
-
this.oauthEventsSubscription = this.oauth2Service.events.subscribe(event => {
|
|
335
|
-
var _a;
|
|
336
|
-
if (event === 'userAuthenticated' || event === 'refreshToken') {
|
|
337
|
-
const claims = this.oauth2Service.getIdentityClaims();
|
|
338
|
-
if (claims && (!TokenFactory.hasToken() ||
|
|
339
|
-
(TokenFactory.hasToken() && event === 'refreshToken'))) {
|
|
340
|
-
this.tokenService.setToken(jwtEncode({
|
|
341
|
-
accessToken: this.oauth2Service.getAccessToken(),
|
|
342
|
-
idToken: this.oauth2Service.getIdToken(),
|
|
343
|
-
refreshToken: this.oauth2Service.getRefreshToken(),
|
|
344
|
-
login: (_a = claims[config.indexLoginName]) !== null && _a !== void 0 ? _a : 'Undefined',
|
|
345
|
-
expired: this.oauth2Service.getAccessTokenExpiration(),
|
|
346
|
-
code: this.oauth2Service.getCode()
|
|
347
|
-
}, 'secret'));
|
|
348
|
-
}
|
|
349
|
-
if (event === 'userAuthenticated') {
|
|
350
|
-
setTimeout(() => this.validationScope$.next(false), 300);
|
|
351
|
-
}
|
|
352
|
-
}
|
|
353
|
-
else if (event === 'getToken') {
|
|
354
|
-
this.validationScope$.next(true);
|
|
355
|
-
}
|
|
356
|
-
});
|
|
357
|
-
}
|
|
358
|
-
}
|
|
359
|
-
}
|
|
360
|
-
PageComponent.decorators = [
|
|
361
|
-
{ type: Component, args: [{
|
|
362
|
-
selector: 'koala-page',
|
|
363
|
-
template: "<div *ngIf=\"showLoaderPage | async\" class=\"koala-loader-pg\">\n <div class=\"loader-content\">\n <figure>\n <img [src]=\"logo\" alt=\"Logotipo\"/>\n <figcaption *ngIf=\"(messageLoaderPage | async) as messageLoader\" [innerHTML]=\"messageLoader\"></figcaption>\n </figure>\n <mat-spinner></mat-spinner>\n </div>\n</div>\n<app-loader-page *ngIf=\"(loaderSubject | async) as loader\" [progress]=\"loader.progress\" [show]=\"loader.show\"\n [typeLoader]=\"loader.typeLoader\"></app-loader-page>\n<mat-drawer-container autosize class=\"menu-container\">\n <mat-drawer #drawer class=\"menu-options\" [mode]=\"isMobile ? 'push' : 'side'\">\n <img [src]=\"logo\" alt=\"Logotipo\" id=\"logotipo\"/>\n <ng-content *ngIf=\"showMenu\" select=\"[menu-options]\"></ng-content>\n </mat-drawer>\n\n <mat-toolbar *ngIf=\"!!(logged$ | async) && (username$ | async)\" class=\"toolbar\">\n <img *ngIf=\"!showMenu\" [src]=\"logo\" alt=\"Logotipo Toolbar\" id=\"logotipo-toolbar\"/>\n <button (click)=\"toogleMenu()\" *ngIf=\"showMenu\" [color]=\"color\" class=\"btn-collapse-menu\" mat-icon-button>\n <mat-icon>menu</mat-icon>\n </button>\n <span class=\"spacer\"></span>\n\t <div class=\"menu-toolbar\">\n\t\t <ng-content select=\"[menu-toolbar]\"></ng-content>\n\t </div>\n <div *ngIf=\"(notifications | async) as notificationList\">\n <button *ngIf=\"notifications\" [color]=\"color\" [matMenuTriggerFor]=\"notificationsMenu\" class=\"btn-toolbar\"\n mat-icon-button>\n <mat-icon\n\t [matBadgeHidden]=\"notificationList.length === 0\"\n\t [matBadge]=\"notificationList.length.toString()\"\n\t matBadgeColor=\"warn\">notifications\n </mat-icon>\n </button>\n <mat-menu #notificationsMenu=\"matMenu\" class=\"menu-list\" yPosition=\"below\">\n <koala-notification-list\n (delete)=\"deleteNotification.emit($event)\"\n (deleteAll)=\"deleteAllNotifications.emit($event)\"\n [notifications]=\"notificationList\">\n </koala-notification-list>\n </mat-menu>\n </div>\n <button [color]=\"color\" [matMenuTriggerFor]=\"userOptions\" class=\"btn-toolbar\" mat-button>\n <span>{{username$ | async}}</span>\n <span class=\"icon-user\">{{firstUserLetter$ | async}}</span>\n </button>\n <mat-menu #userOptions=\"matMenu\" class=\"user-menu menu-list\" yPosition=\"below\">\n <div class=\"user-presentation\">\n <span class=\"icon-user\">{{firstUserLetter$ | async}}</span><br/>\n <span class=\"username\">{{username$ | async}}</span>\n </div>\n <button (click)=\"btn.action()\" *ngFor=\"let btn of userMenuOptions\" mat-menu-item>\n <mat-icon>{{btn.icon}}</mat-icon>\n <span>{{btn.name}}</span>\n </button>\n <button (click)=\"logout()\" mat-menu-item>\n <mat-icon>exit_to_app</mat-icon>\n <span>{{language === 'ptBr' ? 'Sair' : 'Logout'}}</span>\n </button>\n </mat-menu>\n </mat-toolbar>\n\n <ng-content class=\"page-content\" select=\"[page-content]\"></ng-content>\n\n</mat-drawer-container>\n\n<ng-content class=\"loading-info-content\" select=\"[loading-info-content]\"></ng-content>\n",
|
|
364
|
-
providers: [KoalaTokenService],
|
|
365
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
366
|
-
styles: [".menu-container{height:100vh;width:100vw}.menu-options{border:none;padding:20px 0 0;width:250px}.page-content{align-items:center;display:flex;height:100%;justify-content:center}img#logotipo,img#logotipo-toolbar{display:block;height:auto;margin:0 auto 25px;position:relative;width:120px}.toolbar{box-shadow:none;padding:0 7px 0 13px}.toolbar img#logotipo-toolbar{margin:0;padding:0 10px}.menu-toolbar{margin:0 10px}.spacer{flex:1 1 auto}.btn-toolbar{display:inline-block;margin-right:10px;position:relative}.btn-toolbar span{padding:0 10px 0 0}.btn-toolbar span.icon-user,.user-presentation span.icon-user{border-radius:50%;display:inline-block;height:10px;line-height:10px;padding:5px;width:10px}.user-presentation{min-width:260px;padding:50px 10px;text-align:center}.user-presentation span.icon-user{font-size:30px;height:30px;line-height:30px;margin-bottom:10px;width:30px}.user-presentation span.username{font-family:OpenSansLight,sans-serif;word-break:break-all}@media (max-width: 900px){.btn-toolbar span:first-child{display:none}.btn-toolbar span.icon-user,.user-presentation span.icon-user{height:20px;line-height:20px;width:20px}}\n"]
|
|
367
|
-
},] }
|
|
368
|
-
];
|
|
369
|
-
PageComponent.ctorParameters = () => [
|
|
370
|
-
{ type: KoalaTokenService },
|
|
371
|
-
{ type: Router },
|
|
372
|
-
{ type: KoalaLoaderService },
|
|
373
|
-
{ type: KoalaMenuService },
|
|
374
|
-
{ type: KoalaOAuth2Service },
|
|
375
|
-
{ type: DeviceDetectorService }
|
|
376
|
-
];
|
|
377
|
-
PageComponent.propDecorators = {
|
|
378
|
-
showMenu: [{ type: Input }],
|
|
379
|
-
color: [{ type: Input }],
|
|
380
|
-
logo: [{ type: Input }],
|
|
381
|
-
startMenuOpened: [{ type: Input }],
|
|
382
|
-
showLoaderPage: [{ type: Input }],
|
|
383
|
-
messageLoaderPage: [{ type: Input }],
|
|
384
|
-
defaultPage: [{ type: Input }],
|
|
385
|
-
openPages: [{ type: Input }],
|
|
386
|
-
notifications: [{ type: Input }],
|
|
387
|
-
userMenuOptions: [{ type: Input }],
|
|
388
|
-
palletColors: [{ type: Input }],
|
|
389
|
-
language: [{ type: Input }],
|
|
390
|
-
validatingScope: [{ type: Output }],
|
|
391
|
-
logoutEmitter: [{ type: Output }],
|
|
392
|
-
deleteAllNotifications: [{ type: Output }],
|
|
393
|
-
deleteNotification: [{ type: Output }],
|
|
394
|
-
menu: [{ type: ViewChild, args: ['drawer', { static: true },] }]
|
|
395
|
-
};
|
|
396
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvcGFnZS9wYWdlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkgsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTVHLE9BQU8sRUFBRSxlQUFlLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBSzdFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3RFLE9BQU8sU0FBUyxNQUFNLFlBQVksQ0FBQztBQUNuQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDL0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFekUsT0FBTyxFQUFFLG1CQUFtQixFQUFxQixNQUFNLHlCQUF5QixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBUzVELE1BQU0sT0FBTyxhQUFhO0lBNkR4QixZQUNVLFlBQStCLEVBQy9CLE1BQWMsRUFDZCxhQUFpQyxFQUNqQyxXQUE2QixFQUM3Qixh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Z0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7cUJBQzFEO2lCQUNGO3FCQUFNLElBQUksS0FBSyxLQUFLLFVBQVUsRUFBRTtvQkFDL0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDbEM7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQzs7O1lBL1dGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsWUFBWTtnQkFDdEIsbXJHQUFrQztnQkFFbEMsU0FBUyxFQUFFLENBQUMsaUJBQWlCLENBQUM7Z0JBQzlCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOzthQUNoRDs7O1lBdEJRLGlCQUFpQjtZQUhrRCxNQUFNO1lBSXpFLGtCQUFrQjtZQUtsQixnQkFBZ0I7WUFHaEIsa0JBQWtCO1lBS2xCLHFCQUFxQjs7O3VCQVUzQixLQUFLO29CQUNMLEtBQUs7bUJBQ0wsS0FBSzs4QkFDTCxLQUFLOzZCQUNMLEtBQUs7Z0NBQ0wsS0FBSzswQkFDTCxLQUFLO3dCQUNMLEtBQUs7NEJBQ0wsS0FBSzs4QkFDTCxLQUFLOzJCQUNMLEtBQUs7dUJBQ0wsS0FBSzs4QkFDTCxNQUFNOzRCQUNOLE1BQU07cUNBQ04sTUFBTTtpQ0FDTixNQUFNO21CQTJDTixTQUFTLFNBQUMsUUFBUSxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRoZW1lUGFsZXR0ZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkNhbmNlbCwgTmF2aWdhdGlvbkVuZCwgTmF2aWdhdGlvbkVycm9yLCBOYXZpZ2F0aW9uU3RhcnQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBMb2FkZXJCYXJQYWdlSW50ZXJmYWNlIH0gZnJvbSAnLi4vbG9hZGVyL2xvYWRlci1iYXItcGFnZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEtvYWxhVG9rZW5TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvdG9rZW4va29hbGEudG9rZW4uc2VydmljZSc7XG5pbXBvcnQgeyBLb2FsYUxvYWRlclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9sb2FkZXIva29hbGEubG9hZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgS29hbGFOb3RpZmljYXRpb25JbnRlcmZhY2UgfSBmcm9tICcuL25vdGlmaWNhdGlvbnMva29hbGEubm90aWZpY2F0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBLb2FsYVVzZXJNZW51T3B0aW9uc0ludGVyZmFjZSB9IGZyb20gJy4va29hbGEudXNlci1tZW51LW9wdGlvbnMuaW50ZXJmYWNlJztcbmltcG9ydCB7IEtvYWxhUGFnZVBhbGxldENvbG9yc0ludGVyZmFjZSB9IGZyb20gJy4va29hbGEtcGFnZS1wYWxsZXQtY29sb3JzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBNYXREcmF3ZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zaWRlbmF2JztcbmltcG9ydCB7IEtvYWxhTWVudVNlcnZpY2UsIG1lbnVTdGF0ZVN1YmplY3QgfSBmcm9tICdAa29hbGFyeC91aS9tZW51JztcbmltcG9ydCBqd3RFbmNvZGUgZnJvbSBcImp3dC1lbmNvZGVcIjtcbmltcG9ydCB7IFRva2VuRmFjdG9yeSB9IGZyb20gXCIuLi9zZXJ2aWNlcy90b2tlbi90b2tlbi5mYWN0b3J5XCI7XG5pbXBvcnQgeyBLb2FsYU9BdXRoMlNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvb3BlbmlkL2tvYWxhLm9hdXRoMi5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBLb2FsYUVudmlyb25tZW50IH0gZnJvbSBcIi4uL2Vudmlyb25tZW50cy9rb2FsYUVudmlyb25tZW50XCI7XG5pbXBvcnQgeyBLb2FsYU9hdXRoQ29uZmlnIH0gZnJvbSBcIi4uL3NlcnZpY2VzL29wZW5pZC9rb2FsYS5vYXV0aC5jb25maWdcIjtcbmltcG9ydCB7IEtvYWxhT2F1dGgyQ29uZmlnSW50ZXJmYWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL29wZW5pZC9rb2FsYS1vYXV0aDItY29uZmlnLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgS29hbGFMYW5ndWFnZUhlbHBlciwgS29hbGFMYW5ndWFnZVR5cGUgfSBmcm9tIFwiLi9rb2FsYS1sYW5ndWFnZS5oZWxwZXJcIjtcbmltcG9ydCB7IERldmljZURldGVjdG9yU2VydmljZSB9IGZyb20gXCJuZ3gtZGV2aWNlLWRldGVjdG9yXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2tvYWxhLXBhZ2UnLFxuICB0ZW1wbGF0ZVVybDogJ3BhZ2UuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsncGFnZS5jb21wb25lbnQuY3NzJ10sXG4gIHByb3ZpZGVyczogW0tvYWxhVG9rZW5TZXJ2aWNlXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgUGFnZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHNob3dNZW51OiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgY29sb3I6IFRoZW1lUGFsZXR0ZTtcbiAgQElucHV0KCkgbG9nbzogc3RyaW5nO1xuICBASW5wdXQoKSBzdGFydE1lbnVPcGVuZWQgPSB0cnVlO1xuICBASW5wdXQoKSBzaG93TG9hZGVyUGFnZTogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+O1xuICBASW5wdXQoKSBtZXNzYWdlTG9hZGVyUGFnZTogQmVoYXZpb3JTdWJqZWN0PHN0cmluZz47XG4gIEBJbnB1dCgpIGRlZmF1bHRQYWdlOiBzdHJpbmc7XG4gIEBJbnB1dCgpIG9wZW5QYWdlczogc3RyaW5nW107XG4gIEBJbnB1dCgpIG5vdGlmaWNhdGlvbnM6IEJlaGF2aW9yU3ViamVjdDxLb2FsYU5vdGlmaWNhdGlvbkludGVyZmFjZVtdPjtcbiAgQElucHV0KCkgdXNlck1lbnVPcHRpb25zOiBLb2FsYVVzZXJNZW51T3B0aW9uc0ludGVyZmFjZVtdID0gW107XG4gIEBJbnB1dCgpIHBhbGxldENvbG9yczogS29hbGFQYWdlUGFsbGV0Q29sb3JzSW50ZXJmYWNlO1xuICBASW5wdXQoKSBsYW5ndWFnZTogS29hbGFMYW5ndWFnZVR5cGUgPSAncHRCcic7XG4gIEBPdXRwdXQoKSB2YWxpZGF0aW5nU2NvcGUgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KGZhbHNlKTtcbiAgQE91dHB1dCgpIGxvZ291dEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KGZhbHNlKTtcbiAgQE91dHB1dCgpIGRlbGV0ZUFsbE5vdGlmaWNhdGlvbnMgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KGZhbHNlKTtcbiAgQE91dHB1dCgpIGRlbGV0ZU5vdGlmaWNhdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8S29hbGFOb3RpZmljYXRpb25JbnRlcmZhY2U+KG51bGwpO1xuXG4gIHB1YmxpYyBsb2FkZXJTdWJqZWN0OiBCZWhhdmlvclN1YmplY3Q8TG9hZGVyQmFyUGFnZUludGVyZmFjZT47XG4gIHB1YmxpYyB1c2VybmFtZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xuICBwdWJsaWMgZmlyc3RVc2VyTGV0dGVyJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG4gIHB1YmxpYyBjdXJyZW50VXJsOiBzdHJpbmc7XG4gIHB1YmxpYyBsb2dnZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHB1YmxpYyB2YWxpZGF0aW9uU2NvcGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHB1YmxpYyBpc01vYmlsZTogYm9vbGVhbiA9IHRoaXMuZGV2aWNlU2VydmljZS5pc01vYmlsZSgpO1xuXG4gIHByaXZhdGUgZGVmYXVsdFBhbGxldENvbG9yczogS29hbGFQYWdlUGFsbGV0Q29sb3JzSW50ZXJmYWNlID0ge1xuICAgIHNjcm9sbGJhckNvbG9yOiAnIzE5NzZEMicsXG4gICAgc2Nyb2xsYmFyQ29sb3JIb3ZlcjogJyMxNTY1QzAnLFxuICAgIHVzZXJQcmVzZW50YXRpb25CYWNrZ3JvdW5kOiAnI2YxZjFmMScsXG4gICAgdXNlclByZXNlbnRhdGlvblVzZXJCYWNrZ3JvdW5kOiAnIzE5NzZEMicsXG4gICAgdXNlclByZXNlbnRhdGlvblVzZXJGb250Q29sb3I6ICcjZmZmJyxcbiAgICBmaXJzdENvbG9yOiAnI2ZmZicsXG4gICAgc2Vjb25kQ29sb3I6ICcjRjFGMUYxJyxcbiAgICBib2R5QmFja2dyb3VuZDogJyNlZWVlZWUnLFxuICAgIGNoZWNrYm94QmFja2dyb3VuZDogJyMxOTc2ZDInLFxuICAgIGNoZWNrYm94Q29sb3I6ICcjZmZmZmZmJyxcbiAgICBmb250Q29sb3I6ICcjMTk3NkQyJyxcbiAgICBmb250SG92ZXJDb2xvcjogJyMxOTc2RDInLFxuICAgIGZvbnRBY3RpdmVDb2xvcjogJyMxNTY1QzAnLFxuICAgIG1lbnVUaXRsZUJhY2tncm91bmQ6ICdyZ2JhKDAsMCwwLC4xKScsXG4gICAgbWVudVRpdGxlQ29sb3I6ICdyZ2JhKDAsMCwwLC4zKScsXG4gICAgbWVudUJhY2tncm91bmQ6ICcjZmFmYWZhJyxcbiAgICBtZW51T3B0aW9uc0JhY2tncm91bmQ6ICcjZWFlYWVhJyxcbiAgICBtZW51T3B0aW9uc0NvbG9yOiAnI2E1YTVhNScsXG4gICAgbWVudU9wdGlvbnNDb2xvckhvdmVyOiAnIzE5NzZEMicsXG4gICAgbWVudU9wdGlvbnNDb2xvckFjdGl2ZTogJyMxNTY1YzAnLFxuICAgIHRvb2xiYXJCYWNrZ3JvdW5kOiAnI2ZmZmZmZicsXG4gICAgdG9vbGJhckNvbG9yOiAnIzE5NzZkMicsXG4gICAgbGlzdEJhY2tncm91bmQ6ICcjZmZmJyxcbiAgICBsaXN0Q29udGVudEJhY2tncm91bmQ6ICcjZmZmJyxcbiAgICBsaXN0VGl0bGVJdGVtQ29sb3I6ICcjODM4MzgzJyxcbiAgICBsaXN0SXRlbUNvbG9yOiAnIzNlM2UzZScsXG4gICAgbGlzdEl0ZW1CYWNrZ3JvdWRIb3ZlcjogJyNGMUYxRjEnLFxuICAgIGxpc3RJdGVtQmFja2dyb3VuZEFjdGl2ZTogJyNFRUUnLFxuICAgIHNoYWRvd0NvbG9yVGFibGVMaXN0OiAncmdiYSgyNSwgMTE4LCAyMTAsIC40KSdcbiAgfTtcbiAgcHJpdmF0ZSBvYXV0aEV2ZW50c1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIEBWaWV3Q2hpbGQoJ2RyYXdlcicsIHtzdGF0aWM6IHRydWV9KSBwcml2YXRlIG1lbnU6IE1hdERyYXdlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHRva2VuU2VydmljZTogS29hbGFUb2tlblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIGxvYWRlclNlcnZpY2U6IEtvYWxhTG9hZGVyU2VydmljZSxcbiAgICBwcml2YXRlIG1lbnVTZXJ2aWNlOiBLb2FsYU1lbnVTZXJ2aWNlLFxuICAgIHByaXZhdGUgb2F1dGgyU2VydmljZTogS29hbGFPQXV0aDJTZXJ2aWNlLFxuICAgIHByaXZhdGUgZGV2aWNlU2VydmljZTogRGV2aWNlRGV0ZWN0b3JTZXJ2aWNlLFxuICApIHtcbiAgICB0aGlzLmxvYWRlclN1YmplY3QgPSBsb2FkZXJTZXJ2aWNlLmdldExvYWRlclN1YmplY3QoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIEtvYWxhTGFuZ3VhZ2VIZWxwZXIuc2V0TGFuZ3VhZ2UodGhpcy5sYW5ndWFnZSk7XG4gICAgdGhpcy5pbml0T0F1dGgyKCk7XG4gICAgaWYgKHRoaXMub3BlblBhZ2VzKSB7XG4gICAgICBpZiAodGhpcy5vcGVuUGFnZXMuaW5kZXhPZignLycpIDwgMCkge1xuICAgICAgICB0aGlzLm9wZW5QYWdlcy5wdXNoKCcvJyk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5vcGVuUGFnZXMuaW5kZXhPZignL2xvZ2luJykgPCAwKSB7XG4gICAgICAgIHRoaXMub3BlblBhZ2VzLnB1c2goJy9sb2dpbicpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9wZW5QYWdlcyA9IFtcbiAgICAgICAgJy8nLFxuICAgICAgICAnL2xvZ2luJ1xuICAgICAgXTtcbiAgICB9XG5cbiAgICB0aGlzLnRva2VuU2VydmljZS5nZXRUb2tlbigpPy5zdWJzY3JpYmUodG9rZW4gPT4ge1xuICAgICAgdGhpcy5sb2dnZWQkLm5leHQoISF0b2tlbik7XG4gICAgICBpZiAodGhpcy5sb2dnZWQkLmdldFZhbHVlKCkpIHtcbiAgICAgICAgY29uc3QgZGVjb2RlZFRva2VuID0gdGhpcy50b2tlblNlcnZpY2UuZ2V0RGVjb2RlZFRva2VuPHsgbG9naW46IHN0cmluZyB9PigpO1xuICAgICAgICB0aGlzLnVzZXJuYW1lJC5uZXh0KGRlY29kZWRUb2tlbi5sb2dpbik7XG4gICAgICAgIHRoaXMuZmlyc3RVc2VyTGV0dGVyJC5uZXh0KGRlY29kZWRUb2tlbi5sb2dpbi5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSk7XG4gICAgICAgIGlmICghdGhpcy5pc01vYmlsZSkge1xuICAgICAgICAgIHRoaXMubWVudVNlcnZpY2Uub3BlbigpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5sb2dnZWQkLmdldFZhbHVlKCkgJiYgdGhpcy5vcGVuUGFnZXM/LmluZGV4T2YodGhpcy5jdXJyZW50VXJsKSA+PSAwICYmIHRoaXMuZGVmYXVsdFBhZ2UpIHtcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3RoaXMuZGVmYXVsdFBhZ2VdKS50aGVuKCk7XG4gICAgICB9IGVsc2UgaWYgKCF0aGlzLmxvZ2dlZCQuZ2V0VmFsdWUoKSAmJiB0aGlzLmN1cnJlbnRVcmwgJiYgdGhpcy5vcGVuUGFnZXM/LmluZGV4T2YodGhpcy5jdXJyZW50VXJsKSA8IDApIHtcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWydsb2dpbiddKS50aGVuKCk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLnJvdXRlci5ldmVudHMuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgIHN3aXRjaCAodHJ1ZSkge1xuICAgICAgICBjYXNlIGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvblN0YXJ0OiB7XG4gICAgICAgICAgdGhpcy5sb2FkZXJTZXJ2aWNlLmNyZWF0ZSh7dHlwZUxvYWRlcjogJ2luZGV0ZXJtaW5hdGUnfSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICBjYXNlIGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZDpcbiAgICAgICAgY2FzZSBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25DYW5jZWw6XG4gICAgICAgIGNhc2UgZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRXJyb3I6IHtcbiAgICAgICAgICB0aGlzLmxvYWRlclNlcnZpY2UuZGlzbWlzcygpO1xuICAgICAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzTW9iaWxlKSB7XG4gICAgICAgICAgICAgIHRoaXMubWVudVNlcnZpY2UuY2xvc2UoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5jdXJyZW50VXJsID0gZXZlbnQudXJsLnNwbGl0KCc/JylbMF07XG5cbiAgICAgICAgICAgIGlmIChldmVudC51cmwuaW5kZXhPZignL2xvZ2luP2NsaWVudElkPScpIDwgMCkge1xuICAgICAgICAgICAgICBpZiAodGhpcy5sb2dnZWQkLmdldFZhbHVlKCkgJiYgdGhpcy5kZWZhdWx0UGFnZSAmJiB0aGlzLm9wZW5QYWdlcz8uaW5kZXhPZih0aGlzLmN1cnJlbnRVcmwpID49IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbdGhpcy5kZWZhdWx0UGFnZV0pLnRoZW4oKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoIXRoaXMubG9nZ2VkJC5nZXRWYWx1ZSgpICYmIHRoaXMub3BlblBhZ2VzPy5pbmRleE9mKHRoaXMuY3VycmVudFVybCkgPCAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWydsb2dpbiddKS50aGVuKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIGlmICh0aGlzLnBhbGxldENvbG9ycykge1xuICAgICAgT2JqZWN0LmtleXModGhpcy5kZWZhdWx0UGFsbGV0Q29sb3JzKS5mb3JFYWNoKGluZGV4TmFtZSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAhdGhpcy5wYWxsZXRDb2xvcnMuaGFzT3duUHJvcGVydHkoaW5kZXhOYW1lKSB8fFxuICAgICAgICAgICF0aGlzLnBhbGxldENvbG9yc1tpbmRleE5hbWVdXG4gICAgICAgICkge1xuICAgICAgICAgIHRoaXMucGFsbGV0Q29sb3JzW2luZGV4TmFtZV0gPSB0aGlzLmRlZmF1bHRQYWxsZXRDb2xvcnNbaW5kZXhOYW1lXTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucGFsbGV0Q29sb3JzID0gdGhpcy5kZWZhdWx0UGFsbGV0Q29sb3JzO1xuICAgIH1cbiAgICB0aGlzLmRlZmluZUNvbG9yKCk7XG5cbiAgICBpZiAodGhpcy5zaG93TWVudSkge1xuICAgICAgbWVudVN0YXRlU3ViamVjdC5zdWJzY3JpYmUoYXN5bmMgKHN0YXRlKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLm1lbnUpIHtcbiAgICAgICAgICBpZiAoc3RhdGUgPT09ICdjbG9zZScpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLm1lbnUub3BlbmVkKSB7XG4gICAgICAgICAgICAgIGF3YWl0IHRoaXMubWVudS5jbG9zZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAoc3RhdGUgPT09ICdvcGVuJykge1xuICAgICAgICAgICAgaWYgKCF0aGlzLm1lbnUub3BlbmVkKSB7XG4gICAgICAgICAgICAgIGF3YWl0IHRoaXMubWVudS5vcGVuKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIGlmICh0aGlzLnN0YXJ0TWVudU9wZW5lZCAmJiB0aGlzLmxvZ2dlZCQuZ2V0VmFsdWUoKSkge1xuICAgICAgICBpZiAoIXRoaXMuaXNNb2JpbGUpIHtcbiAgICAgICAgICB0aGlzLm1lbnVTZXJ2aWNlLm9wZW4oKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5tZW51U2VydmljZS5jbG9zZSgpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm1lbnVTZXJ2aWNlLmNsb3NlKCk7XG4gICAgfVxuXG4gICAgdGhpcy52YWxpZGF0aW9uU2NvcGUkLnN1YnNjcmliZShzY29wZSA9PiB0aGlzLnZhbGlkYXRpbmdTY29wZS5lbWl0KHNjb3BlKSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgdG9vZ2xlTWVudSgpIHtcbiAgICB0aGlzLm1lbnVTZXJ2aWNlLmNsZWFyQ29uZmlnKCk7XG4gICAgaWYgKHRoaXMubWVudSkge1xuICAgICAgYXdhaXQgdGhpcy5tZW51LnRvZ2dsZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBsb2dvdXQoKSB7XG4gICAgaWYgKEtvYWxhRW52aXJvbm1lbnQuZW52aXJvbm1lbnQ/Lm9hdXRoQ29uZmlnKSB7XG4gICAgICB0aGlzLm9hdXRoMlNlcnZpY2UubG9nb3V0KCk7XG4gICAgfVxuICAgIHRoaXMubWVudVNlcnZpY2UuY2xvc2UoKTtcbiAgICB0aGlzLnRva2VuU2VydmljZS5yZW1vdmVUb2tlbigpO1xuICAgIHRoaXMudG9rZW5TZXJ2aWNlLmdldFRva2VuKCkubmV4dChudWxsKTtcbiAgICB0aGlzLmxvZ291dEVtaXR0ZXIuZW1pdCh0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyBkZWZpbmVDb2xvcigpIHtcbiAgICBjb25zdCBjc3MgPSBgXG4qOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7YmFja2dyb3VuZDogJHt0aGlzLnBhbGxldENvbG9ycy5zY3JvbGxiYXJDb2xvcn07d2lkdGg6IDJweDt9XG4qOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7YmFja2dyb3VuZDogJHt0aGlzLnBhbGxldENvbG9ycy5zY3JvbGxiYXJDb2xvckhvdmVyfTt9XG5pbnB1dDotd2Via2l0LWF1dG9maWxsLCBpbnB1dDotd2Via2l0LWF1dG9maWxsOmZvY3VzLCBpbnB1dDotd2Via2l0LWF1dG9maWxsOmhvdmVyIHtjb2xvcjogJHt0aGlzLnBhbGxldENvbG9ycy5mb250Q29sb3J9IWltcG9ydGFudDt9XG4ubWVudS1jb250YWluZXIsXG5ib2R5IHtiYWNrZ3JvdW5kOiAke3RoaXMucGFsbGV0Q29sb3JzLmJvZHlCYWNrZ3JvdW5kfSFpbXBvcnRhbnQ7fVxuaW5wdXQ6LXdlYmtpdC1hdXRvZmlsbCwgaW5wdXQ6LXdlYmtpdC1hdXRvZmlsbDpmb2N1cywgaW5wdXQ6LXdlYmtpdC1hdXRvZmlsbDpob3ZlciB7LXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgMCAxMDAwcHggJHt0aGlzLnBhbGxldENvbG9ycy5maXJzdENvbG9yfSBpbnNldCAhaW1wb3J0YW50O31cbi5tYXQtYnV0dG9uLWRpc2FibGVkLFxuaW5wdXQ6OnBsYWNlaG9sZGVyLFxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtb3V0bGluZSB7Y29sb3I6ICR7dGhpcy5wYWxsZXRDb2xvcnMuZm9udENvbG9yfSFpbXBvcnRhbnQ7b3BhY2l0eTogLjY7fVxuLm1hdC1oaW50LFxuLm1hdC1leHBhbnNpb24taW5kaWNhdG9yOjphZnRlcixcbi5tb3JlLWl0ZW1zLWNvbnRlbnQgLml0ZW1zIC50aXRsZUZvcm0sXG5maWVsZHNldCBsZWdlbmQsXG4ubWF0LXBhZ2luYXRvci1jb250YWluZXIsXG4ubWF0LWZvcm0tZmllbGQtZmxleCBtYXQtaWNvbiB7Y29sb3I6ICR7dGhpcy5wYWxsZXRDb2xvcnMuZm9udENvbG9yfSFpbXBvcnRhbnQ7fVxuLm1hdC1wYWdpbmF0b3ItY29udGFpbmVyLFxuLm1hdC1jYXJkLFxuLm1hdC1leHBhbnNpb24tcGFuZWwsXG4ubWF0LXNlbGVjdC1wYW5lbCxcbi5tYXQtYXV0b2NvbXBsZXRlLXBhbmVsLFxuLm1hdC1tZW51LXBhbmVsIHtiYWNrZ3JvdW5kOiAke3RoaXMucGFsbGV0Q29sb3JzLmZpcnN0Q29sb3J9fVxuLm1hdC1zZWxlY3RlZCB7YmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwuMykhaW1wb3J0YW50O31cbi5xdWVzdGlvbiBwLFxuLmFsZXJ0LW1lc3NhZ2UsXG4ubWF0LWFjdGlvbi1yb3csXG4ubWF0LW9wdGlvbixcbi5tYXQtbWVudS1pdGVtLFxuLm1hdC1tZW51LWl0ZW0gbWF0LWljb24ge2NvbG9yOiAke3RoaXMucGFsbGV0Q29sb3JzLmZvbnRDb2xvcn0haW1wb3J0YW50fVxuLm1hdC1zZWxlY3QtdmFsdWUsXG4ubWF0LXNlbGVjdC1hcnJvdyxcbi5tYXQtZm9ybS1maWVsZCBpbnB1dCxcbi5tYXQtZm9ybS1maWVsZCB0ZXh0YXJlYSxcbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmU6bm90KC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkKSAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGljayxcbi5tYXQtZm9ybS1maWVsZCBsYWJlbCxcbi5zZWxlY3QtbXVsdGlwbGUtbmF0aXZlIHNlbGVjdCB7Y29sb3I6ICR7dGhpcy5wYWxsZXRDb2xvcnMuZm9udENvbG9yfSFpbXBvcnRhbnQ7Y2FyZXQtY29sb3I6ICR7dGhpcy5wYWxsZXRDb2xvcnMuZm9udENvbG9yfSFpbXBvcnRhbnQ7fVxuLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSxcbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZTo6YmVmb3JlLFxuLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSB7YmFja2dyb3VuZDogJHt0aGlzLnBhbGxldENvbG9ycy5mb250Q29sb3J9IWltcG9ydGFudDt9XG4ubWF0LWNoZWNrYm94LWNoZWNrZWQubWF0LWFjY2VudCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsIC5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtYWNjZW50IC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCxcbi5tYXQtY2hlY2tib3g6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLm1hdC1hY2NlbnQgLm1hdC1jaGVja2JveC1yaXBwbGUgLm1hdC1yaXBwbGUtZWxlbWVudCB7YmFja2dyb3VuZC1jb2xvcjogJHt0aGlzLnBhbGxldENvbG9ycy5jaGVja2JveEJhY2tncm91bmR9ICFpbXBvcnRhbnQ7fVxuLm1hdC1jaGVja2JveC1jaGVja21hcmstcGF0aCB7c3Ryb2tlOiAke3RoaXMucGFsbGV0Q29sb3JzLmNoZWNrYm94Q29sb3J9ICFpbXBvcnRhbnQ7fVxuLm1hdC1jaGVja2JveC1jaGVja21hcmsge2ZpbGw6ICR7dGhpcy5wYWxsZXRDb2xvcnMuY2hlY2tib3hDb2xvcn0gIWltcG9ydGFudDt9XG4ubWF0LWNoZWNrYm94LW1peGVkbWFyayB7YmFja2dyb3VuZC1jb2xvcjogJHt0aGlzLnBhbGxldENvbG9ycy5jaGVja2JveENvbG9yfSAhaW1wb3J0YW50O31cbi5tYXQtY2hlY2tib3gtZnJhbWUge2JvcmRlci1jb2xvcjogJHt0aGlzLnBhbGxldENvbG9ycy5jaGVja2JveE91dGxpbmVDb2xvcn0haW1wb3J0YW50O31cbi5tYXQtY2hlY2tib3gtbGFiZWwge2NvbG9yOiAke3RoaXMucGFsbGV0Q29sb3JzLmZvbnRDb2xvcn0haW1wb3J0YW50O31cbi5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtib3JkZXItY29sb3I6ICR7dGhpcy5wYWxsZXRDb2xvcnMuY2hlY2tib3hCYWNrZ3JvdW5kfSFpbXBvcnRhbnQ7fVxuLm1hdC1yYWRpby1yaXBwbGUgLm1hdC1yaXBwbGUtZWxlbWVudCwgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUge2JhY2tncm91bmQtY29sb3I6ICR7dGhpcy5wYWxsZXRDb2xvcnMuY2hlY2tib3hCYWNrZ3JvdW5kfSAhaW1wb3J0YW50O31cbi5ob21lLWxpc3QtY2FyZHMgLmxpc3QgLm1hdC1saXN0LWl0ZW0tY29udGVudCAubWF0LWljb24ge2NvbG9yOiAke3RoaXMucGFsbGV0Q29sb3JzLmZvbnRDb2xvcn07fVxuLmhvbWUtbGlzdC1jYXJkcyAubGlzdCBidXR0b24gLm1hdC1iYWRnZS1jb250ZW50IHtiYWNrZ3JvdW5kOiAke3RoaXMucGFsbGV0Q29sb3JzLmZvbnRDb2xvcn07fVxuLmtvYWxhLWRpYWxvZyAubWF0LWRpYWxvZy10aXRsZSBoMiB7Y29sb3I6ICR7dGhpcy5wYWxsZXRDb2xvcnMuZm9udENvbG9yfTt9XG4ua29hbGEtZGlhbG9nIC5tYXQtZGlhbG9nLXRpdGxlIG1hdC1pY29uIHtjb2xvcjogJHt0aGlzLnBhbGxldENvbG9ycy5mb250Q29sb3J9IWltcG9ydGFudDt9XG4ua29hbGEtZGlhbG9nIC5tYXQtZGlhbG9nLWNvbnRhaW5lciB7YmFja2dyb3VuZDogJHt0aGlzLnBhbGxldENvbG9ycy5maXJzdENvbG9yfX1cbi5saXN0LWZpbHRlciBtYXQtaWNvbiB7Y29sb3I6ICR7dGhpcy5wYWxsZXRDb2xvcnMuZmlsdGVySWNvbkNvbG9yfSFpbXBvcnRhbnQ7fVxua29hbGEtcGFnZSAubWVudS1vcHRpb25zIHtiYWNrZ3JvdW5kOiAke3RoaXMucGFsbGV0Q29sb3JzLm1lbnVCYWNrZ3JvdW5kfTt9XG5rb2FsYS1wYWdlIC50b29sYmFyIHtiYWNrZ3JvdW5kOiAke3RoaXMucGFsbGV0Q29sb3JzLnRvb2xiYXJCYWNrZ3JvdW5kfTt9XG5rb2FsYS1wYWdlIC50b29sYmFyIC5idG4tY29sbGFwc2UtbWVudSxcbmtvYWxhLXBhZ2UgLmJ0bi10b29sYmFyIHNwYW57Y29sb3I6ICR7dGhpcy5wYWxsZXRDb2xvcnMudG9vbGJhckNvbG9yfTt9XG5rb2FsYS1wYWdlIC5idG4tdG9vbGJhciBzcGFuLmljb24tdXNlcixcbi51c2VyLXByZXNlbnRhdGlvbiBzcGFuLmljb24tdXNlciB7YmFja2dyb3VuZDogJHt0aGlzLnBhbGxldENvbG9ycy51c2VyUHJlc2VudGF0aW9uVXNlckJhY2tncm91bmR9O2NvbG9yOiAke3RoaXMucGFsbGV0Q29sb3JzLnVzZXJQcmVzZW50YXRpb25Vc2VyRm9udENvbG9yfTt9XG4udXNlci1wcmVzZW50YXRpb24ge2JhY2tncm91bmQ6ICR7dGhpcy5wYWxsZXRDb2xvcnMudXNlclByZXNlbnRhdGlvbkJhY2tncm91bmR9O31cbi51c2VyLXByZXNlbnRhdGlvbiBzcGFuLnVzZXJuYW1lIHtjb2xvcjogJHt0aGlzLnBhbGxldENvbG9ycy50b29sYmFyQ29sb3J9O31cbi5tYXQtZHJhd2VyLm1hdC1kcmF3ZXItcHVzaCB7YmFja2dyb3VuZC1jb2xvcjogJHt0aGlzLnBhbGxldENvbG9ycy5ib2R5QmFja2dyb3VuZH07fVxua29hbGEtbWVudSAudGl0bGUge2JhY2tncm91bmQ6ICR7dGhpcy5wYWxsZXRDb2xvcnMubWVudVRpdGxlQmFja2dyb3VuZH07Y29sb3I6ICR7dGhpcy5wYWxsZXRDb2xvcnMubWVudVRpdGxlQ29sb3J9O31cbmtvYWxhLW1lbnUgdWwgbGksXG5rb2FsYS1tZW51IHVsIGxpIGEge2NvbG9yOiAke3RoaXMucGFsbGV0Q29sb3JzLm1lbnVPcHRpb25zQ29sb3J9O31cbmtvYWxhLW1lbnUgdWwgbGk6aG92ZXIsXG5rb2FsYS1tZW51IHVsIGxpOmhvdmVyIGEge2NvbG9yOiAke3RoaXMucGFsbGV0Q29sb3JzLm1lbnVPcHRpb25zQ29sb3JIb3Zlcn0gIWltcG9ydGFudDt9XG5rb2FsYS1tZW51IHVsIGxpLmFjdGl2ZSxcbmtvYWxhLW1lbnUgdWwgbGkuZXhwYW5kZWQge2NvbG9yOiAke3RoaXMucGFsbGV0Q29sb3JzLm1lbnVPcHRpb25zQ29sb3JBY3RpdmV9ICFpbXBvcnRhbnQ7Ym9yZGVyLWxlZnQ6IDRweCBzb2xpZCAke3RoaXMucGFsbGV0Q29sb3JzLm1lbnVPcHRpb25zQ29sb3JBY3RpdmV9ICFpbXBvcnRhbnQ7YmFja2dyb3VuZDogJHt0aGlzLnBhbGxldENvbG9ycy5tZW51T3B0aW9uc0JhY2tncm91bmR9ICFpbXBvcnRhbnQ7fVxua29hbGEtbWVudSB1bCBsaS5hY3RpdmUgYSxcbmtvYWxhLW1lbnUgdWwgbGkuZXhwYW5kZWQgYSB7Y29sb3I6ICR7dGhpcy5wYWxsZXRDb2xvcnMubWVudU9wdGlvbnNDb2xvckFjdGl2ZX0gIWltcG9ydGFudDtiYWNrZ3JvdW5kOiAke3RoaXMucGFsbGV0Q29sb3JzLm1lbnVPcHRpb25zQmFja2dyb3VuZH0gIWltcG9ydGFudDt9XG5rb2FsYS1tZW51IHVsIGxpIGxpOmhvdmVyLFxua29hbGEtbWVudSB1bCBsaSBsaTpob3ZlciBhIHtjb2xvcjogJHt0aGlzLnBhbGxldENvbG9ycy5tZW51T3B0aW9uc0NvbG9ySG92ZXJ9ICFpbXBvcnRhbnQ7fVxua29hbGEtbWVudSB1bCBsaSBsaS5hY3RpdmUsXG5rb2FsYS1tZW51IHVsIGxpIGxpLmFjdGl2ZSBhIHtjb2xvcjogJHt0aGlzLnBhbGxldENvbG9ycy5tZW51T3B0aW9uc0NvbG9yQWN0aXZlfSAhaW1wb3J0YW50O31cbmtvYWxhLW1lbnUgdWwgbGkga29hbGEtaWNvbiBzdmcgKixcbmtvYWxhLW1lbnUgdWwgbGkgYSBrb2FsYS1pY29uIHN2ZyAqIHtmaWxsOiAke3RoaXMucGFsbGV0Q29sb3JzLm1lbnVPcHRpb25zQ29sb3J9O31cbmtvYWxhLW1lbnUgdWwgbGk6aG92ZXIga29hbGEtaWNvbiBzdmcgKixcbmtvYWxhLW1lbnUgdWwgbGk6aG92ZXIgYSBrb2FsYS1pY29uIHN2ZyAqIHtmaWxsOiAke3RoaXMucGFsbGV0Q29sb3JzLm1lbnVPcHRpb25zQ29sb3JIb3Zlcn0gIWltcG9ydGFudDt9XG5rb2FsYS1tZW51IHVsIGxpLmFjdGl2ZSBrb2FsYS1pY29uICosXG5rb2FsYS1tZW51IHVsIGxpLmV4cGFuZGVkIGtvYWxhLWljb24gKiB7ZmlsbDogJHt0aGlzLnBhbGxldENvbG9ycy5tZW51T3B0aW9uc0NvbG9yQWN0aXZlfSAhaW1wb3J0YW50O31cbmtvYWxhLW1lbnUgdWwgbGkgbGk6aG92ZXIga29hbGEtaWNvbiAqLFxua29hbGEtbWVudSB1bCBsaSBsaTpob3ZlciBhIGtvYWxhLWljb24gKiB7ZmlsbDogJHt0aGlzLnBhbGxldENvbG9ycy5tZW51T3B0aW9uc0NvbG9ySG92ZXJ9ICFpbXBvcnRhbnQ7fVxua29hbGEtbWVudSB1bCBsaSBsaS5hY3RpdmUga29hbGEtaWNvbiAqLFxua29hbGEtbWVudSB1bCBsaSBsaS5hY3RpdmUgYSBrb2FsYS1pY29uICoge2ZpbGw6ICR7dGhpcy5wYWxsZXRDb2xvcnMubWVudU9wdGlvbnNDb2xvckFjdGl2ZX0haW1wb3J0YW50O31cbi5ub3RpZmljYXRpb25zLWNvbnRlbnQgLnRpdGxlIHtjb2xvcjogJHt0aGlzLnBhbGxldENvbG9ycy5ub3RpZmljYXRpb25UaXRsZUNvbG9yfSFpbXBvcnRhbnQ7fVxuLm5vdGlmaWNhdGlvbnMtY29udGVudCAuZW1wdHksXG4ubm90aWZpY2F0aW9ucy1jb250ZW50IC50aXRsZUxpc3Qge2NvbG9yOiAke3RoaXMucGFsbGV0Q29sb3JzLm5vdGlmaWNhdGlvbkNvbnRlbnRUaXRsZUNvbG9yfSFpbXBvcnRhbnQ7fVxuLm5vdGlmaWNhdGlvbnMtY29udGVudCAuaWNvbkxpc3Qge2NvbG9yOiAke3RoaXMucGFsbGV0Q29sb3JzLm5vdGlmaWNhdGlvbkNvbnRlbnRJY29uQ29sb3J9IWltcG9ydGFudDt9XG4ubm90aWZpY2F0aW9ucy1jb250ZW50IC50ZXh0TGlzdCB7Y29sb3I6ICR7dGhpcy5wYWxsZXRDb2xvcnMubm90aWZpY2F0aW9uVGl0bGVDb2xvcn0haW1wb3J0YW50O31cbi5saXN0LWNvbnRhaW5lciB7Ym94LXNoYWRvdzogMCAxcHggM3B4ICR7dGhpcy5wYWxsZXRDb2xvcnMuc2hhZG93Q29sb3JUYWJsZUxpc3R9O31cbi5saXN0LWNvbnRhaW5lciAubGlzdCB0YWJsZS50YWJsZS1ob3ZlciB0cjpob3ZlciB7YmFja2dyb3VuZDogJHt0aGlzLnBhbGxldENvbG9ycy5saXN0SXRlbUJhY2tncm91ZEhvdmVyfTt9XG4ubGlzdC1jb250YWluZXIgLmxpc3QgdGFibGUudGFibGUtaG92ZXIgdHI6YWN0aXZlIHtiYWNrZ3JvdW5kOiAke3RoaXMucGFsbGV0Q29sb3JzLmxpc3RJdGVtQmFja2dyb3VuZEFjdGl2ZX07fVxuLmxpc3QtY29udGFpbmVyIC5saXN0LWZpbHRlciAuYWR2YW5jZWQge2JhY2tncm91bmQ6ICR7dGhpcy5wYWxsZXRDb2xvcnMuZmlyc3RDb2xvcn07fVxuLmxpc3QtY29udGFpbmVyIG5hdi5tZW51LWxpc3Qge2JhY2tncm91bmQ6ICR7dGhpcy5wYWxsZXRDb2xvcnMuZmlyc3RDb2xvcn07Y29sb3I6IHJnYmEoMjUsIDExOCwgMjEwLCAuMyk7fVxuLmNvbnRlbnQge2JhY2tncm91bmQ6ICR7dGhpcy5wYWxsZXRDb2xvcnMubGlzdENvbnRlbnRCYWNrZ3JvdW5kfTt9XG4ubWF0LXRhYi1ncm91cCAubWF0LXRhYi1sYWJlbCB7Y29sb3I6ICR7dGhpcy5wYWxsZXRDb2xvcnMuZm9udENvbG9yfTt9XG4ubWF0LXRhYi1ncm91cCAubWF0LWluay1iYXIge2JhY2tncm91bmQtY29sb3I6ICR7dGhpcy5wYWxsZXRDb2xvcnMuZm9udENvbG9yfSFpbXBvcnRhbnQ7fVxuLm1hdC10YWJsZSB7YmFja2dyb3VuZDogJHt0aGlzLnBhbGxldENvbG9ycy5saXN0QmFja2dyb3VuZH07Y29sb3I6ICR7dGhpcy5wYWxsZXRDb2xvcnMuZm9udENvbG9yfTt9XG4ubWF0LXRhYmxlIHRoIHtjb2xvcjogJHt0aGlzLnBhbGxldENvbG9ycy5saXN0VGl0bGVJdGVtQ29sb3J9IWltcG9ydGFudDt9XG4ubWF0LXNvcnQtaGVhZGVyLWFycm93IHtjb2xvcjogJHt0aGlzLnBhbGxldENvbG9ycy5saXN0SXRlbUNvbG9yfSFpbXBvcnRhbnQ7fVxuLm1hdC10YWJsZSB0ZCB7Y29sb3I6ICR7dGhpcy5wYWxsZXRDb2xvcnMubGlzdEl0ZW1Db2xvcn0haW1wb3J0YW50O31gO1xuICAgIGNvbnN0IGhlYWQgPSBkb2N1bWVudC5oZWFkIHx8IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF07XG4gICAgY29uc3Qgc3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuICAgIGhlYWQuYXBwZW5kQ2hpbGQoc3R5bGUpO1xuICAgIHN0eWxlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGNzcykpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0T0F1dGgyKCkge1xuICAgIEtvYWxhT2F1dGhDb25maWcuY29uZmlnLnN1YnNjcmliZShjb25maWcgPT4gdGhpcy5zdGFydENvbmZpZyhjb25maWcpKTtcbiAgICBpZiAoS29hbGFPYXV0aENvbmZpZy5oYXNDb25maWcoKSkge1xuICAgICAgS29hbGFPYXV0aENvbmZpZy5zZXRDb25maWcoS29hbGFPYXV0aENvbmZpZy5nZXRDb25maWcoKSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzdGFydENvbmZpZyhjb25maWc6IEtvYWxhT2F1dGgyQ29uZmlnSW50ZXJmYWNlKSB7XG4gICAgaWYgKGNvbmZpZy5jbGllbnRJZCkge1xuICAgICAgdGhpcy5vYXV0aDJTZXJ2aWNlLmNvbmZpZ3VyZSh7XG4gICAgICAgIHJlZGlyZWN0VXJpOiB3aW5kb3cubG9jYXRpb24ub3JpZ2luLFxuICAgICAgICByZWRpcmVjdFVyaUFmdGVyQXV0aDogdGhpcy5kZWZhdWx0UGFnZSxcbiAgICAgICAgcmVzcG9uc2VUeXBlOiAnY29kZScsXG4gICAgICAgIGNsaWVudElkOiBjb25maWcuY2xpZW50SWQsXG4gICAgICAgIHNjb3BlOiBjb25maWcuc2NvcGUsXG4gICAgICAgIGlzc3VlcjogY29uZmlnLmRvbWFpbixcbiAgICAgICAgY3VzdG9tUXVlcnlQYXJhbXM6IGNvbmZpZy5jdXN0b21RdWVyeVBhcmFtcyxcbiAgICAgICAgZW5kcG9pbnRUb2tlbjogY29uZmlnLmVuZHBvaW50VG9rZW4gPz8gbnVsbCxcbiAgICAgICAgZW5kcG9pbnRDbGFpbXM6IGNvbmZpZy5lbmRwb2ludENsYWltcyA/PyBudWxsXG4gICAgICB9KTtcbiAgICAgIHRoaXMub2F1dGgyU2VydmljZS5sb2FkRGlzY292ZXJ5RG9jdW1lbnRBbmRUcnlMb2dpbigpLnRoZW4oKTtcblxuICAgICAgaWYgKHRoaXMub2F1dGhFdmVudHNTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgdGhpcy5vYXV0aEV2ZW50c1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgfVxuICAgICAgdGhpcy5vYXV0aEV2ZW50c1N1YnNjcmlwdGlvbiA9IHRoaXMub2F1dGgyU2VydmljZS5ldmVudHMuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgICAgaWYgKGV2ZW50ID09PSAndXNlckF1dGhlbnRpY2F0ZWQnIHx8IGV2ZW50ID09PSAncmVmcmVzaFRva2VuJykge1xuICAgICAgICAgIGNvbnN0IGNsYWltcyA9IHRoaXMub2F1dGgyU2VydmljZS5nZXRJZGVudGl0eUNsYWltcygpO1xuICAgICAgICAgIGlmIChjbGFpbXMgJiYgKFxuICAgICAgICAgICAgIVRva2VuRmFjdG9yeS5oYXNUb2tlbigpIHx8XG4gICAgICAgICAgICAoVG9rZW5GYWN0b3J5Lmhhc1Rva2VuKCkgJiYgZXZlbnQgPT09ICdyZWZyZXNoVG9rZW4nKVxuICAgICAgICAgICkpIHtcbiAgICAgICAgICAgIHRoaXMudG9rZW5TZXJ2aWNlLnNldFRva2VuKGp3dEVuY29kZSh7XG4gICAgICAgICAgICAgIGFjY2Vzc1Rva2VuOiB0aGlzLm9hdXRoMlNlcnZpY2UuZ2V0QWNjZXNzVG9rZW4oKSxcbiAgICAgICAgICAgICAgaWRUb2tlbjogdGhpcy5vYXV0aDJTZXJ2aWNlLmdldElkVG9rZW4oKSxcbiAgICAgICAgICAgICAgcmVmcmVzaFRva2VuOiB0aGlzLm9hdXRoMlNlcnZpY2UuZ2V0UmVmcmVzaFRva2VuKCksXG4gICAgICAgICAgICAgIGxvZ2luOiBjbGFpbXNbY29uZmlnLmluZGV4TG9naW5OYW1lXSA/PyAnVW5kZWZpbmVkJyxcbiAgICAgICAgICAgICAgZXhwaXJlZDogdGhpcy5vYXV0aDJTZXJ2aWNlLmdldEFjY2Vzc1Rva2VuRXhwaXJhdGlvbigpLFxuICAgICAgICAgICAgICBjb2RlOiB0aGlzLm9hdXRoMlNlcnZpY2UuZ2V0Q29kZSgpXG4gICAgICAgICAgICB9LCAnc2VjcmV0JykpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGV2ZW50ID09PSAndXNlckF1dGhlbnRpY2F0ZWQnKSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudmFsaWRhdGlvblNjb3BlJC5uZXh0KGZhbHNlKSwgMzAwKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnQgPT09ICdnZXRUb2tlbicpIHtcbiAgICAgICAgICB0aGlzLnZhbGlkYXRpb25TY29wZSQubmV4dCh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { Injectable } from "@angular/core";
|
|
2
|
-
import { HashLocationStrategy } from "@angular/common";
|
|
3
|
-
import { KoalaEnvironment } from "../environments/koalaEnvironment";
|
|
4
|
-
export class KoalaParameterHashLocationStrategy extends HashLocationStrategy {
|
|
5
|
-
prepareExternalUrl(internal) {
|
|
6
|
-
var _a;
|
|
7
|
-
const hasToken = !!localStorage.getItem((_a = KoalaEnvironment.environment) === null || _a === void 0 ? void 0 : _a.storageTokenName);
|
|
8
|
-
return !hasToken ?
|
|
9
|
-
window.location.search + super.prepareExternalUrl(internal) :
|
|
10
|
-
super.prepareExternalUrl(internal);
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
KoalaParameterHashLocationStrategy.decorators = [
|
|
14
|
-
{ type: Injectable }
|
|
15
|
-
];
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia29hbGEucGFyYW1ldGVyLWhhc2gtbG9jYXRpb24tc3RhdGVneS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9yb3V0ZXIva29hbGEucGFyYW1ldGVyLWhhc2gtbG9jYXRpb24tc3RhdGVneS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBR3BFLE1BQU0sT0FBTyxrQ0FBbUMsU0FBUSxvQkFBb0I7SUFDMUUsa0JBQWtCLENBQUMsUUFBZ0I7O1FBQ2pDLE1BQU0sUUFBUSxHQUFHLENBQUMsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLE1BQUEsZ0JBQWdCLENBQUMsV0FBVywwQ0FBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3hGLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNYLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQzdELEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM1QyxDQUFDOzs7WUFQRixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBIYXNoTG9jYXRpb25TdHJhdGVneSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IEtvYWxhRW52aXJvbm1lbnQgfSBmcm9tIFwiLi4vZW52aXJvbm1lbnRzL2tvYWxhRW52aXJvbm1lbnRcIjtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEtvYWxhUGFyYW1ldGVySGFzaExvY2F0aW9uU3RyYXRlZ3kgZXh0ZW5kcyBIYXNoTG9jYXRpb25TdHJhdGVneSB7XG4gIHByZXBhcmVFeHRlcm5hbFVybChpbnRlcm5hbDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBoYXNUb2tlbiA9ICEhbG9jYWxTdG9yYWdlLmdldEl0ZW0oS29hbGFFbnZpcm9ubWVudC5lbnZpcm9ubWVudD8uc3RvcmFnZVRva2VuTmFtZSk7XG4gICAgcmV0dXJuICFoYXNUb2tlbiA/XG4gICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggKyBzdXBlci5wcmVwYXJlRXh0ZXJuYWxVcmwoaW50ZXJuYWwpIDpcbiAgICAgICAgICAgc3VwZXIucHJlcGFyZUV4dGVybmFsVXJsKGludGVybmFsKTtcbiAgfVxufVxuIl19
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { __awaiter } from "tslib";
|
|
2
|
-
import { KoalaErrorsHelper } from "../helpers/error/koala.errors.helper";
|
|
3
|
-
import { KoalaNotFoundError } from "../helpers/error/koala.not-found.error";
|
|
4
|
-
import { KoalaClientError } from "../helpers/error/koala.client.error";
|
|
5
|
-
import { KoalaUnhautorizedError } from "../helpers/error/koala.unhautorized.error";
|
|
6
|
-
import { KoalaSuccessError } from "../helpers/error/koala.success.error";
|
|
7
|
-
import { KoalaLanguageHelper } from "../../../page/koala-language.helper";
|
|
8
|
-
// @dynamic
|
|
9
|
-
export class KoalaResponseFactory {
|
|
10
|
-
static generateResponse(response, urlRequest) {
|
|
11
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
12
|
-
return new Promise((resolve, reject) => {
|
|
13
|
-
var _a, _b, _c, _d, _e, _f;
|
|
14
|
-
let alert;
|
|
15
|
-
switch (response.status) {
|
|
16
|
-
case 200:
|
|
17
|
-
case 201:
|
|
18
|
-
alert = KoalaErrorsHelper.generate(new KoalaSuccessError((_a = response.body) === null || _a === void 0 ? void 0 : _a.message), urlRequest);
|
|
19
|
-
alert.data = response.body;
|
|
20
|
-
resolve(alert);
|
|
21
|
-
break;
|
|
22
|
-
case 400:
|
|
23
|
-
alert = KoalaErrorsHelper.generate(new KoalaClientError(response.body.message), urlRequest);
|
|
24
|
-
reject(alert);
|
|
25
|
-
break;
|
|
26
|
-
case 404:
|
|
27
|
-
alert = KoalaErrorsHelper.generate(new KoalaNotFoundError((_b = response.body) === null || _b === void 0 ? void 0 : _b.message), urlRequest);
|
|
28
|
-
reject(alert);
|
|
29
|
-
break;
|
|
30
|
-
case 401:
|
|
31
|
-
alert = KoalaErrorsHelper.generate(new KoalaUnhautorizedError((_c = response.body) === null || _c === void 0 ? void 0 : _c.message), urlRequest);
|
|
32
|
-
reject(alert);
|
|
33
|
-
break;
|
|
34
|
-
case 405:
|
|
35
|
-
alert = KoalaErrorsHelper.generate(new KoalaClientError((_d = response.body) === null || _d === void 0 ? void 0 : _d.message), urlRequest);
|
|
36
|
-
reject(alert);
|
|
37
|
-
break;
|
|
38
|
-
case 500:
|
|
39
|
-
default:
|
|
40
|
-
alert = KoalaErrorsHelper.generate(new Error((response && ((_e = response.body) === null || _e === void 0 ? void 0 : _e.message)) ? (_f = response.body) === null || _f === void 0 ? void 0 : _f.message : KoalaLanguageHelper.getInternalServerErrorMessage()), urlRequest);
|
|
41
|
-
reject(alert);
|
|
42
|
-
break;
|
|
43
|
-
}
|
|
44
|
-
});
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia29hbGEucmVzcG9uc2UuZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9zZXJ2aWNlcy9hcGktcmVxdWVzdGVyL2ZhY3Rvcnkva29hbGEucmVzcG9uc2UuZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFFLGlCQUFpQixFQUEwQixNQUFNLHNDQUFzQyxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRTFFLFdBQVc7QUFDWCxNQUFNLE9BQU8sb0JBQW9CO0lBRXhCLE1BQU0sQ0FBTyxnQkFBZ0IsQ0FBQyxRQUEyQixFQUFFLFVBQW1COztZQUNuRixPQUFPLElBQUksT0FBTyxDQUF5QixDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTs7Z0JBQzdELElBQUksS0FBNkIsQ0FBQztnQkFDbEMsUUFBUSxRQUFRLENBQUMsTUFBTSxFQUFFO29CQUN2QixLQUFLLEdBQUcsQ0FBQztvQkFDVCxLQUFLLEdBQUc7d0JBQ04sS0FBSyxHQUFHLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxJQUFJLGlCQUFpQixDQUFDLE1BQUEsUUFBUSxDQUFDLElBQUksMENBQUUsT0FBTyxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7d0JBQzlGLEtBQUssQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQzt3QkFDM0IsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUNmLE1BQU07b0JBQ1IsS0FBSyxHQUFHO3dCQUNOLEtBQUssR0FBRyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO3dCQUM1RixNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7d0JBQ2QsTUFBTTtvQkFDUixLQUFLLEdBQUc7d0JBQ04sS0FBSyxHQUFHLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxJQUFJLGtCQUFrQixDQUFDLE1BQUEsUUFBUSxDQUFDLElBQUksMENBQUUsT0FBTyxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7d0JBQy9GLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQzt3QkFDZCxNQUFNO29CQUNSLEtBQUssR0FBRzt3QkFDTixLQUFLLEdBQUcsaUJBQWlCLENBQUMsUUFBUSxDQUFDLElBQUksc0JBQXNCLENBQUMsTUFBQSxRQUFRLENBQUMsSUFBSSwwQ0FBRSxPQUFPLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQzt3QkFDbkcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUNkLE1BQU07b0JBQ1IsS0FBSyxHQUFHO3dCQUNOLEtBQUssR0FBRyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFBLFFBQVEsQ0FBQyxJQUFJLDBDQUFFLE9BQU8sQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO3dCQUM3RixNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7d0JBQ2QsTUFBTTtvQkFDUixLQUFLLEdBQUcsQ0FBQztvQkFDVDt3QkFDRSxLQUFLLEdBQUcsaUJBQWlCLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsUUFBUSxLQUFJLE1BQUEsUUFBUSxDQUFDLElBQUksMENBQUUsT0FBTyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBQSxRQUFRLENBQUMsSUFBSSwwQ0FBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLDZCQUE2QixFQUFFLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQzt3QkFDL0ssTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUNkLE1BQU07aUJBQ1Q7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7S0FBQTtDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cFJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgS29hbGFFcnJvcnNIZWxwZXIsIEtvYWxhUmVzcG9uc2VJbnRlcmZhY2UgfSBmcm9tIFwiLi4vaGVscGVycy9lcnJvci9rb2FsYS5lcnJvcnMuaGVscGVyXCI7XG5pbXBvcnQgeyBLb2FsYU5vdEZvdW5kRXJyb3IgfSBmcm9tIFwiLi4vaGVscGVycy9lcnJvci9rb2FsYS5ub3QtZm91bmQuZXJyb3JcIjtcbmltcG9ydCB7IEtvYWxhQ2xpZW50RXJyb3IgfSBmcm9tIFwiLi4vaGVscGVycy9lcnJvci9rb2FsYS5jbGllbnQuZXJyb3JcIjtcbmltcG9ydCB7IEtvYWxhVW5oYXV0b3JpemVkRXJyb3IgfSBmcm9tIFwiLi4vaGVscGVycy9lcnJvci9rb2FsYS51bmhhdXRvcml6ZWQuZXJyb3JcIjtcbmltcG9ydCB7IEtvYWxhU3VjY2Vzc0Vycm9yIH0gZnJvbSBcIi4uL2hlbHBlcnMvZXJyb3Iva29hbGEuc3VjY2Vzcy5lcnJvclwiO1xuaW1wb3J0IHsgS29hbGFMYW5ndWFnZUhlbHBlciB9IGZyb20gXCIuLi8uLi8uLi9wYWdlL2tvYWxhLWxhbmd1YWdlLmhlbHBlclwiO1xuXG4vLyBAZHluYW1pY1xuZXhwb3J0IGNsYXNzIEtvYWxhUmVzcG9uc2VGYWN0b3J5IHtcblxuICBwdWJsaWMgc3RhdGljIGFzeW5jIGdlbmVyYXRlUmVzcG9uc2UocmVzcG9uc2U6IEh0dHBSZXNwb25zZTxhbnk+LCB1cmxSZXF1ZXN0Pzogc3RyaW5nKTogUHJvbWlzZTxLb2FsYVJlc3BvbnNlSW50ZXJmYWNlPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPEtvYWxhUmVzcG9uc2VJbnRlcmZhY2U+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGxldCBhbGVydDogS29hbGFSZXNwb25zZUludGVyZmFjZTtcbiAgICAgIHN3aXRjaCAocmVzcG9uc2Uuc3RhdHVzKSB7XG4gICAgICAgIGNhc2UgMjAwOlxuICAgICAgICBjYXNlIDIwMTpcbiAgICAgICAgICBhbGVydCA9IEtvYWxhRXJyb3JzSGVscGVyLmdlbmVyYXRlKG5ldyBLb2FsYVN1Y2Nlc3NFcnJvcihyZXNwb25zZS5ib2R5Py5tZXNzYWdlKSwgdXJsUmVxdWVzdCk7XG4gICAgICAgICAgYWxlcnQuZGF0YSA9IHJlc3BvbnNlLmJvZHk7XG4gICAgICAgICAgcmVzb2x2ZShhbGVydCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNDAwOlxuICAgICAgICAgIGFsZXJ0ID0gS29hbGFFcnJvcnNIZWxwZXIuZ2VuZXJhdGUobmV3IEtvYWxhQ2xpZW50RXJyb3IocmVzcG9uc2UuYm9keS5tZXNzYWdlKSwgdXJsUmVxdWVzdCk7XG4gICAgICAgICAgcmVqZWN0KGFsZXJ0KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA0MDQ6XG4gICAgICAgICAgYWxlcnQgPSBLb2FsYUVycm9yc0hlbHBlci5nZW5lcmF0ZShuZXcgS29hbGFOb3RGb3VuZEVycm9yKHJlc3BvbnNlLmJvZHk/Lm1lc3NhZ2UpLCB1cmxSZXF1ZXN0KTtcbiAgICAgICAgICByZWplY3QoYWxlcnQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDQwMTpcbiAgICAgICAgICBhbGVydCA9IEtvYWxhRXJyb3JzSGVscGVyLmdlbmVyYXRlKG5ldyBLb2FsYVVuaGF1dG9yaXplZEVycm9yKHJlc3BvbnNlLmJvZHk/Lm1lc3NhZ2UpLCB1cmxSZXF1ZXN0KTtcbiAgICAgICAgICByZWplY3QoYWxlcnQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDQwNTpcbiAgICAgICAgICBhbGVydCA9IEtvYWxhRXJyb3JzSGVscGVyLmdlbmVyYXRlKG5ldyBLb2FsYUNsaWVudEVycm9yKHJlc3BvbnNlLmJvZHk/Lm1lc3NhZ2UpLCB1cmxSZXF1ZXN0KTtcbiAgICAgICAgICByZWplY3QoYWxlcnQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDUwMDpcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBhbGVydCA9IEtvYWxhRXJyb3JzSGVscGVyLmdlbmVyYXRlKG5ldyBFcnJvcigocmVzcG9uc2UgJiYgcmVzcG9uc2UuYm9keT8ubWVzc2FnZSkgPyByZXNwb25zZS5ib2R5Py5tZXNzYWdlIDogS29hbGFMYW5ndWFnZUhlbHBlci5nZXRJbnRlcm5hbFNlcnZlckVycm9yTWVzc2FnZSgpKSwgdXJsUmVxdWVzdCk7XG4gICAgICAgICAgcmVqZWN0KGFsZXJ0KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIl19
|