@tiba-spark/client-shared-lib 26.3.0-621 → 26.3.0-622

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.
Files changed (84) hide show
  1. package/esm2022/libraries/components/cloud-confirm-dialog/cloud-confirm-dialog.component.mjs +3 -3
  2. package/esm2022/libraries/components/common-pages/error-page/error-page.component.mjs +7 -32
  3. package/esm2022/libraries/components/field-label/field-label.component.mjs +6 -39
  4. package/esm2022/libraries/components/field-validations/field-validations.component.mjs +5 -6
  5. package/esm2022/libraries/components/guest-open-ticket-dialog/guest-open-ticket-dialog.component.mjs +2 -2
  6. package/esm2022/libraries/components/intercom/intercom.component.mjs +2 -2
  7. package/esm2022/libraries/components/logo/logo.component.mjs +3 -3
  8. package/esm2022/libraries/components/message-bar/float-message-bar.service.mjs +6 -30
  9. package/esm2022/libraries/components/modal-buttons-wrapper/modal-buttons-wrapper.component.mjs +4 -9
  10. package/esm2022/libraries/components/notification/alert-notification/alert-notification.component.mjs +3 -3
  11. package/esm2022/libraries/components/notification/command-notification/command-notification.component.mjs +3 -3
  12. package/esm2022/libraries/components/notification/notification-type-label/notification-type-label.component.mjs +2 -2
  13. package/esm2022/libraries/components/notification/notification.service.mjs +3 -6
  14. package/esm2022/libraries/components/overlay-loading-container/empty-results/empty-results.component.mjs +3 -3
  15. package/esm2022/libraries/components/overlay-loading-container/error-results/error-results.component.mjs +2 -2
  16. package/esm2022/libraries/components/restart-link/restart-link.component.mjs +2 -2
  17. package/esm2022/libraries/directives/index.mjs +1 -4
  18. package/esm2022/libraries/directives/shared-directives.module.mjs +1 -16
  19. package/esm2022/libraries/enums/icon.enum.mjs +3 -1
  20. package/esm2022/libraries/enums/localization.enum.mjs +1 -38
  21. package/esm2022/libraries/enums/message-bar-duration.enum.mjs +2 -4
  22. package/esm2022/libraries/interfaces/table-column.interface.mjs +1 -1
  23. package/esm2022/libraries/modules/layout/layout.state.mjs +2 -2
  24. package/esm2022/libraries/services/can-deactivate.service.mjs +3 -4
  25. package/esm2022/libraries/services/modal.service.mjs +1 -14
  26. package/fesm2022/tiba-spark-client-shared-lib.mjs +50 -400
  27. package/fesm2022/tiba-spark-client-shared-lib.mjs.map +1 -1
  28. package/libraries/components/common-pages/error-page/error-page.component.d.ts +2 -10
  29. package/libraries/components/common-pages/error-page/error-page.component.d.ts.map +1 -1
  30. package/libraries/components/field-label/field-label.component.d.ts +3 -8
  31. package/libraries/components/field-label/field-label.component.d.ts.map +1 -1
  32. package/libraries/components/field-validations/field-validations.component.d.ts +4 -0
  33. package/libraries/components/field-validations/field-validations.component.d.ts.map +1 -1
  34. package/libraries/components/message-bar/float-message-bar.service.d.ts +0 -2
  35. package/libraries/components/message-bar/float-message-bar.service.d.ts.map +1 -1
  36. package/libraries/components/modal-buttons-wrapper/modal-buttons-wrapper.component.d.ts.map +1 -1
  37. package/libraries/components/notification/alert-notification/alert-notification.component.d.ts.map +1 -1
  38. package/libraries/components/notification/command-notification/command-notification.component.d.ts.map +1 -1
  39. package/libraries/components/notification/notification.service.d.ts.map +1 -1
  40. package/libraries/directives/index.d.ts +0 -3
  41. package/libraries/directives/index.d.ts.map +1 -1
  42. package/libraries/directives/shared-directives.module.d.ts +4 -7
  43. package/libraries/directives/shared-directives.module.d.ts.map +1 -1
  44. package/libraries/enums/icon.enum.d.ts +4 -2
  45. package/libraries/enums/icon.enum.d.ts.map +1 -1
  46. package/libraries/enums/localization.enum.d.ts +0 -37
  47. package/libraries/enums/localization.enum.d.ts.map +1 -1
  48. package/libraries/enums/message-bar-duration.enum.d.ts +1 -3
  49. package/libraries/enums/message-bar-duration.enum.d.ts.map +1 -1
  50. package/libraries/interfaces/table-column.interface.d.ts +0 -1
  51. package/libraries/interfaces/table-column.interface.d.ts.map +1 -1
  52. package/libraries/services/can-deactivate.service.d.ts.map +1 -1
  53. package/libraries/services/modal.service.d.ts +0 -1
  54. package/libraries/services/modal.service.d.ts.map +1 -1
  55. package/package.json +1 -1
  56. package/src/libraries/theme/_calendar.scss +1 -2
  57. package/src/libraries/theme/_card.scss +5 -6
  58. package/src/libraries/theme/_forms.scss +1 -1
  59. package/src/libraries/theme/_mixins.scss +1 -0
  60. package/src/libraries/theme/_modals.scss +2 -3
  61. package/src/libraries/theme/_ngx.scss +1 -0
  62. package/src/libraries/theme/_tables.scss +2 -3
  63. package/src/libraries/theme/_tabs.scss +4 -6
  64. package/src/libraries/theme/_utils.scss +4 -123
  65. package/src/libraries/theme/_variables.scss +8 -35
  66. package/src/libraries/theme/assets/icons/tech-tools-module-404.svg +11 -0
  67. package/src/libraries/theme/components/_carousel.scss +2 -2
  68. package/src/libraries/theme/components/_tb-search.scss +4 -10
  69. package/src/libraries/theme/mat-components/_mat-date-picker.scss +0 -4
  70. package/src/libraries/theme/mat-components/_mat-input.scss +0 -5
  71. package/src/libraries/theme/mat-components/_mat-menu.scss +14 -40
  72. package/src/libraries/theme/mat-components/_mat-select.scss +1 -23
  73. package/src/libraries/theme/mat-components/_mat-selection-list.scss +3 -2
  74. package/src/libraries/theme/mat-components/_mat-step.scss +0 -19
  75. package/src/libraries/theme/theme.scss +0 -119
  76. package/esm2022/libraries/directives/clear-all-button.directive.mjs +0 -49
  77. package/esm2022/libraries/directives/disabled.directive.mjs +0 -121
  78. package/esm2022/libraries/directives/icon-button.directive.mjs +0 -36
  79. package/libraries/directives/clear-all-button.directive.d.ts +0 -19
  80. package/libraries/directives/clear-all-button.directive.d.ts.map +0 -1
  81. package/libraries/directives/disabled.directive.d.ts +0 -30
  82. package/libraries/directives/disabled.directive.d.ts.map +0 -1
  83. package/libraries/directives/icon-button.directive.d.ts +0 -14
  84. package/libraries/directives/icon-button.directive.d.ts.map +0 -1
@@ -13,17 +13,16 @@ export class FieldValidationsComponent extends BaseComponent {
13
13
  constructor(controlContainer) {
14
14
  super();
15
15
  this.controlContainer = controlContainer;
16
+ this.ObjectKeys = Object.keys;
16
17
  }
17
- // Only the first error shows, so a field failing several rules still says what to fix (not just "Invalid").
18
18
  getErrors(errors) {
19
19
  if (errors) {
20
20
  delete errors.mask; // remove default NgxMaskDirective validation
21
21
  }
22
- const first = errors && Object.keys(errors)[0];
23
- return first ? { [first]: errors[first] } : null;
22
+ return errors;
24
23
  }
25
24
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FieldValidationsComponent, deps: [{ token: i1.ControlContainer }], target: i0.ɵɵFactoryTarget.Component }); }
26
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: FieldValidationsComponent, isStandalone: true, selector: "[tb-field-validations]", inputs: { controlName: "controlName", label: "label", errors: "errors", touched: "touched" }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"touched || controlContainer.control.get(controlName)?.touched\">\n <ng-container *tbVar=\"getErrors | wrapFn: controlContainer.control.get(controlName)?.errors ?? errors as errors\">\n <ng-container>\n <div *ngIf=\"errors?.required\">\n {{ L.form_validation_required_message | translate }}</div>\n <div *ngIf=\"errors?.invalidDate\">\n {{ errors.invalidDate.example ? (L.form_validation_invalid_date_example | translate: { example: errors.invalidDate.example })\n : (L.form_validation_invalid_date_message | translate) }}</div>\n <div *ngIf=\"errors?.invalidDateRange\">\n {{ L.form_validation_invalid_date_range | translate }}</div>\n <div *ngIf=\"errors?.invalidTerms\">\n {{ L.form_validation_terms_policy | translate }}</div>\n <div *ngIf=\"errors?.min min\">\n {{ L.form_validation_min_message | translate: { controlName: label | translate, value: errors?.min.min || 0 } }}\n </div>\n <div *ngIf=\"errors?.max\">\n {{ L.form_validation_max_message | translate: { controlName: label | translate, value: errors?.max.max || 0 } }}\n </div>\n <div *ngIf=\"errors?.minlength\">\n {{ L.form_validation_min_length_message | translate: { controlName: label | translate, value: errors?.minlength.requiredLength || 0 } }}\n </div>\n <div *ngIf=\"errors?.maxlength\">\n {{ L.form_validation_max_length_message | translate: { controlName: label | translate, value: errors?.maxlength.requiredLength || 0 } }}\n </div>\n <div *ngIf=\"errors?.invalidNumberLength\">\n {{ L.form_validation_invalid_length_message | translate: { controlName: label | translate, value: errors?.invalidNumberLength.requiredLength\n || 0 } }}\n </div>\n <div *ngIf=\"errors?.integerNumber\">\n {{ L.form_validation_invalid_integer_number_message | translate: { controlName: label | translate, value: errors?.integerNumber.value || 0 }\n }}\n </div>\n <div *ngIf=\"errors?.integerPositiveNumber\">\n {{ L.form_validation_invalid_integer_positive_number_message | translate: { controlName: label | translate, value:\n errors?.integerPositiveNumber.value || 0 } }}\n </div>\n <div *ngIf=\"errors?.decimalNumber\">\n {{ L.form_validation_invalid_decimal_number_message | translate: { controlName: label | translate, value: errors?.decimalNumber.value || 0 }\n }}\n </div>\n <div *ngIf=\"errors?.decimalPositiveNumber\">\n {{ L.form_validation_invalid_decimal_positive_number_message | translate: { controlName: label | translate, value:\n errors?.decimalPositiveNumber.value || 0 } }}\n </div>\n <div *ngIf=\"errors?.positiveNumbers\">\n {{ L.form_validation_invalid_positive_number_message | translate: { controlName: label | translate, value: errors?.positiveNumbers.value || 0\n } }}\n </div>\n <div *ngIf=\"errors?.positiveNumbersGreaterThanZero\">\n {{ L.form_validation_invalid_positive_number_greater_than_zero | translate: { controlName: label | translate, value:\n errors?.positiveNumbersGreaterThanZero.value || 0 } }}\n </div>\n <div *ngIf=\"errors?.mobileNumbers\">\n {{ L.form_validation_invalid_mobile_number_message | translate: { controlName: label | translate, value: errors?.mobileNumbers.value || 0 } }}\n </div>\n <div *ngIf=\"errors?.email\">\n {{ L.form_validation_email_pattern | translate: { controlName: label | translate} }}\n </div>\n <div *ngIf=\"errors?.pattern\">\n {{ L.form_validation_password_pattern | translate: { controlName: label | translate} }}\n </div>\n <div *ngIf=\"errors?.passwordPolicyRequirements\">\n {{ L.form_validation_password_policy | translate: { controlName: label | translate} }}\n </div>\n <div *ngIf=\"errors?.passwordNotMatch\">\n {{ L.form_validation_password_not_match | translate: { controlName: label | translate} }}\n </div>\n <div *ngIf=\"errors?.passwordMatch\">\n {{ L.form_validation_password_match | translate: { controlName: label | translate} }}\n </div>\n <div *ngIf=\"errors?.noWhitespaceWithinSentence\">\n {{ L.form_validation_no_white_space_within_sentence | translate: { controlName: label | translate} }}\n </div>\n <div *ngIf=\"errors?.noDotWithinSentence\">\n {{ L.form_validation_no_dot_space_within_sentence | translate: { controlName: label | translate} }}\n </div>\n <div *ngIf=\"errors?.guidIsValid\">\n {{ L.form_validation_invalid_uuid | translate: { controlName: label | translate} }}\n </div>\n <div *ngIf=\"errors?.noDefaultAccessProfile\">\n {{ L.no_access_default_profile | translate: { controlName: label | translate,\n companyName: errors?.noDefaultAccessProfile?.companyName } }}\n </div>\n <div *ngIf=\"errors?.noEmoji\">\n {{ L.form_validation_invalid_no_emoji_message | translate: { controlName: label | translate, value: errors?.noEmoji.value || 0 } }}\n </div>\n <div *ngIf=\"errors?.form_validation_unsafe_html\">\n {{ L.form_validation_unsafe_html | translate }}\n </div>\n <div *ngIf=\"errors?.ipv4Format\">\n {{ L.form_validation_invalid_ipv4_message | translate: { controlName: label | translate, value: errors?.ipv4Format.value } }}\n </div>\n <div *ngIf=\"errors?.ipv4NotZero\">\n {{ L.form_validation_ipv4_not_zero | translate: { controlName: label | translate } }}\n </div>\n <div *ngIf=\"errors?.duplicateIP\">\n {{ L.form_validation_duplicate_ip | translate: { controlName: label | translate } }}\n </div>\n <div *ngIf=\"errors?.alphanumericRegex\">\n {{ L.form_validation_alphanumeric_message | translate: { controlName: label | translate, value: errors?.alphanumericRegex.value || 0 } }}\n </div>\n <div *ngIf=\"errors?.validatePositiveInteger\">\n {{ L.form_validation_invalid_positive_integer_number_message | translate: { controlName: label | translate, value:\n errors?.validatePositiveInteger.value || 0 } }}\n </div>\n <div *ngIf=\"errors?.roleNameAlreadyExists\">\n {{ L.role_name_already_exists | translate }}\n </div>\n <div *ngIf=\"errors?.rateNumberAlreadyExists\">\n {{ L.rate_number_already_exists | translate }}\n </div>\n <div *ngIf=\"errors?.accessProfileNumberTaken\">\n {{ L.access_profile_number_already_exists | translate }}\n </div>\n <div *ngIf=\"errors?.cashierNumberTaken\">\n {{ L.cashier_number_already_exists | translate }}\n </div>\n <div *ngIf=\"errors?.signCodeInUse\">\n {{ L.sign_code_already_in_use | translate }}\n </div>\n <div *ngIf=\"errors?.signCodeInvalidFormat\">\n {{ L.sign_code_invalid_format | translate }}\n </div>\n <div *ngIf=\"errors?.rateNumberIsZero\">\n {{ L.rate_number_is_zero | translate }}\n </div>\n <div *ngIf=\"errors?.form_validation_invalid_time\">\n {{ L.form_validation_invalid_time | translate: { controlName: label ,from: '00:00',to:'00:00' } }}\n </div>\n <div *ngIf=\"errors?.form_validation_invalid_time_format\">\n {{ L.form_validation_invalid_time_format | translate: { controlName: label } }}\n </div>\n <div *ngIf=\"errors?.positiveIntegerNumbersGreaterThanZeroRegex\">\n {{ L.form_validation_invalid_positive_integer_number_wo_zero_message | translate: { controlName: label | translate, value:\n errors?.positiveIntegerNumbersGreaterThanZeroRegex.value || 0 } }}\n </div>\n <div *ngIf=\"errors?.form_validation_units_balance_maximum\">\n {{ L.form_validation_units_balance_maximum | translate: { controlName: label | translate } }}\n </div>\n <div *ngIf=\"errors?.form_validation_units_balance_minimum\">\n {{ L.form_validation_units_balance_minimum | translate: { controlName: label | translate } }}\n </div>\n <div *ngIf=\"errors?.form_validation_invalid_percentage\">\n {{ L.form_validation_invalid_percentage_message | translate }}\n </div>\n <div *ngIf=\"errors?.form_validation_invalid_decimal_percentage\">\n {{ L.form_validation_invalid_percentage_decimal_message | translate }}\n </div>\n <div *ngIf=\"errors?.revert_at_must_be_less_than_occupancy\">\n {{ L.revert_at_must_be_less_than_occupancy_message | translate }}\n </div>\n <div *ngIf=\"errors?.revert_at_must_be_more_than_occupancy\">\n {{ L.revert_at_must_be_more_than_occupancy_message | translate }}\n </div>\n <div *ngIf=\"errors?.car_plate_sequential_required\">\n {{ L.car_plate_sequential_required | translate }}\n </div>\n <div *ngIf=\"errors?.card_sequential_required\">\n {{ L.card_sequential_required | translate }}\n </div>\n </ng-container>\n </ng-container>\n</ng-container>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: WrapFnPipe, name: "wrapFn" }, { kind: "ngmodule", type: LocalizationModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: SharedDirectivesModule }, { kind: "directive", type: i4.VarDirective, selector: "[tbVar]", inputs: ["tbVar"] }] }); }
25
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: FieldValidationsComponent, isStandalone: true, selector: "[tb-field-validations]", inputs: { controlName: "controlName", label: "label", errors: "errors", touched: "touched" }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"touched || controlContainer.control.get(controlName)?.touched\">\n <ng-container *tbVar=\"getErrors | wrapFn: controlContainer.control.get(controlName)?.errors ?? errors as errors\">\n <div *ngIf=\"ObjectKeys(errors || {}).length > 1; then hasMultiErrors else hasOneError\"></div>\n <ng-template #hasMultiErrors>\n {{ L.invalid | translate: { controlName: label | translate} }}\n </ng-template>\n <ng-template #hasOneError>\n <div *ngIf=\"errors?.required\">\n {{ L.form_validation_required_message | translate }}</div>\n <div *ngIf=\"errors?.invalidDate\">\n {{ L.form_validation_invalid_date_message | translate }}</div>\n <div *ngIf=\"errors?.invalidDateRange\">\n {{ L.form_validation_invalid_date_range | translate }}</div>\n <div *ngIf=\"errors?.invalidTerms\">\n {{ L.form_validation_terms_policy | translate }}</div>\n <div *ngIf=\"errors?.min min\">\n {{ L.form_validation_min_message | translate: { controlName: label | translate, value: errors?.min.min || 0 } }}\n </div>\n <div *ngIf=\"errors?.max\">\n {{ L.form_validation_max_message | translate: { controlName: label | translate, value: errors?.max.max || 0 } }}\n </div>\n <div *ngIf=\"errors?.minlength\">\n {{ L.form_validation_min_length_message | translate: { controlName: label | translate, value: errors?.minlength.requiredLength || 0 } }}\n </div>\n <div *ngIf=\"errors?.maxlength\">\n {{ L.form_validation_max_length_message | translate: { controlName: label | translate, value: errors?.maxlength.requiredLength || 0 } }}\n </div>\n <div *ngIf=\"errors?.invalidNumberLength\">\n {{ L.form_validation_invalid_length_message | translate: { controlName: label | translate, value: errors?.invalidNumberLength.requiredLength\n || 0 } }}\n </div>\n <div *ngIf=\"errors?.integerNumber\">\n {{ L.form_validation_invalid_integer_number_message | translate: { controlName: label | translate, value: errors?.integerNumber.value || 0 }\n }}\n </div>\n <div *ngIf=\"errors?.integerPositiveNumber\">\n {{ L.form_validation_invalid_integer_positive_number_message | translate: { controlName: label | translate, value:\n errors?.integerPositiveNumber.value || 0 } }}\n </div>\n <div *ngIf=\"errors?.decimalNumber\">\n {{ L.form_validation_invalid_decimal_number_message | translate: { controlName: label | translate, value: errors?.decimalNumber.value || 0 }\n }}\n </div>\n <div *ngIf=\"errors?.decimalPositiveNumber\">\n {{ L.form_validation_invalid_decimal_positive_number_message | translate: { controlName: label | translate, value:\n errors?.decimalPositiveNumber.value || 0 } }}\n </div>\n <div *ngIf=\"errors?.positiveNumbers\">\n {{ L.form_validation_invalid_positive_number_message | translate: { controlName: label | translate, value: errors?.positiveNumbers.value || 0\n } }}\n </div>\n <div *ngIf=\"errors?.positiveNumbersGreaterThanZero\">\n {{ L.form_validation_invalid_positive_number_greater_than_zero | translate: { controlName: label | translate, value:\n errors?.positiveNumbersGreaterThanZero.value || 0 } }}\n </div>\n <div *ngIf=\"errors?.mobileNumbers\">\n {{ L.form_validation_invalid_mobile_number_message | translate: { controlName: label | translate, value: errors?.mobileNumbers.value || 0 } }}\n </div>\n <div *ngIf=\"errors?.email\">\n {{ L.form_validation_email_pattern | translate: { controlName: label | translate} }}\n </div>\n <div *ngIf=\"errors?.pattern\">\n {{ L.form_validation_password_pattern | translate: { controlName: label | translate} }}\n </div>\n <div *ngIf=\"errors?.passwordPolicyRequirements\">\n {{ L.form_validation_password_policy | translate: { controlName: label | translate} }}\n </div>\n <div *ngIf=\"errors?.passwordNotMatch\">\n {{ L.form_validation_password_not_match | translate: { controlName: label | translate} }}\n </div>\n <div *ngIf=\"errors?.passwordMatch\">\n {{ L.form_validation_password_match | translate: { controlName: label | translate} }}\n </div>\n <div *ngIf=\"errors?.noWhitespaceWithinSentence\">\n {{ L.form_validation_no_white_space_within_sentence | translate: { controlName: label | translate} }}\n </div>\n <div *ngIf=\"errors?.noDotWithinSentence\">\n {{ L.form_validation_no_dot_space_within_sentence | translate: { controlName: label | translate} }}\n </div>\n <div *ngIf=\"errors?.guidIsValid\">\n {{ L.form_validation_invalid_uuid | translate: { controlName: label | translate} }}\n </div>\n <div *ngIf=\"errors?.noDefaultAccessProfile\">\n {{ L.no_access_default_profile | translate: { controlName: label | translate,\n companyName: errors?.noDefaultAccessProfile?.companyName } }}\n </div>\n <div *ngIf=\"errors?.noEmoji\">\n {{ L.form_validation_invalid_no_emoji_message | translate: { controlName: label | translate, value: errors?.noEmoji.value || 0 } }}\n </div>\n <div *ngIf=\"errors?.form_validation_unsafe_html\">\n {{ L.form_validation_unsafe_html | translate }}\n </div>\n <div *ngIf=\"errors?.ipv4Format\">\n {{ L.form_validation_invalid_ipv4_message | translate: { controlName: label | translate, value: errors?.ipv4Format.value } }}\n </div>\n <div *ngIf=\"errors?.ipv4NotZero\">\n {{ L.form_validation_ipv4_not_zero | translate: { controlName: label | translate } }}\n </div>\n <div *ngIf=\"errors?.duplicateIP\">\n {{ L.form_validation_duplicate_ip | translate: { controlName: label | translate } }}\n </div>\n <div *ngIf=\"errors?.alphanumericRegex\">\n {{ L.form_validation_alphanumeric_message | translate: { controlName: label | translate, value: errors?.alphanumericRegex.value || 0 } }}\n </div>\n <div *ngIf=\"errors?.validatePositiveInteger\">\n {{ L.form_validation_invalid_positive_integer_number_message | translate: { controlName: label | translate, value:\n errors?.validatePositiveInteger.value || 0 } }}\n </div>\n <div *ngIf=\"errors?.roleNameAlreadyExists\">\n {{ L.role_name_already_exists | translate }}\n </div>\n <div *ngIf=\"errors?.rateNumberAlreadyExists\">\n {{ L.rate_number_already_exists | translate }}\n </div>\n <div *ngIf=\"errors?.accessProfileNumberTaken\">\n {{ L.access_profile_number_already_exists | translate }}\n </div>\n <div *ngIf=\"errors?.cashierNumberTaken\">\n {{ L.cashier_number_already_exists | translate }}\n </div>\n <div *ngIf=\"errors?.signCodeInUse\">\n {{ L.sign_code_already_in_use | translate }}\n </div>\n <div *ngIf=\"errors?.signCodeInvalidFormat\">\n {{ L.sign_code_invalid_format | translate }}\n </div>\n <div *ngIf=\"errors?.rateNumberIsZero\">\n {{ L.rate_number_is_zero | translate }}\n </div>\n <div *ngIf=\"errors?.form_validation_invalid_time\">\n {{ L.form_validation_invalid_time | translate: { controlName: label ,from: '00:00',to:'00:00' } }}\n </div>\n <div *ngIf=\"errors?.form_validation_invalid_time_format\">\n {{ L.form_validation_invalid_time_format | translate: { controlName: label } }}\n </div>\n <div *ngIf=\"errors?.positiveIntegerNumbersGreaterThanZeroRegex\">\n {{ L.form_validation_invalid_positive_integer_number_wo_zero_message | translate: { controlName: label | translate, value:\n errors?.positiveIntegerNumbersGreaterThanZeroRegex.value || 0 } }}\n </div>\n <div *ngIf=\"errors?.form_validation_units_balance_maximum\">\n {{ L.form_validation_units_balance_maximum | translate: { controlName: label | translate } }}\n </div>\n <div *ngIf=\"errors?.form_validation_units_balance_minimum\">\n {{ L.form_validation_units_balance_minimum | translate: { controlName: label | translate } }}\n </div>\n <div *ngIf=\"errors?.form_validation_invalid_percentage\">\n {{ L.form_validation_invalid_percentage_message | translate }}\n </div>\n <div *ngIf=\"errors?.form_validation_invalid_decimal_percentage\">\n {{ L.form_validation_invalid_percentage_decimal_message | translate }}\n </div>\n <div *ngIf=\"errors?.revert_at_must_be_less_than_occupancy\">\n {{ L.revert_at_must_be_less_than_occupancy_message | translate }}\n </div>\n <div *ngIf=\"errors?.revert_at_must_be_more_than_occupancy\">\n {{ L.revert_at_must_be_more_than_occupancy_message | translate }}\n </div>\n <div *ngIf=\"errors?.car_plate_sequential_required\">\n {{ L.car_plate_sequential_required | translate }}\n </div>\n <div *ngIf=\"errors?.card_sequential_required\">\n {{ L.card_sequential_required | translate }}\n </div>\n </ng-template>\n </ng-container>\n</ng-container>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: WrapFnPipe, name: "wrapFn" }, { kind: "ngmodule", type: LocalizationModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: SharedDirectivesModule }, { kind: "directive", type: i4.VarDirective, selector: "[tbVar]", inputs: ["tbVar"] }] }); }
27
26
  }
