@po-ui/ng-templates 18.23.0 → 19.0.0-next.0
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/fesm2022/po-ui-ng-templates.mjs +139 -122
- package/fesm2022/po-ui-ng-templates.mjs.map +1 -1
- package/lib/components/po-modal-password-recovery/po-modal-password-recovery-base.component.d.ts +1 -1
- package/lib/components/po-modal-password-recovery/po-modal-password-recovery.service.d.ts +1 -1
- package/lib/components/po-page-blocked-user/po-page-blocked-user-base.component.d.ts +1 -1
- package/lib/components/po-page-blocked-user/po-page-blocked-user.component.d.ts +1 -1
- package/lib/components/po-page-change-password/po-page-change-password-base.component.d.ts +1 -1
- package/lib/components/po-page-change-password/po-page-change-password.service.d.ts +1 -1
- package/lib/components/po-page-dynamic-search/po-advanced-filter/po-advanced-filter-base.component.d.ts +1 -1
- package/lib/components/po-page-dynamic-search/po-page-dynamic-search-base.component.d.ts +1 -1
- package/lib/components/po-page-dynamic-search/po-page-dynamic-search.component.d.ts +2 -2
- package/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-custom-action.interface.d.ts +1 -1
- package/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-custom-table-action.interface.d.ts +1 -1
- package/lib/components/po-page-dynamic-table/po-page-dynamic-list-base.component.d.ts +2 -2
- package/lib/components/po-page-dynamic-table/po-page-dynamic-table.component.d.ts +2 -2
- package/lib/components/po-page-job-scheduler/po-page-job-scheduler-base.component.d.ts +1 -1
- package/lib/components/po-page-job-scheduler/po-page-job-scheduler-execution/po-page-job-scheduler-execution.component.d.ts +2 -2
- package/lib/components/po-page-job-scheduler/po-page-job-scheduler-parameters/po-job-scheduler-parameters-template/po-job-scheduler-parameters-template.directive.d.ts +1 -1
- package/lib/components/po-page-job-scheduler/po-page-job-scheduler-summary/po-page-job-scheduler-summary.component.d.ts +1 -1
- package/lib/components/po-page-login/po-page-login-base.component.d.ts +1 -1
- package/lib/components/po-page-login/po-page-login.service.d.ts +1 -1
- package/package.json +13 -15
- package/po-ui-ng-templates-19.0.0-next.0.tgz +0 -0
- package/schematics/ng-add/index.js +2 -2
- package/schematics/ng-add/index.js.map +1 -1
- package/schematics/ng-generate/po-page-blocked-user/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +4 -2
- package/schematics/ng-generate/po-page-blocked-user/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +2 -1
- package/schematics/ng-generate/po-page-blocked-user/files-standalone/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +4 -3
- package/schematics/ng-generate/po-page-blocked-user/files-standalone/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +0 -1
- package/schematics/ng-generate/po-page-blocked-user/index.js +1 -1
- package/schematics/ng-generate/po-page-blocked-user/index.js.map +1 -1
- package/schematics/ng-generate/po-page-change-password/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +4 -2
- package/schematics/ng-generate/po-page-change-password/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +2 -1
- package/schematics/ng-generate/po-page-change-password/files-standalone/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +4 -3
- package/schematics/ng-generate/po-page-change-password/files-standalone/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +0 -1
- package/schematics/ng-generate/po-page-change-password/index.js +1 -1
- package/schematics/ng-generate/po-page-change-password/index.js.map +1 -1
- package/schematics/ng-generate/po-page-dynamic-detail/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +4 -2
- package/schematics/ng-generate/po-page-dynamic-detail/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +2 -1
- package/schematics/ng-generate/po-page-dynamic-detail/files-standalone/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +4 -3
- package/schematics/ng-generate/po-page-dynamic-detail/files-standalone/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +0 -1
- package/schematics/ng-generate/po-page-dynamic-detail/index.js +1 -1
- package/schematics/ng-generate/po-page-dynamic-detail/index.js.map +1 -1
- package/schematics/ng-generate/po-page-dynamic-edit/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +4 -2
- package/schematics/ng-generate/po-page-dynamic-edit/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +2 -1
- package/schematics/ng-generate/po-page-dynamic-edit/files-standalone/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +4 -3
- package/schematics/ng-generate/po-page-dynamic-edit/files-standalone/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +0 -1
- package/schematics/ng-generate/po-page-dynamic-edit/index.js +1 -1
- package/schematics/ng-generate/po-page-dynamic-edit/index.js.map +1 -1
- package/schematics/ng-generate/po-page-dynamic-search/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +4 -2
- package/schematics/ng-generate/po-page-dynamic-search/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +2 -1
- package/schematics/ng-generate/po-page-dynamic-search/files-standalone/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +4 -3
- package/schematics/ng-generate/po-page-dynamic-search/files-standalone/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +0 -1
- package/schematics/ng-generate/po-page-dynamic-search/index.js +1 -1
- package/schematics/ng-generate/po-page-dynamic-search/index.js.map +1 -1
- package/schematics/ng-generate/po-page-dynamic-table/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +4 -2
- package/schematics/ng-generate/po-page-dynamic-table/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +2 -1
- package/schematics/ng-generate/po-page-dynamic-table/files-standalone/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +4 -3
- package/schematics/ng-generate/po-page-dynamic-table/files-standalone/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +0 -1
- package/schematics/ng-generate/po-page-dynamic-table/index.js +1 -1
- package/schematics/ng-generate/po-page-dynamic-table/index.js.map +1 -1
- package/schematics/ng-generate/po-page-job-scheduler/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +4 -2
- package/schematics/ng-generate/po-page-job-scheduler/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +2 -1
- package/schematics/ng-generate/po-page-job-scheduler/files-standalone/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +4 -3
- package/schematics/ng-generate/po-page-job-scheduler/files-standalone/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +0 -1
- package/schematics/ng-generate/po-page-job-scheduler/index.js +1 -1
- package/schematics/ng-generate/po-page-job-scheduler/index.js.map +1 -1
- package/schematics/ng-generate/po-page-login/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +4 -2
- package/schematics/ng-generate/po-page-login/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +2 -1
- package/schematics/ng-generate/po-page-login/files-standalone/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +4 -3
- package/schematics/ng-generate/po-page-login/files-standalone/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +0 -1
- package/schematics/ng-generate/po-page-login/index.js +1 -1
- package/schematics/ng-generate/po-page-login/index.js.map +1 -1
- package/esm2022/lib/components/components.module.mjs +0 -84
- package/esm2022/lib/components/index.mjs +0 -12
- package/esm2022/lib/components/po-modal-password-recovery/enums/po-modal-password-recovery-modal-content.enum.mjs +0 -17
- package/esm2022/lib/components/po-modal-password-recovery/enums/po-modal-password-recovery-type.enum.mjs +0 -17
- package/esm2022/lib/components/po-modal-password-recovery/index.mjs +0 -8
- package/esm2022/lib/components/po-modal-password-recovery/interfaces/po-modal-password-recovery.interface.mjs +0 -2
- package/esm2022/lib/components/po-modal-password-recovery/literals/i18n/po-modal-password-recovery-literals.mjs +0 -119
- package/esm2022/lib/components/po-modal-password-recovery/po-modal-password-recovery-base.component.mjs +0 -293
- package/esm2022/lib/components/po-modal-password-recovery/po-modal-password-recovery-error-message/po-modal-password-recovery-error-message.component.mjs +0 -34
- package/esm2022/lib/components/po-modal-password-recovery/po-modal-password-recovery.component.mjs +0 -451
- package/esm2022/lib/components/po-modal-password-recovery/po-modal-password-recovery.module.mjs +0 -29
- package/esm2022/lib/components/po-modal-password-recovery/po-modal-password-recovery.service.mjs +0 -18
- package/esm2022/lib/components/po-page-background/index.mjs +0 -3
- package/esm2022/lib/components/po-page-background/po-page-background.component.mjs +0 -191
- package/esm2022/lib/components/po-page-background/po-page-background.module.mjs +0 -27
- package/esm2022/lib/components/po-page-blocked-user/enums/po-page-blocked-user-reason.enum.mjs +0 -17
- package/esm2022/lib/components/po-page-blocked-user/index.mjs +0 -8
- package/esm2022/lib/components/po-page-blocked-user/interfaces/po-page-blocked-user-reason-params.interface.mjs +0 -2
- package/esm2022/lib/components/po-page-blocked-user/literals/i18n/po-page-blocked-user-literals.mjs +0 -78
- package/esm2022/lib/components/po-page-blocked-user/po-page-blocked-user-base.component.mjs +0 -197
- package/esm2022/lib/components/po-page-blocked-user/po-page-blocked-user-contacts/po-page-blocked-user-contacts.component.mjs +0 -105
- package/esm2022/lib/components/po-page-blocked-user/po-page-blocked-user-reason/po-page-blocked-user-reason.component.mjs +0 -107
- package/esm2022/lib/components/po-page-blocked-user/po-page-blocked-user.component.mjs +0 -108
- package/esm2022/lib/components/po-page-blocked-user/po-page-blocked-user.module.mjs +0 -29
- package/esm2022/lib/components/po-page-change-password/index.mjs +0 -7
- package/esm2022/lib/components/po-page-change-password/interfaces/po-page-change-password-recovery.interface.mjs +0 -2
- package/esm2022/lib/components/po-page-change-password/interfaces/po-page-change-password-requirement.interface.mjs +0 -2
- package/esm2022/lib/components/po-page-change-password/interfaces/po-page-change-password.interface.mjs +0 -2
- package/esm2022/lib/components/po-page-change-password/literals/i18n/po-page-change-password-literals.mjs +0 -79
- package/esm2022/lib/components/po-page-change-password/po-page-change-password-base.component.mjs +0 -300
- package/esm2022/lib/components/po-page-change-password/po-page-change-password.component.mjs +0 -401
- package/esm2022/lib/components/po-page-change-password/po-page-change-password.module.mjs +0 -30
- package/esm2022/lib/components/po-page-change-password/po-page-change-password.service.mjs +0 -18
- package/esm2022/lib/components/po-page-dynamic-detail/index.mjs +0 -10
- package/esm2022/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-actions.interface.mjs +0 -2
- package/esm2022/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-before-back.interface.mjs +0 -2
- package/esm2022/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-before-edit.interface.mjs +0 -2
- package/esm2022/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-before-remove.interface.mjs +0 -2
- package/esm2022/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-field.interface.mjs +0 -2
- package/esm2022/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-metadata.interface.mjs +0 -2
- package/esm2022/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-options.interface.mjs +0 -2
- package/esm2022/lib/components/po-page-dynamic-detail/po-page-dynamic-detail-actions.service.mjs +0 -44
- package/esm2022/lib/components/po-page-dynamic-detail/po-page-dynamic-detail.component.mjs +0 -546
- package/esm2022/lib/components/po-page-dynamic-detail/po-page-dynamic-detail.module.mjs +0 -54
- package/esm2022/lib/components/po-page-dynamic-edit/index.mjs +0 -11
- package/esm2022/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-actions.interface.mjs +0 -2
- package/esm2022/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-before-cancel.interface.mjs +0 -2
- package/esm2022/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-before-save-new.interface.mjs +0 -2
- package/esm2022/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-before-save.interface.mjs +0 -2
- package/esm2022/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-field.interface.mjs +0 -2
- package/esm2022/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-literals.interface.mjs +0 -2
- package/esm2022/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-metadata.interface.mjs +0 -2
- package/esm2022/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-options.interface.mjs +0 -2
- package/esm2022/lib/components/po-page-dynamic-edit/po-page-dynamic-edit-actions.service.mjs +0 -44
- package/esm2022/lib/components/po-page-dynamic-edit/po-page-dynamic-edit.component.mjs +0 -889
- package/esm2022/lib/components/po-page-dynamic-edit/po-page-dynamic-edit.module.mjs +0 -60
- package/esm2022/lib/components/po-page-dynamic-search/index.mjs +0 -7
- package/esm2022/lib/components/po-page-dynamic-search/po-advanced-filter/po-advanced-filter-base.component.mjs +0 -133
- package/esm2022/lib/components/po-page-dynamic-search/po-advanced-filter/po-advanced-filter-literals.interface.mjs +0 -2
- package/esm2022/lib/components/po-page-dynamic-search/po-advanced-filter/po-advanced-filter.component.mjs +0 -76
- package/esm2022/lib/components/po-page-dynamic-search/po-page-dynamic-search-base.component.mjs +0 -365
- package/esm2022/lib/components/po-page-dynamic-search/po-page-dynamic-search-filters.interface.mjs +0 -2
- package/esm2022/lib/components/po-page-dynamic-search/po-page-dynamic-search-literals.interface.mjs +0 -2
- package/esm2022/lib/components/po-page-dynamic-search/po-page-dynamic-search-options.interface.mjs +0 -2
- package/esm2022/lib/components/po-page-dynamic-search/po-page-dynamic-search.component.mjs +0 -349
- package/esm2022/lib/components/po-page-dynamic-search/po-page-dynamic-search.interface.mjs +0 -2
- package/esm2022/lib/components/po-page-dynamic-search/po-page-dynamic-search.module.mjs +0 -52
- package/esm2022/lib/components/po-page-dynamic-table/index.mjs +0 -16
- package/esm2022/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-actions.interface.mjs +0 -2
- package/esm2022/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-before-detail.interface.mjs +0 -2
- package/esm2022/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-before-duplicate.interface.mjs +0 -2
- package/esm2022/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-before-edit.interface.mjs +0 -2
- package/esm2022/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-before-new.interface.mjs +0 -2
- package/esm2022/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-before-remove-all.interface.mjs +0 -2
- package/esm2022/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-before-remove.interface.mjs +0 -2
- package/esm2022/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-custom-action.interface.mjs +0 -2
- package/esm2022/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-custom-table-action.interface.mjs +0 -2
- package/esm2022/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-field.interface.mjs +0 -2
- package/esm2022/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-filters.interface.mjs +0 -2
- package/esm2022/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-metadata.interface.mjs +0 -2
- package/esm2022/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-options.interface.mjs +0 -2
- package/esm2022/lib/components/po-page-dynamic-table/po-page-dynamic-list-base.component.mjs +0 -271
- package/esm2022/lib/components/po-page-dynamic-table/po-page-dynamic-table-actions.service.mjs +0 -59
- package/esm2022/lib/components/po-page-dynamic-table/po-page-dynamic-table-literals.mjs +0 -63
- package/esm2022/lib/components/po-page-dynamic-table/po-page-dynamic-table.component.mjs +0 -1257
- package/esm2022/lib/components/po-page-dynamic-table/po-page-dynamic-table.module.mjs +0 -50
- package/esm2022/lib/components/po-page-job-scheduler/index.mjs +0 -6
- package/esm2022/lib/components/po-page-job-scheduler/interfaces/po-job-scheduler-internal.interface.mjs +0 -2
- package/esm2022/lib/components/po-page-job-scheduler/interfaces/po-job-scheduler.interface.mjs +0 -2
- package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler-base.component.mjs +0 -302
- package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler-execution/po-page-job-scheduler-execution.component.mjs +0 -393
- package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler-internal.mjs +0 -13
- package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler-literals.mjs +0 -195
- package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler-lookup.service.mjs +0 -22
- package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler-parameters/index.mjs +0 -2
- package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler-parameters/po-job-scheduler-parameters-template/index.mjs +0 -2
- package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler-parameters/po-job-scheduler-parameters-template/po-job-scheduler-parameters-template.directive.mjs +0 -92
- package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler-parameters/po-page-job-scheduler-parameters.component.mjs +0 -79
- package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler-summary/index.mjs +0 -2
- package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler-summary/po-job-scheduler-summary-template/index.mjs +0 -2
- package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler-summary/po-job-scheduler-summary-template/po-job-scheduler-summary-template.directive.mjs +0 -44
- package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler-summary/po-page-job-scheduler-summary.component.mjs +0 -211
- package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler.component.mjs +0 -418
- package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler.module.mjs +0 -85
- package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler.service.mjs +0 -224
- package/esm2022/lib/components/po-page-login/enums/po-page-login-authentication-type.enum.mjs +0 -15
- package/esm2022/lib/components/po-page-login/index.mjs +0 -8
- package/esm2022/lib/components/po-page-login/interfaces/po-page-login-custom-field.interface.mjs +0 -2
- package/esm2022/lib/components/po-page-login/interfaces/po-page-login-literals.interface.mjs +0 -2
- package/esm2022/lib/components/po-page-login/interfaces/po-page-login-recovery.interface.mjs +0 -2
- package/esm2022/lib/components/po-page-login/interfaces/po-page-login.interface.mjs +0 -2
- package/esm2022/lib/components/po-page-login/po-page-login-base.component.mjs +0 -1099
- package/esm2022/lib/components/po-page-login/po-page-login-popover/po-page-login-popover.component.mjs +0 -137
- package/esm2022/lib/components/po-page-login/po-page-login.component.mjs +0 -483
- package/esm2022/lib/components/po-page-login/po-page-login.module.mjs +0 -31
- package/esm2022/lib/components/po-page-login/po-page-login.service.mjs +0 -32
- package/esm2022/lib/index.mjs +0 -4
- package/esm2022/lib/po-templates.module.mjs +0 -18
- package/esm2022/lib/services/index.mjs +0 -4
- package/esm2022/lib/services/po-page-customization/index.mjs +0 -4
- package/esm2022/lib/services/po-page-customization/po-page-customization.module.mjs +0 -23
- package/esm2022/lib/services/po-page-customization/po-page-customization.service.mjs +0 -86
- package/esm2022/lib/services/po-page-customization/po-page-dynamic-options.interface.mjs +0 -2
- package/esm2022/lib/services/po-page-dynamic/index.mjs +0 -3
- package/esm2022/lib/services/po-page-dynamic/po-page-dynamic-literals.interface.mjs +0 -2
- package/esm2022/lib/services/po-page-dynamic/po-page-dynamic.module.mjs +0 -23
- package/esm2022/lib/services/po-page-dynamic/po-page-dynamic.service.mjs +0 -106
- package/esm2022/lib/services/services.module.mjs +0 -18
- package/esm2022/lib/utils/util.mjs +0 -428
- package/esm2022/po-ui-ng-templates.mjs +0 -5
- package/esm2022/public-api.mjs +0 -2
- package/po-ui-ng-templates-18.23.0.tgz +0 -0
package/esm2022/lib/components/po-page-change-password/po-page-change-password-base.component.mjs
DELETED
|
@@ -1,300 +0,0 @@
|
|
|
1
|
-
import { EventEmitter, Input, Output, Directive } from '@angular/core';
|
|
2
|
-
import { convertToBoolean, isExternalLink, isTypeof } from '../../utils/util';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
/**
|
|
5
|
-
* @description
|
|
6
|
-
*
|
|
7
|
-
* O componente `po-page-change-password` é utilizado como template para tela de cadastro ou alteração de senha.
|
|
8
|
-
*
|
|
9
|
-
* Apresenta dicas e regras para senhas mais seguras e também possibilidade de personalizar o redirecionamento para as telas
|
|
10
|
-
* 'esqueceu a senha', 'voltar' e 'entrar no sistema'. Os textos das telas são pré-definidos e imutáveis.
|
|
11
|
-
*
|
|
12
|
-
* A propriedade `p-url-new-password` automatiza a rotina do template e simplifica o processo de cadastro/alteração de senha, bastando
|
|
13
|
-
* definir uma url para POST das informações digitadas pelo usuário. A flexibilidade e praticidade podem chegar a um nível em que o
|
|
14
|
-
* desenvolvimento da aplicação no *client side* é desprovida de qualquer código-fonte relacionado à rotina de cadastro/alteração de senha.
|
|
15
|
-
* Seu detalhamento para uso pode ser visto logo abaixo em *propriedades*.
|
|
16
|
-
* Caso julgue necessário, pode-se também definir manualmente a rotina do componente.
|
|
17
|
-
*
|
|
18
|
-
* Para que as imagens sejam exibidas corretamente, é necessário incluir o caminho delas ao projeto. Para isso, edite
|
|
19
|
-
* o *assets* no arquivo **angular.json** da aplicação na seguinte ordem:
|
|
20
|
-
* ```
|
|
21
|
-
* "assets": [
|
|
22
|
-
* "src/assets",
|
|
23
|
-
* "src/favicon.ico",
|
|
24
|
-
* {
|
|
25
|
-
* "glob": "**\/*",
|
|
26
|
-
* "input": "node_modules/@po-ui/style/images",
|
|
27
|
-
* "output": "assets/images"
|
|
28
|
-
* }
|
|
29
|
-
* ]
|
|
30
|
-
* ```
|
|
31
|
-
*/
|
|
32
|
-
export class PoPageChangePasswordBaseComponent {
|
|
33
|
-
/**
|
|
34
|
-
* @optional
|
|
35
|
-
*
|
|
36
|
-
* @description
|
|
37
|
-
*
|
|
38
|
-
* Caminho para a logomarca localizada na parte superior.
|
|
39
|
-
*
|
|
40
|
-
* > Caso seja indefinida o espaço se mantém preservado porém vazio.
|
|
41
|
-
*/
|
|
42
|
-
logo;
|
|
43
|
-
/**
|
|
44
|
-
* @optional
|
|
45
|
-
*
|
|
46
|
-
* @description
|
|
47
|
-
*
|
|
48
|
-
* Caminho para a logomarca localizada no rodapé.
|
|
49
|
-
*/
|
|
50
|
-
secondaryLogo;
|
|
51
|
-
/**
|
|
52
|
-
* Token para solicitação de troca/recuperação de senha.
|
|
53
|
-
*
|
|
54
|
-
* > Esta propriedade será ignorada caso exista um token como parâmetro na URL inicial do template.
|
|
55
|
-
*/
|
|
56
|
-
token;
|
|
57
|
-
/**
|
|
58
|
-
* @optional
|
|
59
|
-
*
|
|
60
|
-
* @description
|
|
61
|
-
*
|
|
62
|
-
* URL para a ação de retorno da página.
|
|
63
|
-
*
|
|
64
|
-
* > O botão `Voltar` aparece apenas para telas de alteração de senha, ou seja, só aparece se a propriedade `p-hide-current-password` for
|
|
65
|
-
* falsa.
|
|
66
|
-
*
|
|
67
|
-
* @default `/`
|
|
68
|
-
*/
|
|
69
|
-
urlBack = '/';
|
|
70
|
-
/**
|
|
71
|
-
* Endpoint usado pelo template para realizar um POST. Quando preenchido, o método `p-submit` será ignorado e o componente adquirirá
|
|
72
|
-
* automatização para o processo de cadastro/troca de senha.
|
|
73
|
-
*
|
|
74
|
-
* ### Processo
|
|
75
|
-
* Ao digitar um valor válido nos campos de senha e pressionar **salvar**,
|
|
76
|
-
* o componente fará uma requisição `POST` na url especificada nesta propriedade passando o objeto contendo os valores definidos pelo
|
|
77
|
-
* usuário.
|
|
78
|
-
*
|
|
79
|
-
* ```
|
|
80
|
-
* body {
|
|
81
|
-
* token?: token,
|
|
82
|
-
* oldPassword?: oldPassword,
|
|
83
|
-
* newPassword: newPassword
|
|
84
|
-
* }
|
|
85
|
-
* ```
|
|
86
|
-
*
|
|
87
|
-
* O código de resposta HTTP de status esperado é `204`.
|
|
88
|
-
*
|
|
89
|
-
* Em caso de **sucesso**, será exibida a modal de confirmação de senha alterada.
|
|
90
|
-
*
|
|
91
|
-
* > O token será informado pela propriedade `p-token`do componente ou por um *query parameter* na URL do template.
|
|
92
|
-
*
|
|
93
|
-
* *Processo finalizado.*
|
|
94
|
-
*
|
|
95
|
-
* _______________
|
|
96
|
-
*
|
|
97
|
-
* #### Praticidade
|
|
98
|
-
* As informações do serviço de autenticação também podem ser transmitidas diretamente pelas configuraçãos de rota e, desta maneira,
|
|
99
|
-
* dispensa-se qualquer menção e/ou importação do componente `po-page-change-password` no restante da aplicação. O exemplo abaixo
|
|
100
|
-
* exemplifica a forma dinâmica com a qual o template de tela de troca de senha pode ser gerado ao navegar para rota `/change-password`, e
|
|
101
|
-
* também como ele se comunica com o serviço para efetuação do processo de troca de senha do usuário e solicitação de nova senha.
|
|
102
|
-
* Basta definir nas configurações de rota:
|
|
103
|
-
*
|
|
104
|
-
*
|
|
105
|
-
* ```
|
|
106
|
-
* import { PoModalPasswordRecoveryType, PoPageChangePasswordComponent } from '@po-ui/ng-templates';
|
|
107
|
-
*
|
|
108
|
-
* ...
|
|
109
|
-
* const routes: Routes = [
|
|
110
|
-
* {
|
|
111
|
-
* path: 'change-password', component: PoPageChangePasswordComponent, data: {
|
|
112
|
-
* serviceApi: 'https://po-ui.io/sample/api/new-password',
|
|
113
|
-
* recovery: {
|
|
114
|
-
* url: 'https://po-ui.io/sample/api/users',
|
|
115
|
-
* type: PoModalPasswordRecoveryType.All,
|
|
116
|
-
* contactMail: 'dev.po@po-ui.com',
|
|
117
|
-
* phoneMask: '9-999-999-9999'
|
|
118
|
-
* }
|
|
119
|
-
* }
|
|
120
|
-
* }
|
|
121
|
-
* ...
|
|
122
|
-
* ];
|
|
123
|
-
*
|
|
124
|
-
* @NgModule({
|
|
125
|
-
* imports: [RouterModule.forRoot(routes)],
|
|
126
|
-
* exports: [RouterModule]
|
|
127
|
-
* })
|
|
128
|
-
* export class AppRoutingModule { }
|
|
129
|
-
* ```
|
|
130
|
-
*
|
|
131
|
-
*
|
|
132
|
-
* O metadado `serviceApi` deve ser a **url** para requisição dos recursos de troca de senha. E `recovery` é a interface
|
|
133
|
-
* `PoPageChangePasswordRecovery` responsável pelas especificações contidas na modal de recuperação de senha.
|
|
134
|
-
*
|
|
135
|
-
* > É essencial que siga a nomenclatura dos atributos exemplificados acima para sua efetiva funcionalidade.
|
|
136
|
-
*
|
|
137
|
-
*/
|
|
138
|
-
urlNewPassword;
|
|
139
|
-
/**
|
|
140
|
-
* @optional
|
|
141
|
-
*
|
|
142
|
-
* @description
|
|
143
|
-
*
|
|
144
|
-
* Função executada ao submeter o form pelo botão salvar.
|
|
145
|
-
*
|
|
146
|
-
* Caso definida essa função, a modal de confirmação não aparece, mas pode ser chamada pelo
|
|
147
|
-
* método `openConfirmation`. Exemplo:
|
|
148
|
-
*
|
|
149
|
-
* ```
|
|
150
|
-
* @ViewChild(PoPageChangePasswordComponent) changePassword: PoPageChangePasswordComponent;
|
|
151
|
-
*
|
|
152
|
-
* onSubmit() {
|
|
153
|
-
* this.changePassword.openConfirmation();
|
|
154
|
-
* }
|
|
155
|
-
*
|
|
156
|
-
* ```
|
|
157
|
-
* > Esta propriedade será ignorada se for definido valor para a propriedade `p-url-new-password`.
|
|
158
|
-
*/
|
|
159
|
-
submit = new EventEmitter();
|
|
160
|
-
confirmPassword;
|
|
161
|
-
currentPassword;
|
|
162
|
-
modalAction;
|
|
163
|
-
newPassword;
|
|
164
|
-
recoveryUrlType;
|
|
165
|
-
showRequirements;
|
|
166
|
-
validatorChange;
|
|
167
|
-
_hideCurrentPassword = false;
|
|
168
|
-
_recovery;
|
|
169
|
-
_requirements = [];
|
|
170
|
-
_urlHome = '/';
|
|
171
|
-
/**
|
|
172
|
-
* @optional
|
|
173
|
-
*
|
|
174
|
-
* @description
|
|
175
|
-
*
|
|
176
|
-
* Esconde o campo `Senha atual` para que o template seja para criação de senha.
|
|
177
|
-
*
|
|
178
|
-
* @default `false`
|
|
179
|
-
*/
|
|
180
|
-
set hideCurrentPassword(value) {
|
|
181
|
-
this._hideCurrentPassword = convertToBoolean(value);
|
|
182
|
-
}
|
|
183
|
-
get hideCurrentPassword() {
|
|
184
|
-
return this._hideCurrentPassword;
|
|
185
|
-
}
|
|
186
|
-
/**
|
|
187
|
-
* @optional
|
|
188
|
-
*
|
|
189
|
-
* @description
|
|
190
|
-
*
|
|
191
|
-
* URL para a ação do link `Esqueceu a senha`.
|
|
192
|
-
*
|
|
193
|
-
* A propriedade aceita os seguintes tipos:
|
|
194
|
-
*
|
|
195
|
-
* - **String**: informe uma url externa ou uma rota válida;
|
|
196
|
-
* - **Function**: pode-se customizar a ação. Para esta possilidade basta atribuir:
|
|
197
|
-
* ```
|
|
198
|
-
* <po-page-change-password>
|
|
199
|
-
* [recovery]="this.myFunc.bind(this)";
|
|
200
|
-
* </po-page-change-password>
|
|
201
|
-
* ```
|
|
202
|
-
*
|
|
203
|
-
* - **PoPageChangePasswordRecovery**: cria-se vínculo automático com o template **po-modal-password-recovery**.
|
|
204
|
-
* O objeto deve conter a **url** para requisição dos recursos e pode-se definir o **tipo** de modal para recuperação de senha,
|
|
205
|
-
* **email** para contato e **máscara** do campo de telefone.
|
|
206
|
-
*
|
|
207
|
-
* > Caso não tenha valor o link `Esqueceu a senha` desaparece.
|
|
208
|
-
*/
|
|
209
|
-
set recovery(value) {
|
|
210
|
-
this._recovery = value;
|
|
211
|
-
if (isTypeof(value, 'string')) {
|
|
212
|
-
this.recoveryUrlType = isExternalLink(value) ? 'externalLink' : 'internalLink';
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
get recovery() {
|
|
216
|
-
return this._recovery;
|
|
217
|
-
}
|
|
218
|
-
/**
|
|
219
|
-
* @optional
|
|
220
|
-
*
|
|
221
|
-
* @description
|
|
222
|
-
*
|
|
223
|
-
* Lista de regras para criação e alteração de senha.
|
|
224
|
-
*/
|
|
225
|
-
set requirements(value) {
|
|
226
|
-
this._requirements = value || [];
|
|
227
|
-
this.showRequirements = this._requirements.length > 0;
|
|
228
|
-
}
|
|
229
|
-
get requirements() {
|
|
230
|
-
return this._requirements;
|
|
231
|
-
}
|
|
232
|
-
/**
|
|
233
|
-
* @optional
|
|
234
|
-
*
|
|
235
|
-
* @description
|
|
236
|
-
*
|
|
237
|
-
* URL para a ação do botão `Entrar no sistema` da modal de confirmação que aparece após salvar a senha ou se chamada pelo método
|
|
238
|
-
* `openConfirmation`.
|
|
239
|
-
*
|
|
240
|
-
* @default `/`
|
|
241
|
-
*/
|
|
242
|
-
set urlHome(value) {
|
|
243
|
-
this._urlHome = value;
|
|
244
|
-
this.modalAction.action = this.navigateTo.bind(this, this.urlHome);
|
|
245
|
-
}
|
|
246
|
-
get urlHome() {
|
|
247
|
-
return this._urlHome;
|
|
248
|
-
}
|
|
249
|
-
/**
|
|
250
|
-
* @optional
|
|
251
|
-
*
|
|
252
|
-
* @description
|
|
253
|
-
*
|
|
254
|
-
* Define a propriedade nativa `autocomplete` do campo como `off`.
|
|
255
|
-
*
|
|
256
|
-
* > No input de senha(`po-password`) será definido como `new-password`.
|
|
257
|
-
*
|
|
258
|
-
* @default `true`
|
|
259
|
-
*/
|
|
260
|
-
noAutocompletePassword = true;
|
|
261
|
-
static ɵfac = function PoPageChangePasswordBaseComponent_Factory(t) { return new (t || PoPageChangePasswordBaseComponent)(); };
|
|
262
|
-
static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PoPageChangePasswordBaseComponent, inputs: { logo: [0, "p-logo", "logo"], secondaryLogo: [0, "p-secondary-logo", "secondaryLogo"], token: [0, "p-token", "token"], urlBack: [0, "p-url-back", "urlBack"], urlNewPassword: [0, "p-url-new-password", "urlNewPassword"], hideCurrentPassword: [0, "p-hide-current-password", "hideCurrentPassword"], recovery: [0, "p-recovery", "recovery"], requirements: [0, "p-requirements", "requirements"], urlHome: [0, "p-url-home", "urlHome"], noAutocompletePassword: [0, "p-no-autocomplete-password", "noAutocompletePassword"] }, outputs: { submit: "p-submit" } });
|
|
263
|
-
}
|
|
264
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoPageChangePasswordBaseComponent, [{
|
|
265
|
-
type: Directive
|
|
266
|
-
}], null, { logo: [{
|
|
267
|
-
type: Input,
|
|
268
|
-
args: ['p-logo']
|
|
269
|
-
}], secondaryLogo: [{
|
|
270
|
-
type: Input,
|
|
271
|
-
args: ['p-secondary-logo']
|
|
272
|
-
}], token: [{
|
|
273
|
-
type: Input,
|
|
274
|
-
args: ['p-token']
|
|
275
|
-
}], urlBack: [{
|
|
276
|
-
type: Input,
|
|
277
|
-
args: ['p-url-back']
|
|
278
|
-
}], urlNewPassword: [{
|
|
279
|
-
type: Input,
|
|
280
|
-
args: ['p-url-new-password']
|
|
281
|
-
}], submit: [{
|
|
282
|
-
type: Output,
|
|
283
|
-
args: ['p-submit']
|
|
284
|
-
}], hideCurrentPassword: [{
|
|
285
|
-
type: Input,
|
|
286
|
-
args: ['p-hide-current-password']
|
|
287
|
-
}], recovery: [{
|
|
288
|
-
type: Input,
|
|
289
|
-
args: ['p-recovery']
|
|
290
|
-
}], requirements: [{
|
|
291
|
-
type: Input,
|
|
292
|
-
args: ['p-requirements']
|
|
293
|
-
}], urlHome: [{
|
|
294
|
-
type: Input,
|
|
295
|
-
args: ['p-url-home']
|
|
296
|
-
}], noAutocompletePassword: [{
|
|
297
|
-
type: Input,
|
|
298
|
-
args: ['p-no-autocomplete-password']
|
|
299
|
-
}] }); })();
|
|
300
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tcGFnZS1jaGFuZ2UtcGFzc3dvcmQtYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZW1wbGF0ZXMvc3JjL2xpYi9jb21wb25lbnRzL3BvLXBhZ2UtY2hhbmdlLXBhc3N3b3JkL3BvLXBhZ2UtY2hhbmdlLXBhc3N3b3JkLWJhc2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJdkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFLOUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJCRztBQUVILE1BQU0sT0FBZ0IsaUNBQWlDO0lBQ3JEOzs7Ozs7OztPQVFHO0lBQ2MsSUFBSSxDQUFVO0lBRS9COzs7Ozs7T0FNRztJQUN3QixhQUFhLENBQVU7SUFFbEQ7Ozs7T0FJRztJQUNlLEtBQUssQ0FBVTtJQUVqQzs7Ozs7Ozs7Ozs7T0FXRztJQUNrQixPQUFPLEdBQVcsR0FBRyxDQUFDO0lBRTNDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BbUVHO0lBQzBCLGNBQWMsQ0FBVTtJQUVyRDs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQW1CRztJQUNpQixNQUFNLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7SUFFbkUsZUFBZSxDQUFTO0lBQ3hCLGVBQWUsQ0FBUztJQUN4QixXQUFXLENBQWdCO0lBQzNCLFdBQVcsQ0FBUztJQUNwQixlQUFlLENBQVM7SUFDeEIsZ0JBQWdCLENBQVU7SUFFaEIsZUFBZSxDQUFNO0lBRXZCLG9CQUFvQixHQUFZLEtBQUssQ0FBQztJQUN0QyxTQUFTLENBQW1EO0lBQzVELGFBQWEsR0FBMkMsRUFBRSxDQUFDO0lBQzNELFFBQVEsR0FBVyxHQUFHLENBQUM7SUFFL0I7Ozs7Ozs7O09BUUc7SUFDSCxJQUFzQyxtQkFBbUIsQ0FBQyxLQUFjO1FBQ3RFLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsSUFBSSxtQkFBbUI7UUFDckIsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUM7SUFDbkMsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09Bc0JHO0lBQ0gsSUFBeUIsUUFBUSxDQUFDLEtBQXVEO1FBQ3ZGLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBRXZCLElBQUksUUFBUSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxlQUFlLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQztRQUNqRixDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsSUFBNkIsWUFBWSxDQUFDLEtBQTZDO1FBQ3JGLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFDRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNILElBQXlCLE9BQU8sQ0FBQyxLQUFhO1FBQzVDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUNELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNrQyxzQkFBc0IsR0FBWSxJQUFJLENBQUM7MkZBcFB4RCxpQ0FBaUM7NkRBQWpDLGlDQUFpQzs7aUZBQWpDLGlDQUFpQztjQUR0RCxTQUFTO2dCQVdTLElBQUk7a0JBQXBCLEtBQUs7bUJBQUMsUUFBUTtZQVNZLGFBQWE7a0JBQXZDLEtBQUs7bUJBQUMsa0JBQWtCO1lBT1AsS0FBSztrQkFBdEIsS0FBSzttQkFBQyxTQUFTO1lBY0ssT0FBTztrQkFBM0IsS0FBSzttQkFBQyxZQUFZO1lBc0VVLGNBQWM7a0JBQTFDLEtBQUs7bUJBQUMsb0JBQW9CO1lBc0JQLE1BQU07a0JBQXpCLE1BQU07bUJBQUMsVUFBVTtZQXlCb0IsbUJBQW1CO2tCQUF4RCxLQUFLO21CQUFDLHlCQUF5QjtZQStCUCxRQUFRO2tCQUFoQyxLQUFLO21CQUFDLFlBQVk7WUFtQlUsWUFBWTtrQkFBeEMsS0FBSzttQkFBQyxnQkFBZ0I7WUFrQkUsT0FBTztrQkFBL0IsS0FBSzttQkFBQyxZQUFZO1lBbUJrQixzQkFBc0I7a0JBQTFELEtBQUs7bUJBQUMsNEJBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgUG9Nb2RhbEFjdGlvbiB9IGZyb20gJ0Bwby11aS9uZy1jb21wb25lbnRzJztcblxuaW1wb3J0IHsgY29udmVydFRvQm9vbGVhbiwgaXNFeHRlcm5hbExpbmssIGlzVHlwZW9mIH0gZnJvbSAnLi4vLi4vdXRpbHMvdXRpbCc7XG5cbmltcG9ydCB7IFBvUGFnZUNoYW5nZVBhc3N3b3JkUmVjb3ZlcnkgfSBmcm9tICcuL2ludGVyZmFjZXMvcG8tcGFnZS1jaGFuZ2UtcGFzc3dvcmQtcmVjb3ZlcnkuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvUGFnZUNoYW5nZVBhc3N3b3JkUmVxdWlyZW1lbnQgfSBmcm9tICcuL2ludGVyZmFjZXMvcG8tcGFnZS1jaGFuZ2UtcGFzc3dvcmQtcmVxdWlyZW1lbnQuaW50ZXJmYWNlJztcblxuLyoqXG4gKiBAZGVzY3JpcHRpb25cbiAqXG4gKiBPIGNvbXBvbmVudGUgYHBvLXBhZ2UtY2hhbmdlLXBhc3N3b3JkYCDDqSB1dGlsaXphZG8gY29tbyB0ZW1wbGF0ZSBwYXJhIHRlbGEgZGUgY2FkYXN0cm8gb3UgYWx0ZXJhw6fDo28gZGUgc2VuaGEuXG4gKlxuICogQXByZXNlbnRhIGRpY2FzIGUgcmVncmFzIHBhcmEgc2VuaGFzIG1haXMgc2VndXJhcyBlIHRhbWLDqW0gcG9zc2liaWxpZGFkZSBkZSBwZXJzb25hbGl6YXIgbyByZWRpcmVjaW9uYW1lbnRvIHBhcmEgYXMgdGVsYXNcbiAqICdlc3F1ZWNldSBhIHNlbmhhJywgJ3ZvbHRhcicgZSAnZW50cmFyIG5vIHNpc3RlbWEnLiBPcyB0ZXh0b3MgZGFzIHRlbGFzIHPDo28gcHLDqS1kZWZpbmlkb3MgZSBpbXV0w6F2ZWlzLlxuICpcbiAqIEEgcHJvcHJpZWRhZGUgYHAtdXJsLW5ldy1wYXNzd29yZGAgYXV0b21hdGl6YSBhIHJvdGluYSBkbyB0ZW1wbGF0ZSBlIHNpbXBsaWZpY2EgbyBwcm9jZXNzbyBkZSBjYWRhc3Ryby9hbHRlcmHDp8OjbyBkZSBzZW5oYSwgYmFzdGFuZG9cbiAqIGRlZmluaXIgdW1hIHVybCBwYXJhIFBPU1QgZGFzIGluZm9ybWHDp8O1ZXMgZGlnaXRhZGFzIHBlbG8gdXN1w6FyaW8uICBBIGZsZXhpYmlsaWRhZGUgZSBwcmF0aWNpZGFkZSBwb2RlbSBjaGVnYXIgYSB1bSBuw612ZWwgZW0gcXVlIG9cbiAqIGRlc2Vudm9sdmltZW50byBkYSBhcGxpY2HDp8OjbyBubyAqY2xpZW50IHNpZGUqIMOpIGRlc3Byb3ZpZGEgZGUgcXVhbHF1ZXIgY8OzZGlnby1mb250ZSByZWxhY2lvbmFkbyDDoCByb3RpbmEgZGUgY2FkYXN0cm8vYWx0ZXJhw6fDo28gZGUgc2VuaGEuXG4gKiBTZXUgZGV0YWxoYW1lbnRvIHBhcmEgdXNvIHBvZGUgc2VyIHZpc3RvIGxvZ28gYWJhaXhvIGVtICpwcm9wcmllZGFkZXMqLlxuICogQ2FzbyBqdWxndWUgbmVjZXNzw6FyaW8sIHBvZGUtc2UgdGFtYsOpbSBkZWZpbmlyIG1hbnVhbG1lbnRlIGEgcm90aW5hIGRvIGNvbXBvbmVudGUuXG4gKlxuICogUGFyYSBxdWUgYXMgaW1hZ2VucyBzZWphbSBleGliaWRhcyBjb3JyZXRhbWVudGUsIMOpIG5lY2Vzc8OhcmlvIGluY2x1aXIgbyBjYW1pbmhvIGRlbGFzIGFvIHByb2pldG8uIFBhcmEgaXNzbywgZWRpdGVcbiAqIG8gKmFzc2V0cyogbm8gYXJxdWl2byAqKmFuZ3VsYXIuanNvbioqIGRhIGFwbGljYcOnw6NvIG5hIHNlZ3VpbnRlIG9yZGVtOlxuICogYGBgXG4gKiAgIFwiYXNzZXRzXCI6IFtcbiAqICAgICBcInNyYy9hc3NldHNcIixcbiAqICAgICBcInNyYy9mYXZpY29uLmljb1wiLFxuICogICAgIHtcbiAqICAgICAgIFwiZ2xvYlwiOiBcIioqXFwvKlwiLFxuICogICAgICAgXCJpbnB1dFwiOiBcIm5vZGVfbW9kdWxlcy9AcG8tdWkvc3R5bGUvaW1hZ2VzXCIsXG4gKiAgICAgICBcIm91dHB1dFwiOiBcImFzc2V0cy9pbWFnZXNcIlxuICogICAgIH1cbiAqICAgXVxuICogYGBgXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFBvUGFnZUNoYW5nZVBhc3N3b3JkQmFzZUNvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIENhbWluaG8gcGFyYSBhIGxvZ29tYXJjYSBsb2NhbGl6YWRhIG5hIHBhcnRlIHN1cGVyaW9yLlxuICAgKlxuICAgKiA+IENhc28gc2VqYSBpbmRlZmluaWRhIG8gZXNwYcOnbyBzZSBtYW50w6ltIHByZXNlcnZhZG8gcG9yw6ltIHZhemlvLlxuICAgKi9cbiAgQElucHV0KCdwLWxvZ28nKSBsb2dvPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIENhbWluaG8gcGFyYSBhIGxvZ29tYXJjYSBsb2NhbGl6YWRhIG5vIHJvZGFww6kuXG4gICAqL1xuICBASW5wdXQoJ3Atc2Vjb25kYXJ5LWxvZ28nKSBzZWNvbmRhcnlMb2dvPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUb2tlbiBwYXJhIHNvbGljaXRhw6fDo28gZGUgdHJvY2EvcmVjdXBlcmHDp8OjbyBkZSBzZW5oYS5cbiAgICpcbiAgICogPiBFc3RhIHByb3ByaWVkYWRlIHNlcsOhIGlnbm9yYWRhIGNhc28gZXhpc3RhIHVtIHRva2VuIGNvbW8gcGFyw6JtZXRybyBuYSBVUkwgaW5pY2lhbCBkbyB0ZW1wbGF0ZS5cbiAgICovXG4gIEBJbnB1dCgncC10b2tlbicpIHRva2VuPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIFVSTCBwYXJhIGEgYcOnw6NvIGRlIHJldG9ybm8gZGEgcMOhZ2luYS5cbiAgICpcbiAgICogPiBPIGJvdMOjbyBgVm9sdGFyYCBhcGFyZWNlIGFwZW5hcyBwYXJhIHRlbGFzIGRlIGFsdGVyYcOnw6NvIGRlIHNlbmhhLCBvdSBzZWphLCBzw7MgYXBhcmVjZSBzZSBhIHByb3ByaWVkYWRlIGBwLWhpZGUtY3VycmVudC1wYXNzd29yZGAgZm9yXG4gICAqIGZhbHNhLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgL2BcbiAgICovXG4gIEBJbnB1dCgncC11cmwtYmFjaycpIHVybEJhY2s6IHN0cmluZyA9ICcvJztcblxuICAvKipcbiAgICogRW5kcG9pbnQgdXNhZG8gcGVsbyB0ZW1wbGF0ZSBwYXJhIHJlYWxpemFyIHVtIFBPU1QuIFF1YW5kbyBwcmVlbmNoaWRvLCBvIG3DqXRvZG8gYHAtc3VibWl0YCBzZXLDoSBpZ25vcmFkbyBlIG8gY29tcG9uZW50ZSBhZHF1aXJpcsOhXG4gICAqIGF1dG9tYXRpemHDp8OjbyBwYXJhIG8gcHJvY2Vzc28gZGUgY2FkYXN0cm8vdHJvY2EgZGUgc2VuaGEuXG4gICAqXG4gICAqICMjIyBQcm9jZXNzb1xuICAgKiBBbyBkaWdpdGFyIHVtIHZhbG9yIHbDoWxpZG8gbm9zIGNhbXBvcyBkZSBzZW5oYSBlIHByZXNzaW9uYXIgKipzYWx2YXIqKixcbiAgICogbyBjb21wb25lbnRlIGZhcsOhIHVtYSByZXF1aXNpw6fDo28gYFBPU1RgIG5hIHVybCBlc3BlY2lmaWNhZGEgbmVzdGEgcHJvcHJpZWRhZGUgcGFzc2FuZG8gbyBvYmpldG8gY29udGVuZG8gb3MgdmFsb3JlcyBkZWZpbmlkb3MgcGVsb1xuICAgKiB1c3XDoXJpby5cbiAgICpcbiAgICogYGBgXG4gICAqIGJvZHkge1xuICAgKiAgdG9rZW4/OiB0b2tlbixcbiAgICogIG9sZFBhc3N3b3JkPzogb2xkUGFzc3dvcmQsXG4gICAqICBuZXdQYXNzd29yZDogbmV3UGFzc3dvcmRcbiAgICogfVxuICAgKiBgYGBcbiAgICpcbiAgICogTyBjw7NkaWdvIGRlIHJlc3Bvc3RhIEhUVFAgZGUgc3RhdHVzIGVzcGVyYWRvIMOpIGAyMDRgLlxuICAgKlxuICAgKiBFbSBjYXNvIGRlICoqc3VjZXNzbyoqLCBzZXLDoSBleGliaWRhIGEgbW9kYWwgZGUgY29uZmlybWHDp8OjbyBkZSBzZW5oYSBhbHRlcmFkYS5cbiAgICpcbiAgICogPiBPIHRva2VuIHNlcsOhIGluZm9ybWFkbyBwZWxhIHByb3ByaWVkYWRlIGBwLXRva2VuYGRvIGNvbXBvbmVudGUgb3UgcG9yIHVtICpxdWVyeSBwYXJhbWV0ZXIqIG5hIFVSTCBkbyB0ZW1wbGF0ZS5cbiAgICpcbiAgICogKlByb2Nlc3NvIGZpbmFsaXphZG8uKlxuICAgKlxuICAgKiBfX19fX19fX19fX19fX19cbiAgICpcbiAgICogIyMjIyBQcmF0aWNpZGFkZVxuICAgKiBBcyBpbmZvcm1hw6fDtWVzIGRvIHNlcnZpw6dvIGRlIGF1dGVudGljYcOnw6NvIHRhbWLDqW0gcG9kZW0gc2VyIHRyYW5zbWl0aWRhcyBkaXJldGFtZW50ZSBwZWxhcyBjb25maWd1cmHDp8Ojb3MgZGUgcm90YSBlLCBkZXN0YSBtYW5laXJhLFxuICAgKiBkaXNwZW5zYS1zZSBxdWFscXVlciBtZW7Dp8OjbyBlL291IGltcG9ydGHDp8OjbyBkbyBjb21wb25lbnRlIGBwby1wYWdlLWNoYW5nZS1wYXNzd29yZGAgbm8gcmVzdGFudGUgZGEgYXBsaWNhw6fDo28uIE8gZXhlbXBsbyBhYmFpeG9cbiAgICogZXhlbXBsaWZpY2EgYSBmb3JtYSBkaW7Dom1pY2EgY29tIGEgcXVhbCBvIHRlbXBsYXRlIGRlIHRlbGEgZGUgdHJvY2EgZGUgc2VuaGEgcG9kZSBzZXIgZ2VyYWRvIGFvIG5hdmVnYXIgcGFyYSByb3RhIGAvY2hhbmdlLXBhc3N3b3JkYCwgZVxuICAgKiB0YW1iw6ltIGNvbW8gZWxlIHNlIGNvbXVuaWNhIGNvbSBvIHNlcnZpw6dvIHBhcmEgZWZldHVhw6fDo28gZG8gcHJvY2Vzc28gZGUgdHJvY2EgZGUgc2VuaGEgZG8gdXN1w6FyaW8gZSBzb2xpY2l0YcOnw6NvIGRlIG5vdmEgc2VuaGEuXG4gICAqIEJhc3RhIGRlZmluaXIgbmFzIGNvbmZpZ3VyYcOnw7VlcyBkZSByb3RhOlxuICAgKlxuICAgKlxuICAgKiBgYGBcbiAgICogICBpbXBvcnQgeyBQb01vZGFsUGFzc3dvcmRSZWNvdmVyeVR5cGUsIFBvUGFnZUNoYW5nZVBhc3N3b3JkQ29tcG9uZW50IH0gZnJvbSAnQHBvLXVpL25nLXRlbXBsYXRlcyc7XG4gICAqXG4gICAqICAgLi4uXG4gICAqICAgY29uc3Qgcm91dGVzOiBSb3V0ZXMgPSBbXG4gICAqICAgICB7XG4gICAqICAgICAgIHBhdGg6ICdjaGFuZ2UtcGFzc3dvcmQnLCBjb21wb25lbnQ6IFBvUGFnZUNoYW5nZVBhc3N3b3JkQ29tcG9uZW50LCBkYXRhOiB7XG4gICAqICAgICAgICAgc2VydmljZUFwaTogJ2h0dHBzOi8vcG8tdWkuaW8vc2FtcGxlL2FwaS9uZXctcGFzc3dvcmQnLFxuICAgKiAgICAgICAgIHJlY292ZXJ5OiB7XG4gICAqICAgICAgICAgICB1cmw6ICdodHRwczovL3BvLXVpLmlvL3NhbXBsZS9hcGkvdXNlcnMnLFxuICAgKiAgICAgICAgICAgdHlwZTogUG9Nb2RhbFBhc3N3b3JkUmVjb3ZlcnlUeXBlLkFsbCxcbiAgICogICAgICAgICAgIGNvbnRhY3RNYWlsOiAnZGV2LnBvQHBvLXVpLmNvbScsXG4gICAqICAgICAgICAgICBwaG9uZU1hc2s6ICc5LTk5OS05OTktOTk5OSdcbiAgICogICAgICAgICB9XG4gICAqICAgICAgIH1cbiAgICogICAgIH1cbiAgICogICAgIC4uLlxuICAgKiAgIF07XG4gICAqXG4gICAqICAgQE5nTW9kdWxlKHtcbiAgICogICAgIGltcG9ydHM6IFtSb3V0ZXJNb2R1bGUuZm9yUm9vdChyb3V0ZXMpXSxcbiAgICogICAgIGV4cG9ydHM6IFtSb3V0ZXJNb2R1bGVdXG4gICAqICAgfSlcbiAgICogICBleHBvcnQgY2xhc3MgQXBwUm91dGluZ01vZHVsZSB7IH1cbiAgICogYGBgXG4gICAqXG4gICAqXG4gICAqIE8gbWV0YWRhZG8gYHNlcnZpY2VBcGlgIGRldmUgc2VyIGEgKip1cmwqKiBwYXJhIHJlcXVpc2nDp8OjbyBkb3MgcmVjdXJzb3MgZGUgdHJvY2EgZGUgc2VuaGEuIEUgYHJlY292ZXJ5YCDDqSBhIGludGVyZmFjZVxuICAgKiBgUG9QYWdlQ2hhbmdlUGFzc3dvcmRSZWNvdmVyeWAgcmVzcG9uc8OhdmVsIHBlbGFzIGVzcGVjaWZpY2HDp8O1ZXMgY29udGlkYXMgbmEgbW9kYWwgZGUgcmVjdXBlcmHDp8OjbyBkZSBzZW5oYS5cbiAgICpcbiAgICogPiDDiSBlc3NlbmNpYWwgcXVlIHNpZ2EgYSBub21lbmNsYXR1cmEgZG9zIGF0cmlidXRvcyBleGVtcGxpZmljYWRvcyBhY2ltYSBwYXJhIHN1YSBlZmV0aXZhIGZ1bmNpb25hbGlkYWRlLlxuICAgKlxuICAgKi9cbiAgQElucHV0KCdwLXVybC1uZXctcGFzc3dvcmQnKSB1cmxOZXdQYXNzd29yZD86IHN0cmluZztcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBGdW7Dp8OjbyBleGVjdXRhZGEgYW8gc3VibWV0ZXIgbyBmb3JtIHBlbG8gYm90w6NvIHNhbHZhci5cbiAgICpcbiAgICogQ2FzbyBkZWZpbmlkYSBlc3NhIGZ1bsOnw6NvLCBhIG1vZGFsIGRlIGNvbmZpcm1hw6fDo28gbsOjbyBhcGFyZWNlLCBtYXMgcG9kZSBzZXIgY2hhbWFkYSBwZWxvXG4gICAqIG3DqXRvZG8gYG9wZW5Db25maXJtYXRpb25gLiBFeGVtcGxvOlxuICAgKlxuICAgKiBgYGBcbiAgICogQFZpZXdDaGlsZChQb1BhZ2VDaGFuZ2VQYXNzd29yZENvbXBvbmVudCkgY2hhbmdlUGFzc3dvcmQ6IFBvUGFnZUNoYW5nZVBhc3N3b3JkQ29tcG9uZW50O1xuICAgKlxuICAgKiBvblN1Ym1pdCgpIHtcbiAgICogIHRoaXMuY2hhbmdlUGFzc3dvcmQub3BlbkNvbmZpcm1hdGlvbigpO1xuICAgKiB9XG4gICAqXG4gICAqIGBgYFxuICAgKiA+IEVzdGEgcHJvcHJpZWRhZGUgc2Vyw6EgaWdub3JhZGEgc2UgZm9yIGRlZmluaWRvIHZhbG9yIHBhcmEgYSBwcm9wcmllZGFkZSBgcC11cmwtbmV3LXBhc3N3b3JkYC5cbiAgICovXG4gIEBPdXRwdXQoJ3Atc3VibWl0Jykgc3VibWl0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBjb25maXJtUGFzc3dvcmQ6IHN0cmluZztcbiAgY3VycmVudFBhc3N3b3JkOiBzdHJpbmc7XG4gIG1vZGFsQWN0aW9uOiBQb01vZGFsQWN0aW9uO1xuICBuZXdQYXNzd29yZDogc3RyaW5nO1xuICByZWNvdmVyeVVybFR5cGU6IHN0cmluZztcbiAgc2hvd1JlcXVpcmVtZW50czogYm9vbGVhbjtcblxuICBwcm90ZWN0ZWQgdmFsaWRhdG9yQ2hhbmdlOiBhbnk7XG5cbiAgcHJpdmF0ZSBfaGlkZUN1cnJlbnRQYXNzd29yZDogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF9yZWNvdmVyeTogc3RyaW5nIHwgUG9QYWdlQ2hhbmdlUGFzc3dvcmRSZWNvdmVyeSB8IEZ1bmN0aW9uO1xuICBwcml2YXRlIF9yZXF1aXJlbWVudHM6IEFycmF5PFBvUGFnZUNoYW5nZVBhc3N3b3JkUmVxdWlyZW1lbnQ+ID0gW107XG4gIHByaXZhdGUgX3VybEhvbWU6IHN0cmluZyA9ICcvJztcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBFc2NvbmRlIG8gY2FtcG8gYFNlbmhhIGF0dWFsYCBwYXJhIHF1ZSBvIHRlbXBsYXRlIHNlamEgcGFyYSBjcmlhw6fDo28gZGUgc2VuaGEuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIEBJbnB1dCgncC1oaWRlLWN1cnJlbnQtcGFzc3dvcmQnKSBzZXQgaGlkZUN1cnJlbnRQYXNzd29yZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2hpZGVDdXJyZW50UGFzc3dvcmQgPSBjb252ZXJ0VG9Cb29sZWFuKHZhbHVlKTtcbiAgfVxuXG4gIGdldCBoaWRlQ3VycmVudFBhc3N3b3JkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9oaWRlQ3VycmVudFBhc3N3b3JkO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogVVJMIHBhcmEgYSBhw6fDo28gZG8gbGluayBgRXNxdWVjZXUgYSBzZW5oYWAuXG4gICAqXG4gICAqIEEgcHJvcHJpZWRhZGUgYWNlaXRhIG9zIHNlZ3VpbnRlcyB0aXBvczpcbiAgICpcbiAgICogLSAqKlN0cmluZyoqOiBpbmZvcm1lIHVtYSB1cmwgZXh0ZXJuYSBvdSB1bWEgcm90YSB2w6FsaWRhO1xuICAgKiAtICoqRnVuY3Rpb24qKjogcG9kZS1zZSBjdXN0b21pemFyIGEgYcOnw6NvLiBQYXJhIGVzdGEgcG9zc2lsaWRhZGUgYmFzdGEgYXRyaWJ1aXI6XG4gICAqIGBgYFxuICAgKiA8cG8tcGFnZS1jaGFuZ2UtcGFzc3dvcmQ+XG4gICAqICAgICAgW3JlY292ZXJ5XT1cInRoaXMubXlGdW5jLmJpbmQodGhpcylcIjtcbiAgICogPC9wby1wYWdlLWNoYW5nZS1wYXNzd29yZD5cbiAgICogYGBgXG4gICAqXG4gICAqIC0gKipQb1BhZ2VDaGFuZ2VQYXNzd29yZFJlY292ZXJ5Kio6IGNyaWEtc2UgdsOtbmN1bG8gYXV0b23DoXRpY28gY29tIG8gdGVtcGxhdGUgKipwby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeSoqLlxuICAgKiAgIE8gb2JqZXRvIGRldmUgY29udGVyIGEgKip1cmwqKiBwYXJhIHJlcXVpc2nDp8OjbyBkb3MgcmVjdXJzb3MgZSBwb2RlLXNlIGRlZmluaXIgbyAqKnRpcG8qKiBkZSBtb2RhbCBwYXJhIHJlY3VwZXJhw6fDo28gZGUgc2VuaGEsXG4gICAqICAgKiplbWFpbCoqIHBhcmEgY29udGF0byBlICoqbcOhc2NhcmEqKiBkbyBjYW1wbyBkZSB0ZWxlZm9uZS5cbiAgICpcbiAgICogPiBDYXNvIG7Do28gdGVuaGEgdmFsb3IgbyBsaW5rIGBFc3F1ZWNldSBhIHNlbmhhYCBkZXNhcGFyZWNlLlxuICAgKi9cbiAgQElucHV0KCdwLXJlY292ZXJ5Jykgc2V0IHJlY292ZXJ5KHZhbHVlOiBzdHJpbmcgfCBGdW5jdGlvbiB8IFBvUGFnZUNoYW5nZVBhc3N3b3JkUmVjb3ZlcnkpIHtcbiAgICB0aGlzLl9yZWNvdmVyeSA9IHZhbHVlO1xuXG4gICAgaWYgKGlzVHlwZW9mKHZhbHVlLCAnc3RyaW5nJykpIHtcbiAgICAgIHRoaXMucmVjb3ZlcnlVcmxUeXBlID0gaXNFeHRlcm5hbExpbmsodmFsdWUpID8gJ2V4dGVybmFsTGluaycgOiAnaW50ZXJuYWxMaW5rJztcbiAgICB9XG4gIH1cblxuICBnZXQgcmVjb3ZlcnkoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3JlY292ZXJ5O1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogTGlzdGEgZGUgcmVncmFzIHBhcmEgY3JpYcOnw6NvIGUgYWx0ZXJhw6fDo28gZGUgc2VuaGEuXG4gICAqL1xuICBASW5wdXQoJ3AtcmVxdWlyZW1lbnRzJykgc2V0IHJlcXVpcmVtZW50cyh2YWx1ZTogQXJyYXk8UG9QYWdlQ2hhbmdlUGFzc3dvcmRSZXF1aXJlbWVudD4pIHtcbiAgICB0aGlzLl9yZXF1aXJlbWVudHMgPSB2YWx1ZSB8fCBbXTtcbiAgICB0aGlzLnNob3dSZXF1aXJlbWVudHMgPSB0aGlzLl9yZXF1aXJlbWVudHMubGVuZ3RoID4gMDtcbiAgfVxuICBnZXQgcmVxdWlyZW1lbnRzKCkge1xuICAgIHJldHVybiB0aGlzLl9yZXF1aXJlbWVudHM7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBVUkwgcGFyYSBhIGHDp8OjbyBkbyBib3TDo28gYEVudHJhciBubyBzaXN0ZW1hYCBkYSBtb2RhbCBkZSBjb25maXJtYcOnw6NvIHF1ZSBhcGFyZWNlIGFww7NzIHNhbHZhciBhIHNlbmhhIG91IHNlIGNoYW1hZGEgcGVsbyBtw6l0b2RvXG4gICAqIGBvcGVuQ29uZmlybWF0aW9uYC5cbiAgICpcbiAgICogQGRlZmF1bHQgYC9gXG4gICAqL1xuICBASW5wdXQoJ3AtdXJsLWhvbWUnKSBzZXQgdXJsSG9tZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fdXJsSG9tZSA9IHZhbHVlO1xuICAgIHRoaXMubW9kYWxBY3Rpb24uYWN0aW9uID0gdGhpcy5uYXZpZ2F0ZVRvLmJpbmQodGhpcywgdGhpcy51cmxIb21lKTtcbiAgfVxuICBnZXQgdXJsSG9tZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fdXJsSG9tZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIERlZmluZSBhIHByb3ByaWVkYWRlIG5hdGl2YSBgYXV0b2NvbXBsZXRlYCBkbyBjYW1wbyBjb21vIGBvZmZgLlxuICAgKlxuICAgKiA+IE5vIGlucHV0IGRlIHNlbmhhKGBwby1wYXNzd29yZGApIHNlcsOhIGRlZmluaWRvIGNvbW8gYG5ldy1wYXNzd29yZGAuXG4gICAqXG4gICAqIEBkZWZhdWx0IGB0cnVlYFxuICAgKi9cbiAgQElucHV0KCdwLW5vLWF1dG9jb21wbGV0ZS1wYXNzd29yZCcpIG5vQXV0b2NvbXBsZXRlUGFzc3dvcmQ6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIGFic3RyYWN0IG5hdmlnYXRlVG8odXJsOiBzdHJpbmcpOiB2b2lkO1xufVxuIl19
|