@po-ui/ng-templates 6.13.0 → 14.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/README.md +18 -18
- package/esm2020/lib/components/components.module.mjs +84 -86
- package/esm2020/lib/components/index.mjs +12 -12
- package/esm2020/lib/components/po-modal-password-recovery/enums/po-modal-password-recovery-modal-content.enum.mjs +17 -17
- package/esm2020/lib/components/po-modal-password-recovery/enums/po-modal-password-recovery-type.enum.mjs +17 -17
- package/esm2020/lib/components/po-modal-password-recovery/index.mjs +8 -8
- package/esm2020/lib/components/po-modal-password-recovery/interfaces/po-modal-password-recovery.interface.mjs +2 -2
- package/esm2020/lib/components/po-modal-password-recovery/literals/i18n/po-modal-password-recovery-literals.mjs +119 -119
- package/esm2020/lib/components/po-modal-password-recovery/po-modal-password-recovery-base.component.mjs +172 -172
- package/esm2020/lib/components/po-modal-password-recovery/po-modal-password-recovery-error-message/po-modal-password-recovery-error-message.component.mjs +30 -30
- package/esm2020/lib/components/po-modal-password-recovery/po-modal-password-recovery.component.mjs +433 -433
- package/esm2020/lib/components/po-modal-password-recovery/po-modal-password-recovery.module.mjs +29 -29
- package/esm2020/lib/components/po-modal-password-recovery/po-modal-password-recovery.service.mjs +17 -17
- package/esm2020/lib/components/po-page-background/index.mjs +3 -3
- package/esm2020/lib/components/po-page-background/po-page-background.component.mjs +179 -179
- package/esm2020/lib/components/po-page-background/po-page-background.module.mjs +27 -27
- package/esm2020/lib/components/po-page-blocked-user/enums/po-page-blocked-user-reason.enum.mjs +17 -17
- package/esm2020/lib/components/po-page-blocked-user/index.mjs +8 -8
- package/esm2020/lib/components/po-page-blocked-user/interfaces/po-page-blocked-user-reason-params.interface.mjs +2 -2
- package/esm2020/lib/components/po-page-blocked-user/literals/i18n/po-page-blocked-user-literals.mjs +78 -78
- package/esm2020/lib/components/po-page-blocked-user/po-page-blocked-user-base.component.mjs +170 -170
- package/esm2020/lib/components/po-page-blocked-user/po-page-blocked-user-contacts/po-page-blocked-user-contacts.component.mjs +97 -97
- package/esm2020/lib/components/po-page-blocked-user/po-page-blocked-user-reason/po-page-blocked-user-reason.component.mjs +100 -100
- package/esm2020/lib/components/po-page-blocked-user/po-page-blocked-user.component.mjs +104 -104
- package/esm2020/lib/components/po-page-blocked-user/po-page-blocked-user.module.mjs +29 -29
- package/esm2020/lib/components/po-page-change-password/index.mjs +7 -7
- package/esm2020/lib/components/po-page-change-password/interfaces/po-page-change-password-recovery.interface.mjs +2 -2
- package/esm2020/lib/components/po-page-change-password/interfaces/po-page-change-password-requirement.interface.mjs +2 -2
- package/esm2020/lib/components/po-page-change-password/interfaces/po-page-change-password.interface.mjs +2 -2
- package/esm2020/lib/components/po-page-change-password/literals/i18n/po-page-change-password-literals.mjs +79 -79
- package/esm2020/lib/components/po-page-change-password/po-page-change-password-base.component.mjs +186 -186
- package/esm2020/lib/components/po-page-change-password/po-page-change-password.component.mjs +388 -388
- package/esm2020/lib/components/po-page-change-password/po-page-change-password.module.mjs +30 -30
- package/esm2020/lib/components/po-page-change-password/po-page-change-password.service.mjs +17 -17
- package/esm2020/lib/components/po-page-dynamic-detail/index.mjs +10 -10
- package/esm2020/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-actions.interface.mjs +2 -2
- package/esm2020/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-before-back.interface.mjs +2 -2
- package/esm2020/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-before-edit.interface.mjs +2 -2
- package/esm2020/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-before-remove.interface.mjs +2 -2
- package/esm2020/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-field.interface.mjs +2 -2
- package/esm2020/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-metadata.interface.mjs +2 -2
- package/esm2020/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-options.interface.mjs +2 -2
- package/esm2020/lib/components/po-page-dynamic-detail/po-page-dynamic-detail-actions.service.mjs +43 -43
- package/esm2020/lib/components/po-page-dynamic-detail/po-page-dynamic-detail.component.mjs +461 -461
- package/esm2020/lib/components/po-page-dynamic-detail/po-page-dynamic-detail.module.mjs +51 -53
- package/esm2020/lib/components/po-page-dynamic-edit/index.mjs +10 -10
- package/esm2020/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-actions.interface.mjs +2 -2
- package/esm2020/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-before-cancel.interface.mjs +2 -2
- package/esm2020/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-before-save-new.interface.mjs +2 -2
- package/esm2020/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-before-save.interface.mjs +2 -2
- package/esm2020/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-field.interface.mjs +2 -2
- package/esm2020/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-metadata.interface.mjs +2 -2
- package/esm2020/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-options.interface.mjs +2 -2
- package/esm2020/lib/components/po-page-dynamic-edit/po-page-dynamic-edit-actions.service.mjs +43 -43
- package/esm2020/lib/components/po-page-dynamic-edit/po-page-dynamic-edit.component.mjs +569 -569
- package/esm2020/lib/components/po-page-dynamic-edit/po-page-dynamic-edit.module.mjs +57 -59
- package/esm2020/lib/components/po-page-dynamic-search/index.mjs +7 -7
- package/esm2020/lib/components/po-page-dynamic-search/po-advanced-filter/po-advanced-filter-base.component.mjs +134 -134
- package/esm2020/lib/components/po-page-dynamic-search/po-advanced-filter/po-advanced-filter-literals.interface.mjs +2 -2
- package/esm2020/lib/components/po-page-dynamic-search/po-advanced-filter/po-advanced-filter.component.mjs +74 -74
- package/esm2020/lib/components/po-page-dynamic-search/po-page-dynamic-search-base.component.mjs +260 -260
- package/esm2020/lib/components/po-page-dynamic-search/po-page-dynamic-search-filters.interface.mjs +2 -2
- package/esm2020/lib/components/po-page-dynamic-search/po-page-dynamic-search-literals.interface.mjs +2 -2
- package/esm2020/lib/components/po-page-dynamic-search/po-page-dynamic-search-options.interface.mjs +2 -2
- package/esm2020/lib/components/po-page-dynamic-search/po-page-dynamic-search.component.mjs +266 -266
- package/esm2020/lib/components/po-page-dynamic-search/po-page-dynamic-search.interface.mjs +2 -2
- package/esm2020/lib/components/po-page-dynamic-search/po-page-dynamic-search.module.mjs +52 -54
- package/esm2020/lib/components/po-page-dynamic-table/index.mjs +16 -16
- package/esm2020/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-actions.interface.mjs +2 -2
- package/esm2020/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-before-detail.interface.mjs +2 -2
- package/esm2020/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-before-duplicate.interface.mjs +2 -2
- package/esm2020/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-before-edit.interface.mjs +2 -2
- package/esm2020/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-before-new.interface.mjs +2 -2
- package/esm2020/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-before-remove-all.interface.mjs +2 -2
- package/esm2020/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-before-remove.interface.mjs +2 -2
- package/esm2020/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-custom-action.interface.mjs +2 -2
- package/esm2020/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-custom-table-action.interface.mjs +2 -2
- package/esm2020/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-field.interface.mjs +2 -2
- package/esm2020/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-filters.interface.mjs +2 -2
- package/esm2020/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-metadata.interface.mjs +2 -2
- package/esm2020/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-options.interface.mjs +2 -2
- package/esm2020/lib/components/po-page-dynamic-table/po-page-dynamic-list-base.component.mjs +146 -104
- package/esm2020/lib/components/po-page-dynamic-table/po-page-dynamic-table-actions.service.mjs +58 -58
- package/esm2020/lib/components/po-page-dynamic-table/po-page-dynamic-table-literals.mjs +63 -63
- package/esm2020/lib/components/po-page-dynamic-table/po-page-dynamic-table.component.mjs +938 -929
- package/esm2020/lib/components/po-page-dynamic-table/po-page-dynamic-table.module.mjs +50 -52
- package/esm2020/lib/components/po-page-job-scheduler/index.mjs +4 -4
- package/esm2020/lib/components/po-page-job-scheduler/interfaces/po-job-scheduler-internal.interface.mjs +2 -2
- package/esm2020/lib/components/po-page-job-scheduler/interfaces/po-job-scheduler.interface.mjs +2 -2
- package/esm2020/lib/components/po-page-job-scheduler/po-page-job-scheduler-base.component.mjs +80 -80
- package/esm2020/lib/components/po-page-job-scheduler/po-page-job-scheduler-execution/po-page-job-scheduler-execution.component.mjs +368 -368
- package/esm2020/lib/components/po-page-job-scheduler/po-page-job-scheduler-internal.mjs +15 -15
- package/esm2020/lib/components/po-page-job-scheduler/po-page-job-scheduler-literals.mjs +195 -195
- package/esm2020/lib/components/po-page-job-scheduler/po-page-job-scheduler-lookup.service.mjs +21 -21
- package/esm2020/lib/components/po-page-job-scheduler/po-page-job-scheduler-parameters/po-page-job-scheduler-parameters.component.mjs +80 -80
- package/esm2020/lib/components/po-page-job-scheduler/po-page-job-scheduler-summary/po-page-job-scheduler-summary.component.mjs +194 -194
- package/esm2020/lib/components/po-page-job-scheduler/po-page-job-scheduler.component.mjs +260 -266
- package/esm2020/lib/components/po-page-job-scheduler/po-page-job-scheduler.module.mjs +70 -72
- package/esm2020/lib/components/po-page-job-scheduler/po-page-job-scheduler.service.mjs +206 -206
- package/esm2020/lib/components/po-page-login/enums/po-page-login-authentication-type.enum.mjs +15 -15
- package/esm2020/lib/components/po-page-login/index.mjs +8 -8
- package/esm2020/lib/components/po-page-login/interfaces/po-page-login-custom-field.interface.mjs +2 -2
- package/esm2020/lib/components/po-page-login/interfaces/po-page-login-literals.interface.mjs +2 -2
- package/esm2020/lib/components/po-page-login/interfaces/po-page-login-recovery.interface.mjs +2 -2
- package/esm2020/lib/components/po-page-login/interfaces/po-page-login.interface.mjs +2 -2
- package/esm2020/lib/components/po-page-login/po-page-login-base.component.mjs +954 -954
- package/esm2020/lib/components/po-page-login/po-page-login-popover/po-page-login-popover.component.mjs +135 -135
- package/esm2020/lib/components/po-page-login/po-page-login.component.mjs +467 -467
- package/esm2020/lib/components/po-page-login/po-page-login.module.mjs +31 -31
- package/esm2020/lib/components/po-page-login/po-page-login.service.mjs +31 -31
- package/esm2020/lib/index.mjs +4 -4
- package/esm2020/lib/po-templates.module.mjs +18 -18
- package/esm2020/lib/services/index.mjs +4 -4
- package/esm2020/lib/services/po-page-customization/index.mjs +4 -4
- package/esm2020/lib/services/po-page-customization/po-page-customization.module.mjs +24 -24
- package/esm2020/lib/services/po-page-customization/po-page-customization.service.mjs +85 -85
- package/esm2020/lib/services/po-page-customization/po-page-dynamic-options.interface.mjs +2 -2
- package/esm2020/lib/services/po-page-dynamic/index.mjs +3 -3
- package/esm2020/lib/services/po-page-dynamic/po-page-dynamic-literals.interface.mjs +2 -2
- package/esm2020/lib/services/po-page-dynamic/po-page-dynamic.module.mjs +24 -24
- package/esm2020/lib/services/po-page-dynamic/po-page-dynamic.service.mjs +102 -102
- package/esm2020/lib/services/services.module.mjs +18 -18
- package/esm2020/lib/utils/util.mjs +379 -379
- package/esm2020/po-ui-ng-templates.mjs +4 -4
- package/esm2020/public-api.mjs +2 -2
- package/fesm2015/po-ui-ng-templates.mjs +9328 -9295
- package/fesm2015/po-ui-ng-templates.mjs.map +1 -1
- package/fesm2020/po-ui-ng-templates.mjs +8962 -8929
- package/fesm2020/po-ui-ng-templates.mjs.map +1 -1
- package/{po-ui-ng-templates.d.ts → index.d.ts} +5 -5
- package/lib/components/components.module.d.ts +16 -16
- package/lib/components/index.d.ts +11 -11
- package/lib/components/po-modal-password-recovery/enums/po-modal-password-recovery-modal-content.enum.d.ts +15 -15
- package/lib/components/po-modal-password-recovery/enums/po-modal-password-recovery-type.enum.d.ts +15 -15
- package/lib/components/po-modal-password-recovery/index.d.ts +7 -7
- package/lib/components/po-modal-password-recovery/interfaces/po-modal-password-recovery.interface.d.ts +25 -25
- package/lib/components/po-modal-password-recovery/literals/i18n/po-modal-password-recovery-literals.d.ts +6 -6
- package/lib/components/po-modal-password-recovery/po-modal-password-recovery-base.component.d.ts +283 -283
- package/lib/components/po-modal-password-recovery/po-modal-password-recovery-error-message/po-modal-password-recovery-error-message.component.d.ts +14 -14
- package/lib/components/po-modal-password-recovery/po-modal-password-recovery.component.d.ts +90 -90
- package/lib/components/po-modal-password-recovery/po-modal-password-recovery.module.d.ts +16 -16
- package/lib/components/po-modal-password-recovery/po-modal-password-recovery.service.d.ts +13 -13
- package/lib/components/po-page-background/index.d.ts +2 -2
- package/lib/components/po-page-background/po-page-background.component.d.ts +54 -54
- package/lib/components/po-page-background/po-page-background.module.d.ts +16 -16
- package/lib/components/po-page-blocked-user/enums/po-page-blocked-user-reason.enum.d.ts +15 -15
- package/lib/components/po-page-blocked-user/index.d.ts +7 -7
- package/lib/components/po-page-blocked-user/interfaces/po-page-blocked-user-reason-params.interface.d.ts +15 -15
- package/lib/components/po-page-blocked-user/literals/i18n/po-page-blocked-user-literals.d.ts +72 -72
- package/lib/components/po-page-blocked-user/po-page-blocked-user-base.component.d.ts +146 -146
- package/lib/components/po-page-blocked-user/po-page-blocked-user-contacts/po-page-blocked-user-contacts.component.d.ts +19 -19
- package/lib/components/po-page-blocked-user/po-page-blocked-user-reason/po-page-blocked-user-reason.component.d.ts +26 -26
- package/lib/components/po-page-blocked-user/po-page-blocked-user.component.d.ts +43 -43
- package/lib/components/po-page-blocked-user/po-page-blocked-user.module.d.ts +18 -18
- package/lib/components/po-page-change-password/index.d.ts +6 -6
- package/lib/components/po-page-change-password/interfaces/po-page-change-password-recovery.interface.d.ts +30 -30
- package/lib/components/po-page-change-password/interfaces/po-page-change-password-requirement.interface.d.ts +17 -17
- package/lib/components/po-page-change-password/interfaces/po-page-change-password.interface.d.ts +13 -13
- package/lib/components/po-page-change-password/literals/i18n/po-page-change-password-literals.d.ts +6 -6
- package/lib/components/po-page-change-password/po-page-change-password-base.component.d.ts +233 -233
- package/lib/components/po-page-change-password/po-page-change-password.component.d.ts +93 -93
- package/lib/components/po-page-change-password/po-page-change-password.module.d.ts +17 -17
- package/lib/components/po-page-change-password/po-page-change-password.service.d.ts +10 -10
- package/lib/components/po-page-dynamic-detail/index.d.ts +9 -9
- package/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-actions.interface.d.ts +95 -95
- package/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-before-back.interface.d.ts +18 -18
- package/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-before-edit.interface.d.ts +18 -18
- package/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-before-remove.interface.d.ts +18 -18
- package/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-field.interface.d.ts +16 -16
- package/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-metadata.interface.d.ts +31 -31
- package/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-options.interface.d.ts +36 -36
- package/lib/components/po-page-dynamic-detail/po-page-dynamic-detail-actions.service.d.ts +18 -18
- package/lib/components/po-page-dynamic-detail/po-page-dynamic-detail.component.d.ts +257 -257
- package/lib/components/po-page-dynamic-detail/po-page-dynamic-detail.module.d.ts +17 -17
- package/lib/components/po-page-dynamic-edit/index.d.ts +9 -9
- package/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-actions.interface.d.ts +123 -123
- package/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-before-cancel.interface.d.ts +18 -18
- package/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-before-save-new.interface.d.ts +44 -44
- package/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-before-save.interface.d.ts +43 -43
- package/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-field.interface.d.ts +12 -12
- package/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-metadata.interface.d.ts +25 -25
- package/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-options.interface.d.ts +28 -28
- package/lib/components/po-page-dynamic-edit/po-page-dynamic-edit-actions.service.d.ts +18 -18
- package/lib/components/po-page-dynamic-edit/po-page-dynamic-edit.component.d.ts +329 -329
- package/lib/components/po-page-dynamic-edit/po-page-dynamic-edit.module.d.ts +17 -17
- package/lib/components/po-page-dynamic-search/index.d.ts +6 -6
- package/lib/components/po-page-dynamic-search/po-advanced-filter/po-advanced-filter-base.component.d.ts +48 -48
- package/lib/components/po-page-dynamic-search/po-advanced-filter/po-advanced-filter-literals.interface.d.ts +15 -15
- package/lib/components/po-page-dynamic-search/po-advanced-filter/po-advanced-filter.component.d.ts +29 -29
- package/lib/components/po-page-dynamic-search/po-page-dynamic-search-base.component.d.ts +184 -184
- package/lib/components/po-page-dynamic-search/po-page-dynamic-search-filters.interface.d.ts +14 -14
- package/lib/components/po-page-dynamic-search/po-page-dynamic-search-literals.interface.d.ts +21 -21
- package/lib/components/po-page-dynamic-search/po-page-dynamic-search-options.interface.d.ts +59 -59
- package/lib/components/po-page-dynamic-search/po-page-dynamic-search.component.d.ts +62 -62
- package/lib/components/po-page-dynamic-search/po-page-dynamic-search.interface.d.ts +29 -29
- package/lib/components/po-page-dynamic-search/po-page-dynamic-search.module.d.ts +18 -18
- package/lib/components/po-page-dynamic-table/index.d.ts +15 -15
- package/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-actions.interface.d.ts +196 -196
- package/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-before-detail.interface.d.ts +21 -21
- package/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-before-duplicate.interface.d.ts +29 -29
- package/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-before-edit.interface.d.ts +22 -22
- package/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-before-new.interface.d.ts +18 -18
- package/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-before-remove-all.interface.d.ts +39 -39
- package/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-before-remove.interface.d.ts +18 -18
- package/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-custom-action.interface.d.ts +97 -97
- package/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-custom-table-action.interface.d.ts +106 -106
- package/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-field.interface.d.ts +49 -49
- package/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-filters.interface.d.ts +18 -18
- package/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-metadata.interface.d.ts +31 -31
- package/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-options.interface.d.ts +91 -91
- package/lib/components/po-page-dynamic-table/po-page-dynamic-list-base.component.d.ts +164 -130
- package/lib/components/po-page-dynamic-table/po-page-dynamic-table-actions.service.d.ts +26 -26
- package/lib/components/po-page-dynamic-table/po-page-dynamic-table-literals.d.ts +62 -62
- package/lib/components/po-page-dynamic-table/po-page-dynamic-table.component.d.ts +386 -383
- package/lib/components/po-page-dynamic-table/po-page-dynamic-table.module.d.ts +19 -19
- package/lib/components/po-page-job-scheduler/index.d.ts +3 -3
- package/lib/components/po-page-job-scheduler/interfaces/po-job-scheduler-internal.interface.d.ts +14 -14
- package/lib/components/po-page-job-scheduler/interfaces/po-job-scheduler.interface.d.ts +48 -48
- package/lib/components/po-page-job-scheduler/po-page-job-scheduler-base.component.d.ts +176 -176
- package/lib/components/po-page-job-scheduler/po-page-job-scheduler-execution/po-page-job-scheduler-execution.component.d.ts +52 -52
- package/lib/components/po-page-job-scheduler/po-page-job-scheduler-internal.d.ts +9 -9
- package/lib/components/po-page-job-scheduler/po-page-job-scheduler-literals.d.ts +194 -194
- package/lib/components/po-page-job-scheduler/po-page-job-scheduler-lookup.service.d.ts +16 -16
- package/lib/components/po-page-job-scheduler/po-page-job-scheduler-parameters/po-page-job-scheduler-parameters.component.d.ts +14 -14
- package/lib/components/po-page-job-scheduler/po-page-job-scheduler-summary/po-page-job-scheduler-summary.component.d.ts +36 -36
- package/lib/components/po-page-job-scheduler/po-page-job-scheduler.component.d.ts +116 -116
- package/lib/components/po-page-job-scheduler/po-page-job-scheduler.module.d.ts +13 -13
- package/lib/components/po-page-job-scheduler/po-page-job-scheduler.service.d.ts +32 -32
- package/lib/components/po-page-login/enums/po-page-login-authentication-type.enum.d.ts +13 -13
- package/lib/components/po-page-login/index.d.ts +7 -7
- package/lib/components/po-page-login/interfaces/po-page-login-custom-field.interface.d.ts +72 -72
- package/lib/components/po-page-login/interfaces/po-page-login-literals.interface.d.ts +59 -59
- package/lib/components/po-page-login/interfaces/po-page-login-recovery.interface.d.ts +30 -30
- package/lib/components/po-page-login/interfaces/po-page-login.interface.d.ts +15 -15
- package/lib/components/po-page-login/po-page-login-base.component.d.ts +663 -663
- package/lib/components/po-page-login/po-page-login-popover/po-page-login-popover.component.d.ts +19 -19
- package/lib/components/po-page-login/po-page-login.component.d.ts +72 -72
- package/lib/components/po-page-login/po-page-login.module.d.ts +18 -18
- package/lib/components/po-page-login/po-page-login.service.d.ts +12 -12
- package/lib/index.d.ts +3 -3
- package/lib/po-templates.module.d.ts +8 -8
- package/lib/services/index.d.ts +3 -3
- package/lib/services/po-page-customization/index.d.ts +3 -3
- package/lib/services/po-page-customization/po-page-customization.module.d.ts +13 -13
- package/lib/services/po-page-customization/po-page-customization.service.d.ts +19 -19
- package/lib/services/po-page-customization/po-page-dynamic-options.interface.d.ts +8 -8
- package/lib/services/po-page-dynamic/index.d.ts +2 -2
- package/lib/services/po-page-dynamic/po-page-dynamic-literals.interface.d.ts +4 -4
- package/lib/services/po-page-dynamic/po-page-dynamic.module.d.ts +13 -13
- package/lib/services/po-page-dynamic/po-page-dynamic.service.d.ts +31 -31
- package/lib/services/services.module.d.ts +8 -8
- package/lib/utils/util.d.ts +170 -170
- package/package.json +15 -15
- package/po-ui-ng-templates-14.0.0-next.0.tgz +0 -0
- package/public-api.d.ts +1 -1
- package/schematics/README.md +14 -14
- package/schematics/collection.json +50 -50
- package/schematics/ng-add/index.d.ts +8 -8
- package/schematics/ng-add/index.js +60 -60
- package/schematics/ng-add/index.spec.d.ts +1 -1
- package/schematics/ng-add/index.spec.js +90 -90
- package/schematics/ng-add/index.spec.js.map +1 -1
- package/schematics/ng-add/schema.json +16 -7
- package/schematics/ng-generate/po-page-blocked-user/files/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +14 -14
- package/schematics/ng-generate/po-page-blocked-user/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +32 -32
- package/schematics/ng-generate/po-page-blocked-user/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +14 -14
- package/schematics/ng-generate/po-page-blocked-user/files/__path__/__name@dasherize__/__name@dasherize__.module.ts.template +19 -19
- package/schematics/ng-generate/po-page-blocked-user/index.d.ts +4 -4
- package/schematics/ng-generate/po-page-blocked-user/index.js +12 -12
- package/schematics/ng-generate/po-page-blocked-user/index.spec.d.ts +1 -1
- package/schematics/ng-generate/po-page-blocked-user/index.spec.js +120 -120
- package/schematics/ng-generate/po-page-blocked-user/index.spec.js.map +1 -1
- package/schematics/ng-generate/po-page-blocked-user/schema.d.ts +3 -3
- package/schematics/ng-generate/po-page-blocked-user/schema.js +2 -2
- package/schematics/ng-generate/po-page-blocked-user/schema.json +67 -67
- package/schematics/ng-generate/po-page-change-password/files/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +14 -14
- package/schematics/ng-generate/po-page-change-password/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +32 -32
- package/schematics/ng-generate/po-page-change-password/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +14 -14
- package/schematics/ng-generate/po-page-change-password/files/__path__/__name@dasherize__/__name@dasherize__.module.ts.template +19 -19
- package/schematics/ng-generate/po-page-change-password/index.d.ts +4 -4
- package/schematics/ng-generate/po-page-change-password/index.js +12 -12
- package/schematics/ng-generate/po-page-change-password/index.spec.d.ts +1 -1
- package/schematics/ng-generate/po-page-change-password/index.spec.js +120 -120
- package/schematics/ng-generate/po-page-change-password/index.spec.js.map +1 -1
- package/schematics/ng-generate/po-page-change-password/schema.d.ts +3 -3
- package/schematics/ng-generate/po-page-change-password/schema.js +2 -2
- package/schematics/ng-generate/po-page-change-password/schema.json +67 -67
- package/schematics/ng-generate/po-page-dynamic-detail/files/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +14 -14
- package/schematics/ng-generate/po-page-dynamic-detail/files/__path__/__name@dasherize__/__name@dasherize__.component.html.template +5 -5
- package/schematics/ng-generate/po-page-dynamic-detail/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +32 -32
- package/schematics/ng-generate/po-page-dynamic-detail/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +23 -23
- package/schematics/ng-generate/po-page-dynamic-detail/files/__path__/__name@dasherize__/__name@dasherize__.module.ts.template +19 -19
- package/schematics/ng-generate/po-page-dynamic-detail/index.d.ts +4 -4
- package/schematics/ng-generate/po-page-dynamic-detail/index.js +12 -12
- package/schematics/ng-generate/po-page-dynamic-detail/index.spec.d.ts +1 -1
- package/schematics/ng-generate/po-page-dynamic-detail/index.spec.js +120 -120
- package/schematics/ng-generate/po-page-dynamic-detail/index.spec.js.map +1 -1
- package/schematics/ng-generate/po-page-dynamic-detail/schema.d.ts +3 -3
- package/schematics/ng-generate/po-page-dynamic-detail/schema.js +2 -2
- package/schematics/ng-generate/po-page-dynamic-detail/schema.json +67 -67
- package/schematics/ng-generate/po-page-dynamic-edit/files/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +14 -14
- package/schematics/ng-generate/po-page-dynamic-edit/files/__path__/__name@dasherize__/__name@dasherize__.component.html.template +5 -5
- package/schematics/ng-generate/po-page-dynamic-edit/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +32 -32
- package/schematics/ng-generate/po-page-dynamic-edit/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +23 -23
- package/schematics/ng-generate/po-page-dynamic-edit/files/__path__/__name@dasherize__/__name@dasherize__.module.ts.template +19 -19
- package/schematics/ng-generate/po-page-dynamic-edit/index.d.ts +4 -4
- package/schematics/ng-generate/po-page-dynamic-edit/index.js +12 -12
- package/schematics/ng-generate/po-page-dynamic-edit/index.spec.d.ts +1 -1
- package/schematics/ng-generate/po-page-dynamic-edit/index.spec.js +120 -120
- package/schematics/ng-generate/po-page-dynamic-edit/index.spec.js.map +1 -1
- package/schematics/ng-generate/po-page-dynamic-edit/schema.d.ts +3 -3
- package/schematics/ng-generate/po-page-dynamic-edit/schema.js +2 -2
- package/schematics/ng-generate/po-page-dynamic-edit/schema.json +67 -67
- package/schematics/ng-generate/po-page-dynamic-search/files/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +14 -14
- package/schematics/ng-generate/po-page-dynamic-search/files/__path__/__name@dasherize__/__name@dasherize__.component.html.template +5 -5
- package/schematics/ng-generate/po-page-dynamic-search/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +32 -32
- package/schematics/ng-generate/po-page-dynamic-search/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +28 -28
- package/schematics/ng-generate/po-page-dynamic-search/files/__path__/__name@dasherize__/__name@dasherize__.module.ts.template +19 -19
- package/schematics/ng-generate/po-page-dynamic-search/index.d.ts +4 -4
- package/schematics/ng-generate/po-page-dynamic-search/index.js +12 -12
- package/schematics/ng-generate/po-page-dynamic-search/index.spec.d.ts +1 -1
- package/schematics/ng-generate/po-page-dynamic-search/index.spec.js +120 -120
- package/schematics/ng-generate/po-page-dynamic-search/index.spec.js.map +1 -1
- package/schematics/ng-generate/po-page-dynamic-search/schema.d.ts +3 -3
- package/schematics/ng-generate/po-page-dynamic-search/schema.js +2 -2
- package/schematics/ng-generate/po-page-dynamic-search/schema.json +67 -67
- package/schematics/ng-generate/po-page-dynamic-table/files/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +14 -14
- package/schematics/ng-generate/po-page-dynamic-table/files/__path__/__name@dasherize__/__name@dasherize__.component.html.template +5 -5
- package/schematics/ng-generate/po-page-dynamic-table/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +32 -32
- package/schematics/ng-generate/po-page-dynamic-table/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +21 -21
- package/schematics/ng-generate/po-page-dynamic-table/files/__path__/__name@dasherize__/__name@dasherize__.module.ts.template +19 -19
- package/schematics/ng-generate/po-page-dynamic-table/index.d.ts +4 -4
- package/schematics/ng-generate/po-page-dynamic-table/index.js +12 -12
- package/schematics/ng-generate/po-page-dynamic-table/index.spec.d.ts +1 -1
- package/schematics/ng-generate/po-page-dynamic-table/index.spec.js +120 -120
- package/schematics/ng-generate/po-page-dynamic-table/index.spec.js.map +1 -1
- package/schematics/ng-generate/po-page-dynamic-table/schema.d.ts +3 -3
- package/schematics/ng-generate/po-page-dynamic-table/schema.js +2 -2
- package/schematics/ng-generate/po-page-dynamic-table/schema.json +67 -67
- package/schematics/ng-generate/po-page-job-scheduler/files/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +14 -14
- package/schematics/ng-generate/po-page-job-scheduler/files/__path__/__name@dasherize__/__name@dasherize__.component.html.template +3 -3
- package/schematics/ng-generate/po-page-job-scheduler/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +32 -32
- package/schematics/ng-generate/po-page-job-scheduler/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +17 -17
- package/schematics/ng-generate/po-page-job-scheduler/files/__path__/__name@dasherize__/__name@dasherize__.module.ts.template +19 -19
- package/schematics/ng-generate/po-page-job-scheduler/index.d.ts +4 -4
- package/schematics/ng-generate/po-page-job-scheduler/index.js +12 -12
- package/schematics/ng-generate/po-page-job-scheduler/index.spec.d.ts +1 -1
- package/schematics/ng-generate/po-page-job-scheduler/index.spec.js +120 -120
- package/schematics/ng-generate/po-page-job-scheduler/index.spec.js.map +1 -1
- package/schematics/ng-generate/po-page-job-scheduler/schema.d.ts +3 -3
- package/schematics/ng-generate/po-page-job-scheduler/schema.js +2 -2
- package/schematics/ng-generate/po-page-job-scheduler/schema.json +67 -67
- package/schematics/ng-generate/po-page-login/files/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +14 -14
- package/schematics/ng-generate/po-page-login/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +32 -32
- package/schematics/ng-generate/po-page-login/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +14 -14
- package/schematics/ng-generate/po-page-login/files/__path__/__name@dasherize__/__name@dasherize__.module.ts.template +19 -19
- package/schematics/ng-generate/po-page-login/index.d.ts +4 -4
- package/schematics/ng-generate/po-page-login/index.js +12 -12
- package/schematics/ng-generate/po-page-login/index.spec.d.ts +1 -1
- package/schematics/ng-generate/po-page-login/index.spec.js +120 -120
- package/schematics/ng-generate/po-page-login/index.spec.js.map +1 -1
- package/schematics/ng-generate/po-page-login/schema.d.ts +3 -3
- package/schematics/ng-generate/po-page-login/schema.js +2 -2
- package/schematics/ng-generate/po-page-login/schema.json +67 -67
- package/po-ui-ng-templates-6.13.0.tgz +0 -0
|
@@ -1,266 +1,260 @@
|
|
|
1
|
-
import { Component, ViewChild, ViewEncapsulation } from '@angular/core';
|
|
2
|
-
import { PoStepperStatus, poLocaleDefault } from '@po-ui/ng-components';
|
|
3
|
-
import { PoPageJobSchedulerInternal } from './po-page-job-scheduler-internal';
|
|
4
|
-
import { PoPageJobSchedulerBaseComponent } from './po-page-job-scheduler-base.component';
|
|
5
|
-
import { poPageJobSchedulerLiteralsDefault } from './po-page-job-scheduler-literals';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "./po-page-job-scheduler-lookup.service";
|
|
8
|
-
import * as i2 from "@angular/router";
|
|
9
|
-
import * as i3 from "@po-ui/ng-components";
|
|
10
|
-
import * as i4 from "./po-page-job-scheduler.service";
|
|
11
|
-
import * as i5 from "@angular/
|
|
12
|
-
import * as i6 from "
|
|
13
|
-
import * as i7 from "
|
|
14
|
-
import * as i8 from "./po-page-job-scheduler-parameters/po-page-job-scheduler-parameters.component";
|
|
15
|
-
import * as i9 from "./po-page-job-scheduler-summary/po-page-job-scheduler-summary.component";
|
|
16
|
-
const _c0 = ["schedulerExecution"];
|
|
17
|
-
const _c1 = ["schedulerParameters"];
|
|
18
|
-
const _c2 = function () { return []; };
|
|
19
|
-
function PoPageJobSchedulerComponent_po_page_job_scheduler_parameters_9_Template(rf, ctx) { if (rf & 1) {
|
|
20
|
-
const _r6 = i0.ɵɵgetCurrentView();
|
|
21
|
-
i0.ɵɵelementStart(0, "po-page-job-scheduler-parameters", 9, 10);
|
|
22
|
-
i0.ɵɵlistener("p-valueChange", function PoPageJobSchedulerComponent_po_page_job_scheduler_parameters_9_Template_po_page_job_scheduler_parameters_p_valueChange_0_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r5 = i0.ɵɵnextContext(); return ctx_r5.model.executionParameter = $event; });
|
|
23
|
-
i0.ɵɵelementEnd();
|
|
24
|
-
} if (rf & 2) {
|
|
25
|
-
const ctx_r2 = i0.ɵɵnextContext();
|
|
26
|
-
i0.ɵɵproperty("p-literals", ctx_r2.literals)("p-parameters", ctx_r2.parameters || i0.ɵɵpureFunction0(3, _c2))("p-value", ctx_r2.model.executionParameter);
|
|
27
|
-
} }
|
|
28
|
-
function PoPageJobSchedulerComponent_po_page_job_scheduler_summary_10_Template(rf, ctx) { if (rf & 1) {
|
|
29
|
-
i0.ɵɵelement(0, "po-page-job-scheduler-summary", 11);
|
|
30
|
-
} if (rf & 2) {
|
|
31
|
-
const ctx_r3 = i0.ɵɵnextContext();
|
|
32
|
-
i0.ɵɵproperty("p-no-parameters", ctx_r3.parametersEmpty)("p-literals", ctx_r3.literals)("p-parameters", ctx_r3.parameters)("p-value", ctx_r3.publicValues);
|
|
33
|
-
} }
|
|
34
|
-
/**
|
|
35
|
-
* @docsExtends PoPageJobSchedulerBaseComponent
|
|
36
|
-
*
|
|
37
|
-
* @example
|
|
38
|
-
*
|
|
39
|
-
* <example name="po-page-job-scheduler-background-process" title="PO Page Job Scheduler - Background Process">
|
|
40
|
-
* <file name="sample-po-page-job-scheduler-background-process/sample-po-page-job-scheduler-background-process.component.html"> </file>
|
|
41
|
-
* <file name="sample-po-page-job-scheduler-background-process/sample-po-page-job-scheduler-background-process.component.ts"> </file>
|
|
42
|
-
* </example>
|
|
43
|
-
*
|
|
44
|
-
*/
|
|
45
|
-
export class PoPageJobSchedulerComponent extends PoPageJobSchedulerBaseComponent {
|
|
46
|
-
constructor(poPageDynamicLookupService, activatedRoute, poDialogService, poNotification, poPageJobSchedulerService, languageService) {
|
|
47
|
-
super(poPageJobSchedulerService);
|
|
48
|
-
this.poPageDynamicLookupService = poPageDynamicLookupService;
|
|
49
|
-
this.activatedRoute = activatedRoute;
|
|
50
|
-
this.poDialogService = poDialogService;
|
|
51
|
-
this.poNotification = poNotification;
|
|
52
|
-
this.poPageJobSchedulerService = poPageJobSchedulerService;
|
|
53
|
-
this.isEdit = false;
|
|
54
|
-
this.literals = {
|
|
55
|
-
...poPageJobSchedulerLiteralsDefault[poLocaleDefault]
|
|
56
|
-
};
|
|
57
|
-
this.step = 1;
|
|
58
|
-
this.parametersEmpty = true;
|
|
59
|
-
this.steps = [];
|
|
60
|
-
this.backPageAction = {
|
|
61
|
-
label: this.literals.back,
|
|
62
|
-
action: this.nextStepOperation.bind(this, 'back'),
|
|
63
|
-
disabled: this.isDisabledBack.bind(this)
|
|
64
|
-
};
|
|
65
|
-
this.concludePageAction = {
|
|
66
|
-
label: this.literals.conclude,
|
|
67
|
-
action: this.confirmJobScheduler.bind(this)
|
|
68
|
-
};
|
|
69
|
-
this.nextPageAction = {
|
|
70
|
-
label: this.literals.next,
|
|
71
|
-
action: this.nextStepOperation.bind(this, 'next'),
|
|
72
|
-
disabled: this.isDisabledAdvance.bind(this)
|
|
73
|
-
};
|
|
74
|
-
this.concludePageActions = [this.concludePageAction, this.backPageAction];
|
|
75
|
-
this.nextPageActions = [this.nextPageAction, this.backPageAction];
|
|
76
|
-
// eslint-disable-next-line @typescript-eslint/member-ordering
|
|
77
|
-
this.jobSchedulerActions = [...this.nextPageActions];
|
|
78
|
-
const language = languageService.getShortLanguage();
|
|
79
|
-
this.literals = {
|
|
80
|
-
...this.literals,
|
|
81
|
-
...poPageJobSchedulerLiteralsDefault[language]
|
|
82
|
-
};
|
|
83
|
-
this.backPageAction.label = this.literals.back;
|
|
84
|
-
this.concludePageAction.label = this.literals.conclude;
|
|
85
|
-
this.nextPageAction.label = this.literals.next;
|
|
86
|
-
this.steps = [
|
|
87
|
-
{ label: this.literals.scheduling },
|
|
88
|
-
{ label: this.literals.parameterization },
|
|
89
|
-
{ label: this.literals.conclude }
|
|
90
|
-
];
|
|
91
|
-
}
|
|
92
|
-
get stepperOrientation() {
|
|
93
|
-
return window.innerWidth > 481 && window.innerWidth < 960 ? 'horizontal' : 'vertical';
|
|
94
|
-
}
|
|
95
|
-
ngOnInit() {
|
|
96
|
-
const paramId = this.activatedRoute.snapshot.params['id'];
|
|
97
|
-
this.isEdit = !!paramId;
|
|
98
|
-
this.poPageJobSchedulerService.configServiceApi({ endpoint: this.serviceApi });
|
|
99
|
-
if (this.parameters.length) {
|
|
100
|
-
this.parametersEmpty = false;
|
|
101
|
-
}
|
|
102
|
-
this.loadData(paramId);
|
|
103
|
-
}
|
|
104
|
-
changePageActionsBySteps(currentStep, nextStep) {
|
|
105
|
-
const stepsLength = this.steps.length;
|
|
106
|
-
if (nextStep === stepsLength) {
|
|
107
|
-
this.jobSchedulerActions = [...this.concludePageActions];
|
|
108
|
-
}
|
|
109
|
-
else if (currentStep === stepsLength && nextStep < currentStep) {
|
|
110
|
-
this.jobSchedulerActions = [...this.nextPageActions];
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
nextStep(stepNumber) {
|
|
114
|
-
if (stepNumber > 1 && this.schedulerExecution.form.invalid) {
|
|
115
|
-
this.markAsDirtyInvalidControls(this.schedulerExecution.form.controls);
|
|
116
|
-
return;
|
|
117
|
-
}
|
|
118
|
-
if (stepNumber > 2 &&
|
|
119
|
-
this.schedulerParameters &&
|
|
120
|
-
this.schedulerParameters.form &&
|
|
121
|
-
this.schedulerParameters.form.invalid) {
|
|
122
|
-
this.markAsDirtyInvalidControls(this.schedulerParameters.form.controls);
|
|
123
|
-
return;
|
|
124
|
-
}
|
|
125
|
-
this.setModelRecurrent();
|
|
126
|
-
const model = JSON.parse(JSON.stringify(this.model));
|
|
127
|
-
if (stepNumber === this.steps.length) {
|
|
128
|
-
this.publicValues = this.hidesSecretValues(model);
|
|
129
|
-
}
|
|
130
|
-
this.changePageActionsBySteps(this.step, stepNumber);
|
|
131
|
-
const steps = this.steps[this.step - 1];
|
|
132
|
-
this.step = stepNumber;
|
|
133
|
-
if (steps) {
|
|
134
|
-
steps.status = PoStepperStatus.Done;
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
onChangeProcess(process) {
|
|
138
|
-
if (process.existAPI && process.processId && this.parametersEmpty) {
|
|
139
|
-
this.getParametersByProcess(process.processId);
|
|
140
|
-
if (!this.isEdit) {
|
|
141
|
-
this.model.executionParameter = {};
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
confirmJobScheduler() {
|
|
146
|
-
const paramId = this.activatedRoute.snapshot.params['id'];
|
|
147
|
-
const confirmMessage = paramId ? this.literals.confirmUpdateMessage : this.literals.confirmSaveMessage;
|
|
148
|
-
this.poDialogService.confirm({
|
|
149
|
-
title: this.literals.confirmation,
|
|
150
|
-
message: confirmMessage,
|
|
151
|
-
confirm: () => {
|
|
152
|
-
const model = { ...this.model };
|
|
153
|
-
this.save(model, paramId);
|
|
154
|
-
}
|
|
155
|
-
});
|
|
156
|
-
}
|
|
157
|
-
async emitSuccessMessage(msgSuccess, saveOperation) {
|
|
158
|
-
await saveOperation.toPromise();
|
|
159
|
-
this.poNotification.success(msgSuccess);
|
|
160
|
-
this.resetJobSchedulerForm();
|
|
161
|
-
}
|
|
162
|
-
getParametersByProcess(process) {
|
|
163
|
-
this.poPageJobSchedulerService.getParametersByProcess(process).subscribe(parameters => {
|
|
164
|
-
this.parameters = parameters;
|
|
165
|
-
});
|
|
166
|
-
}
|
|
167
|
-
hidesSecretValues(model) {
|
|
168
|
-
const hiddenSecretValue = '**********';
|
|
169
|
-
this.parameters.forEach(parameter => {
|
|
170
|
-
if (this.isSecretParameter(model, parameter)) {
|
|
171
|
-
model.executionParameter[parameter.property] = hiddenSecretValue;
|
|
172
|
-
}
|
|
173
|
-
});
|
|
174
|
-
return model;
|
|
175
|
-
}
|
|
176
|
-
isDisabledAdvance() {
|
|
177
|
-
const componentByStep = {
|
|
178
|
-
1: this.schedulerExecution,
|
|
179
|
-
2: this.schedulerParameters
|
|
180
|
-
};
|
|
181
|
-
return componentByStep[this.step]?.form?.invalid || false;
|
|
182
|
-
}
|
|
183
|
-
isDisabledBack() {
|
|
184
|
-
return this.step === 1;
|
|
185
|
-
}
|
|
186
|
-
isSecretParameter(model, parameter) {
|
|
187
|
-
return (model.executionParameter &&
|
|
188
|
-
parameter.hasOwnProperty('secret') &&
|
|
189
|
-
parameter['secret'] === true &&
|
|
190
|
-
model.executionParameter.hasOwnProperty(parameter.property));
|
|
191
|
-
}
|
|
192
|
-
nextStepOperation(operation) {
|
|
193
|
-
const stepNumber = operation === 'back' ? this.step - 1 : this.step + 1;
|
|
194
|
-
this.nextStep(stepNumber);
|
|
195
|
-
}
|
|
196
|
-
resetJobSchedulerForm() {
|
|
197
|
-
this.schedulerExecution.form.reset();
|
|
198
|
-
// radiogroup não estava atribuindo novo valor, fica vermelho sem o timetout.
|
|
199
|
-
setTimeout(() => {
|
|
200
|
-
this.model = new PoPageJobSchedulerInternal();
|
|
201
|
-
this.step = 1;
|
|
202
|
-
this.steps.forEach(step => {
|
|
203
|
-
step.status = PoStepperStatus.Default;
|
|
204
|
-
});
|
|
205
|
-
this.jobSchedulerActions = [...this.nextPageActions];
|
|
206
|
-
});
|
|
207
|
-
}
|
|
208
|
-
save(model, paramId) {
|
|
209
|
-
const saveOperation = paramId
|
|
210
|
-
? this.poPageJobSchedulerService.updateResource(paramId, model)
|
|
211
|
-
: this.poPageJobSchedulerService.createResource(model);
|
|
212
|
-
const msgSuccess = paramId
|
|
213
|
-
? this.literals.saveNotificationSuccessUpdate
|
|
214
|
-
: this.literals.saveNotificationSuccessSave;
|
|
215
|
-
this.emitSuccessMessage(msgSuccess, saveOperation);
|
|
216
|
-
}
|
|
217
|
-
setModelRecurrent() {
|
|
218
|
-
this.model.recurrent = this.model.periodicity === 'single' ? false : this.model.recurrent;
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
PoPageJobSchedulerComponent.ɵfac = function PoPageJobSchedulerComponent_Factory(t) { return new (t || PoPageJobSchedulerComponent)(i0.ɵɵdirectiveInject(i1.PoPageJobSchedulerLookupService), i0.ɵɵdirectiveInject(i2.ActivatedRoute), i0.ɵɵdirectiveInject(i3.PoDialogService), i0.ɵɵdirectiveInject(i3.PoNotificationService), i0.ɵɵdirectiveInject(i4.PoPageJobSchedulerService), i0.ɵɵdirectiveInject(i3.PoLanguageService)); };
|
|
222
|
-
PoPageJobSchedulerComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PoPageJobSchedulerComponent, selectors: [["po-page-job-scheduler"]], viewQuery: function PoPageJobSchedulerComponent_Query(rf, ctx) { if (rf & 1) {
|
|
223
|
-
i0.ɵɵviewQuery(_c0, 7);
|
|
224
|
-
i0.ɵɵviewQuery(_c1, 5);
|
|
225
|
-
} if (rf & 2) {
|
|
226
|
-
let _t;
|
|
227
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.schedulerExecution = _t.first);
|
|
228
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.schedulerParameters = _t.first);
|
|
229
|
-
} }, features: [i0.ɵɵInheritDefinitionFeature], decls: 11, vars: 13, consts: [[3, "p-actions", "p-breadcrumb", "p-title"], [1, "po-row"], ["p-sequential", "true", 1, "po-lg-3", "po-xl-2", 3, "p-orientation", "p-step", "p-steps", "p-change-step"], [1, "po-lg-8", "po-xl-6"], ["formScheduler", "ngForm"], [1, "po-md-12", 3, "p-no-parameters", "hidden", "p-is-edit", "p-literals", "p-value", "p-change-process"], ["schedulerExecution", ""], ["class", "po-md-12", 3, "p-literals", "p-parameters", "p-value", "p-valueChange", 4, "ngIf"], ["class", "po-md-12", 3, "p-no-parameters", "p-literals", "p-parameters", "p-value", 4, "ngIf"], [1, "po-md-12", 3, "p-literals", "p-parameters", "p-value", "p-valueChange"], ["schedulerParameters", ""], [1, "po-md-12", 3, "p-no-parameters", "p-literals", "p-parameters", "p-value"]], template: function PoPageJobSchedulerComponent_Template(rf, ctx) { if (rf & 1) {
|
|
230
|
-
i0.ɵɵelementStart(0, "po-page-default", 0)(1, "div", 1)(2, "po-stepper", 2);
|
|
231
|
-
i0.ɵɵlistener("p-change-step", function PoPageJobSchedulerComponent_Template_po_stepper_p_change_step_2_listener($event) { return ctx.nextStep($event); });
|
|
232
|
-
i0.ɵɵelementEnd();
|
|
233
|
-
i0.ɵɵelementStart(3, "po-container", 3)(4, "form", null, 4)(6, "div", 1)(7, "po-page-job-scheduler-execution", 5, 6);
|
|
234
|
-
i0.ɵɵlistener("p-change-process", function PoPageJobSchedulerComponent_Template_po_page_job_scheduler_execution_p_change_process_7_listener($event) { return ctx.onChangeProcess($event); });
|
|
235
|
-
i0.ɵɵelementEnd();
|
|
236
|
-
i0.ɵɵtemplate(9, PoPageJobSchedulerComponent_po_page_job_scheduler_parameters_9_Template, 2, 4, "po-page-job-scheduler-parameters", 7);
|
|
237
|
-
i0.ɵɵtemplate(10, PoPageJobSchedulerComponent_po_page_job_scheduler_summary_10_Template, 1, 4, "po-page-job-scheduler-summary", 8);
|
|
238
|
-
i0.ɵɵelementEnd()()()()();
|
|
239
|
-
} if (rf & 2) {
|
|
240
|
-
i0.ɵɵproperty("p-actions", ctx.jobSchedulerActions)("p-breadcrumb", ctx.breadcrumb)("p-title", ctx.title);
|
|
241
|
-
i0.ɵɵadvance(2);
|
|
242
|
-
i0.ɵɵproperty("p-orientation", ctx.stepperOrientation)("p-step", ctx.step)("p-steps", ctx.steps);
|
|
243
|
-
i0.ɵɵadvance(5);
|
|
244
|
-
i0.ɵɵproperty("p-no-parameters", ctx.parametersEmpty)("hidden", ctx.step !== 1)("p-is-edit", ctx.isEdit)("p-literals", ctx.literals)("p-value", ctx.model);
|
|
245
|
-
i0.ɵɵadvance(2);
|
|
246
|
-
i0.ɵɵproperty("ngIf", ctx.step === 2);
|
|
247
|
-
i0.ɵɵadvance(1);
|
|
248
|
-
i0.ɵɵproperty("ngIf", ctx.step === 3);
|
|
249
|
-
} },
|
|
250
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoPageJobSchedulerComponent, [{
|
|
251
|
-
type: Component,
|
|
252
|
-
args: [{ selector: 'po-page-job-scheduler', encapsulation: ViewEncapsulation.None, styles: [
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
type: ViewChild,
|
|
261
|
-
args: ['schedulerExecution', { static: true }]
|
|
262
|
-
}], schedulerParameters: [{
|
|
263
|
-
type: ViewChild,
|
|
264
|
-
args: ['schedulerParameters']
|
|
265
|
-
}] }); })();
|
|
266
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tcGFnZS1qb2Itc2NoZWR1bGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RlbXBsYXRlcy9zcmMvbGliL2NvbXBvbmVudHMvcG8tcGFnZS1qb2Itc2NoZWR1bGVyL3BvLXBhZ2Utam9iLXNjaGVkdWxlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZW1wbGF0ZXMvc3JjL2xpYi9jb21wb25lbnRzL3BvLXBhZ2Utam9iLXNjaGVkdWxlci9wby1wYWdlLWpvYi1zY2hlZHVsZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLaEYsT0FBTyxFQU9MLGVBQWUsRUFDZixlQUFlLEVBQ2hCLE1BQU0sc0JBQXNCLENBQUM7QUFHOUIsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDOUUsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDekYsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7SUNPM0UsK0RBT0M7SUFEQyxpU0FBc0M7SUFFeEMsaUJBQW1DOzs7SUFKakMsNENBQXVCLGlFQUFBLDRDQUFBOzs7SUFNekIsb0RBUWdDOzs7SUFQOUIsd0RBQW1DLCtCQUFBLG1DQUFBLGdDQUFBOztBRGQvQzs7Ozs7Ozs7OztHQVVHO0FBYUgsTUFBTSxPQUFPLDJCQUE0QixTQUFRLCtCQUErQjtJQXdDOUUsWUFDUywwQkFBMkQsRUFDMUQsY0FBOEIsRUFDOUIsZUFBZ0MsRUFDaEMsY0FBcUMsRUFDbkMseUJBQW9ELEVBQzlELGVBQWtDO1FBRWxDLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBUDFCLCtCQUEwQixH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QixJQUFDO1FBRXBDLGlCQUFhO1FBRWIsdUNBQXNDLG9CQUFBLGFBQUEsNENBQUE7UUFXOUIsNkpBQW9CLDJCQUF1QixJQUFDO1FBRTlDLGlCQUFrQztRQUVsQyxzSUFRbUM7UUFFbkMsa0lBUWdDO1FBQ2xDLGlCQUFNLEVBQUEsRUFBQSxFQUFBLEVBQUE7O1FBOUNHLG1EQUFpQyxnQ0FBQSxzQkFBQTtRQUs1QyxlQUFvQztRQUFwQyxzREFBb0Msb0JBQUEsc0JBQUE7UUFXOUIsZUFBbUM7UUFBbkMscURBQW1DLDBCQUFBLHlCQUFBLDRCQUFBLHNCQUFBO1FBWWxDLGVBQWdCO1FBQWhCLHFDQUFnQjtRQVdoQixlQUFnQjtRQUFoQixxQ0FBZ0I7O3VGRFFoQiwyQkFBMkI7Y0FadkMsU0FBUzsyQkFDRSx1QkFBdUIsaUJBRWxCLGlCQUFpQixDQUFDLElBQUksVUFDN0I7b0JBQ047Ozs7S0FJQztpQkFDRjt5UEFHa0Qsa0JBQWtCO2tCQUFwRSxTQUFTO21CQUFDLG9CQUFvQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtZQUNmLG1CQUFtQjtrQkFBcEQsU0FBUzttQkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtcbiAgUG9EaWFsb2dTZXJ2aWNlLFxuICBQb0R5bmFtaWNGb3JtRmllbGQsXG4gIFBvTGFuZ3VhZ2VTZXJ2aWNlLFxuICBQb05vdGlmaWNhdGlvblNlcnZpY2UsXG4gIFBvUGFnZUFjdGlvbixcbiAgUG9TdGVwcGVySXRlbSxcbiAgUG9TdGVwcGVyU3RhdHVzLFxuICBwb0xvY2FsZURlZmF1bHRcbn0gZnJvbSAnQHBvLXVpL25nLWNvbXBvbmVudHMnO1xuXG5pbXBvcnQgeyBQb0pvYlNjaGVkdWxlckludGVybmFsIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3BvLWpvYi1zY2hlZHVsZXItaW50ZXJuYWwuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvUGFnZUpvYlNjaGVkdWxlckludGVybmFsIH0gZnJvbSAnLi9wby1wYWdlLWpvYi1zY2hlZHVsZXItaW50ZXJuYWwnO1xuaW1wb3J0IHsgUG9QYWdlSm9iU2NoZWR1bGVyQmFzZUNvbXBvbmVudCB9IGZyb20gJy4vcG8tcGFnZS1qb2Itc2NoZWR1bGVyLWJhc2UuY29tcG9uZW50JztcbmltcG9ydCB7IHBvUGFnZUpvYlNjaGVkdWxlckxpdGVyYWxzRGVmYXVsdCB9IGZyb20gJy4vcG8tcGFnZS1qb2Itc2NoZWR1bGVyLWxpdGVyYWxzJztcbmltcG9ydCB7IFBvUGFnZUpvYlNjaGVkdWxlckxvb2t1cFNlcnZpY2UgfSBmcm9tICcuL3BvLXBhZ2Utam9iLXNjaGVkdWxlci1sb29rdXAuc2VydmljZSc7XG5pbXBvcnQgeyBQb1BhZ2VKb2JTY2hlZHVsZXJTZXJ2aWNlIH0gZnJvbSAnLi9wby1wYWdlLWpvYi1zY2hlZHVsZXIuc2VydmljZSc7XG5cbi8qKlxuICogQGRvY3NFeHRlbmRzIFBvUGFnZUpvYlNjaGVkdWxlckJhc2VDb21wb25lbnRcbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1wYWdlLWpvYi1zY2hlZHVsZXItYmFja2dyb3VuZC1wcm9jZXNzXCIgdGl0bGU9XCJQTyBQYWdlIEpvYiBTY2hlZHVsZXIgLSBCYWNrZ3JvdW5kIFByb2Nlc3NcIj5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXBhZ2Utam9iLXNjaGVkdWxlci1iYWNrZ3JvdW5kLXByb2Nlc3Mvc2FtcGxlLXBvLXBhZ2Utam9iLXNjaGVkdWxlci1iYWNrZ3JvdW5kLXByb2Nlc3MuY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tcGFnZS1qb2Itc2NoZWR1bGVyLWJhY2tncm91bmQtcHJvY2Vzcy9zYW1wbGUtcG8tcGFnZS1qb2Itc2NoZWR1bGVyLWJhY2tncm91bmQtcHJvY2Vzcy5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncG8tcGFnZS1qb2Itc2NoZWR1bGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BvLXBhZ2Utam9iLXNjaGVkdWxlci5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIHBvLWNvbnRhaW5lciAucG8tY29udGFpbmVyIHtcbiAgICAgICAgb3ZlcmZsb3cteTogdW5zZXQ7XG4gICAgICB9XG4gICAgYFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFBvUGFnZUpvYlNjaGVkdWxlckNvbXBvbmVudCBleHRlbmRzIFBvUGFnZUpvYlNjaGVkdWxlckJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBAVmlld0NoaWxkKCdzY2hlZHVsZXJFeGVjdXRpb24nLCB7IHN0YXRpYzogdHJ1ZSB9KSBzY2hlZHVsZXJFeGVjdXRpb246IHsgZm9ybTogTmdGb3JtIH07XG4gIEBWaWV3Q2hpbGQoJ3NjaGVkdWxlclBhcmFtZXRlcnMnKSBzY2hlZHVsZXJQYXJhbWV0ZXJzOiB7IGZvcm06IE5nRm9ybSB9O1xuXG4gIGlzRWRpdCA9IGZhbHNlO1xuICBsaXRlcmFscyA9IHtcbiAgICAuLi5wb1BhZ2VKb2JTY2hlZHVsZXJMaXRlcmFsc0RlZmF1bHRbcG9Mb2NhbGVEZWZhdWx0XVxuICB9O1xuXG4gIHB1YmxpY1ZhbHVlczogUG9Kb2JTY2hlZHVsZXJJbnRlcm5hbDtcbiAgc2F2ZU9wZXJhdGlvbjogT2JzZXJ2YWJsZTxhbnk+O1xuICBzdGVwOiBudW1iZXIgPSAxO1xuICBwYXJhbWV0ZXJzRW1wdHk6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIHJlYWRvbmx5IHN0ZXBzOiBBcnJheTxQb1N0ZXBwZXJJdGVtPiA9IFtdO1xuXG4gIHByaXZhdGUgYmFja1BhZ2VBY3Rpb246IFBvUGFnZUFjdGlvbiA9IHtcbiAgICBsYWJlbDogdGhpcy5saXRlcmFscy5iYWNrLFxuICAgIGFjdGlvbjogdGhpcy5uZXh0U3RlcE9wZXJhdGlvbi5iaW5kKHRoaXMsICdiYWNrJyksXG4gICAgZGlzYWJsZWQ6IHRoaXMuaXNEaXNhYmxlZEJhY2suYmluZCh0aGlzKVxuICB9O1xuXG4gIHByaXZhdGUgY29uY2x1ZGVQYWdlQWN0aW9uOiBQb1BhZ2VBY3Rpb24gPSB7XG4gICAgbGFiZWw6IHRoaXMubGl0ZXJhbHMuY29uY2x1ZGUsXG4gICAgYWN0aW9uOiB0aGlzLmNvbmZpcm1Kb2JTY2hlZHVsZXIuYmluZCh0aGlzKVxuICB9O1xuXG4gIHByaXZhdGUgbmV4dFBhZ2VBY3Rpb246IFBvUGFnZUFjdGlvbiA9IHtcbiAgICBsYWJlbDogdGhpcy5saXRlcmFscy5uZXh0LFxuICAgIGFjdGlvbjogdGhpcy5uZXh0U3RlcE9wZXJhdGlvbi5iaW5kKHRoaXMsICduZXh0JyksXG4gICAgZGlzYWJsZWQ6IHRoaXMuaXNEaXNhYmxlZEFkdmFuY2UuYmluZCh0aGlzKVxuICB9O1xuXG4gIHByaXZhdGUgY29uY2x1ZGVQYWdlQWN0aW9uczogQXJyYXk8UG9QYWdlQWN0aW9uPiA9IFt0aGlzLmNvbmNsdWRlUGFnZUFjdGlvbiwgdGhpcy5iYWNrUGFnZUFjdGlvbl07XG5cbiAgcHJpdmF0ZSBuZXh0UGFnZUFjdGlvbnM6IEFycmF5PFBvUGFnZUFjdGlvbj4gPSBbdGhpcy5uZXh0UGFnZUFjdGlvbiwgdGhpcy5iYWNrUGFnZUFjdGlvbl07XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9tZW1iZXItb3JkZXJpbmdcbiAgam9iU2NoZWR1bGVyQWN0aW9uczogQXJyYXk8UG9QYWdlQWN0aW9uPiA9IFsuLi50aGlzLm5leHRQYWdlQWN0aW9uc107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHBvUGFnZUR5bmFtaWNMb29rdXBTZXJ2aWNlOiBQb1BhZ2VKb2JTY2hlZHVsZXJMb29rdXBTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgcG9EaWFsb2dTZXJ2aWNlOiBQb0RpYWxvZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBwb05vdGlmaWNhdGlvbjogUG9Ob3RpZmljYXRpb25TZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBwb1BhZ2VKb2JTY2hlZHVsZXJTZXJ2aWNlOiBQb1BhZ2VKb2JTY2hlZHVsZXJTZXJ2aWNlLFxuICAgIGxhbmd1YWdlU2VydmljZTogUG9MYW5ndWFnZVNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIocG9QYWdlSm9iU2NoZWR1bGVyU2VydmljZSk7XG5cbiAgICBjb25zdCBsYW5ndWFnZSA9IGxhbmd1YWdlU2VydmljZS5nZXRTaG9ydExhbmd1YWdlKCk7XG5cbiAgICB0aGlzLmxpdGVyYWxzID0ge1xuICAgICAgLi4udGhpcy5saXRlcmFscyxcbiAgICAgIC4uLnBvUGFnZUpvYlNjaGVkdWxlckxpdGVyYWxzRGVmYXVsdFtsYW5ndWFnZV1cbiAgICB9O1xuXG4gICAgdGhpcy5iYWNrUGFnZUFjdGlvbi5sYWJlbCA9IHRoaXMubGl0ZXJhbHMuYmFjaztcbiAgICB0aGlzLmNvbmNsdWRlUGFnZUFjdGlvbi5sYWJlbCA9IHRoaXMubGl0ZXJhbHMuY29uY2x1ZGU7XG4gICAgdGhpcy5uZXh0UGFnZUFjdGlvbi5sYWJlbCA9IHRoaXMubGl0ZXJhbHMubmV4dDtcblxuICAgIHRoaXMuc3RlcHMgPSBbXG4gICAgICB7IGxhYmVsOiB0aGlzLmxpdGVyYWxzLnNjaGVkdWxpbmcgfSxcbiAgICAgIHsgbGFiZWw6IHRoaXMubGl0ZXJhbHMucGFyYW1ldGVyaXphdGlvbiB9LFxuICAgICAgeyBsYWJlbDogdGhpcy5saXRlcmFscy5jb25jbHVkZSB9XG4gICAgXTtcbiAgfVxuXG4gIGdldCBzdGVwcGVyT3JpZW50YXRpb24oKTogJ2hvcml6b250YWwnIHwgJ3ZlcnRpY2FsJyB7XG4gICAgcmV0dXJuIHdpbmRvdy5pbm5lcldpZHRoID4gNDgxICYmIHdpbmRvdy5pbm5lcldpZHRoIDwgOTYwID8gJ2hvcml6b250YWwnIDogJ3ZlcnRpY2FsJztcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGNvbnN0IHBhcmFtSWQgPSB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnBhcmFtc1snaWQnXTtcblxuICAgIHRoaXMuaXNFZGl0ID0gISFwYXJhbUlkO1xuXG4gICAgdGhpcy5wb1BhZ2VKb2JTY2hlZHVsZXJTZXJ2aWNlLmNvbmZpZ1NlcnZpY2VBcGkoeyBlbmRwb2ludDogdGhpcy5zZXJ2aWNlQXBpIH0pO1xuXG4gICAgaWYgKHRoaXMucGFyYW1ldGVycy5sZW5ndGgpIHtcbiAgICAgIHRoaXMucGFyYW1ldGVyc0VtcHR5ID0gZmFsc2U7XG4gICAgfVxuXG4gICAgdGhpcy5sb2FkRGF0YShwYXJhbUlkKTtcbiAgfVxuXG4gIGNoYW5nZVBhZ2VBY3Rpb25zQnlTdGVwcyhjdXJyZW50U3RlcDogbnVtYmVyLCBuZXh0U3RlcDogbnVtYmVyKSB7XG4gICAgY29uc3Qgc3RlcHNMZW5ndGggPSB0aGlzLnN0ZXBzLmxlbmd0aDtcblxuICAgIGlmIChuZXh0U3RlcCA9PT0gc3RlcHNMZW5ndGgpIHtcbiAgICAgIHRoaXMuam9iU2NoZWR1bGVyQWN0aW9ucyA9IFsuLi50aGlzLmNvbmNsdWRlUGFnZUFjdGlvbnNdO1xuICAgIH0gZWxzZSBpZiAoY3VycmVudFN0ZXAgPT09IHN0ZXBzTGVuZ3RoICYmIG5leHRTdGVwIDwgY3VycmVudFN0ZXApIHtcbiAgICAgIHRoaXMuam9iU2NoZWR1bGVyQWN0aW9ucyA9IFsuLi50aGlzLm5leHRQYWdlQWN0aW9uc107XG4gICAgfVxuICB9XG5cbiAgbmV4dFN0ZXAoc3RlcE51bWJlcjogbnVtYmVyKSB7XG4gICAgaWYgKHN0ZXBOdW1iZXIgPiAxICYmIHRoaXMuc2NoZWR1bGVyRXhlY3V0aW9uLmZvcm0uaW52YWxpZCkge1xuICAgICAgdGhpcy5tYXJrQXNEaXJ0eUludmFsaWRDb250cm9scyh0aGlzLnNjaGVkdWxlckV4ZWN1dGlvbi5mb3JtLmNvbnRyb2xzKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBzdGVwTnVtYmVyID4gMiAmJlxuICAgICAgdGhpcy5zY2hlZHVsZXJQYXJhbWV0ZXJzICYmXG4gICAgICB0aGlzLnNjaGVkdWxlclBhcmFtZXRlcnMuZm9ybSAmJlxuICAgICAgdGhpcy5zY2hlZHVsZXJQYXJhbWV0ZXJzLmZvcm0uaW52YWxpZFxuICAgICkge1xuICAgICAgdGhpcy5tYXJrQXNEaXJ0eUludmFsaWRDb250cm9scyh0aGlzLnNjaGVkdWxlclBhcmFtZXRlcnMuZm9ybS5jb250cm9scyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuc2V0TW9kZWxSZWN1cnJlbnQoKTtcblxuICAgIGNvbnN0IG1vZGVsID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLm1vZGVsKSk7XG5cbiAgICBpZiAoc3RlcE51bWJlciA9PT0gdGhpcy5zdGVwcy5sZW5ndGgpIHtcbiAgICAgIHRoaXMucHVibGljVmFsdWVzID0gdGhpcy5oaWRlc1NlY3JldFZhbHVlcyhtb2RlbCk7XG4gICAgfVxuXG4gICAgdGhpcy5jaGFuZ2VQYWdlQWN0aW9uc0J5U3RlcHModGhpcy5zdGVwLCBzdGVwTnVtYmVyKTtcblxuICAgIGNvbnN0IHN0ZXBzID0gdGhpcy5zdGVwc1t0aGlzLnN0ZXAgLSAxXTtcbiAgICB0aGlzLnN0ZXAgPSBzdGVwTnVtYmVyO1xuXG4gICAgaWYgKHN0ZXBzKSB7XG4gICAgICBzdGVwcy5zdGF0dXMgPSBQb1N0ZXBwZXJTdGF0dXMuRG9uZTtcbiAgICB9XG4gIH1cblxuICBvbkNoYW5nZVByb2Nlc3MocHJvY2VzczogeyBwcm9jZXNzSWQ6IHN0cmluZzsgZXhpc3RBUEk6IGJvb2xlYW4gfSkge1xuICAgIGlmIChwcm9jZXNzLmV4aXN0QVBJICYmIHByb2Nlc3MucHJvY2Vzc0lkICYmIHRoaXMucGFyYW1ldGVyc0VtcHR5KSB7XG4gICAgICB0aGlzLmdldFBhcmFtZXRlcnNCeVByb2Nlc3MocHJvY2Vzcy5wcm9jZXNzSWQpO1xuICAgICAgaWYgKCF0aGlzLmlzRWRpdCkge1xuICAgICAgICB0aGlzLm1vZGVsLmV4ZWN1dGlvblBhcmFtZXRlciA9IHt9O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY29uZmlybUpvYlNjaGVkdWxlcigpIHtcbiAgICBjb25zdCBwYXJhbUlkID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5wYXJhbXNbJ2lkJ107XG5cbiAgICBjb25zdCBjb25maXJtTWVzc2FnZSA9IHBhcmFtSWQgPyB0aGlzLmxpdGVyYWxzLmNvbmZpcm1VcGRhdGVNZXNzYWdlIDogdGhpcy5saXRlcmFscy5jb25maXJtU2F2ZU1lc3NhZ2U7XG5cbiAgICB0aGlzLnBvRGlhbG9nU2VydmljZS5jb25maXJtKHtcbiAgICAgIHRpdGxlOiB0aGlzLmxpdGVyYWxzLmNvbmZpcm1hdGlvbixcbiAgICAgIG1lc3NhZ2U6IGNvbmZpcm1NZXNzYWdlLFxuICAgICAgY29uZmlybTogKCkgPT4ge1xuICAgICAgICBjb25zdCBtb2RlbCA9IHsgLi4udGhpcy5tb2RlbCB9O1xuXG4gICAgICAgIHRoaXMuc2F2ZShtb2RlbCwgcGFyYW1JZCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGVtaXRTdWNjZXNzTWVzc2FnZShtc2dTdWNjZXNzOiBhbnksIHNhdmVPcGVyYXRpb246IE9ic2VydmFibGU8YW55Pikge1xuICAgIGF3YWl0IHNhdmVPcGVyYXRpb24udG9Qcm9taXNlKCk7XG4gICAgdGhpcy5wb05vdGlmaWNhdGlvbi5zdWNjZXNzKG1zZ1N1Y2Nlc3MpO1xuICAgIHRoaXMucmVzZXRKb2JTY2hlZHVsZXJGb3JtKCk7XG4gIH1cblxuICBwcml2YXRlIGdldFBhcmFtZXRlcnNCeVByb2Nlc3MocHJvY2VzczogYW55KSB7XG4gICAgdGhpcy5wb1BhZ2VKb2JTY2hlZHVsZXJTZXJ2aWNlLmdldFBhcmFtZXRlcnNCeVByb2Nlc3MocHJvY2Vzcykuc3Vic2NyaWJlKHBhcmFtZXRlcnMgPT4ge1xuICAgICAgdGhpcy5wYXJhbWV0ZXJzID0gcGFyYW1ldGVycztcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaGlkZXNTZWNyZXRWYWx1ZXMobW9kZWw6IFBvSm9iU2NoZWR1bGVySW50ZXJuYWwpOiBQb0pvYlNjaGVkdWxlckludGVybmFsIHtcbiAgICBjb25zdCBoaWRkZW5TZWNyZXRWYWx1ZSA9ICcqKioqKioqKioqJztcbiAgICB0aGlzLnBhcmFtZXRlcnMuZm9yRWFjaChwYXJhbWV0ZXIgPT4ge1xuICAgICAgaWYgKHRoaXMuaXNTZWNyZXRQYXJhbWV0ZXIobW9kZWwsIHBhcmFtZXRlcikpIHtcbiAgICAgICAgbW9kZWwuZXhlY3V0aW9uUGFyYW1ldGVyW3BhcmFtZXRlci5wcm9wZXJ0eV0gPSBoaWRkZW5TZWNyZXRWYWx1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gbW9kZWw7XG4gIH1cblxuICBwcml2YXRlIGlzRGlzYWJsZWRBZHZhbmNlKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGNvbXBvbmVudEJ5U3RlcCA9IHtcbiAgICAgIDE6IHRoaXMuc2NoZWR1bGVyRXhlY3V0aW9uLFxuICAgICAgMjogdGhpcy5zY2hlZHVsZXJQYXJhbWV0ZXJzXG4gICAgfTtcblxuICAgIHJldHVybiBjb21wb25lbnRCeVN0ZXBbdGhpcy5zdGVwXT8uZm9ybT8uaW52YWxpZCB8fCBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgaXNEaXNhYmxlZEJhY2soKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc3RlcCA9PT0gMTtcbiAgfVxuXG4gIHByaXZhdGUgaXNTZWNyZXRQYXJhbWV0ZXIobW9kZWw6IFBvSm9iU2NoZWR1bGVySW50ZXJuYWwsIHBhcmFtZXRlcjogUG9EeW5hbWljRm9ybUZpZWxkKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIG1vZGVsLmV4ZWN1dGlvblBhcmFtZXRlciAmJlxuICAgICAgcGFyYW1ldGVyLmhhc093blByb3BlcnR5KCdzZWNyZXQnKSAmJlxuICAgICAgcGFyYW1ldGVyWydzZWNyZXQnXSA9PT0gdHJ1ZSAmJlxuICAgICAgbW9kZWwuZXhlY3V0aW9uUGFyYW1ldGVyLmhhc093blByb3BlcnR5KHBhcmFtZXRlci5wcm9wZXJ0eSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBuZXh0U3RlcE9wZXJhdGlvbihvcGVyYXRpb24/OiAnYmFjaycgfCAnbmV4dCcpIHtcbiAgICBjb25zdCBzdGVwTnVtYmVyID0gb3BlcmF0aW9uID09PSAnYmFjaycgPyB0aGlzLnN0ZXAgLSAxIDogdGhpcy5zdGVwICsgMTtcblxuICAgIHRoaXMubmV4dFN0ZXAoc3RlcE51bWJlcik7XG4gIH1cblxuICBwcml2YXRlIHJlc2V0Sm9iU2NoZWR1bGVyRm9ybSgpIHtcbiAgICB0aGlzLnNjaGVkdWxlckV4ZWN1dGlvbi5mb3JtLnJlc2V0KCk7XG5cbiAgICAvLyByYWRpb2dyb3VwIG7Do28gZXN0YXZhIGF0cmlidWluZG8gbm92byB2YWxvciwgZmljYSB2ZXJtZWxobyBzZW0gbyB0aW1ldG91dC5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMubW9kZWwgPSBuZXcgUG9QYWdlSm9iU2NoZWR1bGVySW50ZXJuYWwoKTtcblxuICAgICAgdGhpcy5zdGVwID0gMTtcbiAgICAgIHRoaXMuc3RlcHMuZm9yRWFjaChzdGVwID0+IHtcbiAgICAgICAgc3RlcC5zdGF0dXMgPSBQb1N0ZXBwZXJTdGF0dXMuRGVmYXVsdDtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLmpvYlNjaGVkdWxlckFjdGlvbnMgPSBbLi4udGhpcy5uZXh0UGFnZUFjdGlvbnNdO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzYXZlKG1vZGVsOiBQb0pvYlNjaGVkdWxlckludGVybmFsLCBwYXJhbUlkKSB7XG4gICAgY29uc3Qgc2F2ZU9wZXJhdGlvbiA9IHBhcmFtSWRcbiAgICAgID8gdGhpcy5wb1BhZ2VKb2JTY2hlZHVsZXJTZXJ2aWNlLnVwZGF0ZVJlc291cmNlKHBhcmFtSWQsIG1vZGVsKVxuICAgICAgOiB0aGlzLnBvUGFnZUpvYlNjaGVkdWxlclNlcnZpY2UuY3JlYXRlUmVzb3VyY2UobW9kZWwpO1xuXG4gICAgY29uc3QgbXNnU3VjY2VzcyA9IHBhcmFtSWRcbiAgICAgID8gdGhpcy5saXRlcmFscy5zYXZlTm90aWZpY2F0aW9uU3VjY2Vzc1VwZGF0ZVxuICAgICAgOiB0aGlzLmxpdGVyYWxzLnNhdmVOb3RpZmljYXRpb25TdWNjZXNzU2F2ZTtcblxuICAgIHRoaXMuZW1pdFN1Y2Nlc3NNZXNzYWdlKG1zZ1N1Y2Nlc3MsIHNhdmVPcGVyYXRpb24pO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRNb2RlbFJlY3VycmVudCgpIHtcbiAgICB0aGlzLm1vZGVsLnJlY3VycmVudCA9IHRoaXMubW9kZWwucGVyaW9kaWNpdHkgPT09ICdzaW5nbGUnID8gZmFsc2UgOiB0aGlzLm1vZGVsLnJlY3VycmVudDtcbiAgfVxufVxuIiwiPHBvLXBhZ2UtZGVmYXVsdCBbcC1hY3Rpb25zXT1cImpvYlNjaGVkdWxlckFjdGlvbnNcIiBbcC1icmVhZGNydW1iXT1cImJyZWFkY3J1bWJcIiBbcC10aXRsZV09XCJ0aXRsZVwiPlxuICA8ZGl2IGNsYXNzPVwicG8tcm93XCI+XG4gICAgPHBvLXN0ZXBwZXJcbiAgICAgIGNsYXNzPVwicG8tbGctMyBwby14bC0yXCJcbiAgICAgIHAtc2VxdWVudGlhbD1cInRydWVcIlxuICAgICAgW3Atb3JpZW50YXRpb25dPVwic3RlcHBlck9yaWVudGF0aW9uXCJcbiAgICAgIFtwLXN0ZXBdPVwic3RlcFwiXG4gICAgICBbcC1zdGVwc109XCJzdGVwc1wiXG4gICAgICAocC1jaGFuZ2Utc3RlcCk9XCJuZXh0U3RlcCgkZXZlbnQpXCJcbiAgICA+XG4gICAgPC9wby1zdGVwcGVyPlxuXG4gICAgPHBvLWNvbnRhaW5lciBjbGFzcz1cInBvLWxnLTggcG8teGwtNlwiPlxuICAgICAgPGZvcm0gI2Zvcm1TY2hlZHVsZXI9XCJuZ0Zvcm1cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInBvLXJvd1wiPlxuICAgICAgICAgIDxwby1wYWdlLWpvYi1zY2hlZHVsZXItZXhlY3V0aW9uXG4gICAgICAgICAgICBbcC1uby1wYXJhbWV0ZXJzXT1cInBhcmFtZXRlcnNFbXB0eVwiXG4gICAgICAgICAgICBbaGlkZGVuXT1cInN0ZXAgIT09IDFcIlxuICAgICAgICAgICAgI3NjaGVkdWxlckV4ZWN1dGlvblxuICAgICAgICAgICAgY2xhc3M9XCJwby1tZC0xMlwiXG4gICAgICAgICAgICBbcC1pcy1lZGl0XT1cImlzRWRpdFwiXG4gICAgICAgICAgICBbcC1saXRlcmFsc109XCJsaXRlcmFsc1wiXG4gICAgICAgICAgICBbcC12YWx1ZV09XCJtb2RlbFwiXG4gICAgICAgICAgICAocC1jaGFuZ2UtcHJvY2Vzcyk9XCJvbkNoYW5nZVByb2Nlc3MoJGV2ZW50KVwiXG4gICAgICAgICAgPlxuICAgICAgICAgIDwvcG8tcGFnZS1qb2Itc2NoZWR1bGVyLWV4ZWN1dGlvbj5cblxuICAgICAgICAgIDxwby1wYWdlLWpvYi1zY2hlZHVsZXItcGFyYW1ldGVyc1xuICAgICAgICAgICAgKm5nSWY9XCJzdGVwID09PSAyXCJcbiAgICAgICAgICAgICNzY2hlZHVsZXJQYXJhbWV0ZXJzXG4gICAgICAgICAgICBjbGFzcz1cInBvLW1kLTEyXCJcbiAgICAgICAgICAgIFtwLWxpdGVyYWxzXT1cImxpdGVyYWxzXCJcbiAgICAgICAgICAgIFtwLXBhcmFtZXRlcnNdPVwicGFyYW1ldGVycyB8fCBbXVwiXG4gICAgICAgICAgICBbKHAtdmFsdWUpXT1cIm1vZGVsLmV4ZWN1dGlvblBhcmFtZXRlclwiXG4gICAgICAgICAgPlxuICAgICAgICAgIDwvcG8tcGFnZS1qb2Itc2NoZWR1bGVyLXBhcmFtZXRlcnM+XG5cbiAgICAgICAgICA8cG8tcGFnZS1qb2Itc2NoZWR1bGVyLXN1bW1hcnlcbiAgICAgICAgICAgIFtwLW5vLXBhcmFtZXRlcnNdPVwicGFyYW1ldGVyc0VtcHR5XCJcbiAgICAgICAgICAgICpuZ0lmPVwic3RlcCA9PT0gM1wiXG4gICAgICAgICAgICBjbGFzcz1cInBvLW1kLTEyXCJcbiAgICAgICAgICAgIFtwLWxpdGVyYWxzXT1cImxpdGVyYWxzXCJcbiAgICAgICAgICAgIFtwLXBhcmFtZXRlcnNdPVwicGFyYW1ldGVyc1wiXG4gICAgICAgICAgICBbcC12YWx1ZV09XCJwdWJsaWNWYWx1ZXNcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8L3BvLXBhZ2Utam9iLXNjaGVkdWxlci1zdW1tYXJ5PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZm9ybT5cbiAgICA8L3BvLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L3BvLXBhZ2UtZGVmYXVsdD5cbiJdfQ==
|
|
1
|
+
import { Component, ViewChild, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import { PoStepperStatus, poLocaleDefault } from '@po-ui/ng-components';
|
|
3
|
+
import { PoPageJobSchedulerInternal } from './po-page-job-scheduler-internal';
|
|
4
|
+
import { PoPageJobSchedulerBaseComponent } from './po-page-job-scheduler-base.component';
|
|
5
|
+
import { poPageJobSchedulerLiteralsDefault } from './po-page-job-scheduler-literals';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "./po-page-job-scheduler-lookup.service";
|
|
8
|
+
import * as i2 from "@angular/router";
|
|
9
|
+
import * as i3 from "@po-ui/ng-components";
|
|
10
|
+
import * as i4 from "./po-page-job-scheduler.service";
|
|
11
|
+
import * as i5 from "@angular/common";
|
|
12
|
+
import * as i6 from "@angular/forms";
|
|
13
|
+
import * as i7 from "./po-page-job-scheduler-execution/po-page-job-scheduler-execution.component";
|
|
14
|
+
import * as i8 from "./po-page-job-scheduler-parameters/po-page-job-scheduler-parameters.component";
|
|
15
|
+
import * as i9 from "./po-page-job-scheduler-summary/po-page-job-scheduler-summary.component";
|
|
16
|
+
const _c0 = ["schedulerExecution"];
|
|
17
|
+
const _c1 = ["schedulerParameters"];
|
|
18
|
+
const _c2 = function () { return []; };
|
|
19
|
+
function PoPageJobSchedulerComponent_po_page_job_scheduler_parameters_9_Template(rf, ctx) { if (rf & 1) {
|
|
20
|
+
const _r6 = i0.ɵɵgetCurrentView();
|
|
21
|
+
i0.ɵɵelementStart(0, "po-page-job-scheduler-parameters", 9, 10);
|
|
22
|
+
i0.ɵɵlistener("p-valueChange", function PoPageJobSchedulerComponent_po_page_job_scheduler_parameters_9_Template_po_page_job_scheduler_parameters_p_valueChange_0_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r5 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r5.model.executionParameter = $event); });
|
|
23
|
+
i0.ɵɵelementEnd();
|
|
24
|
+
} if (rf & 2) {
|
|
25
|
+
const ctx_r2 = i0.ɵɵnextContext();
|
|
26
|
+
i0.ɵɵproperty("p-literals", ctx_r2.literals)("p-parameters", ctx_r2.parameters || i0.ɵɵpureFunction0(3, _c2))("p-value", ctx_r2.model.executionParameter);
|
|
27
|
+
} }
|
|
28
|
+
function PoPageJobSchedulerComponent_po_page_job_scheduler_summary_10_Template(rf, ctx) { if (rf & 1) {
|
|
29
|
+
i0.ɵɵelement(0, "po-page-job-scheduler-summary", 11);
|
|
30
|
+
} if (rf & 2) {
|
|
31
|
+
const ctx_r3 = i0.ɵɵnextContext();
|
|
32
|
+
i0.ɵɵproperty("p-no-parameters", ctx_r3.parametersEmpty)("p-literals", ctx_r3.literals)("p-parameters", ctx_r3.parameters)("p-value", ctx_r3.publicValues);
|
|
33
|
+
} }
|
|
34
|
+
/**
|
|
35
|
+
* @docsExtends PoPageJobSchedulerBaseComponent
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
*
|
|
39
|
+
* <example name="po-page-job-scheduler-background-process" title="PO Page Job Scheduler - Background Process">
|
|
40
|
+
* <file name="sample-po-page-job-scheduler-background-process/sample-po-page-job-scheduler-background-process.component.html"> </file>
|
|
41
|
+
* <file name="sample-po-page-job-scheduler-background-process/sample-po-page-job-scheduler-background-process.component.ts"> </file>
|
|
42
|
+
* </example>
|
|
43
|
+
*
|
|
44
|
+
*/
|
|
45
|
+
export class PoPageJobSchedulerComponent extends PoPageJobSchedulerBaseComponent {
|
|
46
|
+
constructor(poPageDynamicLookupService, activatedRoute, poDialogService, poNotification, poPageJobSchedulerService, languageService) {
|
|
47
|
+
super(poPageJobSchedulerService);
|
|
48
|
+
this.poPageDynamicLookupService = poPageDynamicLookupService;
|
|
49
|
+
this.activatedRoute = activatedRoute;
|
|
50
|
+
this.poDialogService = poDialogService;
|
|
51
|
+
this.poNotification = poNotification;
|
|
52
|
+
this.poPageJobSchedulerService = poPageJobSchedulerService;
|
|
53
|
+
this.isEdit = false;
|
|
54
|
+
this.literals = {
|
|
55
|
+
...poPageJobSchedulerLiteralsDefault[poLocaleDefault]
|
|
56
|
+
};
|
|
57
|
+
this.step = 1;
|
|
58
|
+
this.parametersEmpty = true;
|
|
59
|
+
this.steps = [];
|
|
60
|
+
this.backPageAction = {
|
|
61
|
+
label: this.literals.back,
|
|
62
|
+
action: this.nextStepOperation.bind(this, 'back'),
|
|
63
|
+
disabled: this.isDisabledBack.bind(this)
|
|
64
|
+
};
|
|
65
|
+
this.concludePageAction = {
|
|
66
|
+
label: this.literals.conclude,
|
|
67
|
+
action: this.confirmJobScheduler.bind(this)
|
|
68
|
+
};
|
|
69
|
+
this.nextPageAction = {
|
|
70
|
+
label: this.literals.next,
|
|
71
|
+
action: this.nextStepOperation.bind(this, 'next'),
|
|
72
|
+
disabled: this.isDisabledAdvance.bind(this)
|
|
73
|
+
};
|
|
74
|
+
this.concludePageActions = [this.concludePageAction, this.backPageAction];
|
|
75
|
+
this.nextPageActions = [this.nextPageAction, this.backPageAction];
|
|
76
|
+
// eslint-disable-next-line @typescript-eslint/member-ordering
|
|
77
|
+
this.jobSchedulerActions = [...this.nextPageActions];
|
|
78
|
+
const language = languageService.getShortLanguage();
|
|
79
|
+
this.literals = {
|
|
80
|
+
...this.literals,
|
|
81
|
+
...poPageJobSchedulerLiteralsDefault[language]
|
|
82
|
+
};
|
|
83
|
+
this.backPageAction.label = this.literals.back;
|
|
84
|
+
this.concludePageAction.label = this.literals.conclude;
|
|
85
|
+
this.nextPageAction.label = this.literals.next;
|
|
86
|
+
this.steps = [
|
|
87
|
+
{ label: this.literals.scheduling },
|
|
88
|
+
{ label: this.literals.parameterization },
|
|
89
|
+
{ label: this.literals.conclude }
|
|
90
|
+
];
|
|
91
|
+
}
|
|
92
|
+
get stepperOrientation() {
|
|
93
|
+
return window.innerWidth > 481 && window.innerWidth < 960 ? 'horizontal' : 'vertical';
|
|
94
|
+
}
|
|
95
|
+
ngOnInit() {
|
|
96
|
+
const paramId = this.activatedRoute.snapshot.params['id'];
|
|
97
|
+
this.isEdit = !!paramId;
|
|
98
|
+
this.poPageJobSchedulerService.configServiceApi({ endpoint: this.serviceApi });
|
|
99
|
+
if (this.parameters.length) {
|
|
100
|
+
this.parametersEmpty = false;
|
|
101
|
+
}
|
|
102
|
+
this.loadData(paramId);
|
|
103
|
+
}
|
|
104
|
+
changePageActionsBySteps(currentStep, nextStep) {
|
|
105
|
+
const stepsLength = this.steps.length;
|
|
106
|
+
if (nextStep === stepsLength) {
|
|
107
|
+
this.jobSchedulerActions = [...this.concludePageActions];
|
|
108
|
+
}
|
|
109
|
+
else if (currentStep === stepsLength && nextStep < currentStep) {
|
|
110
|
+
this.jobSchedulerActions = [...this.nextPageActions];
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
nextStep(stepNumber) {
|
|
114
|
+
if (stepNumber > 1 && this.schedulerExecution.form.invalid) {
|
|
115
|
+
this.markAsDirtyInvalidControls(this.schedulerExecution.form.controls);
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
if (stepNumber > 2 &&
|
|
119
|
+
this.schedulerParameters &&
|
|
120
|
+
this.schedulerParameters.form &&
|
|
121
|
+
this.schedulerParameters.form.invalid) {
|
|
122
|
+
this.markAsDirtyInvalidControls(this.schedulerParameters.form.controls);
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
this.setModelRecurrent();
|
|
126
|
+
const model = JSON.parse(JSON.stringify(this.model));
|
|
127
|
+
if (stepNumber === this.steps.length) {
|
|
128
|
+
this.publicValues = this.hidesSecretValues(model);
|
|
129
|
+
}
|
|
130
|
+
this.changePageActionsBySteps(this.step, stepNumber);
|
|
131
|
+
const steps = this.steps[this.step - 1];
|
|
132
|
+
this.step = stepNumber;
|
|
133
|
+
if (steps) {
|
|
134
|
+
steps.status = PoStepperStatus.Done;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
onChangeProcess(process) {
|
|
138
|
+
if (process.existAPI && process.processId && this.parametersEmpty) {
|
|
139
|
+
this.getParametersByProcess(process.processId);
|
|
140
|
+
if (!this.isEdit) {
|
|
141
|
+
this.model.executionParameter = {};
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
confirmJobScheduler() {
|
|
146
|
+
const paramId = this.activatedRoute.snapshot.params['id'];
|
|
147
|
+
const confirmMessage = paramId ? this.literals.confirmUpdateMessage : this.literals.confirmSaveMessage;
|
|
148
|
+
this.poDialogService.confirm({
|
|
149
|
+
title: this.literals.confirmation,
|
|
150
|
+
message: confirmMessage,
|
|
151
|
+
confirm: () => {
|
|
152
|
+
const model = { ...this.model };
|
|
153
|
+
this.save(model, paramId);
|
|
154
|
+
}
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
async emitSuccessMessage(msgSuccess, saveOperation) {
|
|
158
|
+
await saveOperation.toPromise();
|
|
159
|
+
this.poNotification.success(msgSuccess);
|
|
160
|
+
this.resetJobSchedulerForm();
|
|
161
|
+
}
|
|
162
|
+
getParametersByProcess(process) {
|
|
163
|
+
this.poPageJobSchedulerService.getParametersByProcess(process).subscribe(parameters => {
|
|
164
|
+
this.parameters = parameters;
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
hidesSecretValues(model) {
|
|
168
|
+
const hiddenSecretValue = '**********';
|
|
169
|
+
this.parameters.forEach(parameter => {
|
|
170
|
+
if (this.isSecretParameter(model, parameter)) {
|
|
171
|
+
model.executionParameter[parameter.property] = hiddenSecretValue;
|
|
172
|
+
}
|
|
173
|
+
});
|
|
174
|
+
return model;
|
|
175
|
+
}
|
|
176
|
+
isDisabledAdvance() {
|
|
177
|
+
const componentByStep = {
|
|
178
|
+
1: this.schedulerExecution,
|
|
179
|
+
2: this.schedulerParameters
|
|
180
|
+
};
|
|
181
|
+
return componentByStep[this.step]?.form?.invalid || false;
|
|
182
|
+
}
|
|
183
|
+
isDisabledBack() {
|
|
184
|
+
return this.step === 1;
|
|
185
|
+
}
|
|
186
|
+
isSecretParameter(model, parameter) {
|
|
187
|
+
return (model.executionParameter &&
|
|
188
|
+
parameter.hasOwnProperty('secret') &&
|
|
189
|
+
parameter['secret'] === true &&
|
|
190
|
+
model.executionParameter.hasOwnProperty(parameter.property));
|
|
191
|
+
}
|
|
192
|
+
nextStepOperation(operation) {
|
|
193
|
+
const stepNumber = operation === 'back' ? this.step - 1 : this.step + 1;
|
|
194
|
+
this.nextStep(stepNumber);
|
|
195
|
+
}
|
|
196
|
+
resetJobSchedulerForm() {
|
|
197
|
+
this.schedulerExecution.form.reset();
|
|
198
|
+
// radiogroup não estava atribuindo novo valor, fica vermelho sem o timetout.
|
|
199
|
+
setTimeout(() => {
|
|
200
|
+
this.model = new PoPageJobSchedulerInternal();
|
|
201
|
+
this.step = 1;
|
|
202
|
+
this.steps.forEach(step => {
|
|
203
|
+
step.status = PoStepperStatus.Default;
|
|
204
|
+
});
|
|
205
|
+
this.jobSchedulerActions = [...this.nextPageActions];
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
save(model, paramId) {
|
|
209
|
+
const saveOperation = paramId
|
|
210
|
+
? this.poPageJobSchedulerService.updateResource(paramId, model)
|
|
211
|
+
: this.poPageJobSchedulerService.createResource(model);
|
|
212
|
+
const msgSuccess = paramId
|
|
213
|
+
? this.literals.saveNotificationSuccessUpdate
|
|
214
|
+
: this.literals.saveNotificationSuccessSave;
|
|
215
|
+
this.emitSuccessMessage(msgSuccess, saveOperation);
|
|
216
|
+
}
|
|
217
|
+
setModelRecurrent() {
|
|
218
|
+
this.model.recurrent = this.model.periodicity === 'single' ? false : this.model.recurrent;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
PoPageJobSchedulerComponent.ɵfac = function PoPageJobSchedulerComponent_Factory(t) { return new (t || PoPageJobSchedulerComponent)(i0.ɵɵdirectiveInject(i1.PoPageJobSchedulerLookupService), i0.ɵɵdirectiveInject(i2.ActivatedRoute), i0.ɵɵdirectiveInject(i3.PoDialogService), i0.ɵɵdirectiveInject(i3.PoNotificationService), i0.ɵɵdirectiveInject(i4.PoPageJobSchedulerService), i0.ɵɵdirectiveInject(i3.PoLanguageService)); };
|
|
222
|
+
PoPageJobSchedulerComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PoPageJobSchedulerComponent, selectors: [["po-page-job-scheduler"]], viewQuery: function PoPageJobSchedulerComponent_Query(rf, ctx) { if (rf & 1) {
|
|
223
|
+
i0.ɵɵviewQuery(_c0, 7);
|
|
224
|
+
i0.ɵɵviewQuery(_c1, 5);
|
|
225
|
+
} if (rf & 2) {
|
|
226
|
+
let _t;
|
|
227
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.schedulerExecution = _t.first);
|
|
228
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.schedulerParameters = _t.first);
|
|
229
|
+
} }, features: [i0.ɵɵInheritDefinitionFeature], decls: 11, vars: 13, consts: [[3, "p-actions", "p-breadcrumb", "p-title"], [1, "po-row"], ["p-sequential", "true", 1, "po-lg-3", "po-xl-2", 3, "p-orientation", "p-step", "p-steps", "p-change-step"], [1, "po-lg-8", "po-xl-6"], ["formScheduler", "ngForm"], [1, "po-md-12", 3, "p-no-parameters", "hidden", "p-is-edit", "p-literals", "p-value", "p-change-process"], ["schedulerExecution", ""], ["class", "po-md-12", 3, "p-literals", "p-parameters", "p-value", "p-valueChange", 4, "ngIf"], ["class", "po-md-12", 3, "p-no-parameters", "p-literals", "p-parameters", "p-value", 4, "ngIf"], [1, "po-md-12", 3, "p-literals", "p-parameters", "p-value", "p-valueChange"], ["schedulerParameters", ""], [1, "po-md-12", 3, "p-no-parameters", "p-literals", "p-parameters", "p-value"]], template: function PoPageJobSchedulerComponent_Template(rf, ctx) { if (rf & 1) {
|
|
230
|
+
i0.ɵɵelementStart(0, "po-page-default", 0)(1, "div", 1)(2, "po-stepper", 2);
|
|
231
|
+
i0.ɵɵlistener("p-change-step", function PoPageJobSchedulerComponent_Template_po_stepper_p_change_step_2_listener($event) { return ctx.nextStep($event); });
|
|
232
|
+
i0.ɵɵelementEnd();
|
|
233
|
+
i0.ɵɵelementStart(3, "po-container", 3)(4, "form", null, 4)(6, "div", 1)(7, "po-page-job-scheduler-execution", 5, 6);
|
|
234
|
+
i0.ɵɵlistener("p-change-process", function PoPageJobSchedulerComponent_Template_po_page_job_scheduler_execution_p_change_process_7_listener($event) { return ctx.onChangeProcess($event); });
|
|
235
|
+
i0.ɵɵelementEnd();
|
|
236
|
+
i0.ɵɵtemplate(9, PoPageJobSchedulerComponent_po_page_job_scheduler_parameters_9_Template, 2, 4, "po-page-job-scheduler-parameters", 7);
|
|
237
|
+
i0.ɵɵtemplate(10, PoPageJobSchedulerComponent_po_page_job_scheduler_summary_10_Template, 1, 4, "po-page-job-scheduler-summary", 8);
|
|
238
|
+
i0.ɵɵelementEnd()()()()();
|
|
239
|
+
} if (rf & 2) {
|
|
240
|
+
i0.ɵɵproperty("p-actions", ctx.jobSchedulerActions)("p-breadcrumb", ctx.breadcrumb)("p-title", ctx.title);
|
|
241
|
+
i0.ɵɵadvance(2);
|
|
242
|
+
i0.ɵɵproperty("p-orientation", ctx.stepperOrientation)("p-step", ctx.step)("p-steps", ctx.steps);
|
|
243
|
+
i0.ɵɵadvance(5);
|
|
244
|
+
i0.ɵɵproperty("p-no-parameters", ctx.parametersEmpty)("hidden", ctx.step !== 1)("p-is-edit", ctx.isEdit)("p-literals", ctx.literals)("p-value", ctx.model);
|
|
245
|
+
i0.ɵɵadvance(2);
|
|
246
|
+
i0.ɵɵproperty("ngIf", ctx.step === 2);
|
|
247
|
+
i0.ɵɵadvance(1);
|
|
248
|
+
i0.ɵɵproperty("ngIf", ctx.step === 3);
|
|
249
|
+
} }, dependencies: [i5.NgIf, i6.ɵNgNoValidate, i6.NgControlStatusGroup, i6.NgForm, i3.PoContainerComponent, i3.PoPageDefaultComponent, i3.PoStepperComponent, i7.PoPageJobSchedulerExecutionComponent, i8.PoPageJobSchedulerParametersComponent, i9.PoPageJobSchedulerSummaryComponent], styles: ["po-container .po-container{overflow-y:unset}\n"], encapsulation: 2 });
|
|
250
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoPageJobSchedulerComponent, [{
|
|
251
|
+
type: Component,
|
|
252
|
+
args: [{ selector: 'po-page-job-scheduler', encapsulation: ViewEncapsulation.None, template: "<po-page-default [p-actions]=\"jobSchedulerActions\" [p-breadcrumb]=\"breadcrumb\" [p-title]=\"title\">\r\n <div class=\"po-row\">\r\n <po-stepper\r\n class=\"po-lg-3 po-xl-2\"\r\n p-sequential=\"true\"\r\n [p-orientation]=\"stepperOrientation\"\r\n [p-step]=\"step\"\r\n [p-steps]=\"steps\"\r\n (p-change-step)=\"nextStep($event)\"\r\n >\r\n </po-stepper>\r\n\r\n <po-container class=\"po-lg-8 po-xl-6\">\r\n <form #formScheduler=\"ngForm\">\r\n <div class=\"po-row\">\r\n <po-page-job-scheduler-execution\r\n [p-no-parameters]=\"parametersEmpty\"\r\n [hidden]=\"step !== 1\"\r\n #schedulerExecution\r\n class=\"po-md-12\"\r\n [p-is-edit]=\"isEdit\"\r\n [p-literals]=\"literals\"\r\n [p-value]=\"model\"\r\n (p-change-process)=\"onChangeProcess($event)\"\r\n >\r\n </po-page-job-scheduler-execution>\r\n\r\n <po-page-job-scheduler-parameters\r\n *ngIf=\"step === 2\"\r\n #schedulerParameters\r\n class=\"po-md-12\"\r\n [p-literals]=\"literals\"\r\n [p-parameters]=\"parameters || []\"\r\n [(p-value)]=\"model.executionParameter\"\r\n >\r\n </po-page-job-scheduler-parameters>\r\n\r\n <po-page-job-scheduler-summary\r\n [p-no-parameters]=\"parametersEmpty\"\r\n *ngIf=\"step === 3\"\r\n class=\"po-md-12\"\r\n [p-literals]=\"literals\"\r\n [p-parameters]=\"parameters\"\r\n [p-value]=\"publicValues\"\r\n >\r\n </po-page-job-scheduler-summary>\r\n </div>\r\n </form>\r\n </po-container>\r\n </div>\r\n</po-page-default>\r\n", styles: ["po-container .po-container{overflow-y:unset}\n"] }]
|
|
253
|
+
}], function () { return [{ type: i1.PoPageJobSchedulerLookupService }, { type: i2.ActivatedRoute }, { type: i3.PoDialogService }, { type: i3.PoNotificationService }, { type: i4.PoPageJobSchedulerService }, { type: i3.PoLanguageService }]; }, { schedulerExecution: [{
|
|
254
|
+
type: ViewChild,
|
|
255
|
+
args: ['schedulerExecution', { static: true }]
|
|
256
|
+
}], schedulerParameters: [{
|
|
257
|
+
type: ViewChild,
|
|
258
|
+
args: ['schedulerParameters']
|
|
259
|
+
}] }); })();
|
|
260
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tcGFnZS1qb2Itc2NoZWR1bGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RlbXBsYXRlcy9zcmMvbGliL2NvbXBvbmVudHMvcG8tcGFnZS1qb2Itc2NoZWR1bGVyL3BvLXBhZ2Utam9iLXNjaGVkdWxlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZW1wbGF0ZXMvc3JjL2xpYi9jb21wb25lbnRzL3BvLXBhZ2Utam9iLXNjaGVkdWxlci9wby1wYWdlLWpvYi1zY2hlZHVsZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLaEYsT0FBTyxFQU9MLGVBQWUsRUFDZixlQUFlLEVBQ2hCLE1BQU0sc0JBQXNCLENBQUM7QUFHOUIsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDOUUsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDekYsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7SUNPM0UsK0RBT0M7SUFEQyxxUEFBYSx3REFDcEIsSUFENkM7SUFFeEMsaUJBQW1DOzs7SUFKakMsNENBQXVCLGlFQUFBLDRDQUFBOzs7SUFNekIsb0RBUWdDOzs7SUFQOUIsd0RBQW1DLCtCQUFBLG1DQUFBLGdDQUFBOztBRGQvQzs7Ozs7Ozs7OztHQVVHO0FBYUgsTUFBTSxPQUFPLDJCQUE0QixTQUFRLCtCQUErQjtJQXdDOUUsWUFDUywwQkFBMkQsRUFDMUQsY0FBOEIsRUFDOUIsZUFBZ0MsRUFDaEMsY0FBcUMsRUFDbkMseUJBQW9ELEVBQzlELGVBQWtDO1FBRWxDLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FB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a0lBQWlCLG9CQUFnQixJQUFDO1FBRXBDLGlCQUFhO1FBRWIsdUNBQXNDLG9CQUFBLGFBQUEsNENBQUE7UUFXOUIsNkpBQW9CLDJCQUF1QixJQUFDO1FBRTlDLGlCQUFrQztRQUVsQyxzSUFRbUM7UUFFbkMsa0lBUWdDO1FBQ2xDLGlCQUFNLEVBQUEsRUFBQSxFQUFBLEVBQUE7O1FBOUNHLG1EQUFpQyxnQ0FBQSxzQkFBQTtRQUs1QyxlQUFvQztRQUFwQyxzREFBb0Msb0JBQUEsc0JBQUE7UUFXOUIsZUFBbUM7UUFBbkMscURBQW1DLDBCQUFBLHlCQUFBLDRCQUFBLHNCQUFBO1FBWWxDLGVBQWdCO1FBQWhCLHFDQUFnQjtRQVdoQixlQUFnQjtRQUFoQixxQ0FBZ0I7O3VGRFFoQiwyQkFBMkI7Y0FadkMsU0FBUzsyQkFDRSx1QkFBdUIsaUJBRWxCLGlCQUFpQixDQUFDLElBQUk7eVBBVWMsa0JBQWtCO2tCQUFwRSxTQUFTO21CQUFDLG9CQUFvQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtZQUNmLG1CQUFtQjtrQkFBcEQsU0FBUzttQkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHtcclxuICBQb0RpYWxvZ1NlcnZpY2UsXHJcbiAgUG9EeW5hbWljRm9ybUZpZWxkLFxyXG4gIFBvTGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gIFBvTm90aWZpY2F0aW9uU2VydmljZSxcclxuICBQb1BhZ2VBY3Rpb24sXHJcbiAgUG9TdGVwcGVySXRlbSxcclxuICBQb1N0ZXBwZXJTdGF0dXMsXHJcbiAgcG9Mb2NhbGVEZWZhdWx0XHJcbn0gZnJvbSAnQHBvLXVpL25nLWNvbXBvbmVudHMnO1xyXG5cclxuaW1wb3J0IHsgUG9Kb2JTY2hlZHVsZXJJbnRlcm5hbCB9IGZyb20gJy4vaW50ZXJmYWNlcy9wby1qb2Itc2NoZWR1bGVyLWludGVybmFsLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IFBvUGFnZUpvYlNjaGVkdWxlckludGVybmFsIH0gZnJvbSAnLi9wby1wYWdlLWpvYi1zY2hlZHVsZXItaW50ZXJuYWwnO1xyXG5pbXBvcnQgeyBQb1BhZ2VKb2JTY2hlZHVsZXJCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi9wby1wYWdlLWpvYi1zY2hlZHVsZXItYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBwb1BhZ2VKb2JTY2hlZHVsZXJMaXRlcmFsc0RlZmF1bHQgfSBmcm9tICcuL3BvLXBhZ2Utam9iLXNjaGVkdWxlci1saXRlcmFscyc7XHJcbmltcG9ydCB7IFBvUGFnZUpvYlNjaGVkdWxlckxvb2t1cFNlcnZpY2UgfSBmcm9tICcuL3BvLXBhZ2Utam9iLXNjaGVkdWxlci1sb29rdXAuc2VydmljZSc7XHJcbmltcG9ydCB7IFBvUGFnZUpvYlNjaGVkdWxlclNlcnZpY2UgfSBmcm9tICcuL3BvLXBhZ2Utam9iLXNjaGVkdWxlci5zZXJ2aWNlJztcclxuXHJcbi8qKlxyXG4gKiBAZG9jc0V4dGVuZHMgUG9QYWdlSm9iU2NoZWR1bGVyQmFzZUNvbXBvbmVudFxyXG4gKlxyXG4gKiBAZXhhbXBsZVxyXG4gKlxyXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tcGFnZS1qb2Itc2NoZWR1bGVyLWJhY2tncm91bmQtcHJvY2Vzc1wiIHRpdGxlPVwiUE8gUGFnZSBKb2IgU2NoZWR1bGVyIC0gQmFja2dyb3VuZCBQcm9jZXNzXCI+XHJcbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXBhZ2Utam9iLXNjaGVkdWxlci1iYWNrZ3JvdW5kLXByb2Nlc3Mvc2FtcGxlLXBvLXBhZ2Utam9iLXNjaGVkdWxlci1iYWNrZ3JvdW5kLXByb2Nlc3MuY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxyXG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1wYWdlLWpvYi1zY2hlZHVsZXItYmFja2dyb3VuZC1wcm9jZXNzL3NhbXBsZS1wby1wYWdlLWpvYi1zY2hlZHVsZXItYmFja2dyb3VuZC1wcm9jZXNzLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XHJcbiAqIDwvZXhhbXBsZT5cclxuICpcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAncG8tcGFnZS1qb2Itc2NoZWR1bGVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcG8tcGFnZS1qb2Itc2NoZWR1bGVyLmNvbXBvbmVudC5odG1sJyxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIHN0eWxlczogW1xyXG4gICAgYFxyXG4gICAgICBwby1jb250YWluZXIgLnBvLWNvbnRhaW5lciB7XHJcbiAgICAgICAgb3ZlcmZsb3cteTogdW5zZXQ7XHJcbiAgICAgIH1cclxuICAgIGBcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQb1BhZ2VKb2JTY2hlZHVsZXJDb21wb25lbnQgZXh0ZW5kcyBQb1BhZ2VKb2JTY2hlZHVsZXJCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBAVmlld0NoaWxkKCdzY2hlZHVsZXJFeGVjdXRpb24nLCB7IHN0YXRpYzogdHJ1ZSB9KSBzY2hlZHVsZXJFeGVjdXRpb246IHsgZm9ybTogTmdGb3JtIH07XHJcbiAgQFZpZXdDaGlsZCgnc2NoZWR1bGVyUGFyYW1ldGVycycpIHNjaGVkdWxlclBhcmFtZXRlcnM6IHsgZm9ybTogTmdGb3JtIH07XHJcblxyXG4gIGlzRWRpdCA9IGZhbHNlO1xyXG4gIGxpdGVyYWxzID0ge1xyXG4gICAgLi4ucG9QYWdlSm9iU2NoZWR1bGVyTGl0ZXJhbHNEZWZhdWx0W3BvTG9jYWxlRGVmYXVsdF1cclxuICB9O1xyXG5cclxuICBwdWJsaWNWYWx1ZXM6IFBvSm9iU2NoZWR1bGVySW50ZXJuYWw7XHJcbiAgc2F2ZU9wZXJhdGlvbjogT2JzZXJ2YWJsZTxhbnk+O1xyXG4gIHN0ZXA6IG51bWJlciA9IDE7XHJcbiAgcGFyYW1ldGVyc0VtcHR5OiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgcmVhZG9ubHkgc3RlcHM6IEFycmF5PFBvU3RlcHBlckl0ZW0+ID0gW107XHJcblxyXG4gIHByaXZhdGUgYmFja1BhZ2VBY3Rpb246IFBvUGFnZUFjdGlvbiA9IHtcclxuICAgIGxhYmVsOiB0aGlzLmxpdGVyYWxzLmJhY2ssXHJcbiAgICBhY3Rpb246IHRoaXMubmV4dFN0ZXBPcGVyYXRpb24uYmluZCh0aGlzLCAnYmFjaycpLFxyXG4gICAgZGlzYWJsZWQ6IHRoaXMuaXNEaXNhYmxlZEJhY2suYmluZCh0aGlzKVxyXG4gIH07XHJcblxyXG4gIHByaXZhdGUgY29uY2x1ZGVQYWdlQWN0aW9uOiBQb1BhZ2VBY3Rpb24gPSB7XHJcbiAgICBsYWJlbDogdGhpcy5saXRlcmFscy5jb25jbHVkZSxcclxuICAgIGFjdGlvbjogdGhpcy5jb25maXJtSm9iU2NoZWR1bGVyLmJpbmQodGhpcylcclxuICB9O1xyXG5cclxuICBwcml2YXRlIG5leHRQYWdlQWN0aW9uOiBQb1BhZ2VBY3Rpb24gPSB7XHJcbiAgICBsYWJlbDogdGhpcy5saXRlcmFscy5uZXh0LFxyXG4gICAgYWN0aW9uOiB0aGlzLm5leHRTdGVwT3BlcmF0aW9uLmJpbmQodGhpcywgJ25leHQnKSxcclxuICAgIGRpc2FibGVkOiB0aGlzLmlzRGlzYWJsZWRBZHZhbmNlLmJpbmQodGhpcylcclxuICB9O1xyXG5cclxuICBwcml2YXRlIGNvbmNsdWRlUGFnZUFjdGlvbnM6IEFycmF5PFBvUGFnZUFjdGlvbj4gPSBbdGhpcy5jb25jbHVkZVBhZ2VBY3Rpb24sIHRoaXMuYmFja1BhZ2VBY3Rpb25dO1xyXG5cclxuICBwcml2YXRlIG5leHRQYWdlQWN0aW9uczogQXJyYXk8UG9QYWdlQWN0aW9uPiA9IFt0aGlzLm5leHRQYWdlQWN0aW9uLCB0aGlzLmJhY2tQYWdlQWN0aW9uXTtcclxuXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9tZW1iZXItb3JkZXJpbmdcclxuICBqb2JTY2hlZHVsZXJBY3Rpb25zOiBBcnJheTxQb1BhZ2VBY3Rpb24+ID0gWy4uLnRoaXMubmV4dFBhZ2VBY3Rpb25zXTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgcG9QYWdlRHluYW1pY0xvb2t1cFNlcnZpY2U6IFBvUGFnZUpvYlNjaGVkdWxlckxvb2t1cFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHByaXZhdGUgcG9EaWFsb2dTZXJ2aWNlOiBQb0RpYWxvZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHBvTm90aWZpY2F0aW9uOiBQb05vdGlmaWNhdGlvblNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgcG9QYWdlSm9iU2NoZWR1bGVyU2VydmljZTogUG9QYWdlSm9iU2NoZWR1bGVyU2VydmljZSxcclxuICAgIGxhbmd1YWdlU2VydmljZTogUG9MYW5ndWFnZVNlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKHBvUGFnZUpvYlNjaGVkdWxlclNlcnZpY2UpO1xyXG5cclxuICAgIGNvbnN0IGxhbmd1YWdlID0gbGFuZ3VhZ2VTZXJ2aWNlLmdldFNob3J0TGFuZ3VhZ2UoKTtcclxuXHJcbiAgICB0aGlzLmxpdGVyYWxzID0ge1xyXG4gICAgICAuLi50aGlzLmxpdGVyYWxzLFxyXG4gICAgICAuLi5wb1BhZ2VKb2JTY2hlZHVsZXJMaXRlcmFsc0RlZmF1bHRbbGFuZ3VhZ2VdXHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMuYmFja1BhZ2VBY3Rpb24ubGFiZWwgPSB0aGlzLmxpdGVyYWxzLmJhY2s7XHJcbiAgICB0aGlzLmNvbmNsdWRlUGFnZUFjdGlvbi5sYWJlbCA9IHRoaXMubGl0ZXJhbHMuY29uY2x1ZGU7XHJcbiAgICB0aGlzLm5leHRQYWdlQWN0aW9uLmxhYmVsID0gdGhpcy5saXRlcmFscy5uZXh0O1xyXG5cclxuICAgIHRoaXMuc3RlcHMgPSBbXHJcbiAgICAgIHsgbGFiZWw6IHRoaXMubGl0ZXJhbHMuc2NoZWR1bGluZyB9LFxyXG4gICAgICB7IGxhYmVsOiB0aGlzLmxpdGVyYWxzLnBhcmFtZXRlcml6YXRpb24gfSxcclxuICAgICAgeyBsYWJlbDogdGhpcy5saXRlcmFscy5jb25jbHVkZSB9XHJcbiAgICBdO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHN0ZXBwZXJPcmllbnRhdGlvbigpOiAnaG9yaXpvbnRhbCcgfCAndmVydGljYWwnIHtcclxuICAgIHJldHVybiB3aW5kb3cuaW5uZXJXaWR0aCA+IDQ4MSAmJiB3aW5kb3cuaW5uZXJXaWR0aCA8IDk2MCA/ICdob3Jpem9udGFsJyA6ICd2ZXJ0aWNhbCc7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGNvbnN0IHBhcmFtSWQgPSB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnBhcmFtc1snaWQnXTtcclxuXHJcbiAgICB0aGlzLmlzRWRpdCA9ICEhcGFyYW1JZDtcclxuXHJcbiAgICB0aGlzLnBvUGFnZUpvYlNjaGVkdWxlclNlcnZpY2UuY29uZmlnU2VydmljZUFwaSh7IGVuZHBvaW50OiB0aGlzLnNlcnZpY2VBcGkgfSk7XHJcblxyXG4gICAgaWYgKHRoaXMucGFyYW1ldGVycy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5wYXJhbWV0ZXJzRW1wdHkgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmxvYWREYXRhKHBhcmFtSWQpO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlUGFnZUFjdGlvbnNCeVN0ZXBzKGN1cnJlbnRTdGVwOiBudW1iZXIsIG5leHRTdGVwOiBudW1iZXIpIHtcclxuICAgIGNvbnN0IHN0ZXBzTGVuZ3RoID0gdGhpcy5zdGVwcy5sZW5ndGg7XHJcblxyXG4gICAgaWYgKG5leHRTdGVwID09PSBzdGVwc0xlbmd0aCkge1xyXG4gICAgICB0aGlzLmpvYlNjaGVkdWxlckFjdGlvbnMgPSBbLi4udGhpcy5jb25jbHVkZVBhZ2VBY3Rpb25zXTtcclxuICAgIH0gZWxzZSBpZiAoY3VycmVudFN0ZXAgPT09IHN0ZXBzTGVuZ3RoICYmIG5leHRTdGVwIDwgY3VycmVudFN0ZXApIHtcclxuICAgICAgdGhpcy5qb2JTY2hlZHVsZXJBY3Rpb25zID0gWy4uLnRoaXMubmV4dFBhZ2VBY3Rpb25zXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5leHRTdGVwKHN0ZXBOdW1iZXI6IG51bWJlcikge1xyXG4gICAgaWYgKHN0ZXBOdW1iZXIgPiAxICYmIHRoaXMuc2NoZWR1bGVyRXhlY3V0aW9uLmZvcm0uaW52YWxpZCkge1xyXG4gICAgICB0aGlzLm1hcmtBc0RpcnR5SW52YWxpZENvbnRyb2xzKHRoaXMuc2NoZWR1bGVyRXhlY3V0aW9uLmZvcm0uY29udHJvbHMpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICBzdGVwTnVtYmVyID4gMiAmJlxyXG4gICAgICB0aGlzLnNjaGVkdWxlclBhcmFtZXRlcnMgJiZcclxuICAgICAgdGhpcy5zY2hlZHVsZXJQYXJhbWV0ZXJzLmZvcm0gJiZcclxuICAgICAgdGhpcy5zY2hlZHVsZXJQYXJhbWV0ZXJzLmZvcm0uaW52YWxpZFxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMubWFya0FzRGlydHlJbnZhbGlkQ29udHJvbHModGhpcy5zY2hlZHVsZXJQYXJhbWV0ZXJzLmZvcm0uY29udHJvbHMpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldE1vZGVsUmVjdXJyZW50KCk7XHJcblxyXG4gICAgY29uc3QgbW9kZWwgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMubW9kZWwpKTtcclxuXHJcbiAgICBpZiAoc3RlcE51bWJlciA9PT0gdGhpcy5zdGVwcy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5wdWJsaWNWYWx1ZXMgPSB0aGlzLmhpZGVzU2VjcmV0VmFsdWVzKG1vZGVsKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNoYW5nZVBhZ2VBY3Rpb25zQnlTdGVwcyh0aGlzLnN0ZXAsIHN0ZXBOdW1iZXIpO1xyXG5cclxuICAgIGNvbnN0IHN0ZXBzID0gdGhpcy5zdGVwc1t0aGlzLnN0ZXAgLSAxXTtcclxuICAgIHRoaXMuc3RlcCA9IHN0ZXBOdW1iZXI7XHJcblxyXG4gICAgaWYgKHN0ZXBzKSB7XHJcbiAgICAgIHN0ZXBzLnN0YXR1cyA9IFBvU3RlcHBlclN0YXR1cy5Eb25lO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25DaGFuZ2VQcm9jZXNzKHByb2Nlc3M6IHsgcHJvY2Vzc0lkOiBzdHJpbmc7IGV4aXN0QVBJOiBib29sZWFuIH0pIHtcclxuICAgIGlmIChwcm9jZXNzLmV4aXN0QVBJICYmIHByb2Nlc3MucHJvY2Vzc0lkICYmIHRoaXMucGFyYW1ldGVyc0VtcHR5KSB7XHJcbiAgICAgIHRoaXMuZ2V0UGFyYW1ldGVyc0J5UHJvY2Vzcyhwcm9jZXNzLnByb2Nlc3NJZCk7XHJcbiAgICAgIGlmICghdGhpcy5pc0VkaXQpIHtcclxuICAgICAgICB0aGlzLm1vZGVsLmV4ZWN1dGlvblBhcmFtZXRlciA9IHt9O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvbmZpcm1Kb2JTY2hlZHVsZXIoKSB7XHJcbiAgICBjb25zdCBwYXJhbUlkID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5wYXJhbXNbJ2lkJ107XHJcblxyXG4gICAgY29uc3QgY29uZmlybU1lc3NhZ2UgPSBwYXJhbUlkID8gdGhpcy5saXRlcmFscy5jb25maXJtVXBkYXRlTWVzc2FnZSA6IHRoaXMubGl0ZXJhbHMuY29uZmlybVNhdmVNZXNzYWdlO1xyXG5cclxuICAgIHRoaXMucG9EaWFsb2dTZXJ2aWNlLmNvbmZpcm0oe1xyXG4gICAgICB0aXRsZTogdGhpcy5saXRlcmFscy5jb25maXJtYXRpb24sXHJcbiAgICAgIG1lc3NhZ2U6IGNvbmZpcm1NZXNzYWdlLFxyXG4gICAgICBjb25maXJtOiAoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgbW9kZWwgPSB7IC4uLnRoaXMubW9kZWwgfTtcclxuXHJcbiAgICAgICAgdGhpcy5zYXZlKG1vZGVsLCBwYXJhbUlkKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIGVtaXRTdWNjZXNzTWVzc2FnZShtc2dTdWNjZXNzOiBhbnksIHNhdmVPcGVyYXRpb246IE9ic2VydmFibGU8YW55Pikge1xyXG4gICAgYXdhaXQgc2F2ZU9wZXJhdGlvbi50b1Byb21pc2UoKTtcclxuICAgIHRoaXMucG9Ob3RpZmljYXRpb24uc3VjY2Vzcyhtc2dTdWNjZXNzKTtcclxuICAgIHRoaXMucmVzZXRKb2JTY2hlZHVsZXJGb3JtKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFBhcmFtZXRlcnNCeVByb2Nlc3MocHJvY2VzczogYW55KSB7XHJcbiAgICB0aGlzLnBvUGFnZUpvYlNjaGVkdWxlclNlcnZpY2UuZ2V0UGFyYW1ldGVyc0J5UHJvY2Vzcyhwcm9jZXNzKS5zdWJzY3JpYmUocGFyYW1ldGVycyA9PiB7XHJcbiAgICAgIHRoaXMucGFyYW1ldGVycyA9IHBhcmFtZXRlcnM7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGlkZXNTZWNyZXRWYWx1ZXMobW9kZWw6IFBvSm9iU2NoZWR1bGVySW50ZXJuYWwpOiBQb0pvYlNjaGVkdWxlckludGVybmFsIHtcclxuICAgIGNvbnN0IGhpZGRlblNlY3JldFZhbHVlID0gJyoqKioqKioqKionO1xyXG4gICAgdGhpcy5wYXJhbWV0ZXJzLmZvckVhY2gocGFyYW1ldGVyID0+IHtcclxuICAgICAgaWYgKHRoaXMuaXNTZWNyZXRQYXJhbWV0ZXIobW9kZWwsIHBhcmFtZXRlcikpIHtcclxuICAgICAgICBtb2RlbC5leGVjdXRpb25QYXJhbWV0ZXJbcGFyYW1ldGVyLnByb3BlcnR5XSA9IGhpZGRlblNlY3JldFZhbHVlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBtb2RlbDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNEaXNhYmxlZEFkdmFuY2UoKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBjb21wb25lbnRCeVN0ZXAgPSB7XHJcbiAgICAgIDE6IHRoaXMuc2NoZWR1bGVyRXhlY3V0aW9uLFxyXG4gICAgICAyOiB0aGlzLnNjaGVkdWxlclBhcmFtZXRlcnNcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIGNvbXBvbmVudEJ5U3RlcFt0aGlzLnN0ZXBdPy5mb3JtPy5pbnZhbGlkIHx8IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc0Rpc2FibGVkQmFjaygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnN0ZXAgPT09IDE7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzU2VjcmV0UGFyYW1ldGVyKG1vZGVsOiBQb0pvYlNjaGVkdWxlckludGVybmFsLCBwYXJhbWV0ZXI6IFBvRHluYW1pY0Zvcm1GaWVsZCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgbW9kZWwuZXhlY3V0aW9uUGFyYW1ldGVyICYmXHJcbiAgICAgIHBhcmFtZXRlci5oYXNPd25Qcm9wZXJ0eSgnc2VjcmV0JykgJiZcclxuICAgICAgcGFyYW1ldGVyWydzZWNyZXQnXSA9PT0gdHJ1ZSAmJlxyXG4gICAgICBtb2RlbC5leGVjdXRpb25QYXJhbWV0ZXIuaGFzT3duUHJvcGVydHkocGFyYW1ldGVyLnByb3BlcnR5KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbmV4dFN0ZXBPcGVyYXRpb24ob3BlcmF0aW9uPzogJ2JhY2snIHwgJ25leHQnKSB7XHJcbiAgICBjb25zdCBzdGVwTnVtYmVyID0gb3BlcmF0aW9uID09PSAnYmFjaycgPyB0aGlzLnN0ZXAgLSAxIDogdGhpcy5zdGVwICsgMTtcclxuXHJcbiAgICB0aGlzLm5leHRTdGVwKHN0ZXBOdW1iZXIpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZXNldEpvYlNjaGVkdWxlckZvcm0oKSB7XHJcbiAgICB0aGlzLnNjaGVkdWxlckV4ZWN1dGlvbi5mb3JtLnJlc2V0KCk7XHJcblxyXG4gICAgLy8gcmFkaW9ncm91cCBuw6NvIGVzdGF2YSBhdHJpYnVpbmRvIG5vdm8gdmFsb3IsIGZpY2EgdmVybWVsaG8gc2VtIG8gdGltZXRvdXQuXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5tb2RlbCA9IG5ldyBQb1BhZ2VKb2JTY2hlZHVsZXJJbnRlcm5hbCgpO1xyXG5cclxuICAgICAgdGhpcy5zdGVwID0gMTtcclxuICAgICAgdGhpcy5zdGVwcy5mb3JFYWNoKHN0ZXAgPT4ge1xyXG4gICAgICAgIHN0ZXAuc3RhdHVzID0gUG9TdGVwcGVyU3RhdHVzLkRlZmF1bHQ7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgdGhpcy5qb2JTY2hlZHVsZXJBY3Rpb25zID0gWy4uLnRoaXMubmV4dFBhZ2VBY3Rpb25zXTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzYXZlKG1vZGVsOiBQb0pvYlNjaGVkdWxlckludGVybmFsLCBwYXJhbUlkKSB7XHJcbiAgICBjb25zdCBzYXZlT3BlcmF0aW9uID0gcGFyYW1JZFxyXG4gICAgICA/IHRoaXMucG9QYWdlSm9iU2NoZWR1bGVyU2VydmljZS51cGRhdGVSZXNvdXJjZShwYXJhbUlkLCBtb2RlbClcclxuICAgICAgOiB0aGlzLnBvUGFnZUpvYlNjaGVkdWxlclNlcnZpY2UuY3JlYXRlUmVzb3VyY2UobW9kZWwpO1xyXG5cclxuICAgIGNvbnN0IG1zZ1N1Y2Nlc3MgPSBwYXJhbUlkXHJcbiAgICAgID8gdGhpcy5saXRlcmFscy5zYXZlTm90aWZpY2F0aW9uU3VjY2Vzc1VwZGF0ZVxyXG4gICAgICA6IHRoaXMubGl0ZXJhbHMuc2F2ZU5vdGlmaWNhdGlvblN1Y2Nlc3NTYXZlO1xyXG5cclxuICAgIHRoaXMuZW1pdFN1Y2Nlc3NNZXNzYWdlKG1zZ1N1Y2Nlc3MsIHNhdmVPcGVyYXRpb24pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRNb2RlbFJlY3VycmVudCgpIHtcclxuICAgIHRoaXMubW9kZWwucmVjdXJyZW50ID0gdGhpcy5tb2RlbC5wZXJpb2RpY2l0eSA9PT0gJ3NpbmdsZScgPyBmYWxzZSA6IHRoaXMubW9kZWwucmVjdXJyZW50O1xyXG4gIH1cclxufVxyXG4iLCI8cG8tcGFnZS1kZWZhdWx0IFtwLWFjdGlvbnNdPVwiam9iU2NoZWR1bGVyQWN0aW9uc1wiIFtwLWJyZWFkY3J1bWJdPVwiYnJlYWRjcnVtYlwiIFtwLXRpdGxlXT1cInRpdGxlXCI+XHJcbiAgPGRpdiBjbGFzcz1cInBvLXJvd1wiPlxyXG4gICAgPHBvLXN0ZXBwZXJcclxuICAgICAgY2xhc3M9XCJwby1sZy0zIHBvLXhsLTJcIlxyXG4gICAgICBwLXNlcXVlbnRpYWw9XCJ0cnVlXCJcclxuICAgICAgW3Atb3JpZW50YXRpb25dPVwic3RlcHBlck9yaWVudGF0aW9uXCJcclxuICAgICAgW3Atc3RlcF09XCJzdGVwXCJcclxuICAgICAgW3Atc3RlcHNdPVwic3RlcHNcIlxyXG4gICAgICAocC1jaGFuZ2Utc3RlcCk9XCJuZXh0U3RlcCgkZXZlbnQpXCJcclxuICAgID5cclxuICAgIDwvcG8tc3RlcHBlcj5cclxuXHJcbiAgICA8cG8tY29udGFpbmVyIGNsYXNzPVwicG8tbGctOCBwby14bC02XCI+XHJcbiAgICAgIDxmb3JtICNmb3JtU2NoZWR1bGVyPVwibmdGb3JtXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInBvLXJvd1wiPlxyXG4gICAgICAgICAgPHBvLXBhZ2Utam9iLXNjaGVkdWxlci1leGVjdXRpb25cclxuICAgICAgICAgICAgW3Atbm8tcGFyYW1ldGVyc109XCJwYXJhbWV0ZXJzRW1wdHlcIlxyXG4gICAgICAgICAgICBbaGlkZGVuXT1cInN0ZXAgIT09IDFcIlxyXG4gICAgICAgICAgICAjc2NoZWR1bGVyRXhlY3V0aW9uXHJcbiAgICAgICAgICAgIGNsYXNzPVwicG8tbWQtMTJcIlxyXG4gICAgICAgICAgICBbcC1pcy1lZGl0XT1cImlzRWRpdFwiXHJcbiAgICAgICAgICAgIFtwLWxpdGVyYWxzXT1cImxpdGVyYWxzXCJcclxuICAgICAgICAgICAgW3AtdmFsdWVdPVwibW9kZWxcIlxyXG4gICAgICAgICAgICAocC1jaGFuZ2UtcHJvY2Vzcyk9XCJvbkNoYW5nZVByb2Nlc3MoJGV2ZW50KVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICA8L3BvLXBhZ2Utam9iLXNjaGVkdWxlci1leGVjdXRpb24+XHJcblxyXG4gICAgICAgICAgPHBvLXBhZ2Utam9iLXNjaGVkdWxlci1wYXJhbWV0ZXJzXHJcbiAgICAgICAgICAgICpuZ0lmPVwic3RlcCA9PT0gMlwiXHJcbiAgICAgICAgICAgICNzY2hlZHVsZXJQYXJhbWV0ZXJzXHJcbiAgICAgICAgICAgIGNsYXNzPVwicG8tbWQtMTJcIlxyXG4gICAgICAgICAgICBbcC1saXRlcmFsc109XCJsaXRlcmFsc1wiXHJcbiAgICAgICAgICAgIFtwLXBhcmFtZXRlcnNdPVwicGFyYW1ldGVycyB8fCBbXVwiXHJcbiAgICAgICAgICAgIFsocC12YWx1ZSldPVwibW9kZWwuZXhlY3V0aW9uUGFyYW1ldGVyXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgIDwvcG8tcGFnZS1qb2Itc2NoZWR1bGVyLXBhcmFtZXRlcnM+XHJcblxyXG4gICAgICAgICAgPHBvLXBhZ2Utam9iLXNjaGVkdWxlci1zdW1tYXJ5XHJcbiAgICAgICAgICAgIFtwLW5vLXBhcmFtZXRlcnNdPVwicGFyYW1ldGVyc0VtcHR5XCJcclxuICAgICAgICAgICAgKm5nSWY9XCJzdGVwID09PSAzXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJwby1tZC0xMlwiXHJcbiAgICAgICAgICAgIFtwLWxpdGVyYWxzXT1cImxpdGVyYWxzXCJcclxuICAgICAgICAgICAgW3AtcGFyYW1ldGVyc109XCJwYXJhbWV0ZXJzXCJcclxuICAgICAgICAgICAgW3AtdmFsdWVdPVwicHVibGljVmFsdWVzXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgIDwvcG8tcGFnZS1qb2Itc2NoZWR1bGVyLXN1bW1hcnk+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZm9ybT5cclxuICAgIDwvcG8tY29udGFpbmVyPlxyXG4gIDwvZGl2PlxyXG48L3BvLXBhZ2UtZGVmYXVsdD5cclxuIl19
|