28
27
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FieldValidationsComponent, decorators: [{
29
28
  type: Component,
@@ -32,7 +31,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
32
31
  WrapFnPipe,
33
32
  LocalizationModule,
34
33
  SharedDirectivesModule,
35
- ], template: "<ng-container *ngIf=\"touched || controlContainer.control.get(controlName)?.touched\">\n <ng-container *tbVar=\"getErrors | wrapFn: controlContainer.control.get(controlName)?.errors ?? errors as errors\">\n <ng-container>\n <div *ngIf=\"errors?.required\">\n {{ L.form_validation_required_message | translate }}</div>\n <div *ngIf=\"errors?.invalidDate\">\n {{ errors.invalidDate.example ? (L.form_validation_invalid_date_example | translate: { example: errors.invalidDate.example })\n : (L.form_validation_invalid_date_message | translate) }}</div>\n <div *ngIf=\"errors?.invalidDateRange\">\n {{ L.form_validation_invalid_date_range | translate }}</div>\n <div *ngIf=\"errors?.invalidTerms\">\n {{ L.form_validation_terms_policy | translate }}</div>\n <div *ngIf=\"errors?.min min\">\n {{ L.form_validation_min_message | translate: { controlName: label | translate, value: errors?.min.min || 0 } }}\n </div>\n <div *ngIf=\"errors?.max\">\n {{ L.form_validation_max_message | translate: { controlName: label | translate, value: errors?.max.max || 0 } }}\n </div>\n <div *ngIf=\"errors?.minlength\">\n {{ L.form_validation_min_length_message | translate: { controlName: label | translate, value: errors?.minlength.requiredLength || 0 } }}\n </div>\n <div *ngIf=\"errors?.maxlength\">\n {{ L.form_validation_max_length_message | translate: { controlName: label | translate, value: errors?.maxlength.requiredLength || 0 } }}\n </div>\n <div *ngIf=\"errors?.invalidNumberLength\">\n {{ L.form_validation_invalid_length_message | translate: { controlName: label | translate, value: errors?.invalidNumberLength.requiredLength\n || 0 } }}\n </div>\n <div *ngIf=\"errors?.integerNumber\">\n {{ L.form_validation_invalid_integer_number_message | translate: { controlName: label | translate, value: errors?.integerNumber.value || 0 }\n }}\n </div>\n <div *ngIf=\"errors?.integerPositiveNumber\">\n {{ L.form_validation_invalid_integer_positive_number_message | translate: { controlName: label | translate, value:\n errors?.integerPositiveNumber.value || 0 } }}\n </div>\n <div *ngIf=\"errors?.decimalNumber\">\n {{ L.form_validation_invalid_decimal_number_message | translate: { controlName: label | translate, value: errors?.decimalNumber.value || 0 }\n }}\n </div>\n <div *ngIf=\"errors?.decimalPositiveNumber\">\n {{ L.form_validation_invalid_decimal_positive_number_message | translate: { controlName: label | translate, value:\n errors?.decimalPositiveNumber.value || 0 } }}\n </div>\n <div *ngIf=\"errors?.positiveNumbers\">\n {{ L.form_validation_invalid_positive_number_message | translate: { controlName: label | translate, value: errors?.positiveNumbers.value || 0\n } }}\n </div>\n <div *ngIf=\"errors?.positiveNumbersGreaterThanZero\">\n {{ L.form_validation_invalid_positive_number_greater_than_zero | translate: { controlName: label | translate, value:\n errors?.positiveNumbersGreaterThanZero.value || 0 } }}\n </div>\n <div *ngIf=\"errors?.mobileNumbers\">\n {{ L.form_validation_invalid_mobile_number_message | translate: { controlName: label | translate, value: errors?.mobileNumbers.value || 0 } }}\n </div>\n <div *ngIf=\"errors?.email\">\n {{ L.form_validation_email_pattern | translate: { controlName: label | translate} }}\n </div>\n <div *ngIf=\"errors?.pattern\">\n {{ L.form_validation_password_pattern | translate: { controlName: label | translate} }}\n </div>\n <div *ngIf=\"errors?.passwordPolicyRequirements\">\n {{ L.form_validation_password_policy | translate: { controlName: label | translate} }}\n </div>\n <div *ngIf=\"errors?.passwordNotMatch\">\n {{ L.form_validation_password_not_match | translate: { controlName: label | translate} }}\n </div>\n <div *ngIf=\"errors?.passwordMatch\">\n {{ L.form_validation_password_match | translate: { controlName: label | translate} }}\n </div>\n <div *ngIf=\"errors?.noWhitespaceWithinSentence\">\n {{ L.form_validation_no_white_space_within_sentence | translate: { controlName: label | translate} }}\n </div>\n <div *ngIf=\"errors?.noDotWithinSentence\">\n {{ L.form_validation_no_dot_space_within_sentence | translate: { controlName: label | translate} }}\n </div>\n <div *ngIf=\"errors?.guidIsValid\">\n {{ L.form_validation_invalid_uuid | translate: { controlName: label | translate} }}\n </div>\n <div *ngIf=\"errors?.noDefaultAccessProfile\">\n {{ L.no_access_default_profile | translate: { controlName: label | translate,\n companyName: errors?.noDefaultAccessProfile?.companyName } }}\n </div>\n <div *ngIf=\"errors?.noEmoji\">\n {{ L.form_validation_invalid_no_emoji_message | translate: { controlName: label | translate, value: errors?.noEmoji.value || 0 } }}\n </div>\n <div *ngIf=\"errors?.form_validation_unsafe_html\">\n {{ L.form_validation_unsafe_html | translate }}\n </div>\n <div *ngIf=\"errors?.ipv4Format\">\n {{ L.form_validation_invalid_ipv4_message | translate: { controlName: label | translate, value: errors?.ipv4Format.value } }}\n </div>\n <div *ngIf=\"errors?.ipv4NotZero\">\n {{ L.form_validation_ipv4_not_zero | translate: { controlName: label | translate } }}\n </div>\n <div *ngIf=\"errors?.duplicateIP\">\n {{ L.form_validation_duplicate_ip | translate: { controlName: label | translate } }}\n </div>\n <div *ngIf=\"errors?.alphanumericRegex\">\n {{ L.form_validation_alphanumeric_message | translate: { controlName: label | translate, value: errors?.alphanumericRegex.value || 0 } }}\n </div>\n <div *ngIf=\"errors?.validatePositiveInteger\">\n {{ L.form_validation_invalid_positive_integer_number_message | translate: { controlName: label | translate, value:\n errors?.validatePositiveInteger.value || 0 } }}\n </div>\n <div *ngIf=\"errors?.roleNameAlreadyExists\">\n {{ L.role_name_already_exists | translate }}\n </div>\n <div *ngIf=\"errors?.rateNumberAlreadyExists\">\n {{ L.rate_number_already_exists | translate }}\n </div>\n <div *ngIf=\"errors?.accessProfileNumberTaken\">\n {{ L.access_profile_number_already_exists | translate }}\n </div>\n <div *ngIf=\"errors?.cashierNumberTaken\">\n {{ L.cashier_number_already_exists | translate }}\n </div>\n <div *ngIf=\"errors?.signCodeInUse\">\n {{ L.sign_code_already_in_use | translate }}\n </div>\n <div *ngIf=\"errors?.signCodeInvalidFormat\">\n {{ L.sign_code_invalid_format | translate }}\n </div>\n <div *ngIf=\"errors?.rateNumberIsZero\">\n {{ L.rate_number_is_zero | translate }}\n </div>\n <div *ngIf=\"errors?.form_validation_invalid_time\">\n {{ L.form_validation_invalid_time | translate: { controlName: label ,from: '00:00',to:'00:00' } }}\n </div>\n <div *ngIf=\"errors?.form_validation_invalid_time_format\">\n {{ L.form_validation_invalid_time_format | translate: { controlName: label } }}\n </div>\n <div *ngIf=\"errors?.positiveIntegerNumbersGreaterThanZeroRegex\">\n {{ L.form_validation_invalid_positive_integer_number_wo_zero_message | translate: { controlName: label | translate, value:\n errors?.positiveIntegerNumbersGreaterThanZeroRegex.value || 0 } }}\n </div>\n <div *ngIf=\"errors?.form_validation_units_balance_maximum\">\n {{ L.form_validation_units_balance_maximum | translate: { controlName: label | translate } }}\n </div>\n <div *ngIf=\"errors?.form_validation_units_balance_minimum\">\n {{ L.form_validation_units_balance_minimum | translate: { controlName: label | translate } }}\n </div>\n <div *ngIf=\"errors?.form_validation_invalid_percentage\">\n {{ L.form_validation_invalid_percentage_message | translate }}\n </div>\n <div *ngIf=\"errors?.form_validation_invalid_decimal_percentage\">\n {{ L.form_validation_invalid_percentage_decimal_message | translate }}\n </div>\n <div *ngIf=\"errors?.revert_at_must_be_less_than_occupancy\">\n {{ L.revert_at_must_be_less_than_occupancy_message | translate }}\n </div>\n <div *ngIf=\"errors?.revert_at_must_be_more_than_occupancy\">\n {{ L.revert_at_must_be_more_than_occupancy_message | translate }}\n </div>\n <div *ngIf=\"errors?.car_plate_sequential_required\">\n {{ L.car_plate_sequential_required | translate }}\n </div>\n <div *ngIf=\"errors?.card_sequential_required\">\n {{ L.card_sequential_required | translate }}\n </div>\n </ng-container>\n </ng-container>\n</ng-container>\n" }]
34
+ ], template: "<ng-container *ngIf=\"touched || controlContainer.control.get(controlName)?.touched\">\n <ng-container *tbVar=\"getErrors | wrapFn: controlContainer.control.get(controlName)?.errors ?? errors as errors\">\n <div *ngIf=\"ObjectKeys(errors || {}).length > 1; then hasMultiErrors else hasOneError\"></div>\n <ng-template #hasMultiErrors>\n {{ L.invalid | translate: { controlName: label | translate} }}\n </ng-template>\n <ng-template #hasOneError>\n <div *ngIf=\"errors?.required\">\n {{ L.form_validation_required_message | translate }}</div>\n <div *ngIf=\"errors?.invalidDate\">\n {{ L.form_validation_invalid_date_message | translate }}</div>\n <div *ngIf=\"errors?.invalidDateRange\">\n {{ L.form_validation_invalid_date_range | translate }}</div>\n <div *ngIf=\"errors?.invalidTerms\">\n {{ L.form_validation_terms_policy | translate }}</div>\n <div *ngIf=\"errors?.min min\">\n {{ L.form_validation_min_message | translate: { controlName: label | translate, value: errors?.min.min || 0 } }}\n </div>\n <div *ngIf=\"errors?.max\">\n {{ L.form_validation_max_message | translate: { controlName: label | translate, value: errors?.max.max || 0 } }}\n </div>\n <div *ngIf=\"errors?.minlength\">\n {{ L.form_validation_min_length_message | translate: { controlName: label | translate, value: errors?.minlength.requiredLength || 0 } }}\n </div>\n <div *ngIf=\"errors?.maxlength\">\n {{ L.form_validation_max_length_message | translate: { controlName: label | translate, value: errors?.maxlength.requiredLength || 0 } }}\n </div>\n <div *ngIf=\"errors?.invalidNumberLength\">\n {{ L.form_validation_invalid_length_message | translate: { controlName: label | translate, value: errors?.invalidNumberLength.requiredLength\n || 0 } }}\n </div>\n <div *ngIf=\"errors?.integerNumber\">\n {{ L.form_validation_invalid_integer_number_message | translate: { controlName: label | translate, value: errors?.integerNumber.value || 0 }\n }}\n </div>\n <div *ngIf=\"errors?.integerPositiveNumber\">\n {{ L.form_validation_invalid_integer_positive_number_message | translate: { controlName: label | translate, value:\n errors?.integerPositiveNumber.value || 0 } }}\n </div>\n <div *ngIf=\"errors?.decimalNumber\">\n {{ L.form_validation_invalid_decimal_number_message | translate: { controlName: label | translate, value: errors?.decimalNumber.value || 0 }\n }}\n </div>\n <div *ngIf=\"errors?.decimalPositiveNumber\">\n {{ L.form_validation_invalid_decimal_positive_number_message | translate: { controlName: label | translate, value:\n errors?.decimalPositiveNumber.value || 0 } }}\n </div>\n <div *ngIf=\"errors?.positiveNumbers\">\n {{ L.form_validation_invalid_positive_number_message | translate: { controlName: label | translate, value: errors?.positiveNumbers.value || 0\n } }}\n </div>\n <div *ngIf=\"errors?.positiveNumbersGreaterThanZero\">\n {{ L.form_validation_invalid_positive_number_greater_than_zero | translate: { controlName: label | translate, value:\n errors?.positiveNumbersGreaterThanZero.value || 0 } }}\n </div>\n <div *ngIf=\"errors?.mobileNumbers\">\n {{ L.form_validation_invalid_mobile_number_message | translate: { controlName: label | translate, value: errors?.mobileNumbers.value || 0 } }}\n </div>\n <div *ngIf=\"errors?.email\">\n {{ L.form_validation_email_pattern | translate: { controlName: label | translate} }}\n </div>\n <div *ngIf=\"errors?.pattern\">\n {{ L.form_validation_password_pattern | translate: { controlName: label | translate} }}\n </div>\n <div *ngIf=\"errors?.passwordPolicyRequirements\">\n {{ L.form_validation_password_policy | translate: { controlName: label | translate} }}\n </div>\n <div *ngIf=\"errors?.passwordNotMatch\">\n {{ L.form_validation_password_not_match | translate: { controlName: label | translate} }}\n </div>\n <div *ngIf=\"errors?.passwordMatch\">\n {{ L.form_validation_password_match | translate: { controlName: label | translate} }}\n </div>\n <div *ngIf=\"errors?.noWhitespaceWithinSentence\">\n {{ L.form_validation_no_white_space_within_sentence | translate: { controlName: label | translate} }}\n </div>\n <div *ngIf=\"errors?.noDotWithinSentence\">\n {{ L.form_validation_no_dot_space_within_sentence | translate: { controlName: label | translate} }}\n </div>\n <div *ngIf=\"errors?.guidIsValid\">\n {{ L.form_validation_invalid_uuid | translate: { controlName: label | translate} }}\n </div>\n <div *ngIf=\"errors?.noDefaultAccessProfile\">\n {{ L.no_access_default_profile | translate: { controlName: label | translate,\n companyName: errors?.noDefaultAccessProfile?.companyName } }}\n </div>\n <div *ngIf=\"errors?.noEmoji\">\n {{ L.form_validation_invalid_no_emoji_message | translate: { controlName: label | translate, value: errors?.noEmoji.value || 0 } }}\n </div>\n <div *ngIf=\"errors?.form_validation_unsafe_html\">\n {{ L.form_validation_unsafe_html | translate }}\n </div>\n <div *ngIf=\"errors?.ipv4Format\">\n {{ L.form_validation_invalid_ipv4_message | translate: { controlName: label | translate, value: errors?.ipv4Format.value } }}\n </div>\n <div *ngIf=\"errors?.ipv4NotZero\">\n {{ L.form_validation_ipv4_not_zero | translate: { controlName: label | translate } }}\n </div>\n <div *ngIf=\"errors?.duplicateIP\">\n {{ L.form_validation_duplicate_ip | translate: { controlName: label | translate } }}\n </div>\n <div *ngIf=\"errors?.alphanumericRegex\">\n {{ L.form_validation_alphanumeric_message | translate: { controlName: label | translate, value: errors?.alphanumericRegex.value || 0 } }}\n </div>\n <div *ngIf=\"errors?.validatePositiveInteger\">\n {{ L.form_validation_invalid_positive_integer_number_message | translate: { controlName: label | translate, value:\n errors?.validatePositiveInteger.value || 0 } }}\n </div>\n <div *ngIf=\"errors?.roleNameAlreadyExists\">\n {{ L.role_name_already_exists | translate }}\n </div>\n <div *ngIf=\"errors?.rateNumberAlreadyExists\">\n {{ L.rate_number_already_exists | translate }}\n </div>\n <div *ngIf=\"errors?.accessProfileNumberTaken\">\n {{ L.access_profile_number_already_exists | translate }}\n </div>\n <div *ngIf=\"errors?.cashierNumberTaken\">\n {{ L.cashier_number_already_exists | translate }}\n </div>\n <div *ngIf=\"errors?.signCodeInUse\">\n {{ L.sign_code_already_in_use | translate }}\n </div>\n <div *ngIf=\"errors?.signCodeInvalidFormat\">\n {{ L.sign_code_invalid_format | translate }}\n </div>\n <div *ngIf=\"errors?.rateNumberIsZero\">\n {{ L.rate_number_is_zero | translate }}\n </div>\n <div *ngIf=\"errors?.form_validation_invalid_time\">\n {{ L.form_validation_invalid_time | translate: { controlName: label ,from: '00:00',to:'00:00' } }}\n </div>\n <div *ngIf=\"errors?.form_validation_invalid_time_format\">\n {{ L.form_validation_invalid_time_format | translate: { controlName: label } }}\n </div>\n <div *ngIf=\"errors?.positiveIntegerNumbersGreaterThanZeroRegex\">\n {{ L.form_validation_invalid_positive_integer_number_wo_zero_message | translate: { controlName: label | translate, value:\n errors?.positiveIntegerNumbersGreaterThanZeroRegex.value || 0 } }}\n </div>\n <div *ngIf=\"errors?.form_validation_units_balance_maximum\">\n {{ L.form_validation_units_balance_maximum | translate: { controlName: label | translate } }}\n </div>\n <div *ngIf=\"errors?.form_validation_units_balance_minimum\">\n {{ L.form_validation_units_balance_minimum | translate: { controlName: label | translate } }}\n </div>\n <div *ngIf=\"errors?.form_validation_invalid_percentage\">\n {{ L.form_validation_invalid_percentage_message | translate }}\n </div>\n <div *ngIf=\"errors?.form_validation_invalid_decimal_percentage\">\n {{ L.form_validation_invalid_percentage_decimal_message | translate }}\n </div>\n <div *ngIf=\"errors?.revert_at_must_be_less_than_occupancy\">\n {{ L.revert_at_must_be_less_than_occupancy_message | translate }}\n </div>\n <div *ngIf=\"errors?.revert_at_must_be_more_than_occupancy\">\n {{ L.revert_at_must_be_more_than_occupancy_message | translate }}\n </div>\n <div *ngIf=\"errors?.car_plate_sequential_required\">\n {{ L.car_plate_sequential_required | translate }}\n </div>\n <div *ngIf=\"errors?.card_sequential_required\">\n {{ L.card_sequential_required | translate }}\n </div>\n </ng-template>\n </ng-container>\n</ng-container>\n" }]
36
35
  }], ctorParameters: () => [{ type: i1.ControlContainer }], propDecorators: { controlName: [{
37
36
  type: Input
38
37
  }], label: [{
@@ -42,4 +41,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
42
41
  }], touched: [{
43
42
  type: Input
44
43
  }] } });
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtdmFsaWRhdGlvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXNoYXJlZC1saWIvc3JjL2xpYnJhcmllcy9jb21wb25lbnRzL2ZpZWxkLXZhbGlkYXRpb25zL2ZpZWxkLXZhbGlkYXRpb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC1zaGFyZWQtbGliL3NyYy9saWJyYXJpZXMvY29tcG9uZW50cy9maWVsZC12YWxpZGF0aW9ucy9maWVsZC12YWxpZGF0aW9ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDNUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7O0FBYXZELE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxhQUFhO0lBTzFELFlBQW1CLGdCQUFrQztRQUNuRCxLQUFLLEVBQUUsQ0FBQztRQURTLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7SUFFckQsQ0FBQztJQUVELDRHQUE0RztJQUM1RyxTQUFTLENBQUMsTUFBK0I7UUFDdkMsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNYLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLDZDQUE2QztRQUNuRSxDQUFDO1FBRUQsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDL0MsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ25ELENBQUM7K0dBbkJVLHlCQUF5QjttR0FBekIseUJBQXlCLHVNQ25CdEMsbTFSQW1LQSwyQ0R0SkksWUFBWSw4SEFDWixVQUFVLDhDQUNWLGtCQUFrQiwyRkFDbEIsc0JBQXNCOzs0RkFHYix5QkFBeUI7a0JBWHJDLFNBQVM7K0JBQ0Usd0JBQXdCLGNBRXRCLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLFVBQVU7d0JBQ1Ysa0JBQWtCO3dCQUNsQixzQkFBc0I7cUJBQ3ZCO3FGQUlRLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbENvbnRhaW5lciwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFNoYXJlZERpcmVjdGl2ZXNNb2R1bGUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7IExvY2FsaXphdGlvbk1vZHVsZSB9IGZyb20gJy4uLy4uL2xvY2FsaXphdGlvbi9sb2NhbGl6YXRpb24ubW9kdWxlJztcbmltcG9ydCB7IFdyYXBGblBpcGUgfSBmcm9tICcuLi8uLi9waXBlcy93cmFwLWZuLnBpcGUnO1xuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UvYmFzZS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdbdGItZmllbGQtdmFsaWRhdGlvbnNdJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpZWxkLXZhbGlkYXRpb25zLmNvbXBvbmVudC5odG1sJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBXcmFwRm5QaXBlLFxuICAgIExvY2FsaXphdGlvbk1vZHVsZSxcbiAgICBTaGFyZWREaXJlY3RpdmVzTW9kdWxlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGaWVsZFZhbGlkYXRpb25zQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG5cbiAgQElucHV0KCkgY29udHJvbE5hbWU6IHN0cmluZztcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcbiAgQElucHV0KCkgZXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbDtcbiAgQElucHV0KCkgdG91Y2hlZDogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgY29udHJvbENvbnRhaW5lcjogQ29udHJvbENvbnRhaW5lcikge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICAvLyBPbmx5IHRoZSBmaXJzdCBlcnJvciBzaG93cywgc28gYSBmaWVsZCBmYWlsaW5nIHNldmVyYWwgcnVsZXMgc3RpbGwgc2F5cyB3aGF0IHRvIGZpeCAobm90IGp1c3QgXCJJbnZhbGlkXCIpLlxuICBnZXRFcnJvcnMoZXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICBpZiAoZXJyb3JzKSB7XG4gICAgICBkZWxldGUgZXJyb3JzLm1hc2s7IC8vIHJlbW92ZSBkZWZhdWx0IE5neE1hc2tEaXJlY3RpdmUgdmFsaWRhdGlvblxuICAgIH1cblxuICAgIGNvbnN0IGZpcnN0ID0gZXJyb3JzICYmIE9iamVjdC5rZXlzKGVycm9ycylbMF07XG4gICAgcmV0dXJuIGZpcnN0ID8geyBbZmlyc3RdOiBlcnJvcnNbZmlyc3RdIH0gOiBudWxsO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwidG91Y2hlZCB8fCBjb250cm9sQ29udGFpbmVyLmNvbnRyb2wuZ2V0KGNvbnRyb2xOYW1lKT8udG91Y2hlZFwiPlxuICA8bmctY29udGFpbmVyICp0YlZhcj1cImdldEVycm9ycyB8IHdyYXBGbjogY29udHJvbENvbnRhaW5lci5jb250cm9sLmdldChjb250cm9sTmFtZSk/LmVycm9ycyA/PyBlcnJvcnMgYXMgZXJyb3JzXCI+XG4gICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/LnJlcXVpcmVkXCI+XG4gICAgICAgIHt7IEwuZm9ybV92YWxpZGF0aW9uX3JlcXVpcmVkX21lc3NhZ2UgfCB0cmFuc2xhdGUgfX08L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/LmludmFsaWREYXRlXCI+XG4gICAgICAgIHt7IGVycm9ycy5pbnZhbGlkRGF0ZS5leGFtcGxlID8gKEwuZm9ybV92YWxpZGF0aW9uX2ludmFsaWRfZGF0ZV9leGFtcGxlIHwgdHJhbnNsYXRlOiB7IGV4YW1wbGU6IGVycm9ycy5pbnZhbGlkRGF0ZS5leGFtcGxlIH0pXG4gICAgICAgIDogKEwuZm9ybV92YWxpZGF0aW9uX2ludmFsaWRfZGF0ZV9tZXNzYWdlIHwgdHJhbnNsYXRlKSB9fTwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImVycm9ycz8uaW52YWxpZERhdGVSYW5nZVwiPlxuICAgICAgICB7eyBMLmZvcm1fdmFsaWRhdGlvbl9pbnZhbGlkX2RhdGVfcmFuZ2UgfCB0cmFuc2xhdGUgfX08L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/LmludmFsaWRUZXJtc1wiPlxuICAgICAgICB7eyBMLmZvcm1fdmFsaWRhdGlvbl90ZXJtc19wb2xpY3kgfCB0cmFuc2xhdGUgfX08L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/Lm1pbiBtaW5cIj5cbiAgICAgICAge3sgTC5mb3JtX3ZhbGlkYXRpb25fbWluX21lc3NhZ2UgfCB0cmFuc2xhdGU6IHsgY29udHJvbE5hbWU6IGxhYmVsIHwgdHJhbnNsYXRlLCB2YWx1ZTogZXJyb3JzPy5taW4ubWluIHx8IDAgfSB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JzPy5tYXhcIj5cbiAgICAgICAge3sgTC5mb3JtX3ZhbGlkYXRpb25fbWF4X21lc3NhZ2UgfCB0cmFuc2xhdGU6IHsgY29udHJvbE5hbWU6IGxhYmVsIHwgdHJhbnNsYXRlLCB2YWx1ZTogZXJyb3JzPy5tYXgubWF4IHx8IDAgfSB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JzPy5taW5sZW5ndGhcIj5cbiAgICAgICAge3sgTC5mb3JtX3ZhbGlkYXRpb25fbWluX2xlbmd0aF9tZXNzYWdlIHwgdHJhbnNsYXRlOiB7IGNvbnRyb2xOYW1lOiBsYWJlbCB8IHRyYW5zbGF0ZSwgdmFsdWU6IGVycm9ycz8ubWlubGVuZ3RoLnJlcXVpcmVkTGVuZ3RoIHx8IDAgfSB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JzPy5tYXhsZW5ndGhcIj5cbiAgICAgICAge3sgTC5mb3JtX3ZhbGlkYXRpb25fbWF4X2xlbmd0aF9tZXNzYWdlIHwgdHJhbnNsYXRlOiB7IGNvbnRyb2xOYW1lOiBsYWJlbCB8IHRyYW5zbGF0ZSwgdmFsdWU6IGVycm9ycz8ubWF4bGVuZ3RoLnJlcXVpcmVkTGVuZ3RoIHx8IDAgfSB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JzPy5pbnZhbGlkTnVtYmVyTGVuZ3RoXCI+XG4gICAgICAgIHt7IEwuZm9ybV92YWxpZGF0aW9uX2ludmFsaWRfbGVuZ3RoX21lc3NhZ2UgfCB0cmFuc2xhdGU6IHsgY29udHJvbE5hbWU6IGxhYmVsIHwgdHJhbnNsYXRlLCB2YWx1ZTogZXJyb3JzPy5pbnZhbGlkTnVtYmVyTGVuZ3RoLnJlcXVpcmVkTGVuZ3RoXG4gICAgICAgIHx8IDAgfSB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JzPy5pbnRlZ2VyTnVtYmVyXCI+XG4gICAgICAgIHt7IEwuZm9ybV92YWxpZGF0aW9uX2ludmFsaWRfaW50ZWdlcl9udW1iZXJfbWVzc2FnZSB8IHRyYW5zbGF0ZTogeyBjb250cm9sTmFtZTogbGFiZWwgfCB0cmFuc2xhdGUsIHZhbHVlOiBlcnJvcnM/LmludGVnZXJOdW1iZXIudmFsdWUgfHwgMCB9XG4gICAgICAgIH19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/LmludGVnZXJQb3NpdGl2ZU51bWJlclwiPlxuICAgICAgICB7eyBMLmZvcm1fdmFsaWRhdGlvbl9pbnZhbGlkX2ludGVnZXJfcG9zaXRpdmVfbnVtYmVyX21lc3NhZ2UgfCB0cmFuc2xhdGU6IHsgY29udHJvbE5hbWU6IGxhYmVsIHwgdHJhbnNsYXRlLCB2YWx1ZTpcbiAgICAgICAgZXJyb3JzPy5pbnRlZ2VyUG9zaXRpdmVOdW1iZXIudmFsdWUgfHwgMCB9IH19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/LmRlY2ltYWxOdW1iZXJcIj5cbiAgICAgICAge3sgTC5mb3JtX3ZhbGlkYXRpb25faW52YWxpZF9kZWNpbWFsX251bWJlcl9tZXNzYWdlIHwgdHJhbnNsYXRlOiB7IGNvbnRyb2xOYW1lOiBsYWJlbCB8IHRyYW5zbGF0ZSwgdmFsdWU6IGVycm9ycz8uZGVjaW1hbE51bWJlci52YWx1ZSB8fCAwIH1cbiAgICAgICAgfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImVycm9ycz8uZGVjaW1hbFBvc2l0aXZlTnVtYmVyXCI+XG4gICAgICAgIHt7IEwuZm9ybV92YWxpZGF0aW9uX2ludmFsaWRfZGVjaW1hbF9wb3NpdGl2ZV9udW1iZXJfbWVzc2FnZSB8IHRyYW5zbGF0ZTogeyBjb250cm9sTmFtZTogbGFiZWwgfCB0cmFuc2xhdGUsIHZhbHVlOlxuICAgICAgICBlcnJvcnM/LmRlY2ltYWxQb3NpdGl2ZU51bWJlci52YWx1ZSB8fCAwIH0gfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImVycm9ycz8ucG9zaXRpdmVOdW1iZXJzXCI+XG4gICAgICAgIHt7IEwuZm9ybV92YWxpZGF0aW9uX2ludmFsaWRfcG9zaXRpdmVfbnVtYmVyX21lc3NhZ2UgfCB0cmFuc2xhdGU6IHsgY29udHJvbE5hbWU6IGxhYmVsIHwgdHJhbnNsYXRlLCB2YWx1ZTogZXJyb3JzPy5wb3NpdGl2ZU51bWJlcnMudmFsdWUgfHwgMFxuICAgICAgICB9IH19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/LnBvc2l0aXZlTnVtYmVyc0dyZWF0ZXJUaGFuWmVyb1wiPlxuICAgICAgICB7eyBMLmZvcm1fdmFsaWRhdGlvbl9pbnZhbGlkX3Bvc2l0aXZlX251bWJlcl9ncmVhdGVyX3RoYW5femVybyB8IHRyYW5zbGF0ZTogeyBjb250cm9sTmFtZTogbGFiZWwgfCB0cmFuc2xhdGUsIHZhbHVlOlxuICAgICAgICBlcnJvcnM/LnBvc2l0aXZlTnVtYmVyc0dyZWF0ZXJUaGFuWmVyby52YWx1ZSB8fCAwIH0gfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImVycm9ycz8ubW9iaWxlTnVtYmVyc1wiPlxuICAgICAgICB7eyBMLmZvcm1fdmFsaWRhdGlvbl9pbnZhbGlkX21vYmlsZV9udW1iZXJfbWVzc2FnZSB8IHRyYW5zbGF0ZTogeyBjb250cm9sTmFtZTogbGFiZWwgfCB0cmFuc2xhdGUsIHZhbHVlOiBlcnJvcnM/Lm1vYmlsZU51bWJlcnMudmFsdWUgfHwgMCB9IH19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/LmVtYWlsXCI+XG4gICAgICAgIHt7IEwuZm9ybV92YWxpZGF0aW9uX2VtYWlsX3BhdHRlcm4gfCB0cmFuc2xhdGU6IHsgY29udHJvbE5hbWU6IGxhYmVsIHwgdHJhbnNsYXRlfSB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JzPy5wYXR0ZXJuXCI+XG4gICAgICAgIHt7IEwuZm9ybV92YWxpZGF0aW9uX3Bhc3N3b3JkX3BhdHRlcm4gfCB0cmFuc2xhdGU6IHsgY29udHJvbE5hbWU6IGxhYmVsIHwgdHJhbnNsYXRlfSB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JzPy5wYXNzd29yZFBvbGljeVJlcXVpcmVtZW50c1wiPlxuICAgICAgICB7eyBMLmZvcm1fdmFsaWRhdGlvbl9wYXNzd29yZF9wb2xpY3kgfCB0cmFuc2xhdGU6IHsgY29udHJvbE5hbWU6IGxhYmVsIHwgdHJhbnNsYXRlfSB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JzPy5wYXNzd29yZE5vdE1hdGNoXCI+XG4gICAgICAgIHt7IEwuZm9ybV92YWxpZGF0aW9uX3Bhc3N3b3JkX25vdF9tYXRjaCB8IHRyYW5zbGF0ZTogeyBjb250cm9sTmFtZTogbGFiZWwgfCB0cmFuc2xhdGV9IH19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/LnBhc3N3b3JkTWF0Y2hcIj5cbiAgICAgICAge3sgTC5mb3JtX3ZhbGlkYXRpb25fcGFzc3dvcmRfbWF0Y2ggfCB0cmFuc2xhdGU6IHsgY29udHJvbE5hbWU6IGxhYmVsIHwgdHJhbnNsYXRlfSB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JzPy5ub1doaXRlc3BhY2VXaXRoaW5TZW50ZW5jZVwiPlxuICAgICAgICB7eyBMLmZvcm1fdmFsaWRhdGlvbl9ub193aGl0ZV9zcGFjZV93aXRoaW5fc2VudGVuY2UgfCB0cmFuc2xhdGU6IHsgY29udHJvbE5hbWU6IGxhYmVsIHwgdHJhbnNsYXRlfSB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JzPy5ub0RvdFdpdGhpblNlbnRlbmNlXCI+XG4gICAgICAgIHt7IEwuZm9ybV92YWxpZGF0aW9uX25vX2RvdF9zcGFjZV93aXRoaW5fc2VudGVuY2UgfCB0cmFuc2xhdGU6IHsgY29udHJvbE5hbWU6IGxhYmVsIHwgdHJhbnNsYXRlfSB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JzPy5ndWlkSXNWYWxpZFwiPlxuICAgICAgICB7eyBMLmZvcm1fdmFsaWRhdGlvbl9pbnZhbGlkX3V1aWQgfCB0cmFuc2xhdGU6IHsgY29udHJvbE5hbWU6IGxhYmVsIHwgdHJhbnNsYXRlfSB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JzPy5ub0RlZmF1bHRBY2Nlc3NQcm9maWxlXCI+XG4gICAgICAgIHt7IEwubm9fYWNjZXNzX2RlZmF1bHRfcHJvZmlsZSB8IHRyYW5zbGF0ZTogeyBjb250cm9sTmFtZTogbGFiZWwgfCB0cmFuc2xhdGUsXG4gICAgICAgIGNvbXBhbnlOYW1lOiBlcnJvcnM/Lm5vRGVmYXVsdEFjY2Vzc1Byb2ZpbGU/LmNvbXBhbnlOYW1lIH0gfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImVycm9ycz8ubm9FbW9qaVwiPlxuICAgICAgICB7eyBMLmZvcm1fdmFsaWRhdGlvbl9pbnZhbGlkX25vX2Vtb2ppX21lc3NhZ2UgfCB0cmFuc2xhdGU6IHsgY29udHJvbE5hbWU6IGxhYmVsIHwgdHJhbnNsYXRlLCB2YWx1ZTogZXJyb3JzPy5ub0Vtb2ppLnZhbHVlIHx8IDAgfSB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JzPy5mb3JtX3ZhbGlkYXRpb25fdW5zYWZlX2h0bWxcIj5cbiAgICAgICAge3sgTC5mb3JtX3ZhbGlkYXRpb25fdW5zYWZlX2h0bWwgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImVycm9ycz8uaXB2NEZvcm1hdFwiPlxuICAgICAgICB7eyBMLmZvcm1fdmFsaWRhdGlvbl9pbnZhbGlkX2lwdjRfbWVzc2FnZSB8IHRyYW5zbGF0ZTogeyBjb250cm9sTmFtZTogbGFiZWwgfCB0cmFuc2xhdGUsIHZhbHVlOiBlcnJvcnM/LmlwdjRGb3JtYXQudmFsdWUgfSB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JzPy5pcHY0Tm90WmVyb1wiPlxuICAgICAgICB7eyBMLmZvcm1fdmFsaWRhdGlvbl9pcHY0X25vdF96ZXJvIHwgdHJhbnNsYXRlOiB7IGNvbnRyb2xOYW1lOiBsYWJlbCB8IHRyYW5zbGF0ZSB9IH19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/LmR1cGxpY2F0ZUlQXCI+XG4gICAgICAgIHt7IEwuZm9ybV92YWxpZGF0aW9uX2R1cGxpY2F0ZV9pcCB8IHRyYW5zbGF0ZTogeyBjb250cm9sTmFtZTogbGFiZWwgfCB0cmFuc2xhdGUgfSB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JzPy5hbHBoYW51bWVyaWNSZWdleFwiPlxuICAgICAgICB7eyBMLmZvcm1fdmFsaWRhdGlvbl9hbHBoYW51bWVyaWNfbWVzc2FnZSB8IHRyYW5zbGF0ZTogeyBjb250cm9sTmFtZTogbGFiZWwgfCB0cmFuc2xhdGUsIHZhbHVlOiBlcnJvcnM/LmFscGhhbnVtZXJpY1JlZ2V4LnZhbHVlIHx8IDAgfSB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JzPy52YWxpZGF0ZVBvc2l0aXZlSW50ZWdlclwiPlxuICAgICAgICB7eyBMLmZvcm1fdmFsaWRhdGlvbl9pbnZhbGlkX3Bvc2l0aXZlX2ludGVnZXJfbnVtYmVyX21lc3NhZ2UgfCB0cmFuc2xhdGU6IHsgY29udHJvbE5hbWU6IGxhYmVsIHwgdHJhbnNsYXRlLCB2YWx1ZTpcbiAgICAgICAgZXJyb3JzPy52YWxpZGF0ZVBvc2l0aXZlSW50ZWdlci52YWx1ZSB8fCAwIH0gfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImVycm9ycz8ucm9sZU5hbWVBbHJlYWR5RXhpc3RzXCI+XG4gICAgICAgIHt7IEwucm9sZV9uYW1lX2FscmVhZHlfZXhpc3RzIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/LnJhdGVOdW1iZXJBbHJlYWR5RXhpc3RzXCI+XG4gICAgICAgIHt7IEwucmF0ZV9udW1iZXJfYWxyZWFkeV9leGlzdHMgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImVycm9ycz8uYWNjZXNzUHJvZmlsZU51bWJlclRha2VuXCI+XG4gICAgICAgIHt7IEwuYWNjZXNzX3Byb2ZpbGVfbnVtYmVyX2FscmVhZHlfZXhpc3RzIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/LmNhc2hpZXJOdW1iZXJUYWtlblwiPlxuICAgICAgICB7eyBMLmNhc2hpZXJfbnVtYmVyX2FscmVhZHlfZXhpc3RzIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/LnNpZ25Db2RlSW5Vc2VcIj5cbiAgICAgICAge3sgTC5zaWduX2NvZGVfYWxyZWFkeV9pbl91c2UgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImVycm9ycz8uc2lnbkNvZGVJbnZhbGlkRm9ybWF0XCI+XG4gICAgICAgIHt7IEwuc2lnbl9jb2RlX2ludmFsaWRfZm9ybWF0IHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/LnJhdGVOdW1iZXJJc1plcm9cIj5cbiAgICAgICAge3sgTC5yYXRlX251bWJlcl9pc196ZXJvIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/LmZvcm1fdmFsaWRhdGlvbl9pbnZhbGlkX3RpbWVcIj5cbiAgICAgICAge3sgTC5mb3JtX3ZhbGlkYXRpb25faW52YWxpZF90aW1lIHwgdHJhbnNsYXRlOiB7IGNvbnRyb2xOYW1lOiBsYWJlbCAsZnJvbTogJzAwOjAwJyx0bzonMDA6MDAnIH0gfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImVycm9ycz8uZm9ybV92YWxpZGF0aW9uX2ludmFsaWRfdGltZV9mb3JtYXRcIj5cbiAgICAgICAge3sgTC5mb3JtX3ZhbGlkYXRpb25faW52YWxpZF90aW1lX2Zvcm1hdCB8IHRyYW5zbGF0ZTogeyBjb250cm9sTmFtZTogbGFiZWwgfSB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JzPy5wb3NpdGl2ZUludGVnZXJOdW1iZXJzR3JlYXRlclRoYW5aZXJvUmVnZXhcIj5cbiAgICAgICAge3sgTC5mb3JtX3ZhbGlkYXRpb25faW52YWxpZF9wb3NpdGl2ZV9pbnRlZ2VyX251bWJlcl93b196ZXJvX21lc3NhZ2UgfCB0cmFuc2xhdGU6IHsgY29udHJvbE5hbWU6IGxhYmVsIHwgdHJhbnNsYXRlLCB2YWx1ZTpcbiAgICAgICAgZXJyb3JzPy5wb3NpdGl2ZUludGVnZXJOdW1iZXJzR3JlYXRlclRoYW5aZXJvUmVnZXgudmFsdWUgfHwgMCB9IH19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/LmZvcm1fdmFsaWRhdGlvbl91bml0c19iYWxhbmNlX21heGltdW1cIj5cbiAgICAgICAge3sgTC5mb3JtX3ZhbGlkYXRpb25fdW5pdHNfYmFsYW5jZV9tYXhpbXVtIHwgdHJhbnNsYXRlOiB7IGNvbnRyb2xOYW1lOiBsYWJlbCB8IHRyYW5zbGF0ZSB9IH19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/LmZvcm1fdmFsaWRhdGlvbl91bml0c19iYWxhbmNlX21pbmltdW1cIj5cbiAgICAgICAge3sgTC5mb3JtX3ZhbGlkYXRpb25fdW5pdHNfYmFsYW5jZV9taW5pbXVtIHwgdHJhbnNsYXRlOiB7IGNvbnRyb2xOYW1lOiBsYWJlbCB8IHRyYW5zbGF0ZSB9IH19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/LmZvcm1fdmFsaWRhdGlvbl9pbnZhbGlkX3BlcmNlbnRhZ2VcIj5cbiAgICAgICAge3sgTC5mb3JtX3ZhbGlkYXRpb25faW52YWxpZF9wZXJjZW50YWdlX21lc3NhZ2UgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImVycm9ycz8uZm9ybV92YWxpZGF0aW9uX2ludmFsaWRfZGVjaW1hbF9wZXJjZW50YWdlXCI+XG4gICAgICAgIHt7IEwuZm9ybV92YWxpZGF0aW9uX2ludmFsaWRfcGVyY2VudGFnZV9kZWNpbWFsX21lc3NhZ2UgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImVycm9ycz8ucmV2ZXJ0X2F0X211c3RfYmVfbGVzc190aGFuX29jY3VwYW5jeVwiPlxuICAgICAgICB7eyBMLnJldmVydF9hdF9tdXN0X2JlX2xlc3NfdGhhbl9vY2N1cGFuY3lfbWVzc2FnZSB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JzPy5yZXZlcnRfYXRfbXVzdF9iZV9tb3JlX3RoYW5fb2NjdXBhbmN5XCI+XG4gICAgICAgIHt7IEwucmV2ZXJ0X2F0X211c3RfYmVfbW9yZV90aGFuX29jY3VwYW5jeV9tZXNzYWdlIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/LmNhcl9wbGF0ZV9zZXF1ZW50aWFsX3JlcXVpcmVkXCI+XG4gICAgICAgIHt7IEwuY2FyX3BsYXRlX3NlcXVlbnRpYWxfcmVxdWlyZWQgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImVycm9ycz8uY2FyZF9zZXF1ZW50aWFsX3JlcXVpcmVkXCI+XG4gICAgICAgIHt7IEwuY2FyZF9zZXF1ZW50aWFsX3JlcXVpcmVkIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtdmFsaWRhdGlvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXNoYXJlZC1saWIvc3JjL2xpYnJhcmllcy9jb21wb25lbnRzL2ZpZWxkLXZhbGlkYXRpb25zL2ZpZWxkLXZhbGlkYXRpb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC1zaGFyZWQtbGliL3NyYy9saWJyYXJpZXMvY29tcG9uZW50cy9maWVsZC12YWxpZGF0aW9ucy9maWVsZC12YWxpZGF0aW9ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDNUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7O0FBYXZELE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxhQUFhO0lBUzFELFlBQW1CLGdCQUFrQztRQUNuRCxLQUFLLEVBQUUsQ0FBQztRQURTLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFGckQsZUFBVSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7SUFJekIsQ0FBQztJQUVELFNBQVMsQ0FBQyxNQUErQjtRQUN2QyxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1gsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsNkNBQTZDO1FBQ25FLENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDOytHQW5CVSx5QkFBeUI7bUdBQXpCLHlCQUF5Qix1TUNuQnRDLHc3UkFzS0EsMkNEekpJLFlBQVksOEhBQ1osVUFBVSw4Q0FDVixrQkFBa0IsMkZBQ2xCLHNCQUFzQjs7NEZBR2IseUJBQXlCO2tCQVhyQyxTQUFTOytCQUNFLHdCQUF3QixjQUV0QixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixVQUFVO3dCQUNWLGtCQUFrQjt3QkFDbEIsc0JBQXNCO3FCQUN2QjtxRkFJUSxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xDb250YWluZXIsIFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTaGFyZWREaXJlY3RpdmVzTW9kdWxlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBMb2NhbGl6YXRpb25Nb2R1bGUgfSBmcm9tICcuLi8uLi9sb2NhbGl6YXRpb24vbG9jYWxpemF0aW9uLm1vZHVsZSc7XG5pbXBvcnQgeyBXcmFwRm5QaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMvd3JhcC1mbi5waXBlJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi9iYXNlL2Jhc2UuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnW3RiLWZpZWxkLXZhbGlkYXRpb25zXScsXG4gIHRlbXBsYXRlVXJsOiAnLi9maWVsZC12YWxpZGF0aW9ucy5jb21wb25lbnQuaHRtbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgV3JhcEZuUGlwZSxcbiAgICBMb2NhbGl6YXRpb25Nb2R1bGUsXG4gICAgU2hhcmVkRGlyZWN0aXZlc01vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRmllbGRWYWxpZGF0aW9uc0NvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQge1xuXG4gIEBJbnB1dCgpIGNvbnRyb2xOYW1lOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGVycm9yczogVmFsaWRhdGlvbkVycm9ycyB8IG51bGw7XG4gIEBJbnB1dCgpIHRvdWNoZWQ6IGJvb2xlYW47XG5cbiAgT2JqZWN0S2V5cyA9IE9iamVjdC5rZXlzO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBjb250cm9sQ29udGFpbmVyOiBDb250cm9sQ29udGFpbmVyKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIGdldEVycm9ycyhlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIGlmIChlcnJvcnMpIHtcbiAgICAgIGRlbGV0ZSBlcnJvcnMubWFzazsgLy8gcmVtb3ZlIGRlZmF1bHQgTmd4TWFza0RpcmVjdGl2ZSB2YWxpZGF0aW9uXG4gICAgfVxuXG4gICAgcmV0dXJuIGVycm9ycztcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cInRvdWNoZWQgfHwgY29udHJvbENvbnRhaW5lci5jb250cm9sLmdldChjb250cm9sTmFtZSk/LnRvdWNoZWRcIj5cbiAgPG5nLWNvbnRhaW5lciAqdGJWYXI9XCJnZXRFcnJvcnMgfCB3cmFwRm46IGNvbnRyb2xDb250YWluZXIuY29udHJvbC5nZXQoY29udHJvbE5hbWUpPy5lcnJvcnMgPz8gZXJyb3JzIGFzIGVycm9yc1wiPlxuICAgIDxkaXYgKm5nSWY9XCJPYmplY3RLZXlzKGVycm9ycyB8fCB7fSkubGVuZ3RoID4gMTsgdGhlbiBoYXNNdWx0aUVycm9ycyBlbHNlIGhhc09uZUVycm9yXCI+PC9kaXY+XG4gICAgPG5nLXRlbXBsYXRlICNoYXNNdWx0aUVycm9ycz5cbiAgICAgIHt7IEwuaW52YWxpZCB8IHRyYW5zbGF0ZTogeyBjb250cm9sTmFtZTogbGFiZWwgfCB0cmFuc2xhdGV9IH19XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI2hhc09uZUVycm9yPlxuICAgICAgPGRpdiAqbmdJZj1cImVycm9ycz8ucmVxdWlyZWRcIj5cbiAgICAgICAge3sgTC5mb3JtX3ZhbGlkYXRpb25fcmVxdWlyZWRfbWVzc2FnZSB8IHRyYW5zbGF0ZSB9fTwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImVycm9ycz8uaW52YWxpZERhdGVcIj5cbiAgICAgICAge3sgTC5mb3JtX3ZhbGlkYXRpb25faW52YWxpZF9kYXRlX21lc3NhZ2UgfCB0cmFuc2xhdGUgfX08L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/LmludmFsaWREYXRlUmFuZ2VcIj5cbiAgICAgICAge3sgTC5mb3JtX3ZhbGlkYXRpb25faW52YWxpZF9kYXRlX3JhbmdlIHwgdHJhbnNsYXRlIH19PC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JzPy5pbnZhbGlkVGVybXNcIj5cbiAgICAgICAge3sgTC5mb3JtX3ZhbGlkYXRpb25fdGVybXNfcG9saWN5IHwgdHJhbnNsYXRlIH19PC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JzPy5taW4gbWluXCI+XG4gICAgICAgIHt7IEwuZm9ybV92YWxpZGF0aW9uX21pbl9tZXNzYWdlIHwgdHJhbnNsYXRlOiB7IGNvbnRyb2xOYW1lOiBsYWJlbCB8IHRyYW5zbGF0ZSwgdmFsdWU6IGVycm9ycz8ubWluLm1pbiB8fCAwIH0gfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImVycm9ycz8ubWF4XCI+XG4gICAgICAgIHt7IEwuZm9ybV92YWxpZGF0aW9uX21heF9tZXNzYWdlIHwgdHJhbnNsYXRlOiB7IGNvbnRyb2xOYW1lOiBsYWJlbCB8IHRyYW5zbGF0ZSwgdmFsdWU6IGVycm9ycz8ubWF4Lm1heCB8fCAwIH0gfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImVycm9ycz8ubWlubGVuZ3RoXCI+XG4gICAgICAgIHt7IEwuZm9ybV92YWxpZGF0aW9uX21pbl9sZW5ndGhfbWVzc2FnZSB8IHRyYW5zbGF0ZTogeyBjb250cm9sTmFtZTogbGFiZWwgfCB0cmFuc2xhdGUsIHZhbHVlOiBlcnJvcnM/Lm1pbmxlbmd0aC5yZXF1aXJlZExlbmd0aCB8fCAwIH0gfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImVycm9ycz8ubWF4bGVuZ3RoXCI+XG4gICAgICAgIHt7IEwuZm9ybV92YWxpZGF0aW9uX21heF9sZW5ndGhfbWVzc2FnZSB8IHRyYW5zbGF0ZTogeyBjb250cm9sTmFtZTogbGFiZWwgfCB0cmFuc2xhdGUsIHZhbHVlOiBlcnJvcnM/Lm1heGxlbmd0aC5yZXF1aXJlZExlbmd0aCB8fCAwIH0gfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImVycm9ycz8uaW52YWxpZE51bWJlckxlbmd0aFwiPlxuICAgICAgICB7eyBMLmZvcm1fdmFsaWRhdGlvbl9pbnZhbGlkX2xlbmd0aF9tZXNzYWdlIHwgdHJhbnNsYXRlOiB7IGNvbnRyb2xOYW1lOiBsYWJlbCB8IHRyYW5zbGF0ZSwgdmFsdWU6IGVycm9ycz8uaW52YWxpZE51bWJlckxlbmd0aC5yZXF1aXJlZExlbmd0aFxuICAgICAgICB8fCAwIH0gfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImVycm9ycz8uaW50ZWdlck51bWJlclwiPlxuICAgICAgICB7eyBMLmZvcm1fdmFsaWRhdGlvbl9pbnZhbGlkX2ludGVnZXJfbnVtYmVyX21lc3NhZ2UgfCB0cmFuc2xhdGU6IHsgY29udHJvbE5hbWU6IGxhYmVsIHwgdHJhbnNsYXRlLCB2YWx1ZTogZXJyb3JzPy5pbnRlZ2VyTnVtYmVyLnZhbHVlIHx8IDAgfVxuICAgICAgICB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JzPy5pbnRlZ2VyUG9zaXRpdmVOdW1iZXJcIj5cbiAgICAgICAge3sgTC5mb3JtX3ZhbGlkYXRpb25faW52YWxpZF9pbnRlZ2VyX3Bvc2l0aXZlX251bWJlcl9tZXNzYWdlIHwgdHJhbnNsYXRlOiB7IGNvbnRyb2xOYW1lOiBsYWJlbCB8IHRyYW5zbGF0ZSwgdmFsdWU6XG4gICAgICAgIGVycm9ycz8uaW50ZWdlclBvc2l0aXZlTnVtYmVyLnZhbHVlIHx8IDAgfSB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JzPy5kZWNpbWFsTnVtYmVyXCI+XG4gICAgICAgIHt7IEwuZm9ybV92YWxpZGF0aW9uX2ludmFsaWRfZGVjaW1hbF9udW1iZXJfbWVzc2FnZSB8IHRyYW5zbGF0ZTogeyBjb250cm9sTmFtZTogbGFiZWwgfCB0cmFuc2xhdGUsIHZhbHVlOiBlcnJvcnM/LmRlY2ltYWxOdW1iZXIudmFsdWUgfHwgMCB9XG4gICAgICAgIH19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/LmRlY2ltYWxQb3NpdGl2ZU51bWJlclwiPlxuICAgICAgICB7eyBMLmZvcm1fdmFsaWRhdGlvbl9pbnZhbGlkX2RlY2ltYWxfcG9zaXRpdmVfbnVtYmVyX21lc3NhZ2UgfCB0cmFuc2xhdGU6IHsgY29udHJvbE5hbWU6IGxhYmVsIHwgdHJhbnNsYXRlLCB2YWx1ZTpcbiAgICAgICAgZXJyb3JzPy5kZWNpbWFsUG9zaXRpdmVOdW1iZXIudmFsdWUgfHwgMCB9IH19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/LnBvc2l0aXZlTnVtYmVyc1wiPlxuICAgICAgICB7eyBMLmZvcm1fdmFsaWRhdGlvbl9pbnZhbGlkX3Bvc2l0aXZlX251bWJlcl9tZXNzYWdlIHwgdHJhbnNsYXRlOiB7IGNvbnRyb2xOYW1lOiBsYWJlbCB8IHRyYW5zbGF0ZSwgdmFsdWU6IGVycm9ycz8ucG9zaXRpdmVOdW1iZXJzLnZhbHVlIHx8IDBcbiAgICAgICAgfSB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JzPy5wb3NpdGl2ZU51bWJlcnNHcmVhdGVyVGhhblplcm9cIj5cbiAgICAgICAge3sgTC5mb3JtX3ZhbGlkYXRpb25faW52YWxpZF9wb3NpdGl2ZV9udW1iZXJfZ3JlYXRlcl90aGFuX3plcm8gfCB0cmFuc2xhdGU6IHsgY29udHJvbE5hbWU6IGxhYmVsIHwgdHJhbnNsYXRlLCB2YWx1ZTpcbiAgICAgICAgZXJyb3JzPy5wb3NpdGl2ZU51bWJlcnNHcmVhdGVyVGhhblplcm8udmFsdWUgfHwgMCB9IH19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/Lm1vYmlsZU51bWJlcnNcIj5cbiAgICAgICAge3sgTC5mb3JtX3ZhbGlkYXRpb25faW52YWxpZF9tb2JpbGVfbnVtYmVyX21lc3NhZ2UgfCB0cmFuc2xhdGU6IHsgY29udHJvbE5hbWU6IGxhYmVsIHwgdHJhbnNsYXRlLCB2YWx1ZTogZXJyb3JzPy5tb2JpbGVOdW1iZXJzLnZhbHVlIHx8IDAgfSB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JzPy5lbWFpbFwiPlxuICAgICAgICB7eyBMLmZvcm1fdmFsaWRhdGlvbl9lbWFpbF9wYXR0ZXJuIHwgdHJhbnNsYXRlOiB7IGNvbnRyb2xOYW1lOiBsYWJlbCB8IHRyYW5zbGF0ZX0gfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImVycm9ycz8ucGF0dGVyblwiPlxuICAgICAgICB7eyBMLmZvcm1fdmFsaWRhdGlvbl9wYXNzd29yZF9wYXR0ZXJuIHwgdHJhbnNsYXRlOiB7IGNvbnRyb2xOYW1lOiBsYWJlbCB8IHRyYW5zbGF0ZX0gfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImVycm9ycz8ucGFzc3dvcmRQb2xpY3lSZXF1aXJlbWVudHNcIj5cbiAgICAgICAge3sgTC5mb3JtX3ZhbGlkYXRpb25fcGFzc3dvcmRfcG9saWN5IHwgdHJhbnNsYXRlOiB7IGNvbnRyb2xOYW1lOiBsYWJlbCB8IHRyYW5zbGF0ZX0gfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImVycm9ycz8ucGFzc3dvcmROb3RNYXRjaFwiPlxuICAgICAgICB7eyBMLmZvcm1fdmFsaWRhdGlvbl9wYXNzd29yZF9ub3RfbWF0Y2ggfCB0cmFuc2xhdGU6IHsgY29udHJvbE5hbWU6IGxhYmVsIHwgdHJhbnNsYXRlfSB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JzPy5wYXNzd29yZE1hdGNoXCI+XG4gICAgICAgIHt7IEwuZm9ybV92YWxpZGF0aW9uX3Bhc3N3b3JkX21hdGNoIHwgdHJhbnNsYXRlOiB7IGNvbnRyb2xOYW1lOiBsYWJlbCB8IHRyYW5zbGF0ZX0gfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImVycm9ycz8ubm9XaGl0ZXNwYWNlV2l0aGluU2VudGVuY2VcIj5cbiAgICAgICAge3sgTC5mb3JtX3ZhbGlkYXRpb25fbm9fd2hpdGVfc3BhY2Vfd2l0aGluX3NlbnRlbmNlIHwgdHJhbnNsYXRlOiB7IGNvbnRyb2xOYW1lOiBsYWJlbCB8IHRyYW5zbGF0ZX0gfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImVycm9ycz8ubm9Eb3RXaXRoaW5TZW50ZW5jZVwiPlxuICAgICAgICB7eyBMLmZvcm1fdmFsaWRhdGlvbl9ub19kb3Rfc3BhY2Vfd2l0aGluX3NlbnRlbmNlIHwgdHJhbnNsYXRlOiB7IGNvbnRyb2xOYW1lOiBsYWJlbCB8IHRyYW5zbGF0ZX0gfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImVycm9ycz8uZ3VpZElzVmFsaWRcIj5cbiAgICAgICAge3sgTC5mb3JtX3ZhbGlkYXRpb25faW52YWxpZF91dWlkIHwgdHJhbnNsYXRlOiB7IGNvbnRyb2xOYW1lOiBsYWJlbCB8IHRyYW5zbGF0ZX0gfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImVycm9ycz8ubm9EZWZhdWx0QWNjZXNzUHJvZmlsZVwiPlxuICAgICAgICB7eyBMLm5vX2FjY2Vzc19kZWZhdWx0X3Byb2ZpbGUgfCB0cmFuc2xhdGU6IHsgY29udHJvbE5hbWU6IGxhYmVsIHwgdHJhbnNsYXRlLFxuICAgICAgICBjb21wYW55TmFtZTogZXJyb3JzPy5ub0RlZmF1bHRBY2Nlc3NQcm9maWxlPy5jb21wYW55TmFtZSB9IH19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/Lm5vRW1vamlcIj5cbiAgICAgICAge3sgTC5mb3JtX3ZhbGlkYXRpb25faW52YWxpZF9ub19lbW9qaV9tZXNzYWdlIHwgdHJhbnNsYXRlOiB7IGNvbnRyb2xOYW1lOiBsYWJlbCB8IHRyYW5zbGF0ZSwgdmFsdWU6IGVycm9ycz8ubm9FbW9qaS52YWx1ZSB8fCAwIH0gfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImVycm9ycz8uZm9ybV92YWxpZGF0aW9uX3Vuc2FmZV9odG1sXCI+XG4gICAgICAgIHt7IEwuZm9ybV92YWxpZGF0aW9uX3Vuc2FmZV9odG1sIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/LmlwdjRGb3JtYXRcIj5cbiAgICAgICAge3sgTC5mb3JtX3ZhbGlkYXRpb25faW52YWxpZF9pcHY0X21lc3NhZ2UgfCB0cmFuc2xhdGU6IHsgY29udHJvbE5hbWU6IGxhYmVsIHwgdHJhbnNsYXRlLCB2YWx1ZTogZXJyb3JzPy5pcHY0Rm9ybWF0LnZhbHVlIH0gfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImVycm9ycz8uaXB2NE5vdFplcm9cIj5cbiAgICAgICAge3sgTC5mb3JtX3ZhbGlkYXRpb25faXB2NF9ub3RfemVybyB8IHRyYW5zbGF0ZTogeyBjb250cm9sTmFtZTogbGFiZWwgfCB0cmFuc2xhdGUgfSB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JzPy5kdXBsaWNhdGVJUFwiPlxuICAgICAgICB7eyBMLmZvcm1fdmFsaWRhdGlvbl9kdXBsaWNhdGVfaXAgfCB0cmFuc2xhdGU6IHsgY29udHJvbE5hbWU6IGxhYmVsIHwgdHJhbnNsYXRlIH0gfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImVycm9ycz8uYWxwaGFudW1lcmljUmVnZXhcIj5cbiAgICAgICAge3sgTC5mb3JtX3ZhbGlkYXRpb25fYWxwaGFudW1lcmljX21lc3NhZ2UgfCB0cmFuc2xhdGU6IHsgY29udHJvbE5hbWU6IGxhYmVsIHwgdHJhbnNsYXRlLCB2YWx1ZTogZXJyb3JzPy5hbHBoYW51bWVyaWNSZWdleC52YWx1ZSB8fCAwIH0gfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImVycm9ycz8udmFsaWRhdGVQb3NpdGl2ZUludGVnZXJcIj5cbiAgICAgICAge3sgTC5mb3JtX3ZhbGlkYXRpb25faW52YWxpZF9wb3NpdGl2ZV9pbnRlZ2VyX251bWJlcl9tZXNzYWdlIHwgdHJhbnNsYXRlOiB7IGNvbnRyb2xOYW1lOiBsYWJlbCB8IHRyYW5zbGF0ZSwgdmFsdWU6XG4gICAgICAgIGVycm9ycz8udmFsaWRhdGVQb3NpdGl2ZUludGVnZXIudmFsdWUgfHwgMCB9IH19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/LnJvbGVOYW1lQWxyZWFkeUV4aXN0c1wiPlxuICAgICAgICB7eyBMLnJvbGVfbmFtZV9hbHJlYWR5X2V4aXN0cyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JzPy5yYXRlTnVtYmVyQWxyZWFkeUV4aXN0c1wiPlxuICAgICAgICB7eyBMLnJhdGVfbnVtYmVyX2FscmVhZHlfZXhpc3RzIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/LmFjY2Vzc1Byb2ZpbGVOdW1iZXJUYWtlblwiPlxuICAgICAgICB7eyBMLmFjY2Vzc19wcm9maWxlX251bWJlcl9hbHJlYWR5X2V4aXN0cyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JzPy5jYXNoaWVyTnVtYmVyVGFrZW5cIj5cbiAgICAgICAge3sgTC5jYXNoaWVyX251bWJlcl9hbHJlYWR5X2V4aXN0cyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JzPy5zaWduQ29kZUluVXNlXCI+XG4gICAgICAgIHt7IEwuc2lnbl9jb2RlX2FscmVhZHlfaW5fdXNlIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/LnNpZ25Db2RlSW52YWxpZEZvcm1hdFwiPlxuICAgICAgICB7eyBMLnNpZ25fY29kZV9pbnZhbGlkX2Zvcm1hdCB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JzPy5yYXRlTnVtYmVySXNaZXJvXCI+XG4gICAgICAgIHt7IEwucmF0ZV9udW1iZXJfaXNfemVybyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JzPy5mb3JtX3ZhbGlkYXRpb25faW52YWxpZF90aW1lXCI+XG4gICAgICAgIHt7IEwuZm9ybV92YWxpZGF0aW9uX2ludmFsaWRfdGltZSB8IHRyYW5zbGF0ZTogeyBjb250cm9sTmFtZTogbGFiZWwgLGZyb206ICcwMDowMCcsdG86JzAwOjAwJyB9IH19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/LmZvcm1fdmFsaWRhdGlvbl9pbnZhbGlkX3RpbWVfZm9ybWF0XCI+XG4gICAgICAgIHt7IEwuZm9ybV92YWxpZGF0aW9uX2ludmFsaWRfdGltZV9mb3JtYXQgfCB0cmFuc2xhdGU6IHsgY29udHJvbE5hbWU6IGxhYmVsIH0gfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImVycm9ycz8ucG9zaXRpdmVJbnRlZ2VyTnVtYmVyc0dyZWF0ZXJUaGFuWmVyb1JlZ2V4XCI+XG4gICAgICAgIHt7IEwuZm9ybV92YWxpZGF0aW9uX2ludmFsaWRfcG9zaXRpdmVfaW50ZWdlcl9udW1iZXJfd29femVyb19tZXNzYWdlIHwgdHJhbnNsYXRlOiB7IGNvbnRyb2xOYW1lOiBsYWJlbCB8IHRyYW5zbGF0ZSwgdmFsdWU6XG4gICAgICAgIGVycm9ycz8ucG9zaXRpdmVJbnRlZ2VyTnVtYmVyc0dyZWF0ZXJUaGFuWmVyb1JlZ2V4LnZhbHVlIHx8IDAgfSB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JzPy5mb3JtX3ZhbGlkYXRpb25fdW5pdHNfYmFsYW5jZV9tYXhpbXVtXCI+XG4gICAgICAgIHt7IEwuZm9ybV92YWxpZGF0aW9uX3VuaXRzX2JhbGFuY2VfbWF4aW11bSB8IHRyYW5zbGF0ZTogeyBjb250cm9sTmFtZTogbGFiZWwgfCB0cmFuc2xhdGUgfSB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JzPy5mb3JtX3ZhbGlkYXRpb25fdW5pdHNfYmFsYW5jZV9taW5pbXVtXCI+XG4gICAgICAgIHt7IEwuZm9ybV92YWxpZGF0aW9uX3VuaXRzX2JhbGFuY2VfbWluaW11bSB8IHRyYW5zbGF0ZTogeyBjb250cm9sTmFtZTogbGFiZWwgfCB0cmFuc2xhdGUgfSB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JzPy5mb3JtX3ZhbGlkYXRpb25faW52YWxpZF9wZXJjZW50YWdlXCI+XG4gICAgICAgIHt7IEwuZm9ybV92YWxpZGF0aW9uX2ludmFsaWRfcGVyY2VudGFnZV9tZXNzYWdlIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/LmZvcm1fdmFsaWRhdGlvbl9pbnZhbGlkX2RlY2ltYWxfcGVyY2VudGFnZVwiPlxuICAgICAgICB7eyBMLmZvcm1fdmFsaWRhdGlvbl9pbnZhbGlkX3BlcmNlbnRhZ2VfZGVjaW1hbF9tZXNzYWdlIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/LnJldmVydF9hdF9tdXN0X2JlX2xlc3NfdGhhbl9vY2N1cGFuY3lcIj5cbiAgICAgICAge3sgTC5yZXZlcnRfYXRfbXVzdF9iZV9sZXNzX3RoYW5fb2NjdXBhbmN5X21lc3NhZ2UgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImVycm9ycz8ucmV2ZXJ0X2F0X211c3RfYmVfbW9yZV90aGFuX29jY3VwYW5jeVwiPlxuICAgICAgICB7eyBMLnJldmVydF9hdF9tdXN0X2JlX21vcmVfdGhhbl9vY2N1cGFuY3lfbWVzc2FnZSB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JzPy5jYXJfcGxhdGVfc2VxdWVudGlhbF9yZXF1aXJlZFwiPlxuICAgICAgICB7eyBMLmNhcl9wbGF0ZV9zZXF1ZW50aWFsX3JlcXVpcmVkIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnM/LmNhcmRfc2VxdWVudGlhbF9yZXF1aXJlZFwiPlxuICAgICAgICB7eyBMLmNhcmRfc2VxdWVudGlhbF9yZXF1aXJlZCB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -51,11 +51,11 @@ export class GuestOpenTicketDialogComponent {
51
51
  this.dialogRef.close(null);
52
52
  }
53
53
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GuestOpenTicketDialogComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component }); }
54
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: GuestOpenTicketDialogComponent, isStandalone: true, selector: "tb-guest-open-ticket-dialog", ngImport: i0, template: "<div class=\"tb-open-ticket-dialog\">\n <!-- Named by id rather than by mat-dialog-title: the directive brings Material's own title\n typography and spacing with it, which would fight the coloured header band. The dialog's\n accessible name comes from ariaLabelledBy on the modal config. -->\n <header id=\"tb-guest-open-ticket-title\" class=\"tb-open-ticket-dialog__header\">\n {{ L.guest_open_ticket_detected_title | translate }}\n </header>\n\n <div class=\"tb-open-ticket-dialog__body\">\n <section class=\"tb-open-ticket-dialog__summary\">\n <!-- One key, not four concatenated fragments: he.json is a live RTL locale and a translator\n cannot reorder pieces the template glues together in source order. The emphasis on the\n plate and dates is given up deliberately - a sentence that can be translated is worth\n more than the bold. -->\n <p class=\"tb-open-ticket-dialog__summary-text\">\n {{\n (data.entryBeforeCheckIn ? L.guest_open_ticket_summary : L.guest_open_ticket_summary_after)\n | translate\n : {\n carPlate: data.carPlate,\n ticketNumber: data.ticketNumber,\n entryTime: data.entryDate | date: data.dateFormat,\n checkInTime: data.checkInDate | date: data.dateFormat,\n passEndTime: data.passEndDate | date: data.dateFormat\n }\n }}\n </p>\n <!-- Only meaningful before check-in: an entry after the pass period has no gap to absorb. -->\n <p *ngIf=\"data.entryBeforeCheckIn\" class=\"tb-open-ticket-dialog__duration\">\n {{ L.guest_open_ticket_duration_before_check_in | translate }}\n <strong>{{ data.durationBeforeCheckIn }}</strong>\n </p>\n </section>\n\n <!-- With only one option left there is no choice to make, so asking \"how would you like to\n proceed?\" above a single radio reads as a rendering fault. State the outcome instead. -->\n <h3 id=\"tb-guest-open-ticket-question\" class=\"tb-open-ticket-dialog__question\">\n {{\n (data.coverAllowed ? L.guest_open_ticket_how_to_proceed : L.guest_open_ticket_only_exit_option)\n | translate\n }}\n </h3>\n\n <mat-radio-group\n class=\"tb-open-ticket-dialog__options\"\n aria-labelledby=\"tb-guest-open-ticket-question\"\n [(ngModel)]=\"choice\"\n name=\"openTicketChoice\">\n <!-- A div, not a label: mat-radio-button renders its own <label for>, and nesting that\n inside another label is invalid HTML and makes the click target ambiguous. The click\n handler keeps the whole card selectable. -->\n <div\n *ngIf=\"data.coverAllowed\"\n class=\"tb-open-ticket-dialog__option\"\n [class.tb-open-ticket-dialog__option--selected]=\"choice === Choice.CoverParkingPeriod\"\n (click)=\"choice = Choice.CoverParkingPeriod\">\n <mat-radio-button [value]=\"Choice.CoverParkingPeriod\">\n <span class=\"tb-open-ticket-dialog__option-title\">\n {{ L.guest_open_ticket_option_cover_title | translate }}\n </span>\n </mat-radio-button>\n <p class=\"tb-open-ticket-dialog__option-detail\">\n {{\n L.guest_open_ticket_option_cover_detail\n | translate\n : {\n entryTime: data.entryDate | date: data.dateFormat,\n duration: data.durationShort\n }\n }}\n </p>\n <p class=\"tb-open-ticket-dialog__outcome tb-open-ticket-dialog__outcome--closed\">\n {{ L.guest_open_ticket_outcome_closed | translate }}\n </p>\n </div>\n\n <div\n class=\"tb-open-ticket-dialog__option\"\n [class.tb-open-ticket-dialog__option--selected]=\"choice === Choice.ExitAndReenter\"\n (click)=\"choice = Choice.ExitAndReenter\">\n <mat-radio-button [value]=\"Choice.ExitAndReenter\">\n <span class=\"tb-open-ticket-dialog__option-title\">\n {{ L.guest_open_ticket_option_exit_title | translate }}\n </span>\n </mat-radio-button>\n <p class=\"tb-open-ticket-dialog__option-detail\">\n {{\n L.guest_open_ticket_option_exit_detail\n | translate: { checkInTime: data.checkInDate | date: data.dateFormat }\n }}\n </p>\n <p class=\"tb-open-ticket-dialog__outcome tb-open-ticket-dialog__outcome--open\">\n {{ L.guest_open_ticket_outcome_open | translate }}\n </p>\n </div>\n </mat-radio-group>\n </div>\n\n <mat-dialog-actions class=\"tb-open-ticket-dialog__footer\">\n <div class=\"buttons-wrapper\">\n <div class=\"buttons-wrapper-right\">\n <button (click)=\"cancel()\" class=\"tb-button tb-tertiary-button basic-button\"\n [attr.data-qa]=\"DataQaAttribute.guest_open_ticket_dialog + '_' + DataQaAttribute.cancel_btn\" matRipple>\n <span class=\"button-text\">{{ L.cancel | translate }}</span>\n </button>\n <button (click)=\"createGuest()\" class=\"tb-button tb-primary-button basic-button\"\n [attr.data-qa]=\"DataQaAttribute.guest_open_ticket_dialog + '_' + DataQaAttribute.confirm_btn\" matRipple>\n <span class=\"button-text\">{{ L.guest_open_ticket_create_guest | translate }}</span>\n </button>\n </div>\n </div>\n </mat-dialog-actions>\n</div>\n", styles: [".tb-open-ticket-dialog{display:flex;flex-direction:column;height:100%}.tb-open-ticket-dialog__header{background:#ffd362;padding:8px 16px;font-size:14px;font-weight:600;color:#2c3e50}.tb-open-ticket-dialog__body{flex:1;overflow-y:auto;padding:10px 16px}.tb-open-ticket-dialog__summary{background:#f9f9f9;border-radius:4px;padding:10px 12px;margin-bottom:10px}.tb-open-ticket-dialog__summary-text{margin:0;font-size:12px;line-height:1.45;color:#2c3e50}.tb-open-ticket-dialog__ticket{color:#0670c7;font-weight:600}.tb-open-ticket-dialog__duration{margin:6px 0 0;font-size:12px;color:#5f6b78}.tb-open-ticket-dialog__question{margin:0 0 8px;font-size:12px;font-weight:600;color:#2c3e50}.tb-open-ticket-dialog__options{display:flex;flex-direction:column;gap:6px}.tb-open-ticket-dialog__option{display:block;border:1px solid #dee2e6;border-radius:6px;padding:10px 12px;cursor:pointer}.tb-open-ticket-dialog__option--selected{border-color:#0670c7;background:#f2f7fb}.tb-open-ticket-dialog__option-title{font-size:12px;font-weight:600;color:#2c3e50}.tb-open-ticket-dialog__option-detail{margin:3px 0 0 30px;font-size:11px;line-height:1.4;color:#5f6b78}.tb-open-ticket-dialog__outcome{margin:5px 0 0 30px;font-size:11px;font-weight:500}.tb-open-ticket-dialog__outcome--closed{color:#26d637}.tb-open-ticket-dialog__outcome--open{color:#8a6d1a}.tb-open-ticket-dialog__footer{padding:10px 16px;border-top:1px solid #dee2e6}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.DatePipe, name: "date" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: LocalizationModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "ngmodule", type: MatRadioModule }, { kind: "directive", type: i5.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i5.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "ngmodule", type: MatRippleModule }, { kind: "directive", type: i6.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }] }); }
54
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: GuestOpenTicketDialogComponent, isStandalone: true, selector: "tb-guest-open-ticket-dialog", ngImport: i0, template: "<div class=\"tb-open-ticket-dialog\">\n <!-- Named by id rather than by mat-dialog-title: the directive brings Material's own title\n typography and spacing with it, which would fight the coloured header band. The dialog's\n accessible name comes from ariaLabelledBy on the modal config. -->\n <header id=\"tb-guest-open-ticket-title\" class=\"tb-open-ticket-dialog__header\">\n {{ L.guest_open_ticket_detected_title | translate }}\n </header>\n\n <div class=\"tb-open-ticket-dialog__body\">\n <section class=\"tb-open-ticket-dialog__summary\">\n <!-- One key, not four concatenated fragments: he.json is a live RTL locale and a translator\n cannot reorder pieces the template glues together in source order. The emphasis on the\n plate and dates is given up deliberately - a sentence that can be translated is worth\n more than the bold. -->\n <p class=\"tb-open-ticket-dialog__summary-text\">\n {{\n (data.entryBeforeCheckIn ? L.guest_open_ticket_summary : L.guest_open_ticket_summary_after)\n | translate\n : {\n carPlate: data.carPlate,\n ticketNumber: data.ticketNumber,\n entryTime: data.entryDate | date: data.dateFormat,\n checkInTime: data.checkInDate | date: data.dateFormat,\n passEndTime: data.passEndDate | date: data.dateFormat\n }\n }}\n </p>\n <!-- Only meaningful before check-in: an entry after the pass period has no gap to absorb. -->\n <p *ngIf=\"data.entryBeforeCheckIn\" class=\"tb-open-ticket-dialog__duration\">\n {{ L.guest_open_ticket_duration_before_check_in | translate }}\n <strong>{{ data.durationBeforeCheckIn }}</strong>\n </p>\n </section>\n\n <!-- With only one option left there is no choice to make, so asking \"how would you like to\n proceed?\" above a single radio reads as a rendering fault. State the outcome instead. -->\n <h3 id=\"tb-guest-open-ticket-question\" class=\"tb-open-ticket-dialog__question\">\n {{\n (data.coverAllowed ? L.guest_open_ticket_how_to_proceed : L.guest_open_ticket_only_exit_option)\n | translate\n }}\n </h3>\n\n <mat-radio-group\n class=\"tb-open-ticket-dialog__options\"\n aria-labelledby=\"tb-guest-open-ticket-question\"\n [(ngModel)]=\"choice\"\n name=\"openTicketChoice\">\n <!-- A div, not a label: mat-radio-button renders its own <label for>, and nesting that\n inside another label is invalid HTML and makes the click target ambiguous. The click\n handler keeps the whole card selectable. -->\n <div\n *ngIf=\"data.coverAllowed\"\n class=\"tb-open-ticket-dialog__option\"\n [class.tb-open-ticket-dialog__option--selected]=\"choice === Choice.CoverParkingPeriod\"\n (click)=\"choice = Choice.CoverParkingPeriod\">\n <mat-radio-button [value]=\"Choice.CoverParkingPeriod\">\n <span class=\"tb-open-ticket-dialog__option-title\">\n {{ L.guest_open_ticket_option_cover_title | translate }}\n </span>\n </mat-radio-button>\n <p class=\"tb-open-ticket-dialog__option-detail\">\n {{\n L.guest_open_ticket_option_cover_detail\n | translate\n : {\n entryTime: data.entryDate | date: data.dateFormat,\n duration: data.durationShort\n }\n }}\n </p>\n <p class=\"tb-open-ticket-dialog__outcome tb-open-ticket-dialog__outcome--closed\">\n {{ L.guest_open_ticket_outcome_closed | translate }}\n </p>\n </div>\n\n <div\n class=\"tb-open-ticket-dialog__option\"\n [class.tb-open-ticket-dialog__option--selected]=\"choice === Choice.ExitAndReenter\"\n (click)=\"choice = Choice.ExitAndReenter\">\n <mat-radio-button [value]=\"Choice.ExitAndReenter\">\n <span class=\"tb-open-ticket-dialog__option-title\">\n {{ L.guest_open_ticket_option_exit_title | translate }}\n </span>\n </mat-radio-button>\n <p class=\"tb-open-ticket-dialog__option-detail\">\n {{\n L.guest_open_ticket_option_exit_detail\n | translate: { checkInTime: data.checkInDate | date: data.dateFormat }\n }}\n </p>\n <p class=\"tb-open-ticket-dialog__outcome tb-open-ticket-dialog__outcome--open\">\n {{ L.guest_open_ticket_outcome_open | translate }}\n </p>\n </div>\n </mat-radio-group>\n </div>\n\n <mat-dialog-actions class=\"tb-open-ticket-dialog__footer\">\n <div class=\"buttons-wrapper\">\n <div class=\"buttons-wrapper-right\">\n <button (click)=\"cancel()\" class=\"tb-button tb-tertiary-button basic-button\"\n [attr.data-qa]=\"DataQaAttribute.guest_open_ticket_dialog + '_' + DataQaAttribute.cancel_btn\" matRipple>\n <span class=\"button-text\">{{ L.cancel | translate }}</span>\n </button>\n <button (click)=\"createGuest()\" class=\"tb-button tb-primary-button basic-button\"\n [attr.data-qa]=\"DataQaAttribute.guest_open_ticket_dialog + '_' + DataQaAttribute.confirm_btn\" matRipple>\n <span class=\"button-text\">{{ L.guest_open_ticket_create_guest | translate }}</span>\n </button>\n </div>\n </div>\n </mat-dialog-actions>\n</div>\n", styles: [".tb-open-ticket-dialog{display:flex;flex-direction:column;height:100%}.tb-open-ticket-dialog__header{background:#ffd362;padding:8px 16px;font-size:14px;font-weight:600;color:#2c3e50}.tb-open-ticket-dialog__body{flex:1;overflow-y:auto;padding:10px 16px}.tb-open-ticket-dialog__summary{background:#f9f9f9;border-radius:4px;padding:10px 12px;margin-bottom:10px}.tb-open-ticket-dialog__summary-text{margin:0;font-size:12px;line-height:1.45;color:#2c3e50}.tb-open-ticket-dialog__ticket{color:#0985eb;font-weight:600}.tb-open-ticket-dialog__duration{margin:6px 0 0;font-size:12px;color:#919eab}.tb-open-ticket-dialog__question{margin:0 0 8px;font-size:12px;font-weight:600;color:#2c3e50}.tb-open-ticket-dialog__options{display:flex;flex-direction:column;gap:6px}.tb-open-ticket-dialog__option{display:block;border:1px solid #dee2e6;border-radius:6px;padding:10px 12px;cursor:pointer}.tb-open-ticket-dialog__option--selected{border-color:#0985eb;background:#f2f7fb}.tb-open-ticket-dialog__option-title{font-size:12px;font-weight:600;color:#2c3e50}.tb-open-ticket-dialog__option-detail{margin:3px 0 0 30px;font-size:11px;line-height:1.4;color:#919eab}.tb-open-ticket-dialog__outcome{margin:5px 0 0 30px;font-size:11px;font-weight:500}.tb-open-ticket-dialog__outcome--closed{color:#26d637}.tb-open-ticket-dialog__outcome--open{color:#8a6d1a}.tb-open-ticket-dialog__footer{padding:10px 16px;border-top:1px solid #dee2e6}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.DatePipe, name: "date" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: LocalizationModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "ngmodule", type: MatRadioModule }, { kind: "directive", type: i5.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i5.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "ngmodule", type: MatRippleModule }, { kind: "directive", type: i6.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }] }); }
55
55
  }
56
56
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GuestOpenTicketDialogComponent, decorators: [{
57
57
  type: Component,
58
- args: [{ selector: 'tb-guest-open-ticket-dialog', standalone: true, imports: [CommonModule, FormsModule, LocalizationModule, MatDialogModule, MatRadioModule, MatRippleModule], template: "<div class=\"tb-open-ticket-dialog\">\n <!-- Named by id rather than by mat-dialog-title: the directive brings Material's own title\n typography and spacing with it, which would fight the coloured header band. The dialog's\n accessible name comes from ariaLabelledBy on the modal config. -->\n <header id=\"tb-guest-open-ticket-title\" class=\"tb-open-ticket-dialog__header\">\n {{ L.guest_open_ticket_detected_title | translate }}\n </header>\n\n <div class=\"tb-open-ticket-dialog__body\">\n <section class=\"tb-open-ticket-dialog__summary\">\n <!-- One key, not four concatenated fragments: he.json is a live RTL locale and a translator\n cannot reorder pieces the template glues together in source order. The emphasis on the\n plate and dates is given up deliberately - a sentence that can be translated is worth\n more than the bold. -->\n <p class=\"tb-open-ticket-dialog__summary-text\">\n {{\n (data.entryBeforeCheckIn ? L.guest_open_ticket_summary : L.guest_open_ticket_summary_after)\n | translate\n : {\n carPlate: data.carPlate,\n ticketNumber: data.ticketNumber,\n entryTime: data.entryDate | date: data.dateFormat,\n checkInTime: data.checkInDate | date: data.dateFormat,\n passEndTime: data.passEndDate | date: data.dateFormat\n }\n }}\n </p>\n <!-- Only meaningful before check-in: an entry after the pass period has no gap to absorb. -->\n <p *ngIf=\"data.entryBeforeCheckIn\" class=\"tb-open-ticket-dialog__duration\">\n {{ L.guest_open_ticket_duration_before_check_in | translate }}\n <strong>{{ data.durationBeforeCheckIn }}</strong>\n </p>\n </section>\n\n <!-- With only one option left there is no choice to make, so asking \"how would you like to\n proceed?\" above a single radio reads as a rendering fault. State the outcome instead. -->\n <h3 id=\"tb-guest-open-ticket-question\" class=\"tb-open-ticket-dialog__question\">\n {{\n (data.coverAllowed ? L.guest_open_ticket_how_to_proceed : L.guest_open_ticket_only_exit_option)\n | translate\n }}\n </h3>\n\n <mat-radio-group\n class=\"tb-open-ticket-dialog__options\"\n aria-labelledby=\"tb-guest-open-ticket-question\"\n [(ngModel)]=\"choice\"\n name=\"openTicketChoice\">\n <!-- A div, not a label: mat-radio-button renders its own <label for>, and nesting that\n inside another label is invalid HTML and makes the click target ambiguous. The click\n handler keeps the whole card selectable. -->\n <div\n *ngIf=\"data.coverAllowed\"\n class=\"tb-open-ticket-dialog__option\"\n [class.tb-open-ticket-dialog__option--selected]=\"choice === Choice.CoverParkingPeriod\"\n (click)=\"choice = Choice.CoverParkingPeriod\">\n <mat-radio-button [value]=\"Choice.CoverParkingPeriod\">\n <span class=\"tb-open-ticket-dialog__option-title\">\n {{ L.guest_open_ticket_option_cover_title | translate }}\n </span>\n </mat-radio-button>\n <p class=\"tb-open-ticket-dialog__option-detail\">\n {{\n L.guest_open_ticket_option_cover_detail\n | translate\n : {\n entryTime: data.entryDate | date: data.dateFormat,\n duration: data.durationShort\n }\n }}\n </p>\n <p class=\"tb-open-ticket-dialog__outcome tb-open-ticket-dialog__outcome--closed\">\n {{ L.guest_open_ticket_outcome_closed | translate }}\n </p>\n </div>\n\n <div\n class=\"tb-open-ticket-dialog__option\"\n [class.tb-open-ticket-dialog__option--selected]=\"choice === Choice.ExitAndReenter\"\n (click)=\"choice = Choice.ExitAndReenter\">\n <mat-radio-button [value]=\"Choice.ExitAndReenter\">\n <span class=\"tb-open-ticket-dialog__option-title\">\n {{ L.guest_open_ticket_option_exit_title | translate }}\n </span>\n </mat-radio-button>\n <p class=\"tb-open-ticket-dialog__option-detail\">\n {{\n L.guest_open_ticket_option_exit_detail\n | translate: { checkInTime: data.checkInDate | date: data.dateFormat }\n }}\n </p>\n <p class=\"tb-open-ticket-dialog__outcome tb-open-ticket-dialog__outcome--open\">\n {{ L.guest_open_ticket_outcome_open | translate }}\n </p>\n </div>\n </mat-radio-group>\n </div>\n\n <mat-dialog-actions class=\"tb-open-ticket-dialog__footer\">\n <div class=\"buttons-wrapper\">\n <div class=\"buttons-wrapper-right\">\n <button (click)=\"cancel()\" class=\"tb-button tb-tertiary-button basic-button\"\n [attr.data-qa]=\"DataQaAttribute.guest_open_ticket_dialog + '_' + DataQaAttribute.cancel_btn\" matRipple>\n <span class=\"button-text\">{{ L.cancel | translate }}</span>\n </button>\n <button (click)=\"createGuest()\" class=\"tb-button tb-primary-button basic-button\"\n [attr.data-qa]=\"DataQaAttribute.guest_open_ticket_dialog + '_' + DataQaAttribute.confirm_btn\" matRipple>\n <span class=\"button-text\">{{ L.guest_open_ticket_create_guest | translate }}</span>\n </button>\n </div>\n </div>\n </mat-dialog-actions>\n</div>\n", styles: [".tb-open-ticket-dialog{display:flex;flex-direction:column;height:100%}.tb-open-ticket-dialog__header{background:#ffd362;padding:8px 16px;font-size:14px;font-weight:600;color:#2c3e50}.tb-open-ticket-dialog__body{flex:1;overflow-y:auto;padding:10px 16px}.tb-open-ticket-dialog__summary{background:#f9f9f9;border-radius:4px;padding:10px 12px;margin-bottom:10px}.tb-open-ticket-dialog__summary-text{margin:0;font-size:12px;line-height:1.45;color:#2c3e50}.tb-open-ticket-dialog__ticket{color:#0670c7;font-weight:600}.tb-open-ticket-dialog__duration{margin:6px 0 0;font-size:12px;color:#5f6b78}.tb-open-ticket-dialog__question{margin:0 0 8px;font-size:12px;font-weight:600;color:#2c3e50}.tb-open-ticket-dialog__options{display:flex;flex-direction:column;gap:6px}.tb-open-ticket-dialog__option{display:block;border:1px solid #dee2e6;border-radius:6px;padding:10px 12px;cursor:pointer}.tb-open-ticket-dialog__option--selected{border-color:#0670c7;background:#f2f7fb}.tb-open-ticket-dialog__option-title{font-size:12px;font-weight:600;color:#2c3e50}.tb-open-ticket-dialog__option-detail{margin:3px 0 0 30px;font-size:11px;line-height:1.4;color:#5f6b78}.tb-open-ticket-dialog__outcome{margin:5px 0 0 30px;font-size:11px;font-weight:500}.tb-open-ticket-dialog__outcome--closed{color:#26d637}.tb-open-ticket-dialog__outcome--open{color:#8a6d1a}.tb-open-ticket-dialog__footer{padding:10px 16px;border-top:1px solid #dee2e6}\n"] }]
58
+ args: [{ selector: 'tb-guest-open-ticket-dialog', standalone: true, imports: [CommonModule, FormsModule, LocalizationModule, MatDialogModule, MatRadioModule, MatRippleModule], template: "<div class=\"tb-open-ticket-dialog\">\n <!-- Named by id rather than by mat-dialog-title: the directive brings Material's own title\n typography and spacing with it, which would fight the coloured header band. The dialog's\n accessible name comes from ariaLabelledBy on the modal config. -->\n <header id=\"tb-guest-open-ticket-title\" class=\"tb-open-ticket-dialog__header\">\n {{ L.guest_open_ticket_detected_title | translate }}\n </header>\n\n <div class=\"tb-open-ticket-dialog__body\">\n <section class=\"tb-open-ticket-dialog__summary\">\n <!-- One key, not four concatenated fragments: he.json is a live RTL locale and a translator\n cannot reorder pieces the template glues together in source order. The emphasis on the\n plate and dates is given up deliberately - a sentence that can be translated is worth\n more than the bold. -->\n <p class=\"tb-open-ticket-dialog__summary-text\">\n {{\n (data.entryBeforeCheckIn ? L.guest_open_ticket_summary : L.guest_open_ticket_summary_after)\n | translate\n : {\n carPlate: data.carPlate,\n ticketNumber: data.ticketNumber,\n entryTime: data.entryDate | date: data.dateFormat,\n checkInTime: data.checkInDate | date: data.dateFormat,\n passEndTime: data.passEndDate | date: data.dateFormat\n }\n }}\n </p>\n <!-- Only meaningful before check-in: an entry after the pass period has no gap to absorb. -->\n <p *ngIf=\"data.entryBeforeCheckIn\" class=\"tb-open-ticket-dialog__duration\">\n {{ L.guest_open_ticket_duration_before_check_in | translate }}\n <strong>{{ data.durationBeforeCheckIn }}</strong>\n </p>\n </section>\n\n <!-- With only one option left there is no choice to make, so asking \"how would you like to\n proceed?\" above a single radio reads as a rendering fault. State the outcome instead. -->\n <h3 id=\"tb-guest-open-ticket-question\" class=\"tb-open-ticket-dialog__question\">\n {{\n (data.coverAllowed ? L.guest_open_ticket_how_to_proceed : L.guest_open_ticket_only_exit_option)\n | translate\n }}\n </h3>\n\n <mat-radio-group\n class=\"tb-open-ticket-dialog__options\"\n aria-labelledby=\"tb-guest-open-ticket-question\"\n [(ngModel)]=\"choice\"\n name=\"openTicketChoice\">\n <!-- A div, not a label: mat-radio-button renders its own <label for>, and nesting that\n inside another label is invalid HTML and makes the click target ambiguous. The click\n handler keeps the whole card selectable. -->\n <div\n *ngIf=\"data.coverAllowed\"\n class=\"tb-open-ticket-dialog__option\"\n [class.tb-open-ticket-dialog__option--selected]=\"choice === Choice.CoverParkingPeriod\"\n (click)=\"choice = Choice.CoverParkingPeriod\">\n <mat-radio-button [value]=\"Choice.CoverParkingPeriod\">\n <span class=\"tb-open-ticket-dialog__option-title\">\n {{ L.guest_open_ticket_option_cover_title | translate }}\n </span>\n </mat-radio-button>\n <p class=\"tb-open-ticket-dialog__option-detail\">\n {{\n L.guest_open_ticket_option_cover_detail\n | translate\n : {\n entryTime: data.entryDate | date: data.dateFormat,\n duration: data.durationShort\n }\n }}\n </p>\n <p class=\"tb-open-ticket-dialog__outcome tb-open-ticket-dialog__outcome--closed\">\n {{ L.guest_open_ticket_outcome_closed | translate }}\n </p>\n </div>\n\n <div\n class=\"tb-open-ticket-dialog__option\"\n [class.tb-open-ticket-dialog__option--selected]=\"choice === Choice.ExitAndReenter\"\n (click)=\"choice = Choice.ExitAndReenter\">\n <mat-radio-button [value]=\"Choice.ExitAndReenter\">\n <span class=\"tb-open-ticket-dialog__option-title\">\n {{ L.guest_open_ticket_option_exit_title | translate }}\n </span>\n </mat-radio-button>\n <p class=\"tb-open-ticket-dialog__option-detail\">\n {{\n L.guest_open_ticket_option_exit_detail\n | translate: { checkInTime: data.checkInDate | date: data.dateFormat }\n }}\n </p>\n <p class=\"tb-open-ticket-dialog__outcome tb-open-ticket-dialog__outcome--open\">\n {{ L.guest_open_ticket_outcome_open | translate }}\n </p>\n </div>\n </mat-radio-group>\n </div>\n\n <mat-dialog-actions class=\"tb-open-ticket-dialog__footer\">\n <div class=\"buttons-wrapper\">\n <div class=\"buttons-wrapper-right\">\n <button (click)=\"cancel()\" class=\"tb-button tb-tertiary-button basic-button\"\n [attr.data-qa]=\"DataQaAttribute.guest_open_ticket_dialog + '_' + DataQaAttribute.cancel_btn\" matRipple>\n <span class=\"button-text\">{{ L.cancel | translate }}</span>\n </button>\n <button (click)=\"createGuest()\" class=\"tb-button tb-primary-button basic-button\"\n [attr.data-qa]=\"DataQaAttribute.guest_open_ticket_dialog + '_' + DataQaAttribute.confirm_btn\" matRipple>\n <span class=\"button-text\">{{ L.guest_open_ticket_create_guest | translate }}</span>\n </button>\n </div>\n </div>\n </mat-dialog-actions>\n</div>\n", styles: [".tb-open-ticket-dialog{display:flex;flex-direction:column;height:100%}.tb-open-ticket-dialog__header{background:#ffd362;padding:8px 16px;font-size:14px;font-weight:600;color:#2c3e50}.tb-open-ticket-dialog__body{flex:1;overflow-y:auto;padding:10px 16px}.tb-open-ticket-dialog__summary{background:#f9f9f9;border-radius:4px;padding:10px 12px;margin-bottom:10px}.tb-open-ticket-dialog__summary-text{margin:0;font-size:12px;line-height:1.45;color:#2c3e50}.tb-open-ticket-dialog__ticket{color:#0985eb;font-weight:600}.tb-open-ticket-dialog__duration{margin:6px 0 0;font-size:12px;color:#919eab}.tb-open-ticket-dialog__question{margin:0 0 8px;font-size:12px;font-weight:600;color:#2c3e50}.tb-open-ticket-dialog__options{display:flex;flex-direction:column;gap:6px}.tb-open-ticket-dialog__option{display:block;border:1px solid #dee2e6;border-radius:6px;padding:10px 12px;cursor:pointer}.tb-open-ticket-dialog__option--selected{border-color:#0985eb;background:#f2f7fb}.tb-open-ticket-dialog__option-title{font-size:12px;font-weight:600;color:#2c3e50}.tb-open-ticket-dialog__option-detail{margin:3px 0 0 30px;font-size:11px;line-height:1.4;color:#919eab}.tb-open-ticket-dialog__outcome{margin:5px 0 0 30px;font-size:11px;font-weight:500}.tb-open-ticket-dialog__outcome--closed{color:#26d637}.tb-open-ticket-dialog__outcome--open{color:#8a6d1a}.tb-open-ticket-dialog__footer{padding:10px 16px;border-top:1px solid #dee2e6}\n"] }]
59
59
  }], ctorParameters: () => [{ type: undefined, decorators: [{
60
60
  type: Inject,
61
61
  args: [MAT_DIALOG_DATA]
@@ -16,12 +16,12 @@ export class IntercomComponent {
16
16
  });
17
17
  }
18
18
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: IntercomComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
19
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: IntercomComponent, isStandalone: true, selector: "tb-intercom", inputs: { intercom: { classPropertyName: "intercom", publicName: "intercom", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div [ngClass]=\"intercomStatusClass()\" class=\"tb-intercom-icon\"></div>\n", styles: [":host{display:block}.tb-intercom-icon{display:block;height:22px;width:22px;background-image:url(/assets/icons/devices/status/phone.svg);background-size:12px;background-repeat:no-repeat;background-position:center;background-color:#d8dbe0;border-radius:50%;display:flex;justify-content:center;align-items:center}.tb-intercom-status-active,.tb-intercom-status-ringing{background-color:#0670c7}.tb-intercom-status-ringing:before{content:\"\";position:absolute;border:1px solid #0670c7;width:calc(100% + 10px);height:calc(100% + 10px);border-radius:50%;animation:pulse 1s linear infinite}.tb-intercom-status-ringing:after{content:\"\";position:absolute;border:1px solid #0670c7;width:calc(100% + 10px);height:calc(100% + 10px);border-radius:50%;animation:pulse 1s linear infinite;animation-delay:.3s}@keyframes pulse{0%{transform:scale(.5);opacity:0}50%{transform:scale(1);opacity:1}to{transform:scale(1.3);opacity:0}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
19
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: IntercomComponent, isStandalone: true, selector: "tb-intercom", inputs: { intercom: { classPropertyName: "intercom", publicName: "intercom", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div [ngClass]=\"intercomStatusClass()\" class=\"tb-intercom-icon\"></div>\n", styles: [":host{display:block}.tb-intercom-icon{display:block;height:22px;width:22px;background-image:url(/assets/icons/devices/status/phone.svg);background-size:12px;background-repeat:no-repeat;background-position:center;background-color:#d8dbe0;border-radius:50%;display:flex;justify-content:center;align-items:center}.tb-intercom-status-active,.tb-intercom-status-ringing{background-color:#0985eb}.tb-intercom-status-ringing:before{content:\"\";position:absolute;border:1px solid #0985eb;width:calc(100% + 10px);height:calc(100% + 10px);border-radius:50%;animation:pulse 1s linear infinite}.tb-intercom-status-ringing:after{content:\"\";position:absolute;border:1px solid #0985eb;width:calc(100% + 10px);height:calc(100% + 10px);border-radius:50%;animation:pulse 1s linear infinite;animation-delay:.3s}@keyframes pulse{0%{transform:scale(.5);opacity:0}50%{transform:scale(1);opacity:1}to{transform:scale(1.3);opacity:0}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
20
20
  }
21
21
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: IntercomComponent, decorators: [{
22
22
  type: Component,
23
23
  args: [{ selector: 'tb-intercom', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
24
24
  CommonModule
25
- ], template: "<div [ngClass]=\"intercomStatusClass()\" class=\"tb-intercom-icon\"></div>\n", styles: [":host{display:block}.tb-intercom-icon{display:block;height:22px;width:22px;background-image:url(/assets/icons/devices/status/phone.svg);background-size:12px;background-repeat:no-repeat;background-position:center;background-color:#d8dbe0;border-radius:50%;display:flex;justify-content:center;align-items:center}.tb-intercom-status-active,.tb-intercom-status-ringing{background-color:#0670c7}.tb-intercom-status-ringing:before{content:\"\";position:absolute;border:1px solid #0670c7;width:calc(100% + 10px);height:calc(100% + 10px);border-radius:50%;animation:pulse 1s linear infinite}.tb-intercom-status-ringing:after{content:\"\";position:absolute;border:1px solid #0670c7;width:calc(100% + 10px);height:calc(100% + 10px);border-radius:50%;animation:pulse 1s linear infinite;animation-delay:.3s}@keyframes pulse{0%{transform:scale(.5);opacity:0}50%{transform:scale(1);opacity:1}to{transform:scale(1.3);opacity:0}}\n"] }]
25
+ ], template: "<div [ngClass]=\"intercomStatusClass()\" class=\"tb-intercom-icon\"></div>\n", styles: [":host{display:block}.tb-intercom-icon{display:block;height:22px;width:22px;background-image:url(/assets/icons/devices/status/phone.svg);background-size:12px;background-repeat:no-repeat;background-position:center;background-color:#d8dbe0;border-radius:50%;display:flex;justify-content:center;align-items:center}.tb-intercom-status-active,.tb-intercom-status-ringing{background-color:#0985eb}.tb-intercom-status-ringing:before{content:\"\";position:absolute;border:1px solid #0985eb;width:calc(100% + 10px);height:calc(100% + 10px);border-radius:50%;animation:pulse 1s linear infinite}.tb-intercom-status-ringing:after{content:\"\";position:absolute;border:1px solid #0985eb;width:calc(100% + 10px);height:calc(100% + 10px);border-radius:50%;animation:pulse 1s linear infinite;animation-delay:.3s}@keyframes pulse{0%{transform:scale(.5);opacity:0}50%{transform:scale(1);opacity:1}to{transform:scale(1.3);opacity:0}}\n"] }]
26
26
  }] });
27
27
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJjb20uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXNoYXJlZC1saWIvc3JjL2xpYnJhcmllcy9jb21wb25lbnRzL2ludGVyY29tL2ludGVyY29tLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC1zaGFyZWQtbGliL3NyYy9saWJyYXJpZXMvY29tcG9uZW50cy9pbnRlcmNvbS9pbnRlcmNvbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBZSxhQUFhLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7O0FBWXJGLE1BQU0sT0FBTyxpQkFBaUI7SUFWOUI7UUFZRSxhQUFRLEdBQUcsS0FBSyxFQUFlLENBQUM7UUFFaEMsd0JBQW1CLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNsQyxRQUFRLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQztnQkFDL0IsS0FBSyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyw0QkFBNEIsQ0FBQztnQkFDaEUsS0FBSyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTywyQkFBMkIsQ0FBQztnQkFDNUQsS0FBSyxhQUFhLENBQUMsSUFBSSxDQUFDO2dCQUN4QixPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNyQixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7S0FDSjsrR0FaWSxpQkFBaUI7bUdBQWpCLGlCQUFpQixvTkNkOUIsOEVBQ0EsNDhCRFVJLFlBQVk7OzRGQUdILGlCQUFpQjtrQkFWN0IsU0FBUzsrQkFDRSxhQUFhLG1CQUdOLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNQLFlBQVk7cUJBQ2IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJbnRlcmNvbUR0bywgSW50ZXJjb21TdGF0ZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UtcHJveHkvcnBjLXNlcnZpY2UtcHJveGllcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RiLWludGVyY29tJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ludGVyY29tLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaW50ZXJjb20uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBJbnRlcmNvbUNvbXBvbmVudCB7XG5cbiAgaW50ZXJjb20gPSBpbnB1dDxJbnRlcmNvbUR0bz4oKTtcbiAgXG4gIGludGVyY29tU3RhdHVzQ2xhc3MgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgc3dpdGNoICh0aGlzLmludGVyY29tKCk/LnN0YXRlKSB7IFxuICAgICAgY2FzZSBJbnRlcmNvbVN0YXRlLlJpbmdpbmc6IHJldHVybiAndGItaW50ZXJjb20tc3RhdHVzLXJpbmdpbmcnO1xuICAgICAgY2FzZSBJbnRlcmNvbVN0YXRlLkNhbGw6IHJldHVybiAndGItaW50ZXJjb20tc3RhdHVzLWFjdGl2ZSc7XG4gICAgICBjYXNlIEludGVyY29tU3RhdGUuSWRsZTpcbiAgICAgIGRlZmF1bHQ6IHJldHVybiAnJztcbiAgICB9XG4gIH0pO1xufVxuIiwiPGRpdiBbbmdDbGFzc109XCJpbnRlcmNvbVN0YXR1c0NsYXNzKClcIiBjbGFzcz1cInRiLWludGVyY29tLWljb25cIj48L2Rpdj5cbiJdfQ==
@@ -14,7 +14,7 @@ export class LogoComponent extends BaseComponent {
14
14
  ngOnInit() {
15
15
  }
16
16
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LogoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
17
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: LogoComponent, isStandalone: true, selector: "tb-logo", inputs: { classImage: "classImage" }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"image$ | async as image\">\n <div [class.tb-h-60]=\"image\" class=\"tb-logo-wrapper {{classImage}}\">\n <img class=\"image-logo\" [src]=\"image\" alt=\"\">\n </div>\n</ng-container>\n", styles: [":host{width:100%}.tb-logo-wrapper{display:flex;justify-content:center}.tb-logo-wrapper.tb-user-menu-logo{height:20px!important;max-width:50px;margin:5px 10px}.image-logo{max-width:100%;object-fit:contain}.mobile-menu-logo{margin:0;padding:5px 6px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TenantLogoModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
17
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: LogoComponent, isStandalone: true, selector: "tb-logo", inputs: { classImage: "classImage" }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"image$ | async as image\">\n <div [class.tb-h-60]=\"image\" class=\"tb-logo-wrapper {{classImage}}\">\n <img class=\"image-logo\" [src]=\"image\">\n </div>\n</ng-container>\n", styles: [":host{width:100%}.tb-logo-wrapper{display:flex;justify-content:center}.tb-logo-wrapper.tb-user-menu-logo{height:20px!important;max-width:50px;margin:5px 10px}.image-logo{max-width:100%;object-fit:contain}.mobile-menu-logo{margin:0;padding:5px 6px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TenantLogoModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
18
18
  }
19
19
  __decorate([
20
20
  Select(LogoState.image)
@@ -24,8 +24,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
24
24
  args: [{ selector: 'tb-logo', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
25
25
  CommonModule,
26
26
  TenantLogoModule,
27
- ], template: "<ng-container *ngIf=\"image$ | async as image\">\n <div [class.tb-h-60]=\"image\" class=\"tb-logo-wrapper {{classImage}}\">\n <img class=\"image-logo\" [src]=\"image\" alt=\"\">\n </div>\n</ng-container>\n", styles: [":host{width:100%}.tb-logo-wrapper{display:flex;justify-content:center}.tb-logo-wrapper.tb-user-menu-logo{height:20px!important;max-width:50px;margin:5px 10px}.image-logo{max-width:100%;object-fit:contain}.mobile-menu-logo{margin:0;padding:5px 6px}\n"] }]
27
+ ], template: "<ng-container *ngIf=\"image$ | async as image\">\n <div [class.tb-h-60]=\"image\" class=\"tb-logo-wrapper {{classImage}}\">\n <img class=\"image-logo\" [src]=\"image\">\n </div>\n</ng-container>\n", styles: [":host{width:100%}.tb-logo-wrapper{display:flex;justify-content:center}.tb-logo-wrapper.tb-user-menu-logo{height:20px!important;max-width:50px;margin:5px 10px}.image-logo{max-width:100%;object-fit:contain}.mobile-menu-logo{margin:0;padding:5px 6px}\n"] }]
28
28
  }], ctorParameters: () => [], propDecorators: { image$: [], classImage: [{
29
29
  type: Input
30
30
  }] } });
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtc2hhcmVkLWxpYi9zcmMvbGlicmFyaWVzL2NvbXBvbmVudHMvbG9nby9sb2dvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC1zaGFyZWQtbGliL3NyYy9saWJyYXJpZXMvY29tcG9uZW50cy9sb2dvL2xvZ28uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUVsRixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXJDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7OztBQWF2RCxNQUFNLE9BQU8sYUFBYyxTQUFRLGFBQWE7SUFPOUM7UUFDRSxLQUFLLEVBQUUsQ0FBQztJQUNWLENBQUM7SUFFRCxRQUFRO0lBQ1IsQ0FBQzsrR0FaVSxhQUFhO21HQUFiLGFBQWEsZ0lDcEIxQixvTkFLQSxrVERXSSxZQUFZLHVMQUNaLGdCQUFnQjs7QUFNbEI7SUFEQyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQzs2Q0FDSTs0RkFIakIsYUFBYTtrQkFYekIsU0FBUzsrQkFDRSxTQUFTLGNBR1AsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDO3dCQUNQLFlBQVk7d0JBQ1osZ0JBQWdCO3FCQUNqQjt3REFLRCxNQUFNLE1BRUcsVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTYWZlVXJsIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBTZWxlY3QgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUZW5hbnRMb2dvTW9kdWxlIH0gZnJvbSAnLi4vLi4vbW9kdWxlcy90ZW5hbnQtbG9nby90ZW5hbnQtbG9nby5tb2R1bGUnO1xuaW1wb3J0IHsgTG9nb1N0YXRlIH0gZnJvbSAnLi4vLi4vbW9kdWxlcy90ZW5hbnQtbG9nby90ZW5hbnQtbG9nby5zdGF0ZSc7XG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS9iYXNlLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RiLWxvZ28nLFxuICB0ZW1wbGF0ZVVybDogJy4vbG9nby5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2xvZ28uY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgVGVuYW50TG9nb01vZHVsZSxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBMb2dvQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQFNlbGVjdChMb2dvU3RhdGUuaW1hZ2UpXG4gIGltYWdlJDogT2JzZXJ2YWJsZTxTYWZlVXJsPjtcblxuICBASW5wdXQoKSBjbGFzc0ltYWdlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiaW1hZ2UkIHwgYXN5bmMgYXMgaW1hZ2VcIj5cbiAgPGRpdiBbY2xhc3MudGItaC02MF09XCJpbWFnZVwiIGNsYXNzPVwidGItbG9nby13cmFwcGVyIHt7Y2xhc3NJbWFnZX19XCI+XG4gICAgPGltZyBjbGFzcz1cImltYWdlLWxvZ29cIiBbc3JjXT1cImltYWdlXCIgYWx0PVwiXCI+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG4iXX0=
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtc2hhcmVkLWxpYi9zcmMvbGlicmFyaWVzL2NvbXBvbmVudHMvbG9nby9sb2dvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC1zaGFyZWQtbGliL3NyYy9saWJyYXJpZXMvY29tcG9uZW50cy9sb2dvL2xvZ28uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUVsRixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXJDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7OztBQWF2RCxNQUFNLE9BQU8sYUFBYyxTQUFRLGFBQWE7SUFPOUM7UUFDRSxLQUFLLEVBQUUsQ0FBQztJQUNWLENBQUM7SUFFRCxRQUFRO0lBQ1IsQ0FBQzsrR0FaVSxhQUFhO21HQUFiLGFBQWEsZ0lDcEIxQiwyTUFLQSxrVERXSSxZQUFZLHVMQUNaLGdCQUFnQjs7QUFNbEI7SUFEQyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQzs2Q0FDSTs0RkFIakIsYUFBYTtrQkFYekIsU0FBUzsrQkFDRSxTQUFTLGNBR1AsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDO3dCQUNQLFlBQVk7d0JBQ1osZ0JBQWdCO3FCQUNqQjt3REFLRCxNQUFNLE1BRUcsVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTYWZlVXJsIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBTZWxlY3QgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUZW5hbnRMb2dvTW9kdWxlIH0gZnJvbSAnLi4vLi4vbW9kdWxlcy90ZW5hbnQtbG9nby90ZW5hbnQtbG9nby5tb2R1bGUnO1xuaW1wb3J0IHsgTG9nb1N0YXRlIH0gZnJvbSAnLi4vLi4vbW9kdWxlcy90ZW5hbnQtbG9nby90ZW5hbnQtbG9nby5zdGF0ZSc7XG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS9iYXNlLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RiLWxvZ28nLFxuICB0ZW1wbGF0ZVVybDogJy4vbG9nby5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2xvZ28uY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgVGVuYW50TG9nb01vZHVsZSxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBMb2dvQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQFNlbGVjdChMb2dvU3RhdGUuaW1hZ2UpXG4gIGltYWdlJDogT2JzZXJ2YWJsZTxTYWZlVXJsPjtcblxuICBASW5wdXQoKSBjbGFzc0ltYWdlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiaW1hZ2UkIHwgYXN5bmMgYXMgaW1hZ2VcIj5cbiAgPGRpdiBbY2xhc3MudGItaC02MF09XCJpbWFnZVwiIGNsYXNzPVwidGItbG9nby13cmFwcGVyIHt7Y2xhc3NJbWFnZX19XCI+XG4gICAgPGltZyBjbGFzcz1cImltYWdlLWxvZ29cIiBbc3JjXT1cImltYWdlXCI+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG4iXX0=
@@ -1,5 +1,5 @@
1
1
  import { Injectable } from '@angular/core';
2
- import { DurationMessageBar, MIN_MESSAGE_DURATION } from '../../enums';
2
+ import { DurationMessageBar } from '../../enums';
3
3
  import { buildMessageInfos } from '../../utils/message-bar.util';
4
4
  import { MessageBarContainerComponent } from '../message-bar/message-bar-container/message-bar-container.component';
5
5
  import { MessageBarComponent } from '../message-bar/message-bar.component';
@@ -14,51 +14,27 @@ export class FloatMessageBarService {
14
14
  openFromMessageBarComponent(messageBarDetails, options) {
15
15
  const messagesInfo = buildMessageInfos(this.translateService, messageBarDetails, options);
16
16
  const duration = options?.duration === DurationMessageBar.displayContinuously ? undefined : (options?.duration || DurationMessageBar.defaultDisplayMultiMessages); // On duration "0", the snack bar will be display continuously
17
- const ref = this._snackBar.openFromComponent(MessageBarComponent, {
17
+ this._snackBar.openFromComponent(MessageBarComponent, {
18
18
  data: messagesInfo,
19
19
  horizontalPosition: 'center',
20
20
  verticalPosition: 'top',
21
+ duration,
21
22
  panelClass: 'message-bar'
22
23
  });
23
- this.dismissWhenIdle(ref, duration);
24
24
  }
25
25
  openMessageBarContainerComponent(message) {
26
26
  const duration = message.duration === DurationMessageBar.displayContinuously ? undefined : (message.duration || DurationMessageBar.defaultDisplayOneMessage); // On duration "0", the snack bar will be display continuously
27
- const ref = this._snackBar.openFromComponent(MessageBarContainerComponent, {
27
+ this._snackBar.openFromComponent(MessageBarContainerComponent, {
28
28
  data: message,
29
29
  horizontalPosition: 'center',
30
30
  verticalPosition: 'top',
31
+ duration,
31
32
  panelClass: 'message-bar'
32
33
  });
33
- this.dismissWhenIdle(ref, duration);
34
34
  }
35
35
  clearSnackbar() {
36
36
  this._snackBar.dismiss();
37
37
  }
38
- /** Closes after `duration` (at least 5 s), restarting the wait while hovered or focused. */
39
- dismissWhenIdle(ref, duration) {
40
- if (!duration) {
41
- return;
42
- }
43
- ref.afterOpened().subscribe(() => {
44
- const element = document.querySelector('mat-snack-bar-container.message-bar');
45
- let timer;
46
- const stop = () => clearTimeout(timer);
47
- const start = () => {
48
- stop();
49
- if (!element?.matches(':hover') && !element?.contains(document.activeElement)) {
50
- timer = setTimeout(() => ref.dismiss(), Math.max(duration, MIN_MESSAGE_DURATION));
51
- }
52
- };
53
- element?.addEventListener('mouseenter', stop);
54
- element?.addEventListener('focusin', stop);
55
- element?.addEventListener('mouseleave', start);
56
- // focusout fires before focus lands on the next element.
57
- element?.addEventListener('focusout', () => setTimeout(start));
58
- ref.afterDismissed().subscribe(stop);
59
- start();
60
- });
61
- }
62
38
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FloatMessageBarService, deps: [{ token: i1.MatSnackBar }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable }); }
63
39
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FloatMessageBarService, providedIn: 'root' }); }
64
40
  }
@@ -66,4 +42,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
66
42
  type: Injectable,
67
43
  args: [{ providedIn: 'root' }]
68
44
  }], ctorParameters: () => [{ type: i1.MatSnackBar }, { type: i2.TranslateService }] });
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvYXQtbWVzc2FnZS1iYXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC1zaGFyZWQtbGliL3NyYy9saWJyYXJpZXMvY29tcG9uZW50cy9tZXNzYWdlLWJhci9mbG9hdC1tZXNzYWdlLWJhci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHNFQUFzRSxDQUFDO0FBQ3BILE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOzs7O0FBSzNFLE1BQU0sT0FBTyxzQkFBc0I7SUFFakMsWUFBb0IsU0FBc0IsRUFBVSxnQkFBa0M7UUFBbEUsY0FBUyxHQUFULFNBQVMsQ0FBYTtRQUFVLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7SUFDdEYsQ0FBQztJQUVNLDJCQUEyQixDQUFDLGlCQUFzQyxFQUFFLE9BQXFCO1FBQzlGLE1BQU0sWUFBWSxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUMxRixNQUFNLFFBQVEsR0FBRyxPQUFPLEVBQUUsUUFBUSxLQUFLLGtCQUFrQixDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLFFBQVEsSUFBSSxrQkFBa0IsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLENBQUMsOERBQThEO1FBQ2pPLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsbUJBQW1CLEVBQUU7WUFDaEUsSUFBSSxFQUFFLFlBQVk7WUFDbEIsa0JBQWtCLEVBQUUsUUFBUTtZQUM1QixnQkFBZ0IsRUFBRSxLQUFLO1lBQ3ZCLFVBQVUsRUFBRSxhQUFhO1NBQzFCLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFTSxnQ0FBZ0MsQ0FBQyxPQUFvQjtRQUMxRCxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxLQUFLLGtCQUFrQixDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsSUFBSSxrQkFBa0IsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLENBQUMsOERBQThEO1FBQzVOLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsNEJBQTRCLEVBQUU7WUFDekUsSUFBSSxFQUFFLE9BQU87WUFDYixrQkFBa0IsRUFBRSxRQUFRO1lBQzVCLGdCQUFnQixFQUFFLEtBQUs7WUFDdkIsVUFBVSxFQUFFLGFBQWE7U0FDMUIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVNLGFBQWE7UUFDbEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsNEZBQTRGO0lBQ3BGLGVBQWUsQ0FBQyxHQUE0QixFQUFFLFFBQTRCO1FBQ2hGLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNkLE9BQU87UUFDVCxDQUFDO1FBQ0QsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDL0IsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBYyxxQ0FBcUMsQ0FBQyxDQUFDO1lBQzNGLElBQUksS0FBb0MsQ0FBQztZQUN6QyxNQUFNLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdkMsTUFBTSxLQUFLLEdBQUcsR0FBRyxFQUFFO2dCQUNqQixJQUFJLEVBQUUsQ0FBQztnQkFDUCxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7b0JBQzlFLEtBQUssR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLG9CQUFvQixDQUFDLENBQUMsQ0FBQztnQkFDcEYsQ0FBQztZQUNILENBQUMsQ0FBQztZQUNGLE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDOUMsT0FBTyxFQUFFLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUMzQyxPQUFPLEVBQUUsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQy9DLHlEQUF5RDtZQUN6RCxPQUFPLEVBQUUsZ0JBQWdCLENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQy9ELEdBQUcsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDckMsS0FBSyxFQUFFLENBQUM7UUFDVixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7K0dBdkRVLHNCQUFzQjttSEFBdEIsc0JBQXNCLGNBRFQsTUFBTTs7NEZBQ25CLHNCQUFzQjtrQkFEbEMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRTbmFja0JhciwgTWF0U25hY2tCYXJSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgRHVyYXRpb25NZXNzYWdlQmFyLCBNSU5fTUVTU0FHRV9EVVJBVElPTiB9IGZyb20gJy4uLy4uL2VudW1zJztcbmltcG9ydCB7IGJ1aWxkTWVzc2FnZUluZm9zIH0gZnJvbSAnLi4vLi4vdXRpbHMvbWVzc2FnZS1iYXIudXRpbCc7XG5pbXBvcnQgeyBNZXNzYWdlQmFyQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vbWVzc2FnZS1iYXIvbWVzc2FnZS1iYXItY29udGFpbmVyL21lc3NhZ2UtYmFyLWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWVzc2FnZUJhckNvbXBvbmVudCB9IGZyb20gJy4uL21lc3NhZ2UtYmFyL21lc3NhZ2UtYmFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNZXNzYWdlQmFyRGV0YWlscyB9IGZyb20gJy4vbWVzc2FnZS1iYXItZGV0YWlscy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTWVzc2FnZUluZm8gfSBmcm9tICcuL21lc3NhZ2UtaW5mby5pbnRlcmZhY2UnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEZsb2F0TWVzc2FnZUJhclNlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3NuYWNrQmFyOiBNYXRTbmFja0JhciwgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7XG4gIH1cblxuICBwdWJsaWMgb3BlbkZyb21NZXNzYWdlQmFyQ29tcG9uZW50KG1lc3NhZ2VCYXJEZXRhaWxzOiBNZXNzYWdlQmFyRGV0YWlsc1tdLCBvcHRpb25zPzogTWVzc2FnZUluZm8pIHtcbiAgICBjb25zdCBtZXNzYWdlc0luZm8gPSBidWlsZE1lc3NhZ2VJbmZvcyh0aGlzLnRyYW5zbGF0ZVNlcnZpY2UsIG1lc3NhZ2VCYXJEZXRhaWxzLCBvcHRpb25zKTtcbiAgICBjb25zdCBkdXJhdGlvbiA9IG9wdGlvbnM/LmR1cmF0aW9uID09PSBEdXJhdGlvbk1lc3NhZ2VCYXIuZGlzcGxheUNvbnRpbnVvdXNseSA/IHVuZGVmaW5lZCA6IChvcHRpb25zPy5kdXJhdGlvbiB8fCBEdXJhdGlvbk1lc3NhZ2VCYXIuZGVmYXVsdERpc3BsYXlNdWx0aU1lc3NhZ2VzKTsgLy8gT24gZHVyYXRpb24gXCIwXCIsIHRoZSBzbmFjayBiYXIgd2lsbCBiZSBkaXNwbGF5IGNvbnRpbnVvdXNseVxuICAgIGNvbnN0IHJlZiA9IHRoaXMuX3NuYWNrQmFyLm9wZW5Gcm9tQ29tcG9uZW50KE1lc3NhZ2VCYXJDb21wb25lbnQsIHtcbiAgICAgIGRhdGE6IG1lc3NhZ2VzSW5mbyxcbiAgICAgIGhvcml6b250YWxQb3NpdGlvbjogJ2NlbnRlcicsXG4gICAgICB2ZXJ0aWNhbFBvc2l0aW9uOiAndG9wJyxcbiAgICAgIHBhbmVsQ2xhc3M6ICdtZXNzYWdlLWJhcidcbiAgICB9KTtcbiAgICB0aGlzLmRpc21pc3NXaGVuSWRsZShyZWYsIGR1cmF0aW9uKTtcbiAgfVxuXG4gIHB1YmxpYyBvcGVuTWVzc2FnZUJhckNvbnRhaW5lckNvbXBvbmVudChtZXNzYWdlOiBNZXNzYWdlSW5mbykge1xuICAgIGNvbnN0IGR1cmF0aW9uID0gbWVzc2FnZS5kdXJhdGlvbiA9PT0gRHVyYXRpb25NZXNzYWdlQmFyLmRpc3BsYXlDb250aW51b3VzbHkgPyB1bmRlZmluZWQgOiAobWVzc2FnZS5kdXJhdGlvbiB8fCBEdXJhdGlvbk1lc3NhZ2VCYXIuZGVmYXVsdERpc3BsYXlPbmVNZXNzYWdlKTsgLy8gT24gZHVyYXRpb24gXCIwXCIsIHRoZSBzbmFjayBiYXIgd2lsbCBiZSBkaXNwbGF5IGNvbnRpbnVvdXNseVxuICAgIGNvbnN0IHJlZiA9IHRoaXMuX3NuYWNrQmFyLm9wZW5Gcm9tQ29tcG9uZW50KE1lc3NhZ2VCYXJDb250YWluZXJDb21wb25lbnQsIHtcbiAgICAgIGRhdGE6IG1lc3NhZ2UsXG4gICAgICBob3Jpem9udGFsUG9zaXRpb246ICdjZW50ZXInLFxuICAgICAgdmVydGljYWxQb3NpdGlvbjogJ3RvcCcsXG4gICAgICBwYW5lbENsYXNzOiAnbWVzc2FnZS1iYXInXG4gICAgfSk7XG4gICAgdGhpcy5kaXNtaXNzV2hlbklkbGUocmVmLCBkdXJhdGlvbik7XG4gIH1cblxuICBwdWJsaWMgY2xlYXJTbmFja2JhcigpIHtcbiAgICB0aGlzLl9zbmFja0Jhci5kaXNtaXNzKCk7XG4gIH1cblxuICAvKiogQ2xvc2VzIGFmdGVyIGBkdXJhdGlvbmAgKGF0IGxlYXN0IDUgcyksIHJlc3RhcnRpbmcgdGhlIHdhaXQgd2hpbGUgaG92ZXJlZCBvciBmb2N1c2VkLiAqL1xuICBwcml2YXRlIGRpc21pc3NXaGVuSWRsZShyZWY6IE1hdFNuYWNrQmFyUmVmPHVua25vd24+LCBkdXJhdGlvbjogbnVtYmVyIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKCFkdXJhdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICByZWYuYWZ0ZXJPcGVuZWQoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KCdtYXQtc25hY2stYmFyLWNvbnRhaW5lci5tZXNzYWdlLWJhcicpO1xuICAgICAgbGV0IHRpbWVyOiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PjtcbiAgICAgIGNvbnN0IHN0b3AgPSAoKSA9PiBjbGVhclRpbWVvdXQodGltZXIpO1xuICAgICAgY29uc3Qgc3RhcnQgPSAoKSA9PiB7XG4gICAgICAgIHN0b3AoKTtcbiAgICAgICAgaWYgKCFlbGVtZW50Py5tYXRjaGVzKCc6aG92ZXInKSAmJiAhZWxlbWVudD8uY29udGFpbnMoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkpIHtcbiAgICAgICAgICB0aW1lciA9IHNldFRpbWVvdXQoKCkgPT4gcmVmLmRpc21pc3MoKSwgTWF0aC5tYXgoZHVyYXRpb24sIE1JTl9NRVNTQUdFX0RVUkFUSU9OKSk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICBlbGVtZW50Py5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgc3RvcCk7XG4gICAgICBlbGVtZW50Py5hZGRFdmVudExpc3RlbmVyKCdmb2N1c2luJywgc3RvcCk7XG4gICAgICBlbGVtZW50Py5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgc3RhcnQpO1xuICAgICAgLy8gZm9jdXNvdXQgZmlyZXMgYmVmb3JlIGZvY3VzIGxhbmRzIG9uIHRoZSBuZXh0IGVsZW1lbnQuXG4gICAgICBlbGVtZW50Py5hZGRFdmVudExpc3RlbmVyKCdmb2N1c291dCcsICgpID0+IHNldFRpbWVvdXQoc3RhcnQpKTtcbiAgICAgIHJlZi5hZnRlckRpc21pc3NlZCgpLnN1YnNjcmliZShzdG9wKTtcbiAgICAgIHN0YXJ0KCk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvYXQtbWVzc2FnZS1iYXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC1zaGFyZWQtbGliL3NyYy9saWJyYXJpZXMvY29tcG9uZW50cy9tZXNzYWdlLWJhci9mbG9hdC1tZXNzYWdlLWJhci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHNFQUFzRSxDQUFDO0FBQ3BILE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOzs7O0FBSzNFLE1BQU0sT0FBTyxzQkFBc0I7SUFFakMsWUFBb0IsU0FBc0IsRUFBVSxnQkFBa0M7UUFBbEUsY0FBUyxHQUFULFNBQVMsQ0FBYTtRQUFVLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7SUFDdEYsQ0FBQztJQUVNLDJCQUEyQixDQUFDLGlCQUFzQyxFQUFFLE9BQXFCO1FBQzlGLE1BQU0sWUFBWSxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUMxRixNQUFNLFFBQVEsR0FBRyxPQUFPLEVBQUUsUUFBUSxLQUFLLGtCQUFrQixDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLFFBQVEsSUFBSSxrQkFBa0IsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLENBQUMsOERBQThEO1FBQ2pPLElBQUksQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsbUJBQW1CLEVBQUU7WUFDcEQsSUFBSSxFQUFFLFlBQVk7WUFDbEIsa0JBQWtCLEVBQUUsUUFBUTtZQUM1QixnQkFBZ0IsRUFBRSxLQUFLO1lBQ3ZCLFFBQVE7WUFDUixVQUFVLEVBQUUsYUFBYTtTQUMxQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sZ0NBQWdDLENBQUMsT0FBb0I7UUFDMUQsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsS0FBSyxrQkFBa0IsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLElBQUksa0JBQWtCLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDLDhEQUE4RDtRQUM1TixJQUFJLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLDRCQUE0QixFQUFFO1lBQzdELElBQUksRUFBRSxPQUFPO1lBQ2Isa0JBQWtCLEVBQUUsUUFBUTtZQUM1QixnQkFBZ0IsRUFBRSxLQUFLO1lBQ3ZCLFFBQVE7WUFDUixVQUFVLEVBQUUsYUFBYTtTQUMxQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sYUFBYTtRQUNsQixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzNCLENBQUM7K0dBOUJVLHNCQUFzQjttSEFBdEIsc0JBQXNCLGNBRFQsTUFBTTs7NEZBQ25CLHNCQUFzQjtrQkFEbEMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRTbmFja0JhciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBEdXJhdGlvbk1lc3NhZ2VCYXIgfSBmcm9tICcuLi8uLi9lbnVtcyc7XG5pbXBvcnQgeyBidWlsZE1lc3NhZ2VJbmZvcyB9IGZyb20gJy4uLy4uL3V0aWxzL21lc3NhZ2UtYmFyLnV0aWwnO1xuaW1wb3J0IHsgTWVzc2FnZUJhckNvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4uL21lc3NhZ2UtYmFyL21lc3NhZ2UtYmFyLWNvbnRhaW5lci9tZXNzYWdlLWJhci1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7IE1lc3NhZ2VCYXJDb21wb25lbnQgfSBmcm9tICcuLi9tZXNzYWdlLWJhci9tZXNzYWdlLWJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWVzc2FnZUJhckRldGFpbHMgfSBmcm9tICcuL21lc3NhZ2UtYmFyLWRldGFpbHMuaW50ZXJmYWNlJztcbmltcG9ydCB7IE1lc3NhZ2VJbmZvIH0gZnJvbSAnLi9tZXNzYWdlLWluZm8uaW50ZXJmYWNlJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBGbG9hdE1lc3NhZ2VCYXJTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9zbmFja0JhcjogTWF0U25hY2tCYXIsIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSkge1xuICB9XG5cbiAgcHVibGljIG9wZW5Gcm9tTWVzc2FnZUJhckNvbXBvbmVudChtZXNzYWdlQmFyRGV0YWlsczogTWVzc2FnZUJhckRldGFpbHNbXSwgb3B0aW9ucz86IE1lc3NhZ2VJbmZvKSB7XG4gICAgY29uc3QgbWVzc2FnZXNJbmZvID0gYnVpbGRNZXNzYWdlSW5mb3ModGhpcy50cmFuc2xhdGVTZXJ2aWNlLCBtZXNzYWdlQmFyRGV0YWlscywgb3B0aW9ucyk7XG4gICAgY29uc3QgZHVyYXRpb24gPSBvcHRpb25zPy5kdXJhdGlvbiA9PT0gRHVyYXRpb25NZXNzYWdlQmFyLmRpc3BsYXlDb250aW51b3VzbHkgPyB1bmRlZmluZWQgOiAob3B0aW9ucz8uZHVyYXRpb24gfHwgRHVyYXRpb25NZXNzYWdlQmFyLmRlZmF1bHREaXNwbGF5TXVsdGlNZXNzYWdlcyk7IC8vIE9uIGR1cmF0aW9uIFwiMFwiLCB0aGUgc25hY2sgYmFyIHdpbGwgYmUgZGlzcGxheSBjb250aW51b3VzbHlcbiAgICB0aGlzLl9zbmFja0Jhci5vcGVuRnJvbUNvbXBvbmVudChNZXNzYWdlQmFyQ29tcG9uZW50LCB7XG4gICAgICBkYXRhOiBtZXNzYWdlc0luZm8sXG4gICAgICBob3Jpem9udGFsUG9zaXRpb246ICdjZW50ZXInLFxuICAgICAgdmVydGljYWxQb3NpdGlvbjogJ3RvcCcsXG4gICAgICBkdXJhdGlvbixcbiAgICAgIHBhbmVsQ2xhc3M6ICdtZXNzYWdlLWJhcidcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvcGVuTWVzc2FnZUJhckNvbnRhaW5lckNvbXBvbmVudChtZXNzYWdlOiBNZXNzYWdlSW5mbykge1xuICAgIGNvbnN0IGR1cmF0aW9uID0gbWVzc2FnZS5kdXJhdGlvbiA9PT0gRHVyYXRpb25NZXNzYWdlQmFyLmRpc3BsYXlDb250aW51b3VzbHkgPyB1bmRlZmluZWQgOiAobWVzc2FnZS5kdXJhdGlvbiB8fCBEdXJhdGlvbk1lc3NhZ2VCYXIuZGVmYXVsdERpc3BsYXlPbmVNZXNzYWdlKTsgLy8gT24gZHVyYXRpb24gXCIwXCIsIHRoZSBzbmFjayBiYXIgd2lsbCBiZSBkaXNwbGF5IGNvbnRpbnVvdXNseVxuICAgIHRoaXMuX3NuYWNrQmFyLm9wZW5Gcm9tQ29tcG9uZW50KE1lc3NhZ2VCYXJDb250YWluZXJDb21wb25lbnQsIHtcbiAgICAgIGRhdGE6IG1lc3NhZ2UsXG4gICAgICBob3Jpem9udGFsUG9zaXRpb246ICdjZW50ZXInLFxuICAgICAgdmVydGljYWxQb3NpdGlvbjogJ3RvcCcsXG4gICAgICBkdXJhdGlvbixcbiAgICAgIHBhbmVsQ2xhc3M6ICdtZXNzYWdlLWJhcidcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhclNuYWNrYmFyKCkge1xuICAgIHRoaXMuX3NuYWNrQmFyLmRpc21pc3MoKTtcbiAgfVxufVxuIl19
@@ -9,14 +9,11 @@ import { IconsHelper } from '../../enums/icon.enum';
9
9
  import { FacilityState } from '../../modules/facility/facility.state';
10
10
  import { SidenavState } from '../../modules/sidenav/sidenav.state';
11
11
  import { BaseComponent } from '../base/base.component';
12
- import { IconButtonDirective } from '../../directives/icon-button.directive';
13
- import { LocalizationModule } from '../../localization/localization.module';
14
12
  import { IconModule } from '../icon/icon.module';
15
13
  import * as i0 from "@angular/core";
16
14
  import * as i1 from "@ngxs/store";
17
15
  import * as i2 from "@angular/common";
18
16
  import * as i3 from "../icon/icon.component";
19
- import * as i4 from "@ngx-translate/core";
20
17
  export class ModalButtonsWrapperComponent extends BaseComponent {
21
18
  constructor(store) {
22
19
  super();
@@ -41,7 +38,7 @@ export class ModalButtonsWrapperComponent extends BaseComponent {
41
38
  this.minimize.next(this.isMinimized);
42
39
  }
43
40
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ModalButtonsWrapperComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
44
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ModalButtonsWrapperComponent, isStandalone: true, selector: "tb-modal-buttons-wrapper", inputs: { enabledMinimized: "enabledMinimized" }, outputs: { close: "close", minimize: "minimize" }, usesInheritance: true, ngImport: i0, template: "<tb-icon *ngIf=\"enabledMinimized\" (click)=\"toggleMinimize()\" [settings]=\"isMinimized ? IconsHelper.fullscreen : IconsHelper.minus\"\n [tbIconButton]=\"(isMinimized ? L.restore : L.minimize) | translate\"\n class=\"tb-button tb-icon-30 modal-minimize-icon tb-mr-5\" [class.disabled]=\"isMinimizeIconDisabled$ | async\">\n</tb-icon>\n\n<tb-icon (click)=\"close.next()\" [settings]=\"IconsHelper.cancel\" class=\"tb-button tb-icon-30 modal-close-icon\" [attr.data-qa]=\"DataQaAttribute.close\"\n [tbIconButton]=\"L.close | translate\">\n</tb-icon>", styles: [":host{display:flex}tb-icon:hover{height:30px;width:30px;border-radius:4px;background-color:#ecedf0}tb-icon.disabled{opacity:.5;cursor:default;pointer-events:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: IconModule }, { kind: "component", type: i3.IconComponent, selector: "tb-icon", inputs: ["setCursorPointer", "facilityCommandIcon", "remoteCommandIcon", "settings"] }, { kind: "ngmodule", type: MatSnackBarModule }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: IconButtonDirective, selector: "[tbIconButton]", inputs: ["tbIconButton"] }, { kind: "ngmodule", type: LocalizationModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
41
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ModalButtonsWrapperComponent, isStandalone: true, selector: "tb-modal-buttons-wrapper", inputs: { enabledMinimized: "enabledMinimized" }, outputs: { close: "close", minimize: "minimize" }, usesInheritance: true, ngImport: i0, template: "<tb-icon *ngIf=\"enabledMinimized\" (click)=\"toggleMinimize()\" [settings]=\"isMinimized ? IconsHelper.fullscreen : IconsHelper.minus\"\n class=\"tb-button tb-icon-30 modal-minimize-icon tb-mr-5\" [class.disabled]=\"isMinimizeIconDisabled$ | async\">\n</tb-icon>\n\n<tb-icon (click)=\"close.next()\" [settings]=\"IconsHelper.cancel\" class=\"tb-button tb-icon-30 modal-close-icon\" [attr.data-qa]=\"DataQaAttribute.close\">\n</tb-icon>", styles: [":host{display:flex}tb-icon:hover{height:30px;width:30px;border-radius:4px;background-color:#ecedf0}tb-icon.disabled{opacity:.5;cursor:default;pointer-events:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: IconModule }, { kind: "component", type: i3.IconComponent, selector: "tb-icon", inputs: ["setCursorPointer", "facilityCommandIcon", "remoteCommandIcon", "settings"] }, { kind: "ngmodule", type: MatSnackBarModule }, { kind: "ngmodule", type: MatDialogModule }] }); }
45
42
  }
46
43
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ModalButtonsWrapperComponent, decorators: [{
47
44
  type: Component,
@@ -49,10 +46,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
49
46
  CommonModule,
50
47
  IconModule,
51
48
  MatSnackBarModule,
52
- MatDialogModule,
53
- IconButtonDirective,
54
- LocalizationModule,
55
- ], template: "<tb-icon *ngIf=\"enabledMinimized\" (click)=\"toggleMinimize()\" [settings]=\"isMinimized ? IconsHelper.fullscreen : IconsHelper.minus\"\n [tbIconButton]=\"(isMinimized ? L.restore : L.minimize) | translate\"\n class=\"tb-button tb-icon-30 modal-minimize-icon tb-mr-5\" [class.disabled]=\"isMinimizeIconDisabled$ | async\">\n</tb-icon>\n\n<tb-icon (click)=\"close.next()\" [settings]=\"IconsHelper.cancel\" class=\"tb-button tb-icon-30 modal-close-icon\" [attr.data-qa]=\"DataQaAttribute.close\"\n [tbIconButton]=\"L.close | translate\">\n</tb-icon>", styles: [":host{display:flex}tb-icon:hover{height:30px;width:30px;border-radius:4px;background-color:#ecedf0}tb-icon.disabled{opacity:.5;cursor:default;pointer-events:none}\n"] }]
49
+ MatDialogModule
50
+ ], template: "<tb-icon *ngIf=\"enabledMinimized\" (click)=\"toggleMinimize()\" [settings]=\"isMinimized ? IconsHelper.fullscreen : IconsHelper.minus\"\n class=\"tb-button tb-icon-30 modal-minimize-icon tb-mr-5\" [class.disabled]=\"isMinimizeIconDisabled$ | async\">\n</tb-icon>\n\n<tb-icon (click)=\"close.next()\" [settings]=\"IconsHelper.cancel\" class=\"tb-button tb-icon-30 modal-close-icon\" [attr.data-qa]=\"DataQaAttribute.close\">\n</tb-icon>", styles: [":host{display:flex}tb-icon:hover{height:30px;width:30px;border-radius:4px;background-color:#ecedf0}tb-icon.disabled{opacity:.5;cursor:default;pointer-events:none}\n"] }]
56
51
  }], ctorParameters: () => [{ type: i1.Store }], propDecorators: { enabledMinimized: [{
57
52
  type: Input
58
53
  }], close: [{
@@ -60,4 +55,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
60
55
  }], minimize: [{
61
56
  type: Output
62
57
  }] } });
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtYnV0dG9ucy13cmFwcGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC1zaGFyZWQtbGliL3NyYy9saWJyYXJpZXMvY29tcG9uZW50cy9tb2RhbC1idXR0b25zLXdyYXBwZXIvbW9kYWwtYnV0dG9ucy13cmFwcGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC1zaGFyZWQtbGliL3NyYy9saWJyYXJpZXMvY29tcG9uZW50cy9tb2RhbC1idXR0b25zLXdyYXBwZXIvbW9kYWwtYnV0dG9ucy13cmFwcGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUVoRSxPQUFPLEVBQWMsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDdEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRW5FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7OztBQWdCakQsTUFBTSxPQUFPLDRCQUE2QixTQUFRLGFBQWE7SUFnQjdELFlBQW9CLEtBQVk7UUFDOUIsS0FBSyxFQUFFLENBQUM7UUFEVSxVQUFLLEdBQUwsS0FBSyxDQUFPO1FBWnRCLFVBQUssR0FBdUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMvQyxhQUFRLEdBQTBCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFL0QsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFNN0Isb0JBQWUsR0FBRyxlQUFlLENBQUM7UUFDbEMsZ0JBQVcsR0FBRyxXQUFXLENBQUM7SUFJMUIsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUVuRSxJQUFJLENBQUMsdUJBQXVCLEdBQUcsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUN2SyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsU0FBUyxDQUFDLEVBQUUsRUFBRTtZQUMvRCxPQUFPLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxJQUFJLE1BQU0sS0FBSyxJQUFJLENBQUMsTUFBTSxJQUFJLFNBQVMsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ3RGLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDUixDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN2QyxDQUFDOytHQWxDVSw0QkFBNEI7bUdBQTVCLDRCQUE0QixnTkMvQnpDLDBpQkFPVSw2TkRnQk4sWUFBWSx1TEFDWixVQUFVLHdMQUNWLGlCQUFpQiw4QkFDakIsZUFBZSwrQkFDZixtQkFBbUIsb0ZBQ25CLGtCQUFrQjs7NEZBR1QsNEJBQTRCO2tCQWR4QyxTQUFTOytCQUNFLDBCQUEwQixjQUd4QixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixVQUFVO3dCQUNWLGlCQUFpQjt3QkFDakIsZUFBZTt3QkFDZixtQkFBbUI7d0JBQ25CLGtCQUFrQjtxQkFDbkI7MEVBSVEsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUVJLEtBQUs7c0JBQWQsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBNYXRTbmFja0Jhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIGNvbWJpbmVMYXRlc3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRGF0YVFhQXR0cmlidXRlIH0gZnJvbSAnLi4vLi4vZW51bXMvZGF0YS1xYS1hdHRyaWJ1dGUuZW51bSc7XG5pbXBvcnQgeyBJY29uc0hlbHBlciB9IGZyb20gJy4uLy4uL2VudW1zL2ljb24uZW51bSc7XG5pbXBvcnQgeyBGYWNpbGl0eVN0YXRlIH0gZnJvbSAnLi4vLi4vbW9kdWxlcy9mYWNpbGl0eS9mYWNpbGl0eS5zdGF0ZSc7XG5pbXBvcnQgeyBTaWRlbmF2U3RhdGUgfSBmcm9tICcuLi8uLi9tb2R1bGVzL3NpZGVuYXYvc2lkZW5hdi5zdGF0ZSc7XG5pbXBvcnQgeyBBcHBNb2R1bGUgfSBmcm9tICcuLi8uLi9zZXJ2aWNlLXByb3h5L2Nsb3VkLXNlcnZpY2UtcHJveGllcyc7XG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS9iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJY29uQnV0dG9uRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9pY29uLWJ1dHRvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTG9jYWxpemF0aW9uTW9kdWxlIH0gZnJvbSAnLi4vLi4vbG9jYWxpemF0aW9uL2xvY2FsaXphdGlvbi5tb2R1bGUnO1xuaW1wb3J0IHsgSWNvbk1vZHVsZSB9IGZyb20gJy4uL2ljb24vaWNvbi5tb2R1bGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0Yi1tb2RhbC1idXR0b25zLXdyYXBwZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vbW9kYWwtYnV0dG9ucy13cmFwcGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbW9kYWwtYnV0dG9ucy13cmFwcGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgSWNvbk1vZHVsZSxcbiAgICBNYXRTbmFja0Jhck1vZHVsZSxcbiAgICBNYXREaWFsb2dNb2R1bGUsXG4gICAgSWNvbkJ1dHRvbkRpcmVjdGl2ZSxcbiAgICBMb2NhbGl6YXRpb25Nb2R1bGUsXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgTW9kYWxCdXR0b25zV3JhcHBlckNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpIGVuYWJsZWRNaW5pbWl6ZWQ6IGJvb2xlYW47XG5cbiAgQE91dHB1dCgpIGNsb3NlOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBtaW5pbWl6ZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGlzTWluaW1pemVkOiBib29sZWFuID0gZmFsc2U7XG4gIGlzTWluaW1pemVJY29uRGlzYWJsZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBndWlkOiBzdHJpbmc7XG4gIHBhcmtJZDogbnVtYmVyO1xuICBhcHBNb2R1bGU6IEFwcE1vZHVsZTtcblxuICBEYXRhUWFBdHRyaWJ1dGUgPSBEYXRhUWFBdHRyaWJ1dGU7XG4gIEljb25zSGVscGVyID0gSWNvbnNIZWxwZXI7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmUpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5ndWlkID0gdGhpcy5zdG9yZS5zZWxlY3RTbmFwc2hvdChGYWNpbGl0eVN0YXRlLmd1aWQpO1xuICAgIHRoaXMucGFya0lkID0gdGhpcy5zdG9yZS5zZWxlY3RTbmFwc2hvdChGYWNpbGl0eVN0YXRlLnBhcmtJZCk7XG4gICAgdGhpcy5hcHBNb2R1bGUgPSB0aGlzLnN0b3JlLnNlbGVjdFNuYXBzaG90KFNpZGVuYXZTdGF0ZS5hcHBNb2R1bGUpO1xuXG4gICAgdGhpcy5pc01pbmltaXplSWNvbkRpc2FibGVkJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuc3RvcmUuc2VsZWN0KEZhY2lsaXR5U3RhdGUuZ3VpZCksIHRoaXMuc3RvcmUuc2VsZWN0KEZhY2lsaXR5U3RhdGUucGFya0lkKSwgdGhpcy5zdG9yZS5zZWxlY3QoU2lkZW5hdlN0YXRlLmFwcE1vZHVsZSldKS5cbiAgICAgIHBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLCBtYXAoKFtndWlkLCBwYXJrSWQsIGFwcE1vZHVsZV0pID0+IHtcbiAgICAgICAgcmV0dXJuIGd1aWQgIT09IHRoaXMuZ3VpZCB8fCBwYXJrSWQgIT09IHRoaXMucGFya0lkIHx8IGFwcE1vZHVsZSAhPT0gdGhpcy5hcHBNb2R1bGU7XG4gICAgICB9KSk7XG4gIH1cblxuICB0b2dnbGVNaW5pbWl6ZSgpIHtcbiAgICB0aGlzLmlzTWluaW1pemVkID0gIXRoaXMuaXNNaW5pbWl6ZWQ7XG4gICAgdGhpcy5taW5pbWl6ZS5uZXh0KHRoaXMuaXNNaW5pbWl6ZWQpO1xuICB9XG59XG4iLCI8dGItaWNvbiAqbmdJZj1cImVuYWJsZWRNaW5pbWl6ZWRcIiAoY2xpY2spPVwidG9nZ2xlTWluaW1pemUoKVwiIFtzZXR0aW5nc109XCJpc01pbmltaXplZCA/IEljb25zSGVscGVyLmZ1bGxzY3JlZW4gOiBJY29uc0hlbHBlci5taW51c1wiXG4gIFt0Ykljb25CdXR0b25dPVwiKGlzTWluaW1pemVkID8gTC5yZXN0b3JlIDogTC5taW5pbWl6ZSkgfCB0cmFuc2xhdGVcIlxuICBjbGFzcz1cInRiLWJ1dHRvbiB0Yi1pY29uLTMwIG1vZGFsLW1pbmltaXplLWljb24gdGItbXItNVwiIFtjbGFzcy5kaXNhYmxlZF09XCJpc01pbmltaXplSWNvbkRpc2FibGVkJCB8IGFzeW5jXCI+XG48L3RiLWljb24+XG5cbjx0Yi1pY29uIChjbGljayk9XCJjbG9zZS5uZXh0KClcIiBbc2V0dGluZ3NdPVwiSWNvbnNIZWxwZXIuY2FuY2VsXCIgY2xhc3M9XCJ0Yi1idXR0b24gdGItaWNvbi0zMCBtb2RhbC1jbG9zZS1pY29uXCIgW2F0dHIuZGF0YS1xYV09XCJEYXRhUWFBdHRyaWJ1dGUuY2xvc2VcIlxuICBbdGJJY29uQnV0dG9uXT1cIkwuY2xvc2UgfCB0cmFuc2xhdGVcIj5cbjwvdGItaWNvbj4iXX0=
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtYnV0dG9ucy13cmFwcGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC1zaGFyZWQtbGliL3NyYy9saWJyYXJpZXMvY29tcG9uZW50cy9tb2RhbC1idXR0b25zLXdyYXBwZXIvbW9kYWwtYnV0dG9ucy13cmFwcGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC1zaGFyZWQtbGliL3NyYy9saWJyYXJpZXMvY29tcG9uZW50cy9tb2RhbC1idXR0b25zLXdyYXBwZXIvbW9kYWwtYnV0dG9ucy13cmFwcGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUVoRSxPQUFPLEVBQWMsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDdEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRW5FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7O0FBY2pELE1BQU0sT0FBTyw0QkFBNkIsU0FBUSxhQUFhO0lBZ0I3RCxZQUFvQixLQUFZO1FBQzlCLEtBQUssRUFBRSxDQUFDO1FBRFUsVUFBSyxHQUFMLEtBQUssQ0FBTztRQVp0QixVQUFLLEdBQXVCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDL0MsYUFBUSxHQUEwQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRS9ELGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBTTdCLG9CQUFlLEdBQUcsZUFBZSxDQUFDO1FBQ2xDLGdCQUFXLEdBQUcsV0FBVyxDQUFDO0lBSTFCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFbkUsSUFBSSxDQUFDLHVCQUF1QixHQUFHLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDdkssSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLEVBQUU7WUFDL0QsT0FBTyxJQUFJLEtBQUssSUFBSSxDQUFDLElBQUksSUFBSSxNQUFNLEtBQUssSUFBSSxDQUFDLE1BQU0sSUFBSSxTQUFTLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUN0RixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNyQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdkMsQ0FBQzsrR0FsQ1UsNEJBQTRCO21HQUE1Qiw0QkFBNEIsZ05DM0J6Qyx1YkFLVSw2TkRnQk4sWUFBWSx1TEFDWixVQUFVLHdMQUNWLGlCQUFpQiw4QkFDakIsZUFBZTs7NEZBR04sNEJBQTRCO2tCQVp4QyxTQUFTOytCQUNFLDBCQUEwQixjQUd4QixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixVQUFVO3dCQUNWLGlCQUFpQjt3QkFDakIsZUFBZTtxQkFDaEI7MEVBSVEsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUVJLEtBQUs7c0JBQWQsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBNYXRTbmFja0Jhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIGNvbWJpbmVMYXRlc3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRGF0YVFhQXR0cmlidXRlIH0gZnJvbSAnLi4vLi4vZW51bXMvZGF0YS1xYS1hdHRyaWJ1dGUuZW51bSc7XG5pbXBvcnQgeyBJY29uc0hlbHBlciB9IGZyb20gJy4uLy4uL2VudW1zL2ljb24uZW51bSc7XG5pbXBvcnQgeyBGYWNpbGl0eVN0YXRlIH0gZnJvbSAnLi4vLi4vbW9kdWxlcy9mYWNpbGl0eS9mYWNpbGl0eS5zdGF0ZSc7XG5pbXBvcnQgeyBTaWRlbmF2U3RhdGUgfSBmcm9tICcuLi8uLi9tb2R1bGVzL3NpZGVuYXYvc2lkZW5hdi5zdGF0ZSc7XG5pbXBvcnQgeyBBcHBNb2R1bGUgfSBmcm9tICcuLi8uLi9zZXJ2aWNlLXByb3h5L2Nsb3VkLXNlcnZpY2UtcHJveGllcyc7XG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS9iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJY29uTW9kdWxlIH0gZnJvbSAnLi4vaWNvbi9pY29uLm1vZHVsZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RiLW1vZGFsLWJ1dHRvbnMtd3JhcHBlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9tb2RhbC1idXR0b25zLXdyYXBwZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tb2RhbC1idXR0b25zLXdyYXBwZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBJY29uTW9kdWxlLFxuICAgIE1hdFNuYWNrQmFyTW9kdWxlLFxuICAgIE1hdERpYWxvZ01vZHVsZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIE1vZGFsQnV0dG9uc1dyYXBwZXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKSBlbmFibGVkTWluaW1pemVkOiBib29sZWFuO1xuXG4gIEBPdXRwdXQoKSBjbG9zZTogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgbWluaW1pemU6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBpc01pbmltaXplZDogYm9vbGVhbiA9IGZhbHNlO1xuICBpc01pbmltaXplSWNvbkRpc2FibGVkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgZ3VpZDogc3RyaW5nO1xuICBwYXJrSWQ6IG51bWJlcjtcbiAgYXBwTW9kdWxlOiBBcHBNb2R1bGU7XG5cbiAgRGF0YVFhQXR0cmlidXRlID0gRGF0YVFhQXR0cmlidXRlO1xuICBJY29uc0hlbHBlciA9IEljb25zSGVscGVyO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RvcmU6IFN0b3JlKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZ3VpZCA9IHRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoRmFjaWxpdHlTdGF0ZS5ndWlkKTtcbiAgICB0aGlzLnBhcmtJZCA9IHRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoRmFjaWxpdHlTdGF0ZS5wYXJrSWQpO1xuICAgIHRoaXMuYXBwTW9kdWxlID0gdGhpcy5zdG9yZS5zZWxlY3RTbmFwc2hvdChTaWRlbmF2U3RhdGUuYXBwTW9kdWxlKTtcblxuICAgIHRoaXMuaXNNaW5pbWl6ZUljb25EaXNhYmxlZCQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnN0b3JlLnNlbGVjdChGYWNpbGl0eVN0YXRlLmd1aWQpLCB0aGlzLnN0b3JlLnNlbGVjdChGYWNpbGl0eVN0YXRlLnBhcmtJZCksIHRoaXMuc3RvcmUuc2VsZWN0KFNpZGVuYXZTdGF0ZS5hcHBNb2R1bGUpXSkuXG4gICAgICBwaXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSwgbWFwKChbZ3VpZCwgcGFya0lkLCBhcHBNb2R1bGVdKSA9PiB7XG4gICAgICAgIHJldHVybiBndWlkICE9PSB0aGlzLmd1aWQgfHwgcGFya0lkICE9PSB0aGlzLnBhcmtJZCB8fCBhcHBNb2R1bGUgIT09IHRoaXMuYXBwTW9kdWxlO1xuICAgICAgfSkpO1xuICB9XG5cbiAgdG9nZ2xlTWluaW1pemUoKSB7XG4gICAgdGhpcy5pc01pbmltaXplZCA9ICF0aGlzLmlzTWluaW1pemVkO1xuICAgIHRoaXMubWluaW1pemUubmV4dCh0aGlzLmlzTWluaW1pemVkKTtcbiAgfVxufVxuIiwiPHRiLWljb24gKm5nSWY9XCJlbmFibGVkTWluaW1pemVkXCIgKGNsaWNrKT1cInRvZ2dsZU1pbmltaXplKClcIiBbc2V0dGluZ3NdPVwiaXNNaW5pbWl6ZWQgPyBJY29uc0hlbHBlci5mdWxsc2NyZWVuIDogSWNvbnNIZWxwZXIubWludXNcIlxuICBjbGFzcz1cInRiLWJ1dHRvbiB0Yi1pY29uLTMwIG1vZGFsLW1pbmltaXplLWljb24gdGItbXItNVwiIFtjbGFzcy5kaXNhYmxlZF09XCJpc01pbmltaXplSWNvbkRpc2FibGVkJCB8IGFzeW5jXCI+XG48L3RiLWljb24+XG5cbjx0Yi1pY29uIChjbGljayk9XCJjbG9zZS5uZXh0KClcIiBbc2V0dGluZ3NdPVwiSWNvbnNIZWxwZXIuY2FuY2VsXCIgY2xhc3M9XCJ0Yi1idXR0b24gdGItaWNvbi0zMCBtb2RhbC1jbG9zZS1pY29uXCIgW2F0dHIuZGF0YS1xYV09XCJEYXRhUWFBdHRyaWJ1dGUuY2xvc2VcIj5cbjwvdGItaWNvbj4iXX0=