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

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 (80) 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 +32 -7
  3. package/esm2022/libraries/components/field-label/field-label.component.mjs +39 -6
  4. package/esm2022/libraries/components/field-validations/field-validations.component.mjs +6 -5
  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 +30 -6
  9. package/esm2022/libraries/components/modal-buttons-wrapper/modal-buttons-wrapper.component.mjs +9 -4
  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 +6 -3
  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/clear-all-button.directive.mjs +49 -0
  18. package/esm2022/libraries/directives/disabled.directive.mjs +121 -0
  19. package/esm2022/libraries/directives/icon-button.directive.mjs +36 -0
  20. package/esm2022/libraries/directives/index.mjs +4 -1
  21. package/esm2022/libraries/directives/shared-directives.module.mjs +16 -1
  22. package/esm2022/libraries/enums/localization.enum.mjs +40 -1
  23. package/esm2022/libraries/enums/message-bar-duration.enum.mjs +4 -2
  24. package/esm2022/libraries/interfaces/table-column.interface.mjs +1 -1
  25. package/esm2022/libraries/modules/layout/layout.state.mjs +2 -2
  26. package/esm2022/libraries/services/can-deactivate.service.mjs +4 -3
  27. package/esm2022/libraries/services/modal.service.mjs +14 -1
  28. package/fesm2022/tiba-spark-client-shared-lib.mjs +402 -48
  29. package/fesm2022/tiba-spark-client-shared-lib.mjs.map +1 -1
  30. package/libraries/components/common-pages/error-page/error-page.component.d.ts +10 -2
  31. package/libraries/components/common-pages/error-page/error-page.component.d.ts.map +1 -1
  32. package/libraries/components/field-label/field-label.component.d.ts +8 -3
  33. package/libraries/components/field-label/field-label.component.d.ts.map +1 -1
  34. package/libraries/components/field-validations/field-validations.component.d.ts +0 -4
  35. package/libraries/components/field-validations/field-validations.component.d.ts.map +1 -1
  36. package/libraries/components/message-bar/float-message-bar.service.d.ts +2 -0
  37. package/libraries/components/message-bar/float-message-bar.service.d.ts.map +1 -1
  38. package/libraries/components/modal-buttons-wrapper/modal-buttons-wrapper.component.d.ts.map +1 -1
  39. package/libraries/components/notification/alert-notification/alert-notification.component.d.ts.map +1 -1
  40. package/libraries/components/notification/command-notification/command-notification.component.d.ts.map +1 -1
  41. package/libraries/components/notification/notification.service.d.ts.map +1 -1
  42. package/libraries/directives/clear-all-button.directive.d.ts +19 -0
  43. package/libraries/directives/clear-all-button.directive.d.ts.map +1 -0
  44. package/libraries/directives/disabled.directive.d.ts +30 -0
  45. package/libraries/directives/disabled.directive.d.ts.map +1 -0
  46. package/libraries/directives/icon-button.directive.d.ts +14 -0
  47. package/libraries/directives/icon-button.directive.d.ts.map +1 -0
  48. package/libraries/directives/index.d.ts +3 -0
  49. package/libraries/directives/index.d.ts.map +1 -1
  50. package/libraries/directives/shared-directives.module.d.ts +7 -4
  51. package/libraries/directives/shared-directives.module.d.ts.map +1 -1
  52. package/libraries/enums/localization.enum.d.ts +40 -1
  53. package/libraries/enums/localization.enum.d.ts.map +1 -1
  54. package/libraries/enums/message-bar-duration.enum.d.ts +3 -1
  55. package/libraries/enums/message-bar-duration.enum.d.ts.map +1 -1
  56. package/libraries/interfaces/table-column.interface.d.ts +1 -0
  57. package/libraries/interfaces/table-column.interface.d.ts.map +1 -1
  58. package/libraries/services/can-deactivate.service.d.ts.map +1 -1
  59. package/libraries/services/modal.service.d.ts +1 -0
  60. package/libraries/services/modal.service.d.ts.map +1 -1
  61. package/package.json +1 -1
  62. package/src/libraries/theme/_calendar.scss +2 -1
  63. package/src/libraries/theme/_card.scss +6 -5
  64. package/src/libraries/theme/_forms.scss +1 -1
  65. package/src/libraries/theme/_mixins.scss +0 -1
  66. package/src/libraries/theme/_modals.scss +3 -2
  67. package/src/libraries/theme/_ngx.scss +0 -1
  68. package/src/libraries/theme/_tables.scss +3 -2
  69. package/src/libraries/theme/_tabs.scss +6 -4
  70. package/src/libraries/theme/_utils.scss +123 -4
  71. package/src/libraries/theme/_variables.scss +35 -8
  72. package/src/libraries/theme/components/_carousel.scss +2 -2
  73. package/src/libraries/theme/components/_tb-search.scss +10 -4
  74. package/src/libraries/theme/mat-components/_mat-date-picker.scss +4 -0
  75. package/src/libraries/theme/mat-components/_mat-input.scss +5 -0
  76. package/src/libraries/theme/mat-components/_mat-menu.scss +40 -14
  77. package/src/libraries/theme/mat-components/_mat-select.scss +23 -1
  78. package/src/libraries/theme/mat-components/_mat-selection-list.scss +2 -3
  79. package/src/libraries/theme/mat-components/_mat-step.scss +19 -0
  80. package/src/libraries/theme/theme.scss +119 -0
@@ -1,9 +1,11 @@
1
1
  import { ONE_SECOND_IN_MILLISECONDS } from "../constants/global-constants";
2
+ /** Shortest time a message stays up, so it can be read. */
3
+ export const MIN_MESSAGE_DURATION = ONE_SECOND_IN_MILLISECONDS * 5;
2
4
  export var DurationMessageBar;
3
5
  (function (DurationMessageBar) {
4
6
  DurationMessageBar[DurationMessageBar["displayContinuously"] = 0] = "displayContinuously";
5
- DurationMessageBar[DurationMessageBar["defaultDisplayOneMessage"] = 3000] = "defaultDisplayOneMessage";
7
+ DurationMessageBar[DurationMessageBar["defaultDisplayOneMessage"] = 5000] = "defaultDisplayOneMessage";
6
8
  DurationMessageBar[DurationMessageBar["defaultDisplayMultiMessages"] = 5000] = "defaultDisplayMultiMessages";
7
9
  DurationMessageBar[DurationMessageBar["defaultDisplayLongMessage"] = 8000] = "defaultDisplayLongMessage";
8
10
  })(DurationMessageBar || (DurationMessageBar = {}));
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1iYXItZHVyYXRpb24uZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC1zaGFyZWQtbGliL3NyYy9saWJyYXJpZXMvZW51bXMvbWVzc2FnZS1iYXItZHVyYXRpb24uZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUUzRSxNQUFNLENBQU4sSUFBWSxrQkFLWDtBQUxELFdBQVksa0JBQWtCO0lBQzVCLHlGQUF1QixDQUFBO0lBQ3ZCLHNHQUF5RCxDQUFBO0lBQ3pELDRHQUE0RCxDQUFBO0lBQzVELHdHQUEwRCxDQUFBO0FBQzVELENBQUMsRUFMVyxrQkFBa0IsS0FBbEIsa0JBQWtCLFFBSzdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT05FX1NFQ09ORF9JTl9NSUxMSVNFQ09ORFMgfSBmcm9tIFwiLi4vY29uc3RhbnRzL2dsb2JhbC1jb25zdGFudHNcIjtcblxuZXhwb3J0IGVudW0gRHVyYXRpb25NZXNzYWdlQmFyIHtcbiAgZGlzcGxheUNvbnRpbnVvdXNseSA9IDAsXG4gIGRlZmF1bHREaXNwbGF5T25lTWVzc2FnZSA9IE9ORV9TRUNPTkRfSU5fTUlMTElTRUNPTkRTICogMyxcbiAgZGVmYXVsdERpc3BsYXlNdWx0aU1lc3NhZ2VzID0gT05FX1NFQ09ORF9JTl9NSUxMSVNFQ09ORFMgKiA1LFxuICBkZWZhdWx0RGlzcGxheUxvbmdNZXNzYWdlID0gT05FX1NFQ09ORF9JTl9NSUxMSVNFQ09ORFMgKiA4XG59XG4iXX0=
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1iYXItZHVyYXRpb24uZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC1zaGFyZWQtbGliL3NyYy9saWJyYXJpZXMvZW51bXMvbWVzc2FnZS1iYXItZHVyYXRpb24uZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUUzRSwyREFBMkQ7QUFDM0QsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsMEJBQTBCLEdBQUcsQ0FBQyxDQUFDO0FBRW5FLE1BQU0sQ0FBTixJQUFZLGtCQUtYO0FBTEQsV0FBWSxrQkFBa0I7SUFDNUIseUZBQXVCLENBQUE7SUFDdkIsc0dBQXlELENBQUE7SUFDekQsNEdBQTRELENBQUE7SUFDNUQsd0dBQTBELENBQUE7QUFDNUQsQ0FBQyxFQUxXLGtCQUFrQixLQUFsQixrQkFBa0IsUUFLN0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPTkVfU0VDT05EX0lOX01JTExJU0VDT05EUyB9IGZyb20gXCIuLi9jb25zdGFudHMvZ2xvYmFsLWNvbnN0YW50c1wiO1xuXG4vKiogU2hvcnRlc3QgdGltZSBhIG1lc3NhZ2Ugc3RheXMgdXAsIHNvIGl0IGNhbiBiZSByZWFkLiAqL1xuZXhwb3J0IGNvbnN0IE1JTl9NRVNTQUdFX0RVUkFUSU9OID0gT05FX1NFQ09ORF9JTl9NSUxMSVNFQ09ORFMgKiA1O1xuXG5leHBvcnQgZW51bSBEdXJhdGlvbk1lc3NhZ2VCYXIge1xuICBkaXNwbGF5Q29udGludW91c2x5ID0gMCxcbiAgZGVmYXVsdERpc3BsYXlPbmVNZXNzYWdlID0gT05FX1NFQ09ORF9JTl9NSUxMSVNFQ09ORFMgKiA1LFxuICBkZWZhdWx0RGlzcGxheU11bHRpTWVzc2FnZXMgPSBPTkVfU0VDT05EX0lOX01JTExJU0VDT05EUyAqIDUsXG4gIGRlZmF1bHREaXNwbGF5TG9uZ01lc3NhZ2UgPSBPTkVfU0VDT05EX0lOX01JTExJU0VDT05EUyAqIDhcbn1cbiJdfQ==
@@ -13,4 +13,4 @@ export const TableColumnGroupLabel = new Map([
13
13
  [TableColumnGroup.And, 'and'],
14
14
  [TableColumnGroup.Then, 'then'],
15
15
  ]);
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1uLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC1zaGFyZWQtbGliL3NyYy9saWJyYXJpZXMvaW50ZXJmYWNlcy90YWJsZS1jb2x1bW4uaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE1BQU0sQ0FBTixJQUFZLGdCQU1YO0FBTkQsV0FBWSxnQkFBZ0I7SUFDMUIsa0dBQWtHO0lBQ2xHLHdGQUF3RjtJQUN4RixtREFBTSxDQUFBO0lBQ04scURBQU8sQ0FBQTtJQUNQLHVEQUFRLENBQUE7QUFDVixDQUFDLEVBTlcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQU0zQjtBQUVELG1GQUFtRjtBQUNuRixpR0FBaUc7QUFDakcsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxHQUFHLENBQTJCO0lBQ3JFLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQztJQUMzQixDQUFDLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUM7SUFDN0IsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDO0NBQ2hDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgdHlwZSBuZ0NsYXNzID0gc3RyaW5nIHwgc3RyaW5nW10gfCBTZXQ8c3RyaW5nPiB8IHsgW2tsYXNzOiBzdHJpbmddOiBhbnk7IH07XG5cbmV4cG9ydCBlbnVtIFRhYmxlQ29sdW1uR3JvdXAge1xuICAvLyBOdW1lcmljIGlkZW50aWZpZXJzIChtdXN0IHN0YXJ0IGF0IDEg4oCUIGNvbHVtbi5ncm91cCBpcyB0cnV0aGluZXNzLWNoZWNrZWQgaW4gdGhlIHRhYmxlIGhlYWRlcikuXG4gIC8vIFRoZSBkaXNwbGF5IGxhYmVsIGNvbWVzIGZyb20gVGFibGVDb2x1bW5Hcm91cExhYmVsLCBuZXZlciBmcm9tIHRoZSBlbnVtIHZhbHVlIGl0c2VsZi5cbiAgSWYgPSAxLFxuICBBbmQgPSAyLFxuICBUaGVuID0gMyxcbn1cblxuLy8gTWFwcyBhIGNvbHVtbiBncm91cCB0byBpdHMgbG9jYWxpemF0aW9uIGtleSAodHJhbnNsYXRlZCArIHVwcGVyY2FzZWQgb24gcmVuZGVyKS5cbi8vIEtleWVkIGJ5IHRoZSBlbnVtIHNvIHRoZSB0ZW1wbGF0ZSBuZXZlciB1c2VzIGEgcmF3LCBjb2xsaXNpb24tcHJvbmUgc3RyaW5nIGFzIGEgdHJhbnNsYXRlIGtleS5cbmV4cG9ydCBjb25zdCBUYWJsZUNvbHVtbkdyb3VwTGFiZWwgPSBuZXcgTWFwPFRhYmxlQ29sdW1uR3JvdXAsIHN0cmluZz4oW1xuICBbVGFibGVDb2x1bW5Hcm91cC5JZiwgJ2lmJ10sXG4gIFtUYWJsZUNvbHVtbkdyb3VwLkFuZCwgJ2FuZCddLFxuICBbVGFibGVDb2x1bW5Hcm91cC5UaGVuLCAndGhlbiddLFxuXSk7XG5cbi8qKlxuICogRXhwb3J0ZWQgZm9yIGdlbmVyaWMgYmFzZSBjbGFzc2VzOiBhIGxpdGVyYWwgY2Fubm90IGJlIGlubGluZWQgd2hpbGUgVCBpcyB1bnJlc29sdmVkLCBzbyB0aGVcbiAqIGJhc2UgZGVjbGFyZXMgdGhlIGtleSB3aXRoIHRoaXMgdHlwZSBhbmQgaXRzIHN1YmNsYXNzIHN1cHBsaWVzIHRoZSB2YWx1ZS5cbiAqL1xuZXhwb3J0IHR5cGUgVGFibGVDb2x1bW5FeHBhbmRlZEtleTxUPiA9IFQgZXh0ZW5kcyB1bmtub3duXG4gID8gRXh0cmFjdDxcbiAgICAgIHtcbiAgICAgICAgW0sgaW4ga2V5b2YgVF06IE5vbk51bGxhYmxlPFRbS10+IGV4dGVuZHMgcmVhZG9ubHkgdW5rbm93bltdID8gSyA6IG5ldmVyO1xuICAgICAgfVtrZXlvZiBUXSxcbiAgICAgIHN0cmluZ1xuICAgID5cbiAgOiBuZXZlcjtcblxuZXhwb3J0IGludGVyZmFjZSBUYWJsZUNvbHVtbjxUID0gYW55PiB7XG4gIG5hbWU6IHN0cmluZzsgLy8gdW5pcXVlIGNvbHVtbiBuYW1lXG4gIHRpdGxlPzogc3RyaW5nOyAvLyBoZWFkZXIgdGl0bGVcbiAgY3VzdG9tQ2VsbD86IGJvb2xlYW47IC8vIGlzIGNvbHVtbiBjZWxsIGN1c3RvbS4gZGVmYXVsdDogZmFsc2VcbiAgc29ydGFibGU/OiBib29sZWFuOyAvLyBpcyBjb2x1bW4gc29ydGFibGUuIGRlZmF1bHQ6IGZhbHNlXG4gIC8qKlxuICAgKiBGaWVsZCBuYW1lIHVzZWQgYXMgdGhlIGNlbGwgdmFsdWUuIERlZmF1bHRzIHRvIGBuYW1lYC4gSUdOT1JFRCBpZiBhIHZhbHVlUmVzb2x2ZXIgaXMgcGFzc2VkLFxuICAgKiBvciBpZiBjdXN0b21DZWxsIGlzIHNldC5cbiAgICogRGlzdHJpYnV0ZXMgb3ZlciBhIHVuaW9uIFQ6IGFueSBvbmUgbWVtYmVyJ3Mga2V5IGlzIGFjY2VwdGVkLCBidXQgcmVzb2x2ZXMgdG8gYHVuZGVmaW5lZGAgb25cbiAgICogbWVtYmVycyB0aGF0IGxhY2sgaXQg4oCUIHVzZSB2YWx1ZVJlc29sdmVyIHRoZXJlLlxuICAgKi9cbiAgZmllbGQ/OiBUIGV4dGVuZHMgdW5rbm93biA/IEV4dHJhY3Q8a2V5b2YgVCwgc3RyaW5nPiA6IG5ldmVyO1xuICB2YWx1ZVJlc29sdmVyPzogVGFibGVDZWxsVmFsdWVSZXNvbHZlcjxUPjsgLy8gY3VzdG9tIGNvbHVtbiB2YWx1ZSByZXNvbHZlciAoZS5nLiAocm93VmFsdWUpID0+IHJvd1ZhbHVlLmFkZHJlc3Muc3RyZWV0ICkuIE9WRVJSSURFUyBmaWVsZFxuICBmb3JtYXR0ZXI/OiBUYWJsZUNlbGxGb3JtYXR0ZXI8VD47IC8vIG9wdGlvbmFsIGZvcm1hdHRlci4gdXNlIHByZWRlZmluZWQgZm9ybWF0dGVycyBzdWNoIGFzIG1vbWVudEZvcm1hdHRlclxuICBjc3NIZWFkZXJDbGFzcz86IFRhYmxlSGVhZGVyQ2VsbENsYXNzPFQ+OyAvLyBvcHRpb25hbCBjc3MgY2xhc3MgZm9yIDx0aD5cbiAgY3NzQ2xhc3M/OiBUYWJsZUNlbGxDbGFzczxUPjsgLy8gb3B0aW9uYWwgY3NzIGNsYXNzIGZvciA8dGQ+XG4gIGlzQ2xpY2thYmxlPzogVGFibGVDZWxsQ2xpY2thYmxlPFQ+OyAvLyBpcyByb3cgZXZlbnQgY2xpY2sgZW5hYmxlIGZvciA8dHI+XG4gIC8qKlxuICAgKiBSb3cgcHJvcGVydHkgaG9sZGluZyB0aGUgY2hpbGRyZW4gdG8gZXhwYW5kIGludG8uIFJlc3RyaWN0ZWQgdG8gYXJyYXktdmFsdWVkIGtleXMsIHNpbmNlXG4gICAqIGNvbnN1bWVycyBpbmRleCB0aGUgcm93IGFuZCByZWFkIGAubGVuZ3RoYCBvbiB0aGUgcmVzdWx0LlxuICAgKiBEaXN0cmlidXRlcyBvdmVyIGEgdW5pb24gVCBleGFjdGx5IGFzIGBmaWVsZGAgZG9lcy5cbiAgICovXG4gIGV4cGFuZGVkRmllbGQ/OiBUYWJsZUNvbHVtbkV4cGFuZGVkS2V5PFQ+O1xuICBjb21wb25lbnQ/OiBUeXBlPENlbGxDb21wb25lbnQ+OyAvLyBvcHRpb25hbCBjdXN0b20gY29tcG9uZW50XG4gIHdpZHRoPzogbnVtYmVyOyAvLyBvcHRpb25hbCBjdXN0b20gd2lkdGggaW4gcHhcbiAgbWluV2lkdGg/OiBudW1iZXI7IC8vIG9wdGlvbmFsIGN1c3RvbSBtaW4td2lkdGggaW4gcHhcbiAgbWV0YWRhdGE/OiBhbnk7XG4gIGNsaWNrUmVzb2x2ZXI/OiBUYWJsZUNlbGxDbGlja1Jlc29sdmVyPFQ+OyAvLyBjdXRvbSBjb2x1bW4gY2xpY2sgcmVzb2x2ZXIgKGUucS4gKHJvd1ZhbHVlKSA9PiByZXR1cm4gRXZlbnRFbWl0dGVyIG1ldGhvZClcbiAgaXNJbm5lckh0bWw/OiBib29sZWFuO1xuICBpbm5lckh0bWxDbGFzcz86IHN0cmluZztcbiAgdG9vbHRpcD86IHN0cmluZztcbiAgY29tcGFyZT86IFRhYmxlQ2VsbENvbXBhcmVSZXNvbHZlcjxUPjtcbiAgaXNFeHBvcnRhYmxlPzogYm9vbGVhbjsgLy8gaXMgY29sdW1uIGV4cG9ydGFibGUuIGRlZmF1bHQ6IGZhbHNlXG4gIGdyb3VwPzogVGFibGVDb2x1bW5Hcm91cDsgLy8gb3B0aW9uYWwgZ3JvdXBlZC1oZWFkZXIgbGFiZWwgKGlmL2FuZC90aGVuKSByZW5kZXJlZCBhYm92ZSB0aGUgY29sdW1uXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVSb3c8VCA9IGFueT4ge1xuICBpc1Jvd0Rpc2FibGVkPzogVGFibGVSb3dEaXNhYmxlPFQ+O1xuICBpc1Jvd0hpZGRlbj86IFRhYmxlUm93RGlzYWJsZTxUPjtcbiAgaXNOZXN0ZWRSb3c/OiBUYWJsZU5lc3RlZFJvdzxUPjtcbiAgaXNBY3RpdmVSb3c/OiBUYWJsZUFjdGl2ZVJvdzxUPjtcbiAgYmVmb3JlUm93Q2xpY2s/OiBUYWJsZUJlZm9yZVJvd0NsaWNrPFQ+O1xufVxuXG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2VsbENvbXBvbmVudDxUID0gYW55PiB7XG4gIHZhbHVlPzogYW55O1xuICByb3dWYWx1ZT86IFQ7XG4gIHJvd0luZGV4PzogbnVtYmVyO1xuICBjb2x1bW4/OiBUYWJsZUNvbHVtbjxUPjtcbiAgY2xpY2s/OiAoKSA9PiB2b2lkO1xufVxuXG4vLyBUYWJsZSBIZWFkZXJcbmV4cG9ydCB0eXBlIFRhYmxlSGVhZGVyQ2VsbENsYXNzPFQ+ID0gKGNvbHVtbjogVGFibGVDb2x1bW48VD4pID0+IG5nQ2xhc3M7XG5cbi8vIFRhYmxlIEJvZHlcbmV4cG9ydCB0eXBlIFRhYmxlQ2VsbFZhbHVlUmVzb2x2ZXI8VD4gPSAocm93VmFsdWU6IFQpID0+IGFueTtcblxuZXhwb3J0IHR5cGUgVGFibGVDZWxsRm9ybWF0dGVyPFQ+ID0gKGNlbGxWYWx1ZTogYW55LCByb3dWYWx1ZTogVCwgY29sdW1uOiBUYWJsZUNvbHVtbjxUPikgPT4gYW55O1xuXG5leHBvcnQgdHlwZSBUYWJsZUNlbGxDbGFzczxUPiA9IChjZWxsVmFsdWU6IGFueSwgcm93VmFsdWU6IFQsIGNvbHVtbjogVGFibGVDb2x1bW48VD4pID0+IG5nQ2xhc3M7XG5cbmV4cG9ydCB0eXBlIFRhYmxlQ2VsbENsaWNrYWJsZTxUPiA9IChyb3dWYWx1ZTogVCkgPT4gYm9vbGVhbjtcblxuZXhwb3J0IHR5cGUgVGFibGVDZWxsQ2xpY2tSZXNvbHZlcjxUPiA9IChyb3dWYWx1ZTogVCkgPT4gRXZlbnRFbWl0dGVyPFQ+O1xuXG5leHBvcnQgdHlwZSBUYWJsZUNlbGxDb21wYXJlUmVzb2x2ZXI8VD4gPSAocm93VmFsdWVBOiBULCByb3dWYWx1ZUI6IFQsIGlzQXNjOiBib29sZWFuKSA9PiBudW1iZXI7XG5cblxuLy8gVGFibGUgUm93XG5leHBvcnQgdHlwZSBUYWJsZVJvd0Rpc2FibGU8VD4gPSAocm93VmFsdWU6IFQpID0+IGJvb2xlYW47XG5leHBvcnQgdHlwZSBUYWJsZU5lc3RlZFJvdzxUPiA9IChyb3dWYWx1ZTogVCkgPT4gYm9vbGVhbjtcbmV4cG9ydCB0eXBlIFRhYmxlQWN0aXZlUm93PFQ+ID0gKHNlbGVjdGVkUm93VmFsdWU6IFQsIHJvd1ZhbHVlOiBUKSA9PiBib29sZWFuO1xuZXhwb3J0IHR5cGUgVGFibGVCZWZvcmVSb3dDbGljazxUPiA9IChyb3dWYWx1ZTogVCkgPT4gT2JzZXJ2YWJsZTxib29sZWFuPjtcbiJdfQ==
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1uLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC1zaGFyZWQtbGliL3NyYy9saWJyYXJpZXMvaW50ZXJmYWNlcy90YWJsZS1jb2x1bW4uaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE1BQU0sQ0FBTixJQUFZLGdCQU1YO0FBTkQsV0FBWSxnQkFBZ0I7SUFDMUIsa0dBQWtHO0lBQ2xHLHdGQUF3RjtJQUN4RixtREFBTSxDQUFBO0lBQ04scURBQU8sQ0FBQTtJQUNQLHVEQUFRLENBQUE7QUFDVixDQUFDLEVBTlcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQU0zQjtBQUVELG1GQUFtRjtBQUNuRixpR0FBaUc7QUFDakcsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxHQUFHLENBQTJCO0lBQ3JFLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQztJQUMzQixDQUFDLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUM7SUFDN0IsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDO0NBQ2hDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgdHlwZSBuZ0NsYXNzID0gc3RyaW5nIHwgc3RyaW5nW10gfCBTZXQ8c3RyaW5nPiB8IHsgW2tsYXNzOiBzdHJpbmddOiBhbnk7IH07XG5cbmV4cG9ydCBlbnVtIFRhYmxlQ29sdW1uR3JvdXAge1xuICAvLyBOdW1lcmljIGlkZW50aWZpZXJzIChtdXN0IHN0YXJ0IGF0IDEg4oCUIGNvbHVtbi5ncm91cCBpcyB0cnV0aGluZXNzLWNoZWNrZWQgaW4gdGhlIHRhYmxlIGhlYWRlcikuXG4gIC8vIFRoZSBkaXNwbGF5IGxhYmVsIGNvbWVzIGZyb20gVGFibGVDb2x1bW5Hcm91cExhYmVsLCBuZXZlciBmcm9tIHRoZSBlbnVtIHZhbHVlIGl0c2VsZi5cbiAgSWYgPSAxLFxuICBBbmQgPSAyLFxuICBUaGVuID0gMyxcbn1cblxuLy8gTWFwcyBhIGNvbHVtbiBncm91cCB0byBpdHMgbG9jYWxpemF0aW9uIGtleSAodHJhbnNsYXRlZCArIHVwcGVyY2FzZWQgb24gcmVuZGVyKS5cbi8vIEtleWVkIGJ5IHRoZSBlbnVtIHNvIHRoZSB0ZW1wbGF0ZSBuZXZlciB1c2VzIGEgcmF3LCBjb2xsaXNpb24tcHJvbmUgc3RyaW5nIGFzIGEgdHJhbnNsYXRlIGtleS5cbmV4cG9ydCBjb25zdCBUYWJsZUNvbHVtbkdyb3VwTGFiZWwgPSBuZXcgTWFwPFRhYmxlQ29sdW1uR3JvdXAsIHN0cmluZz4oW1xuICBbVGFibGVDb2x1bW5Hcm91cC5JZiwgJ2lmJ10sXG4gIFtUYWJsZUNvbHVtbkdyb3VwLkFuZCwgJ2FuZCddLFxuICBbVGFibGVDb2x1bW5Hcm91cC5UaGVuLCAndGhlbiddLFxuXSk7XG5cbi8qKlxuICogRXhwb3J0ZWQgZm9yIGdlbmVyaWMgYmFzZSBjbGFzc2VzOiBhIGxpdGVyYWwgY2Fubm90IGJlIGlubGluZWQgd2hpbGUgVCBpcyB1bnJlc29sdmVkLCBzbyB0aGVcbiAqIGJhc2UgZGVjbGFyZXMgdGhlIGtleSB3aXRoIHRoaXMgdHlwZSBhbmQgaXRzIHN1YmNsYXNzIHN1cHBsaWVzIHRoZSB2YWx1ZS5cbiAqL1xuZXhwb3J0IHR5cGUgVGFibGVDb2x1bW5FeHBhbmRlZEtleTxUPiA9IFQgZXh0ZW5kcyB1bmtub3duXG4gID8gRXh0cmFjdDxcbiAgICAgIHtcbiAgICAgICAgW0sgaW4ga2V5b2YgVF06IE5vbk51bGxhYmxlPFRbS10+IGV4dGVuZHMgcmVhZG9ubHkgdW5rbm93bltdID8gSyA6IG5ldmVyO1xuICAgICAgfVtrZXlvZiBUXSxcbiAgICAgIHN0cmluZ1xuICAgID5cbiAgOiBuZXZlcjtcblxuZXhwb3J0IGludGVyZmFjZSBUYWJsZUNvbHVtbjxUID0gYW55PiB7XG4gIG5hbWU6IHN0cmluZzsgLy8gdW5pcXVlIGNvbHVtbiBuYW1lXG4gIHRpdGxlPzogc3RyaW5nOyAvLyBoZWFkZXIgdGl0bGVcbiAgY3VzdG9tQ2VsbD86IGJvb2xlYW47IC8vIGlzIGNvbHVtbiBjZWxsIGN1c3RvbS4gZGVmYXVsdDogZmFsc2VcbiAgc29ydGFibGU/OiBib29sZWFuOyAvLyBpcyBjb2x1bW4gc29ydGFibGUuIGRlZmF1bHQ6IGZhbHNlXG4gIC8qKlxuICAgKiBGaWVsZCBuYW1lIHVzZWQgYXMgdGhlIGNlbGwgdmFsdWUuIERlZmF1bHRzIHRvIGBuYW1lYC4gSUdOT1JFRCBpZiBhIHZhbHVlUmVzb2x2ZXIgaXMgcGFzc2VkLFxuICAgKiBvciBpZiBjdXN0b21DZWxsIGlzIHNldC5cbiAgICogRGlzdHJpYnV0ZXMgb3ZlciBhIHVuaW9uIFQ6IGFueSBvbmUgbWVtYmVyJ3Mga2V5IGlzIGFjY2VwdGVkLCBidXQgcmVzb2x2ZXMgdG8gYHVuZGVmaW5lZGAgb25cbiAgICogbWVtYmVycyB0aGF0IGxhY2sgaXQg4oCUIHVzZSB2YWx1ZVJlc29sdmVyIHRoZXJlLlxuICAgKi9cbiAgZmllbGQ/OiBUIGV4dGVuZHMgdW5rbm93biA/IEV4dHJhY3Q8a2V5b2YgVCwgc3RyaW5nPiA6IG5ldmVyO1xuICB2YWx1ZVJlc29sdmVyPzogVGFibGVDZWxsVmFsdWVSZXNvbHZlcjxUPjsgLy8gY3VzdG9tIGNvbHVtbiB2YWx1ZSByZXNvbHZlciAoZS5nLiAocm93VmFsdWUpID0+IHJvd1ZhbHVlLmFkZHJlc3Muc3RyZWV0ICkuIE9WRVJSSURFUyBmaWVsZFxuICBmb3JtYXR0ZXI/OiBUYWJsZUNlbGxGb3JtYXR0ZXI8VD47IC8vIG9wdGlvbmFsIGZvcm1hdHRlci4gdXNlIHByZWRlZmluZWQgZm9ybWF0dGVycyBzdWNoIGFzIG1vbWVudEZvcm1hdHRlclxuICBjc3NIZWFkZXJDbGFzcz86IFRhYmxlSGVhZGVyQ2VsbENsYXNzPFQ+OyAvLyBvcHRpb25hbCBjc3MgY2xhc3MgZm9yIDx0aD5cbiAgY3NzQ2xhc3M/OiBUYWJsZUNlbGxDbGFzczxUPjsgLy8gb3B0aW9uYWwgY3NzIGNsYXNzIGZvciA8dGQ+XG4gIGlzQ2xpY2thYmxlPzogVGFibGVDZWxsQ2xpY2thYmxlPFQ+OyAvLyBpcyByb3cgZXZlbnQgY2xpY2sgZW5hYmxlIGZvciA8dHI+XG4gIGZvY3VzZXNSb3c/OiBUYWJsZUNlbGxDbGlja2FibGU8VD47IC8vIHRoZSBjZWxsIGhhcyBhIGNvbnRyb2wgc2hvd24gb24gdGhlIGZvY3VzZWQgcm93OiB0aGUgcm93IGpvaW5zIHRoZSBhcnJvdy1rZXkgcm93c1xuICAvKipcbiAgICogUm93IHByb3BlcnR5IGhvbGRpbmcgdGhlIGNoaWxkcmVuIHRvIGV4cGFuZCBpbnRvLiBSZXN0cmljdGVkIHRvIGFycmF5LXZhbHVlZCBrZXlzLCBzaW5jZVxuICAgKiBjb25zdW1lcnMgaW5kZXggdGhlIHJvdyBhbmQgcmVhZCBgLmxlbmd0aGAgb24gdGhlIHJlc3VsdC5cbiAgICogRGlzdHJpYnV0ZXMgb3ZlciBhIHVuaW9uIFQgZXhhY3RseSBhcyBgZmllbGRgIGRvZXMuXG4gICAqL1xuICBleHBhbmRlZEZpZWxkPzogVGFibGVDb2x1bW5FeHBhbmRlZEtleTxUPjtcbiAgY29tcG9uZW50PzogVHlwZTxDZWxsQ29tcG9uZW50PjsgLy8gb3B0aW9uYWwgY3VzdG9tIGNvbXBvbmVudFxuICB3aWR0aD86IG51bWJlcjsgLy8gb3B0aW9uYWwgY3VzdG9tIHdpZHRoIGluIHB4XG4gIG1pbldpZHRoPzogbnVtYmVyOyAvLyBvcHRpb25hbCBjdXN0b20gbWluLXdpZHRoIGluIHB4XG4gIG1ldGFkYXRhPzogYW55O1xuICBjbGlja1Jlc29sdmVyPzogVGFibGVDZWxsQ2xpY2tSZXNvbHZlcjxUPjsgLy8gY3V0b20gY29sdW1uIGNsaWNrIHJlc29sdmVyIChlLnEuIChyb3dWYWx1ZSkgPT4gcmV0dXJuIEV2ZW50RW1pdHRlciBtZXRob2QpXG4gIGlzSW5uZXJIdG1sPzogYm9vbGVhbjtcbiAgaW5uZXJIdG1sQ2xhc3M/OiBzdHJpbmc7XG4gIHRvb2x0aXA/OiBzdHJpbmc7XG4gIGNvbXBhcmU/OiBUYWJsZUNlbGxDb21wYXJlUmVzb2x2ZXI8VD47XG4gIGlzRXhwb3J0YWJsZT86IGJvb2xlYW47IC8vIGlzIGNvbHVtbiBleHBvcnRhYmxlLiBkZWZhdWx0OiBmYWxzZVxuICBncm91cD86IFRhYmxlQ29sdW1uR3JvdXA7IC8vIG9wdGlvbmFsIGdyb3VwZWQtaGVhZGVyIGxhYmVsIChpZi9hbmQvdGhlbikgcmVuZGVyZWQgYWJvdmUgdGhlIGNvbHVtblxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlUm93PFQgPSBhbnk+IHtcbiAgaXNSb3dEaXNhYmxlZD86IFRhYmxlUm93RGlzYWJsZTxUPjtcbiAgaXNSb3dIaWRkZW4/OiBUYWJsZVJvd0Rpc2FibGU8VD47XG4gIGlzTmVzdGVkUm93PzogVGFibGVOZXN0ZWRSb3c8VD47XG4gIGlzQWN0aXZlUm93PzogVGFibGVBY3RpdmVSb3c8VD47XG4gIGJlZm9yZVJvd0NsaWNrPzogVGFibGVCZWZvcmVSb3dDbGljazxUPjtcbn1cblxuXG5leHBvcnQgaW50ZXJmYWNlIENlbGxDb21wb25lbnQ8VCA9IGFueT4ge1xuICB2YWx1ZT86IGFueTtcbiAgcm93VmFsdWU/OiBUO1xuICByb3dJbmRleD86IG51bWJlcjtcbiAgY29sdW1uPzogVGFibGVDb2x1bW48VD47XG4gIGNsaWNrPzogKCkgPT4gdm9pZDtcbn1cblxuLy8gVGFibGUgSGVhZGVyXG5leHBvcnQgdHlwZSBUYWJsZUhlYWRlckNlbGxDbGFzczxUPiA9IChjb2x1bW46IFRhYmxlQ29sdW1uPFQ+KSA9PiBuZ0NsYXNzO1xuXG4vLyBUYWJsZSBCb2R5XG5leHBvcnQgdHlwZSBUYWJsZUNlbGxWYWx1ZVJlc29sdmVyPFQ+ID0gKHJvd1ZhbHVlOiBUKSA9PiBhbnk7XG5cbmV4cG9ydCB0eXBlIFRhYmxlQ2VsbEZvcm1hdHRlcjxUPiA9IChjZWxsVmFsdWU6IGFueSwgcm93VmFsdWU6IFQsIGNvbHVtbjogVGFibGVDb2x1bW48VD4pID0+IGFueTtcblxuZXhwb3J0IHR5cGUgVGFibGVDZWxsQ2xhc3M8VD4gPSAoY2VsbFZhbHVlOiBhbnksIHJvd1ZhbHVlOiBULCBjb2x1bW46IFRhYmxlQ29sdW1uPFQ+KSA9PiBuZ0NsYXNzO1xuXG5leHBvcnQgdHlwZSBUYWJsZUNlbGxDbGlja2FibGU8VD4gPSAocm93VmFsdWU6IFQpID0+IGJvb2xlYW47XG5cbmV4cG9ydCB0eXBlIFRhYmxlQ2VsbENsaWNrUmVzb2x2ZXI8VD4gPSAocm93VmFsdWU6IFQpID0+IEV2ZW50RW1pdHRlcjxUPjtcblxuZXhwb3J0IHR5cGUgVGFibGVDZWxsQ29tcGFyZVJlc29sdmVyPFQ+ID0gKHJvd1ZhbHVlQTogVCwgcm93VmFsdWVCOiBULCBpc0FzYzogYm9vbGVhbikgPT4gbnVtYmVyO1xuXG5cbi8vIFRhYmxlIFJvd1xuZXhwb3J0IHR5cGUgVGFibGVSb3dEaXNhYmxlPFQ+ID0gKHJvd1ZhbHVlOiBUKSA9PiBib29sZWFuO1xuZXhwb3J0IHR5cGUgVGFibGVOZXN0ZWRSb3c8VD4gPSAocm93VmFsdWU6IFQpID0+IGJvb2xlYW47XG5leHBvcnQgdHlwZSBUYWJsZUFjdGl2ZVJvdzxUPiA9IChzZWxlY3RlZFJvd1ZhbHVlOiBULCByb3dWYWx1ZTogVCkgPT4gYm9vbGVhbjtcbmV4cG9ydCB0eXBlIFRhYmxlQmVmb3JlUm93Q2xpY2s8VD4gPSAocm93VmFsdWU6IFQpID0+IE9ic2VydmFibGU8Ym9vbGVhbj47XG4iXX0=
@@ -16,7 +16,7 @@ let LayoutState = class LayoutState {
16
16
  constructor(mediaMatcher, store) {
17
17
  this.store = store;
18
18
  this.mobileQuerySubject = new Subject();
19
- this.mobileQuery = mediaMatcher.matchMedia('(max-width: 600px)');
19
+ this.mobileQuery = mediaMatcher.matchMedia('(max-width: 640px)');
20
20
  this.mobileQuery.onchange = (event) => this.mobileQuerySubject.next(event.matches);
21
21
  this.mobileQuerySubject
22
22
  .pipe(distinctUntilChanged())
@@ -51,4 +51,4 @@ export { LayoutState };
51
51
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LayoutState, decorators: [{
52
52
  type: Injectable
53
53
  }], ctorParameters: () => [{ type: i1.MediaMatcher }, { type: i2.Store }], propDecorators: { updateMobileMode: [] } });
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LnN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXNoYXJlZC1saWIvc3JjL2xpYnJhcmllcy9tb2R1bGVzL2xheW91dC9sYXlvdXQuc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBYyxRQUFRLEVBQUUsS0FBSyxFQUF1QixNQUFNLGFBQWEsQ0FBQztBQUN2RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBTXRELE1BQU0sT0FBTyxnQkFBZ0I7YUFDWCxTQUFJLEdBQUcsMkJBQTJCLENBQUM7SUFFbkQsWUFBbUIsUUFBaUI7UUFBakIsYUFBUSxHQUFSLFFBQVEsQ0FBUztJQUNwQyxDQUFDOztBQVFJLElBQU0sV0FBVyxHQUFqQixNQUFNLFdBQVc7SUFLdEIsWUFBWSxZQUEwQixFQUFVLEtBQVk7UUFBWixVQUFLLEdBQUwsS0FBSyxDQUFPO1FBRjNDLHVCQUFrQixHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFHM0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxZQUFZLENBQUMsVUFBVSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDakUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxLQUEwQixFQUFFLEVBQUUsQ0FDekQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFOUMsSUFBSSxDQUFDLGtCQUFrQjthQUNwQixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQzthQUM1QixTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUU5RSxxRUFBcUU7UUFDckUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBR00sQUFBUCxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQXVCO1FBQ3JDLE9BQU8sS0FBSyxDQUFDLFFBQVEsQ0FBQztJQUN4QixDQUFDO0lBRUQsVUFBVSxDQUFDLEdBQXVCO0lBQ2xDLENBQUM7SUFHRCxnQkFBZ0IsQ0FBQyxHQUFtQyxFQUFFLEVBQUUsUUFBUSxFQUFvQjtRQUNsRixHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUMvQixDQUFDOytHQTdCVSxXQUFXO21IQUFYLFdBQVc7O0FBMkJ0QjtJQURDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQzttREFHeEI7QUFWTTtJQUROLFFBQVEsRUFBRTtpQ0FHVjtBQXJCVSxXQUFXO0lBTHZCLEtBQUssQ0FBbUI7UUFDdkIsSUFBSSxFQUFFLFFBQVE7UUFDZCxRQUFRLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFO0tBQzlCLENBQUM7R0FFVyxXQUFXLENBOEJ2Qjs7NEZBOUJZLFdBQVc7a0JBRHZCLFVBQVU7cUdBNEJULGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1lZGlhTWF0Y2hlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9sYXlvdXQnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aW9uLCBOZ3hzT25Jbml0LCBTZWxlY3RvciwgU3RhdGUsIFN0YXRlQ29udGV4dCwgU3RvcmUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuZXhwb3J0IGludGVyZmFjZSBMYXlvdXRTdGF0ZU1vZGVsIHtcbiAgaXNNb2JpbGU6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBVcGRhdGVNb2JpbGVNb2RlIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW0xheW91dF0gVXBkYXRlTW9iaWxlTW9kZSc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGlzTW9iaWxlOiBib29sZWFuKSB7XG4gIH1cbn1cblxuQFN0YXRlPExheW91dFN0YXRlTW9kZWw+KHtcbiAgbmFtZTogJ2xheW91dCcsXG4gIGRlZmF1bHRzOiB7IGlzTW9iaWxlOiBmYWxzZSB9LFxufSlcbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBMYXlvdXRTdGF0ZSBpbXBsZW1lbnRzIE5neHNPbkluaXQge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbW9iaWxlUXVlcnk6IE1lZGlhUXVlcnlMaXN0O1xuICBwcml2YXRlIHJlYWRvbmx5IG1vYmlsZVF1ZXJ5U3ViamVjdCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgY29uc3RydWN0b3IobWVkaWFNYXRjaGVyOiBNZWRpYU1hdGNoZXIsIHByaXZhdGUgc3RvcmU6IFN0b3JlKSB7XG4gICAgdGhpcy5tb2JpbGVRdWVyeSA9IG1lZGlhTWF0Y2hlci5tYXRjaE1lZGlhKCcobWF4LXdpZHRoOiA2MDBweCknKTtcbiAgICB0aGlzLm1vYmlsZVF1ZXJ5Lm9uY2hhbmdlID0gKGV2ZW50OiBNZWRpYVF1ZXJ5TGlzdEV2ZW50KSA9PlxuICAgICAgdGhpcy5tb2JpbGVRdWVyeVN1YmplY3QubmV4dChldmVudC5tYXRjaGVzKTtcblxuICAgIHRoaXMubW9iaWxlUXVlcnlTdWJqZWN0XG4gICAgICAucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKVxuICAgICAgLnN1YnNjcmliZShpc01vYmlsZSA9PiB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBVcGRhdGVNb2JpbGVNb2RlKGlzTW9iaWxlKSkpO1xuXG4gICAgLy8gSW5pdGlhbGl6ZSB0aGUgbW9iaWxlIG1vZGUgYmFzZWQgb24gdGhlIGN1cnJlbnQgbWVkaWEgcXVlcnkgc3RhdHVzXG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLm1vYmlsZVF1ZXJ5U3ViamVjdC5uZXh0KHRoaXMubW9iaWxlUXVlcnkubWF0Y2hlcyksIDApO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgc3RhdGljIGlzTW9iaWxlKHN0YXRlOiBMYXlvdXRTdGF0ZU1vZGVsKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHN0YXRlLmlzTW9iaWxlO1xuICB9XG5cbiAgbmd4c09uSW5pdChjdHg/OiBTdGF0ZUNvbnRleHQ8YW55Pik6IGFueSB7XG4gIH1cblxuICBAQWN0aW9uKFVwZGF0ZU1vYmlsZU1vZGUpXG4gIHVwZGF0ZU1vYmlsZU1vZGUoY3R4OiBTdGF0ZUNvbnRleHQ8TGF5b3V0U3RhdGVNb2RlbD4sIHsgaXNNb2JpbGUgfTogVXBkYXRlTW9iaWxlTW9kZSk6IHZvaWQge1xuICAgIGN0eC5wYXRjaFN0YXRlKHsgaXNNb2JpbGUgfSk7XG4gIH1cbn1cbiJdfQ==
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LnN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXNoYXJlZC1saWIvc3JjL2xpYnJhcmllcy9tb2R1bGVzL2xheW91dC9sYXlvdXQuc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBYyxRQUFRLEVBQUUsS0FBSyxFQUF1QixNQUFNLGFBQWEsQ0FBQztBQUN2RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBTXRELE1BQU0sT0FBTyxnQkFBZ0I7YUFDWCxTQUFJLEdBQUcsMkJBQTJCLENBQUM7SUFFbkQsWUFBbUIsUUFBaUI7UUFBakIsYUFBUSxHQUFSLFFBQVEsQ0FBUztJQUNwQyxDQUFDOztBQVFJLElBQU0sV0FBVyxHQUFqQixNQUFNLFdBQVc7SUFLdEIsWUFBWSxZQUEwQixFQUFVLEtBQVk7UUFBWixVQUFLLEdBQUwsS0FBSyxDQUFPO1FBRjNDLHVCQUFrQixHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFHM0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxZQUFZLENBQUMsVUFBVSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDakUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxLQUEwQixFQUFFLEVBQUUsQ0FDekQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFOUMsSUFBSSxDQUFDLGtCQUFrQjthQUNwQixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQzthQUM1QixTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUU5RSxxRUFBcUU7UUFDckUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBR00sQUFBUCxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQXVCO1FBQ3JDLE9BQU8sS0FBSyxDQUFDLFFBQVEsQ0FBQztJQUN4QixDQUFDO0lBRUQsVUFBVSxDQUFDLEdBQXVCO0lBQ2xDLENBQUM7SUFHRCxnQkFBZ0IsQ0FBQyxHQUFtQyxFQUFFLEVBQUUsUUFBUSxFQUFvQjtRQUNsRixHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUMvQixDQUFDOytHQTdCVSxXQUFXO21IQUFYLFdBQVc7O0FBMkJ0QjtJQURDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQzttREFHeEI7QUFWTTtJQUROLFFBQVEsRUFBRTtpQ0FHVjtBQXJCVSxXQUFXO0lBTHZCLEtBQUssQ0FBbUI7UUFDdkIsSUFBSSxFQUFFLFFBQVE7UUFDZCxRQUFRLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFO0tBQzlCLENBQUM7R0FFVyxXQUFXLENBOEJ2Qjs7NEZBOUJZLFdBQVc7a0JBRHZCLFVBQVU7cUdBNEJULGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1lZGlhTWF0Y2hlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9sYXlvdXQnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aW9uLCBOZ3hzT25Jbml0LCBTZWxlY3RvciwgU3RhdGUsIFN0YXRlQ29udGV4dCwgU3RvcmUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuZXhwb3J0IGludGVyZmFjZSBMYXlvdXRTdGF0ZU1vZGVsIHtcbiAgaXNNb2JpbGU6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBVcGRhdGVNb2JpbGVNb2RlIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW0xheW91dF0gVXBkYXRlTW9iaWxlTW9kZSc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGlzTW9iaWxlOiBib29sZWFuKSB7XG4gIH1cbn1cblxuQFN0YXRlPExheW91dFN0YXRlTW9kZWw+KHtcbiAgbmFtZTogJ2xheW91dCcsXG4gIGRlZmF1bHRzOiB7IGlzTW9iaWxlOiBmYWxzZSB9LFxufSlcbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBMYXlvdXRTdGF0ZSBpbXBsZW1lbnRzIE5neHNPbkluaXQge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbW9iaWxlUXVlcnk6IE1lZGlhUXVlcnlMaXN0O1xuICBwcml2YXRlIHJlYWRvbmx5IG1vYmlsZVF1ZXJ5U3ViamVjdCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgY29uc3RydWN0b3IobWVkaWFNYXRjaGVyOiBNZWRpYU1hdGNoZXIsIHByaXZhdGUgc3RvcmU6IFN0b3JlKSB7XG4gICAgdGhpcy5tb2JpbGVRdWVyeSA9IG1lZGlhTWF0Y2hlci5tYXRjaE1lZGlhKCcobWF4LXdpZHRoOiA2NDBweCknKTtcbiAgICB0aGlzLm1vYmlsZVF1ZXJ5Lm9uY2hhbmdlID0gKGV2ZW50OiBNZWRpYVF1ZXJ5TGlzdEV2ZW50KSA9PlxuICAgICAgdGhpcy5tb2JpbGVRdWVyeVN1YmplY3QubmV4dChldmVudC5tYXRjaGVzKTtcblxuICAgIHRoaXMubW9iaWxlUXVlcnlTdWJqZWN0XG4gICAgICAucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKVxuICAgICAgLnN1YnNjcmliZShpc01vYmlsZSA9PiB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBVcGRhdGVNb2JpbGVNb2RlKGlzTW9iaWxlKSkpO1xuXG4gICAgLy8gSW5pdGlhbGl6ZSB0aGUgbW9iaWxlIG1vZGUgYmFzZWQgb24gdGhlIGN1cnJlbnQgbWVkaWEgcXVlcnkgc3RhdHVzXG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLm1vYmlsZVF1ZXJ5U3ViamVjdC5uZXh0KHRoaXMubW9iaWxlUXVlcnkubWF0Y2hlcyksIDApO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgc3RhdGljIGlzTW9iaWxlKHN0YXRlOiBMYXlvdXRTdGF0ZU1vZGVsKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHN0YXRlLmlzTW9iaWxlO1xuICB9XG5cbiAgbmd4c09uSW5pdChjdHg/OiBTdGF0ZUNvbnRleHQ8YW55Pik6IGFueSB7XG4gIH1cblxuICBAQWN0aW9uKFVwZGF0ZU1vYmlsZU1vZGUpXG4gIHVwZGF0ZU1vYmlsZU1vZGUoY3R4OiBTdGF0ZUNvbnRleHQ8TGF5b3V0U3RhdGVNb2RlbD4sIHsgaXNNb2JpbGUgfTogVXBkYXRlTW9iaWxlTW9kZSk6IHZvaWQge1xuICAgIGN0eC5wYXRjaFN0YXRlKHsgaXNNb2JpbGUgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,6 +1,6 @@
1
1
  import { Injectable, signal } from '@angular/core';
2
2
  import { MatDialogState } from '@angular/material/dialog';
3
- import { of, tap } from 'rxjs';
3
+ import { map, of, tap } from 'rxjs';
4
4
  import { CloudConfirmDialogComponent } from '../components/cloud-confirm-dialog/cloud-confirm-dialog.component';
5
5
  import { Localization } from '../enums/localization.enum';
6
6
  import * as i0 from "@angular/core";
@@ -15,7 +15,8 @@ export class CanDeactivateService {
15
15
  canDeactivate() {
16
16
  const isDialogClosed = this.isDialogClosed();
17
17
  if (this.hasUnsavedChanges() && isDialogClosed) {
18
- return this.displayDialog().pipe(tap(value => {
18
+ // X and Esc close the dialog without a result: stay, like Cancel.
19
+ return this.displayDialog().pipe(map(value => value === true), tap(value => {
19
20
  if (value) {
20
21
  this.hasUnsavedChanges.set(false);
21
22
  }
@@ -46,4 +47,4 @@ export class CanDeactivateService {
46
47
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CanDeactivateService, decorators: [{
47
48
  type: Injectable
48
49
  }], ctorParameters: () => [{ type: i1.ModalService }, { type: i2.TranslateService }] });
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FuLWRlYWN0aXZhdGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC1zaGFyZWQtbGliL3NyYy9saWJyYXJpZXMvc2VydmljZXMvY2FuLWRlYWN0aXZhdGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBa0IsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTFELE9BQU8sRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRy9CLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG1FQUFtRSxDQUFDO0FBQ2hILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7OztBQUcxRCxNQUFNLE9BQU8sb0JBQW9CO0lBSS9CLFlBQW9CLFlBQTBCLEVBQVUsZ0JBQWtDO1FBQXRFLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQVUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUZuRixzQkFBaUIsR0FBNEIsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBR2xFLENBQUM7SUFFRCxhQUFhO1FBQ1gsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQzdDLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLElBQUksY0FBYyxFQUFFLENBQUM7WUFDL0MsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDM0MsSUFBSSxLQUFLLEVBQUUsQ0FBQztvQkFDVixJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNwQyxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNOLENBQUM7UUFFRCw0QkFBNEI7UUFDNUIsMkVBQTJFO1FBQzNFLHdFQUF3RTtRQUN4RSxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBRU8sYUFBYTtRQUNuQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFVLDJCQUEyQixFQUFFO1lBQ2xFLElBQUksRUFBRTtnQkFDSixlQUFlLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO2dCQUNuRixZQUFZLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMscUJBQXFCLENBQUM7YUFDaEY7WUFDRCxVQUFVLEVBQUUsZUFBZTtZQUMzQixFQUFFLEVBQUUsaUJBQWlCO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxjQUFjO1FBQ3BCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2xHLE9BQU8sTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLGNBQWMsQ0FBQyxJQUFJLENBQUM7SUFDcEQsQ0FBQzsrR0FyQ1Usb0JBQW9CO21IQUFwQixvQkFBb0I7OzRGQUFwQixvQkFBb0I7a0JBRGhDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBzaWduYWwsIFdyaXRhYmxlU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2dTdGF0ZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBvZiwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcy9pbnRlcm5hbC9PYnNlcnZhYmxlJztcbmltcG9ydCB7IE1vZGFsU2VydmljZSB9IGZyb20gJy4vbW9kYWwuc2VydmljZSc7XG5pbXBvcnQgeyBDbG91ZENvbmZpcm1EaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2Nsb3VkLWNvbmZpcm0tZGlhbG9nL2Nsb3VkLWNvbmZpcm0tZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMb2NhbGl6YXRpb24gfSBmcm9tICcuLi9lbnVtcy9sb2NhbGl6YXRpb24uZW51bSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDYW5EZWFjdGl2YXRlU2VydmljZSB7XG5cbiAgcHVibGljIGhhc1Vuc2F2ZWRDaGFuZ2VzOiBXcml0YWJsZVNpZ25hbDxib29sZWFuPiA9IHNpZ25hbChmYWxzZSk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE1vZGFsU2VydmljZSwgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7XG4gIH1cblxuICBjYW5EZWFjdGl2YXRlKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IGlzRGlhbG9nQ2xvc2VkID0gdGhpcy5pc0RpYWxvZ0Nsb3NlZCgpO1xuICAgIGlmICh0aGlzLmhhc1Vuc2F2ZWRDaGFuZ2VzKCkgJiYgaXNEaWFsb2dDbG9zZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLmRpc3BsYXlEaWFsb2coKS5waXBlKHRhcCh2YWx1ZSA9PiB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgIHRoaXMuaGFzVW5zYXZlZENoYW5nZXMuc2V0KGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgfSkpO1xuICAgIH1cblxuICAgIC8vIGFsbG93IHRvIGRlYWN0aXZhdGUgd2hlbjpcbiAgICAvLyB0aGUgdW5zYXZlZC1jaGFuZ2VzIGRpYWxvZyBpcyBub3QgY2xvc2VkIGFuZCB1c2VyIGNsaWNrIG9uIFggdG8gY2xvc2UgaXRcbiAgICAvLyB0aGUgdW5zYXZlZC1jaGFuZ2VzIGRpYWxvZyBpcyBjbG9zZWQgYnV0IHRoZXJlIGFyZSBubyB1bnNhdmVkIGNoYW5nZXNcbiAgICByZXR1cm4gb2YodHJ1ZSk7XG4gIH1cblxuICBwcml2YXRlIGRpc3BsYXlEaWFsb2coKSB7XG4gICAgcmV0dXJuIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW48Ym9vbGVhbj4oQ2xvdWRDb25maXJtRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICBkYXRhOiB7XG4gICAgICAgIGNvbmZpcm1NZXNzYWdlczogW3RoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KExvY2FsaXphdGlvbi51bnNhdmVkX2NoYW5nZXNfYm9keSldLFxuICAgICAgICBjb25maXJtVGl0bGU6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KExvY2FsaXphdGlvbi51bnNhdmVkX2NoYW5nZXNfdGl0bGUpLFxuICAgICAgfSxcbiAgICAgIHBhbmVsQ2xhc3M6ICd0Yi1tb2RhbC1iYXNlJyxcbiAgICAgIGlkOiAndW5zYXZlZC1jaGFuZ2VzJ1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0RpYWxvZ0Nsb3NlZCgpIHtcbiAgICBjb25zdCBkaWFsb2cgPSB0aGlzLm1vZGFsU2VydmljZS5nZXRPcGVuRGlhbG9ncygpLmZpbmQoZGlhbG9nID0+IGRpYWxvZy5pZCA9PT0gJ3Vuc2F2ZWQtY2hhbmdlcycpO1xuICAgIHJldHVybiBkaWFsb2c/LmdldFN0YXRlKCkgIT09IE1hdERpYWxvZ1N0YXRlLk9QRU47XG4gIH1cbn1cbiJdfQ==
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FuLWRlYWN0aXZhdGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC1zaGFyZWQtbGliL3NyYy9saWJyYXJpZXMvc2VydmljZXMvY2FuLWRlYWN0aXZhdGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBa0IsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTFELE9BQU8sRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUdwQyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxtRUFBbUUsQ0FBQztBQUNoSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7QUFHMUQsTUFBTSxPQUFPLG9CQUFvQjtJQUkvQixZQUFvQixZQUEwQixFQUFVLGdCQUFrQztRQUF0RSxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUFVLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFGbkYsc0JBQWlCLEdBQTRCLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUdsRSxDQUFDO0lBRUQsYUFBYTtRQUNYLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUM3QyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLGNBQWMsRUFBRSxDQUFDO1lBQy9DLGtFQUFrRTtZQUNsRSxPQUFPLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDekUsSUFBSSxLQUFLLEVBQUUsQ0FBQztvQkFDVixJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNwQyxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNOLENBQUM7UUFFRCw0QkFBNEI7UUFDNUIsMkVBQTJFO1FBQzNFLHdFQUF3RTtRQUN4RSxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBRU8sYUFBYTtRQUNuQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFVLDJCQUEyQixFQUFFO1lBQ2xFLElBQUksRUFBRTtnQkFDSixlQUFlLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO2dCQUNuRixZQUFZLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMscUJBQXFCLENBQUM7YUFDaEY7WUFDRCxVQUFVLEVBQUUsZUFBZTtZQUMzQixFQUFFLEVBQUUsaUJBQWlCO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxjQUFjO1FBQ3BCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2xHLE9BQU8sTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLGNBQWMsQ0FBQyxJQUFJLENBQUM7SUFDcEQsQ0FBQzsrR0F0Q1Usb0JBQW9CO21IQUFwQixvQkFBb0I7OzRGQUFwQixvQkFBb0I7a0JBRGhDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBzaWduYWwsIFdyaXRhYmxlU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2dTdGF0ZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBtYXAsIG9mLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzL2ludGVybmFsL09ic2VydmFibGUnO1xuaW1wb3J0IHsgTW9kYWxTZXJ2aWNlIH0gZnJvbSAnLi9tb2RhbC5zZXJ2aWNlJztcbmltcG9ydCB7IENsb3VkQ29uZmlybURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvY2xvdWQtY29uZmlybS1kaWFsb2cvY2xvdWQtY29uZmlybS1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IExvY2FsaXphdGlvbiB9IGZyb20gJy4uL2VudW1zL2xvY2FsaXphdGlvbi5lbnVtJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENhbkRlYWN0aXZhdGVTZXJ2aWNlIHtcblxuICBwdWJsaWMgaGFzVW5zYXZlZENoYW5nZXM6IFdyaXRhYmxlU2lnbmFsPGJvb2xlYW4+ID0gc2lnbmFsKGZhbHNlKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1vZGFsU2VydmljZTogTW9kYWxTZXJ2aWNlLCBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UpIHtcbiAgfVxuXG4gIGNhbkRlYWN0aXZhdGUoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgY29uc3QgaXNEaWFsb2dDbG9zZWQgPSB0aGlzLmlzRGlhbG9nQ2xvc2VkKCk7XG4gICAgaWYgKHRoaXMuaGFzVW5zYXZlZENoYW5nZXMoKSAmJiBpc0RpYWxvZ0Nsb3NlZCkge1xuICAgICAgLy8gWCBhbmQgRXNjIGNsb3NlIHRoZSBkaWFsb2cgd2l0aG91dCBhIHJlc3VsdDogc3RheSwgbGlrZSBDYW5jZWwuXG4gICAgICByZXR1cm4gdGhpcy5kaXNwbGF5RGlhbG9nKCkucGlwZShtYXAodmFsdWUgPT4gdmFsdWUgPT09IHRydWUpLCB0YXAodmFsdWUgPT4ge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICB0aGlzLmhhc1Vuc2F2ZWRDaGFuZ2VzLnNldChmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgIH0pKTtcbiAgICB9XG5cbiAgICAvLyBhbGxvdyB0byBkZWFjdGl2YXRlIHdoZW46XG4gICAgLy8gdGhlIHVuc2F2ZWQtY2hhbmdlcyBkaWFsb2cgaXMgbm90IGNsb3NlZCBhbmQgdXNlciBjbGljayBvbiBYIHRvIGNsb3NlIGl0XG4gICAgLy8gdGhlIHVuc2F2ZWQtY2hhbmdlcyBkaWFsb2cgaXMgY2xvc2VkIGJ1dCB0aGVyZSBhcmUgbm8gdW5zYXZlZCBjaGFuZ2VzXG4gICAgcmV0dXJuIG9mKHRydWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBkaXNwbGF5RGlhbG9nKCkge1xuICAgIHJldHVybiB0aGlzLm1vZGFsU2VydmljZS5vcGVuPGJvb2xlYW4+KENsb3VkQ29uZmlybURpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgZGF0YToge1xuICAgICAgICBjb25maXJtTWVzc2FnZXM6IFt0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChMb2NhbGl6YXRpb24udW5zYXZlZF9jaGFuZ2VzX2JvZHkpXSxcbiAgICAgICAgY29uZmlybVRpdGxlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChMb2NhbGl6YXRpb24udW5zYXZlZF9jaGFuZ2VzX3RpdGxlKSxcbiAgICAgIH0sXG4gICAgICBwYW5lbENsYXNzOiAndGItbW9kYWwtYmFzZScsXG4gICAgICBpZDogJ3Vuc2F2ZWQtY2hhbmdlcydcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaXNEaWFsb2dDbG9zZWQoKSB7XG4gICAgY29uc3QgZGlhbG9nID0gdGhpcy5tb2RhbFNlcnZpY2UuZ2V0T3BlbkRpYWxvZ3MoKS5maW5kKGRpYWxvZyA9PiBkaWFsb2cuaWQgPT09ICd1bnNhdmVkLWNoYW5nZXMnKTtcbiAgICByZXR1cm4gZGlhbG9nPy5nZXRTdGF0ZSgpICE9PSBNYXREaWFsb2dTdGF0ZS5PUEVOO1xuICB9XG59XG4iXX0=
@@ -29,6 +29,7 @@ export class ModalService {
29
29
  const dialogRef = this.dialog.open(modalComponent, this.buildDialogConfig(modalConfig));
30
30
  this.createBackdrop(dialogRef.id);
31
31
  this.attachButtonWrapper(dialogRef, modalConfig);
32
+ this.closeOnEscape(dialogRef);
32
33
  // take(1), not first(): router teardown can complete these subjects without ever emitting,
33
34
  // and first() turns that benign completion into an unhandled EmptyError (SPRK3-14821).
34
35
  //
@@ -184,6 +185,18 @@ export class ModalService {
184
185
  }
185
186
  });
186
187
  }
188
+ // Esc does what the dialog's X does; a dialog without an X stays open. Listened on the dialog itself:
189
+ // the overlay keyboard dispatcher gives keys only to the top overlay, often a tooltip left on the opener.
190
+ closeOnEscape(dialogRef) {
191
+ dialogRef.afterOpened().pipe(take(1)).subscribe(() => {
192
+ const container = document.getElementById(dialogRef.id);
193
+ container?.addEventListener('keydown', (event) => {
194
+ if (event.key === 'Escape' && !event.defaultPrevented) {
195
+ container.querySelector('.modal-close-icon')?.click();
196
+ }
197
+ });
198
+ });
199
+ }
187
200
  detachButtonWrapper(dialogId) {
188
201
  const ref = this._buttonWrapperRefs[dialogId];
189
202
  if (ref) {
@@ -199,4 +212,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
199
212
  type: Injectable,
200
213
  args: [{ providedIn: 'root' }]
201
214
  }], ctorParameters: () => [{ type: i1.MatDialog }, { type: i2.MatSnackBar }, { type: i0.ApplicationRef }, { type: i0.EnvironmentInjector }] });
202
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC1zaGFyZWQtbGliL3NyYy9saWJyYXJpZXMvc2VydmljZXMvbW9kYWwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdDLGVBQWUsRUFBd0MsVUFBVSxFQUFRLE1BQU0sZUFBZSxDQUFDO0FBQ3RJLE9BQU8sRUFBYSxlQUFlLEVBQWdCLE1BQU0sMEJBQTBCLENBQUM7QUFFcEYsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUczRCxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUM7QUFDN0IsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDO0FBRzNCLE1BQU0sT0FBTyxZQUFZO0lBT3ZCLFlBQ1UsTUFBaUIsRUFDakIsUUFBcUIsRUFDckIsTUFBc0IsRUFDdEIsbUJBQXdDO1FBSHhDLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDakIsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQUN0Qix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBVDFDLGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUNwQyx1QkFBa0IsR0FBc0MsRUFBRSxDQUFDO1FBQzNELGtCQUFhLEdBQWEsRUFBRSxDQUFDO1FBQzdCLGFBQVEsR0FBYSxFQUFFLENBQUM7SUFPNUIsQ0FBQztJQUVMLGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFJLENBQWEsY0FB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UmVmLCBDb21wb25lbnRSZWYsIGNyZWF0ZUNvbXBvbmVudCwgRW1iZWRkZWRWaWV3UmVmLCBFbnZpcm9ubWVudEluamVjdG9yLCBJbmplY3RhYmxlLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ0NvbmZpZywgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbmFsaXplLCB0YWtlLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBUaWJhTWF0RGlhbG9nQ29uZmlnIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy90aWJhLW1hdC1kaWFsb2ctY29uZmlnLmludGVyZmFjZSc7XG5cbmNvbnN0IFpfSU5ERVhfRlJPTlQgPSAnMTAwMCc7XG5jb25zdCBaX0lOREVYX0JBQ0sgPSAnOTk5JztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBNb2RhbFNlcnZpY2Uge1xuXG4gIHByaXZhdGUgX21vZGFsT3BlbmVkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgX2J1dHRvbldyYXBwZXJSZWZzOiBSZWNvcmQ8c3RyaW5nLCBDb21wb25lbnRSZWY8YW55Pj4gPSB7fTtcbiAgcHJpdmF0ZSBfbWluaW1pemVkSWRzOiBzdHJpbmdbXSA9IFtdO1xuICBwcml2YXRlIF9vcGVuSWRzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgcHJpdmF0ZSBzbmFja0JhcjogTWF0U25hY2tCYXIsXG4gICAgcHJpdmF0ZSBhcHBSZWY6IEFwcGxpY2F0aW9uUmVmLFxuICAgIHByaXZhdGUgZW52aXJvbm1lbnRJbmplY3RvcjogRW52aXJvbm1lbnRJbmplY3RvclxuICApIHsgfVxuXG4gIG9uTW9kYWxPcGVuZWQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuX21vZGFsT3BlbmVkJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldE9wZW5EaWFsb2dzKCkge1xuICAgIHJldHVybiB0aGlzLmRpYWxvZy5vcGVuRGlhbG9ncztcbiAgfVxuXG4gIG9wZW48VCwgSiA9IGFueT4obW9kYWxDb21wb25lbnQ6IFR5cGU8YW55PiwgbW9kYWxDb25maWc/OiBUaWJhTWF0RGlhbG9nQ29uZmlnPEo+KTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgdGhpcy5zbmFja0Jhci5kaXNtaXNzKCk7XG5cbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKG1vZGFsQ29tcG9uZW50LCB0aGlzLmJ1aWxkRGlhbG9nQ29uZmlnKG1vZGFsQ29uZmlnKSk7XG4gICAgdGhpcy5jcmVhdGVCYWNrZHJvcChkaWFsb2dSZWYuaWQpO1xuICAgIHRoaXMuYXR0YWNoQnV0dG9uV3JhcHBlcihkaWFsb2dSZWYsIG1vZGFsQ29uZmlnKTtcblxuICAgIC8vIHRha2UoMSksIG5vdCBmaXJzdCgpOiByb3V0ZXIgdGVhcmRvd24gY2FuIGNvbXBsZXRlIHRoZXNlIHN1YmplY3RzIHdpdGhvdXQgZXZlciBlbWl0dGluZyxcbiAgICAvLyBhbmQgZmlyc3QoKSB0dXJucyB0aGF0IGJlbmlnbiBjb21wbGV0aW9uIGludG8gYW4gdW5oYW5kbGVkIEVtcHR5RXJyb3IgKFNQUkszLTE0ODIxKS5cbiAgICAvL1xuICAgIC8vIGFmdGVyT3BlbmVkIHJ1bnMgaXRzIGJvb2trZWVwaW5nIG9uIGVtaXNzaW9uIG9ubHkg4oCUIGEgZGlhbG9nIHRoYXQgbmV2ZXIgb3BlbmVkIG11c3Qgbm90IGJlXG4gICAgLy8gdHJhY2tlZCBhcyBvcGVuLiBhZnRlckNsb3NlZCBydW5zIGl0cyB0ZWFyZG93biBmcm9tIGZpbmFsaXplIGluc3RlYWQsIHNvIHRoZSBiYWNrZHJvcCBhbmRcbiAgICAvLyB0aGUgYnV0dG9uIHdyYXBwZXIgYXJlIGNsZWFuZWQgdXAgd2hldGhlciB0aGUgZGlhbG9nIGNsb3NlZCBub3JtYWxseSBvciB3YXMgZGlzcG9zZWRcbiAgICAvLyBiZWZvcmUgaXQgZXZlciBlbWl0dGVkOyB0aGUgYmFja2Ryb3AgbGl2ZXMgb24gLmNkay1vdmVybGF5LWNvbnRhaW5lciwgb3V0c2lkZSB0aGUgZGlhbG9nJ3NcbiAgICAvLyBvd24gb3ZlcmxheSBwYW5lLCBzbyBub3RoaW5nIGVsc2UgcmVtb3ZlcyBpdC5cbiAgICBkaWFsb2dSZWYuYWZ0ZXJPcGVuZWQoKS5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoKSA9PiB0aGlzLmFmdGVyT3BlbmVkKGRpYWxvZ1JlZikpO1xuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnBpcGUodGFrZSgxKSwgZmluYWxpemUoKCkgPT4gdGhpcy5hZnRlckNsb3NlZChkaWFsb2dSZWYpKSkuc3Vic2NyaWJlKCk7XG4gICAgcmV0dXJuIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpO1xuICB9XG5cbiAgY2xvc2VBbGwoeyBleGNsdWRlTWluaW1pemVkID0gdHJ1ZSB9ID0ge30pIHtcbiAgICBpZiAoZXhjbHVkZU1pbmltaXplZCkge1xuICAgICAgZm9yIChjb25zdCBvcGVuRGlhbG9nIG9mIHRoaXMuZ2V0T3BlbkRpYWxvZ3MoKSkge1xuICAgICAgICBjb25zdCB3cmFwcGVyID0gdGhpcy5fYnV0dG9uV3JhcHBlclJlZnNbb3BlbkRpYWxvZy5pZF07XG4gICAgICAgIGlmICghd3JhcHBlciB8fCAhd3JhcHBlci5pbnN0YW5jZS5pc01pbmltaXplZCkge1xuICAgICAgICAgIG9wZW5EaWFsb2cuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRpYWxvZy5jbG9zZUFsbCgpO1xuICAgIH1cbiAgfVxuXG4gIGRpc2FibGVDbG9zZShkaXNhYmxlOiBib29sZWFuLCBkaWFsb2dJZDogbnVtYmVyID0gMCkge1xuICAgIHRoaXMuZGlhbG9nLm9wZW5EaWFsb2dzW2RpYWxvZ0lkXS5kaXNhYmxlQ2xvc2UgPSBkaXNhYmxlO1xuICB9XG5cbiAgcHJpdmF0ZSBhZnRlck9wZW5lZDxULCBSPihkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxULCBSPikge1xuICAgIHRoaXMudHJhY2tNb2RhbChkaWFsb2dSZWYuaWQpO1xuICAgIHRoaXMuc2V0VG9wTW9kYWwoZGlhbG9nUmVmLmlkKTtcbiAgICB0aGlzLnJlcG9zaXRpb25NaW5pbWl6ZWRNb2RhbHMoKTtcbiAgICB0aGlzLl9tb2RhbE9wZW5lZCQubmV4dCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhZnRlckNsb3NlZDxULCBSPihkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxULCBSPikge1xuICAgIHRoaXMudW50cmFja01vZGFsKGRpYWxvZ1JlZi5pZCk7XG4gICAgY29uc3QgbmV3VG9wSWQgPSB0aGlzLl9vcGVuSWRzW3RoaXMuX29wZW5JZHMubGVuZ3RoIC0gMV07XG4gICAgaWYgKG5ld1RvcElkKSB7XG4gICAgICB0aGlzLnNldFRvcE1vZGFsKG5ld1RvcElkKTtcbiAgICB9XG4gICAgdGhpcy5yZXBvc2l0aW9uTWluaW1pemVkTW9kYWxzKGRpYWxvZ1JlZi5pZCk7XG4gICAgdGhpcy5kZXN0cm95QmFja2Ryb3AoZGlhbG9nUmVmLmlkKTtcbiAgICB0aGlzLmRldGFjaEJ1dHRvbldyYXBwZXIoZGlhbG9nUmVmLmlkKTtcbiAgfVxuXG4gIHByaXZhdGUgdHJhY2tNb2RhbChkaWFsb2dJZDogc3RyaW5nKSB7XG4gICAgdGhpcy5fb3Blbklkcy5wdXNoKGRpYWxvZ0lkKTtcbiAgfVxuXG4gIHByaXZhdGUgdW50cmFja01vZGFsKGRpYWxvZ0lkOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9vcGVuSWRzID0gdGhpcy5fb3Blbklkcy5maWx0ZXIoaWQgPT4gaWQgIT09IGRpYWxvZ0lkKTtcbiAgfVxuXG4gIHByaXZhdGUgYmFja2Ryb3BJZChkaWFsb2dJZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ2JhY2tkcm9wLScgKyBkaWFsb2dJZDtcbiAgfVxuXG4gIC8vIFJlbGllcyBvbiB0aGUgQ0RLLWludGVybmFsICcuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXInIGNsYXNzIGFkZGVkIGJ5IE1hdERpYWxvZzsgbWF5IGJyZWFrIG9uIEFuZ3VsYXIgTWF0ZXJpYWwgdXBncmFkZXMuXG4gIHByaXZhdGUgZ2V0V3JhcHBlcihkaWFsb2dJZDogc3RyaW5nKTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICBjb25zdCBkaWFsb2dFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGRpYWxvZ0lkKTtcbiAgICByZXR1cm4gZGlhbG9nRWwgPyBkaWFsb2dFbC5jbG9zZXN0PEhUTUxFbGVtZW50PignLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyJykgOiBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRUb3BNb2RhbChkaWFsb2dJZDogc3RyaW5nKSB7XG4gICAgdGhpcy5fb3Blbklkcy5mb3JFYWNoKGlkID0+IHtcbiAgICAgIGNvbnN0IHdyYXBwZXIgPSB0aGlzLmdldFdyYXBwZXIoaWQpO1xuICAgICAgY29uc3QgYmFja2Ryb3AgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmJhY2tkcm9wSWQoaWQpKTtcbiAgICAgIGlmIChpZCA9PT0gZGlhbG9nSWQpIHtcbiAgICAgICAgaWYgKHdyYXBwZXIpIHdyYXBwZXIuc3R5bGUuekluZGV4ID0gWl9JTkRFWF9GUk9OVDtcbiAgICAgICAgaWYgKGJhY2tkcm9wKSBiYWNrZHJvcC5zdHlsZS56SW5kZXggPSBaX0lOREVYX0JBQ0s7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAod3JhcHBlcikgd3JhcHBlci5zdHlsZS56SW5kZXggPSBaX0lOREVYX0JBQ0s7XG4gICAgICAgIGlmIChiYWNrZHJvcCkgYmFja2Ryb3Auc3R5bGUuekluZGV4ID0gWl9JTkRFWF9CQUNLO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBtaW5pbWl6ZShkaWFsb2dJZDogc3RyaW5nKSB7XG4gICAgdGhpcy51bnRyYWNrTW9kYWwoZGlhbG9nSWQpO1xuICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuYmFja2Ryb3BJZChkaWFsb2dJZCkpPy5jbGFzc0xpc3QuYWRkKCd0Yi1kLW5vbmUnKTtcbiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChkaWFsb2dJZCk/LmNsYXNzTGlzdC5hZGQoJ21pbmltaXplJyk7XG4gICAgdGhpcy5fbWluaW1pemVkSWRzLnB1c2goZGlhbG9nSWQpO1xuICAgIGNvbnN0IG5ld1RvcElkID0gdGhpcy5fb3Blbklkc1t0aGlzLl9vcGVuSWRzLmxlbmd0aCAtIDFdO1xuICAgIGlmIChuZXdUb3BJZCkge1xuICAgICAgdGhpcy5zZXRUb3BNb2RhbChuZXdUb3BJZCk7XG4gICAgfVxuICAgIHRoaXMucmVwb3NpdGlvbk1pbmltaXplZE1vZGFscygpO1xuICB9XG5cbiAgcHJpdmF0ZSBtYXhpbWl6ZShkaWFsb2dJZDogc3RyaW5nKSB7XG4gICAgdGhpcy50cmFja01vZGFsKGRpYWxvZ0lkKTtcbiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmJhY2tkcm9wSWQoZGlhbG9nSWQpKS5jbGFzc0xpc3QucmVtb3ZlKCd0Yi1kLW5vbmUnKTtcbiAgICB0aGlzLnNldFRvcE1vZGFsKGRpYWxvZ0lkKTtcbiAgICBjb25zdCBkaWFsb2dFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGRpYWxvZ0lkKTtcbiAgICBkaWFsb2dFbC5jbGFzc0xpc3QucmVtb3ZlKCdtaW5pbWl6ZScpO1xuICAgIGRpYWxvZ0VsLnN0eWxlLmJvdHRvbSA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLnJlcG9zaXRpb25NaW5pbWl6ZWRNb2RhbHMoZGlhbG9nSWQpO1xuICB9XG5cbiAgcHJpdmF0ZSByZXBvc2l0aW9uTWluaW1pemVkTW9kYWxzKHJlbW92ZWRJZD86IHN0cmluZykge1xuICAgIHRoaXMuX21pbmltaXplZElkcyA9IHRoaXMuX21pbmltaXplZElkcy5maWx0ZXIoaWQgPT4gaWQgIT09IHJlbW92ZWRJZCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl9taW5pbWl6ZWRJZHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5fbWluaW1pemVkSWRzW2ldKTtcbiAgICAgIGlmIChpID09PSAwKSB7XG4gICAgICAgIGVsLnN0eWxlLmJvdHRvbSA9ICcxMHB4JztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHByZXZFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuX21pbmltaXplZElkc1tpIC0gMV0pO1xuICAgICAgICBjb25zdCBoZWlnaHQgPSBwcmV2RWwuY2xpZW50SGVpZ2h0O1xuICAgICAgICBlbC5zdHlsZS5ib3R0b20gPSAoKGhlaWdodCArIDEwKSAqIGkpICsgMTAgKyAncHgnO1xuICAgICAgfVxuICAgICAgZWwuc3R5bGUucmlnaHQgPSAnMTBweCc7XG4gICAgICBjb25zdCBtaW5pbWl6ZUljb25FbCA9IGVsLnF1ZXJ5U2VsZWN0b3IoJy5tb2RhbC1taW5pbWl6ZS1pY29uJyk7XG4gICAgICBpZiAodGhpcy5fb3Blbklkcy5sZW5ndGggJiYgaSAhPT0gMCkge1xuICAgICAgICBtaW5pbWl6ZUljb25FbC5jbGFzc0xpc3QuYWRkKCd0Yi1hY3Rpb24tZGlzYWJsZWQnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG1pbmltaXplSWNvbkVsLmNsYXNzTGlzdC5yZW1vdmUoJ3RiLWFjdGlvbi1kaXNhYmxlZCcpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYnVpbGREaWFsb2dDb25maWc8Sj4obW9kYWxDb25maWc/OiBUaWJhTWF0RGlhbG9nQ29uZmlnPEo+KTogTWF0RGlhbG9nQ29uZmlnIHtcbiAgICBjb25zdCBjb25maWcgPSBPYmplY3QuYXNzaWduKG5ldyBNYXREaWFsb2dDb25maWcoKSwgbW9kYWxDb25maWcpO1xuICAgIGNvbmZpZy5kaXNhYmxlQ2xvc2UgPSBtb2RhbENvbmZpZz8uZGlzYWJsZUNsb3NlICE9PSBmYWxzZTtcbiAgICBjb25maWcuaGFzQmFja2Ryb3AgPSBmYWxzZTtcbiAgICBjb25maWcuYXV0b0ZvY3VzID0gbW9kYWxDb25maWc/LmF1dG9Gb2N1cyAhPT0gZmFsc2U7XG4gICAgcmV0dXJuIGNvbmZpZztcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQmFja2Ryb3AoZGlhbG9nSWQ6IHN0cmluZykge1xuICAgIGNvbnN0IGJhY2tkcm9wID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgYmFja2Ryb3AuY2xhc3NMaXN0LmFkZCgndGItb3ZlcmxheS1iYWNrZHJvcCcpO1xuICAgIGJhY2tkcm9wLmlkID0gdGhpcy5iYWNrZHJvcElkKGRpYWxvZ0lkKTtcbiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuY2RrLW92ZXJsYXktY29udGFpbmVyJykuYXBwZW5kKGJhY2tkcm9wKTtcbiAgfVxuXG4gIHByaXZhdGUgZGVzdHJveUJhY2tkcm9wKGRpYWxvZ0lkOiBzdHJpbmcpIHtcbiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmJhY2tkcm9wSWQoZGlhbG9nSWQpKT8ucmVtb3ZlKCk7XG4gIH1cblxuICBwcml2YXRlIGF0dGFjaEJ1dHRvbldyYXBwZXI8VCwgUj4oZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8VCwgUj4sIG1vZGFsQ29uZmlnPzogVGliYU1hdERpYWxvZ0NvbmZpZzxUPikge1xuICAgIGNvbnN0IGRpYWxvZ0lkID0gZGlhbG9nUmVmLmlkO1xuICAgIGltcG9ydCgnLi4vY29tcG9uZW50cy9tb2RhbC1idXR0b25zLXdyYXBwZXIvbW9kYWwtYnV0dG9ucy13cmFwcGVyLmNvbXBvbmVudCcpLnRoZW4ocmVzID0+IHtcbiAgICAgIGlmICghdGhpcy5kaWFsb2cuZ2V0RGlhbG9nQnlJZChkaWFsb2dJZCkpIHJldHVybjtcblxuICAgICAgdGhpcy5fYnV0dG9uV3JhcHBlclJlZnNbZGlhbG9nSWRdID0gY3JlYXRlQ29tcG9uZW50KHJlcy5Nb2RhbEJ1dHRvbnNXcmFwcGVyQ29tcG9uZW50LCB7IGVudmlyb25tZW50SW5qZWN0b3I6IHRoaXMuZW52aXJvbm1lbnRJbmplY3RvciB9KTtcbiAgICAgIGNvbnN0IGluc3RhbmNlID0gdGhpcy5fYnV0dG9uV3JhcHBlclJlZnNbZGlhbG9nSWRdLmluc3RhbmNlO1xuXG4gICAgICBpbnN0YW5jZS5jbG9zZS5waXBlKHRha2VVbnRpbChpbnN0YW5jZS5kZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiBkaWFsb2dSZWYuY2xvc2UoKSk7XG4gICAgICBpbnN0YW5jZS5taW5pbWl6ZS5waXBlKHRha2VVbnRpbChpbnN0YW5jZS5kZXN0cm95JCkpLnN1YnNjcmliZSgoaXNNaW5pbWl6ZTogYm9vbGVhbikgPT5cbiAgICAgICAgaXNNaW5pbWl6ZSA/IHRoaXMubWluaW1pemUoZGlhbG9nSWQpIDogdGhpcy5tYXhpbWl6ZShkaWFsb2dJZClcbiAgICAgICk7XG4gICAgICBpbnN0YW5jZS5lbmFibGVkTWluaW1pemVkID0gbW9kYWxDb25maWc/LmVuYWJsZWRNaW5pbWl6ZWQ7XG5cbiAgICAgIHRoaXMuYXBwUmVmLmF0dGFjaFZpZXcodGhpcy5fYnV0dG9uV3JhcHBlclJlZnNbZGlhbG9nSWRdLmhvc3RWaWV3KTtcbiAgICAgIGNvbnN0IGRvbUVsID0gKHRoaXMuX2J1dHRvbldyYXBwZXJSZWZzW2RpYWxvZ0lkXS5ob3N0VmlldyBhcyBFbWJlZGRlZFZpZXdSZWY8YW55Pikucm9vdE5vZGVzWzBdIGFzIEhUTUxFbGVtZW50O1xuICAgICAgY29uc3QgcGFuZWxDbGFzcyA9IG1vZGFsQ29uZmlnPy5wYW5lbENsYXNzO1xuICAgICAgY29uc3QgcGFuZWxTZWxlY3RvciA9IEFycmF5LmlzQXJyYXkocGFuZWxDbGFzcylcbiAgICAgICAgPyBwYW5lbENsYXNzLm1hcChjID0+IGAuJHtjfWApLmpvaW4oJycpXG4gICAgICAgIDogcGFuZWxDbGFzcyA/IGAuJHtwYW5lbENsYXNzfWAgOiBudWxsO1xuICAgICAgaWYgKHBhbmVsU2VsZWN0b3IpIHtcbiAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgJHtwYW5lbFNlbGVjdG9yfSAubW9kYWwtYnV0dG9uLXdyYXBwZXJgKT8uYXBwZW5kQ2hpbGQoZG9tRWwpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBkZXRhY2hCdXR0b25XcmFwcGVyKGRpYWxvZ0lkOiBzdHJpbmcpIHtcbiAgICBjb25zdCByZWYgPSB0aGlzLl9idXR0b25XcmFwcGVyUmVmc1tkaWFsb2dJZF07XG4gICAgaWYgKHJlZikge1xuICAgICAgdGhpcy5hcHBSZWYuZGV0YWNoVmlldyhyZWYuaG9zdFZpZXcpO1xuICAgICAgcmVmLmRlc3Ryb3koKTtcbiAgICAgIGRlbGV0ZSB0aGlzLl9idXR0b25XcmFwcGVyUmVmc1tkaWFsb2dJZF07XG4gICAgfVxuICB9XG59XG4iXX0=
215
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC1zaGFyZWQtbGliL3NyYy9saWJyYXJpZXMvc2VydmljZXMvbW9kYWwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdDLGVBQWUsRUFBd0MsVUFBVSxFQUFRLE1BQU0sZUFBZSxDQUFDO0FBQ3RJLE9BQU8sRUFBYSxlQUFlLEVBQWdCLE1BQU0sMEJBQTBCLENBQUM7QUFFcEYsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUczRCxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUM7QUFDN0IsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDO0FBRzNCLE1BQU0sT0FBTyxZQUFZO0lBT3ZCLFlBQ1UsTUFBaUIsRUFDakIsUUFBcUIsRUFDckIsTUFBc0IsRUFDdEIsbUJBQXdDO1FBSHhDLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDakIsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQUN0Qix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBVDFDLGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUNwQyx1QkFBa0IsR0FBc0MsRUFBRSxDQUFDO1FBQzNELGtCQUFhLEdBQWEsRUFBRSxDQUFDO1FBQzdCLGFBQVEsR0FBYSxFQUFFLENBQUM7SUFPNUIsQ0FBQztJQUVMLGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFJLENBQWEsY0FB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QUFhLENBQWMsbUJBQW1CLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQztnQkFDckUsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sbUJBQW1CLENBQUMsUUFBZ0I7UUFDMUMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzlDLElBQUksR0FBRyxFQUFFLENBQUM7WUFDUixJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDckMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2QsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDM0MsQ0FBQztJQUNILENBQUM7K0dBMU5VLFlBQVk7bUhBQVosWUFBWSxjQURDLE1BQU07OzRGQUNuQixZQUFZO2tCQUR4QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwcGxpY2F0aW9uUmVmLCBDb21wb25lbnRSZWYsIGNyZWF0ZUNvbXBvbmVudCwgRW1iZWRkZWRWaWV3UmVmLCBFbnZpcm9ubWVudEluamVjdG9yLCBJbmplY3RhYmxlLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ0NvbmZpZywgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbmFsaXplLCB0YWtlLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBUaWJhTWF0RGlhbG9nQ29uZmlnIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy90aWJhLW1hdC1kaWFsb2ctY29uZmlnLmludGVyZmFjZSc7XG5cbmNvbnN0IFpfSU5ERVhfRlJPTlQgPSAnMTAwMCc7XG5jb25zdCBaX0lOREVYX0JBQ0sgPSAnOTk5JztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBNb2RhbFNlcnZpY2Uge1xuXG4gIHByaXZhdGUgX21vZGFsT3BlbmVkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgX2J1dHRvbldyYXBwZXJSZWZzOiBSZWNvcmQ8c3RyaW5nLCBDb21wb25lbnRSZWY8YW55Pj4gPSB7fTtcbiAgcHJpdmF0ZSBfbWluaW1pemVkSWRzOiBzdHJpbmdbXSA9IFtdO1xuICBwcml2YXRlIF9vcGVuSWRzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgcHJpdmF0ZSBzbmFja0JhcjogTWF0U25hY2tCYXIsXG4gICAgcHJpdmF0ZSBhcHBSZWY6IEFwcGxpY2F0aW9uUmVmLFxuICAgIHByaXZhdGUgZW52aXJvbm1lbnRJbmplY3RvcjogRW52aXJvbm1lbnRJbmplY3RvclxuICApIHsgfVxuXG4gIG9uTW9kYWxPcGVuZWQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuX21vZGFsT3BlbmVkJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldE9wZW5EaWFsb2dzKCkge1xuICAgIHJldHVybiB0aGlzLmRpYWxvZy5vcGVuRGlhbG9ncztcbiAgfVxuXG4gIG9wZW48VCwgSiA9IGFueT4obW9kYWxDb21wb25lbnQ6IFR5cGU8YW55PiwgbW9kYWxDb25maWc/OiBUaWJhTWF0RGlhbG9nQ29uZmlnPEo+KTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgdGhpcy5zbmFja0Jhci5kaXNtaXNzKCk7XG5cbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKG1vZGFsQ29tcG9uZW50LCB0aGlzLmJ1aWxkRGlhbG9nQ29uZmlnKG1vZGFsQ29uZmlnKSk7XG4gICAgdGhpcy5jcmVhdGVCYWNrZHJvcChkaWFsb2dSZWYuaWQpO1xuICAgIHRoaXMuYXR0YWNoQnV0dG9uV3JhcHBlcihkaWFsb2dSZWYsIG1vZGFsQ29uZmlnKTtcbiAgICB0aGlzLmNsb3NlT25Fc2NhcGUoZGlhbG9nUmVmKTtcblxuICAgIC8vIHRha2UoMSksIG5vdCBmaXJzdCgpOiByb3V0ZXIgdGVhcmRvd24gY2FuIGNvbXBsZXRlIHRoZXNlIHN1YmplY3RzIHdpdGhvdXQgZXZlciBlbWl0dGluZyxcbiAgICAvLyBhbmQgZmlyc3QoKSB0dXJucyB0aGF0IGJlbmlnbiBjb21wbGV0aW9uIGludG8gYW4gdW5oYW5kbGVkIEVtcHR5RXJyb3IgKFNQUkszLTE0ODIxKS5cbiAgICAvL1xuICAgIC8vIGFmdGVyT3BlbmVkIHJ1bnMgaXRzIGJvb2trZWVwaW5nIG9uIGVtaXNzaW9uIG9ubHkg4oCUIGEgZGlhbG9nIHRoYXQgbmV2ZXIgb3BlbmVkIG11c3Qgbm90IGJlXG4gICAgLy8gdHJhY2tlZCBhcyBvcGVuLiBhZnRlckNsb3NlZCBydW5zIGl0cyB0ZWFyZG93biBmcm9tIGZpbmFsaXplIGluc3RlYWQsIHNvIHRoZSBiYWNrZHJvcCBhbmRcbiAgICAvLyB0aGUgYnV0dG9uIHdyYXBwZXIgYXJlIGNsZWFuZWQgdXAgd2hldGhlciB0aGUgZGlhbG9nIGNsb3NlZCBub3JtYWxseSBvciB3YXMgZGlzcG9zZWRcbiAgICAvLyBiZWZvcmUgaXQgZXZlciBlbWl0dGVkOyB0aGUgYmFja2Ryb3AgbGl2ZXMgb24gLmNkay1vdmVybGF5LWNvbnRhaW5lciwgb3V0c2lkZSB0aGUgZGlhbG9nJ3NcbiAgICAvLyBvd24gb3ZlcmxheSBwYW5lLCBzbyBub3RoaW5nIGVsc2UgcmVtb3ZlcyBpdC5cbiAgICBkaWFsb2dSZWYuYWZ0ZXJPcGVuZWQoKS5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoKSA9PiB0aGlzLmFmdGVyT3BlbmVkKGRpYWxvZ1JlZikpO1xuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnBpcGUodGFrZSgxKSwgZmluYWxpemUoKCkgPT4gdGhpcy5hZnRlckNsb3NlZChkaWFsb2dSZWYpKSkuc3Vic2NyaWJlKCk7XG4gICAgcmV0dXJuIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpO1xuICB9XG5cbiAgY2xvc2VBbGwoeyBleGNsdWRlTWluaW1pemVkID0gdHJ1ZSB9ID0ge30pIHtcbiAgICBpZiAoZXhjbHVkZU1pbmltaXplZCkge1xuICAgICAgZm9yIChjb25zdCBvcGVuRGlhbG9nIG9mIHRoaXMuZ2V0T3BlbkRpYWxvZ3MoKSkge1xuICAgICAgICBjb25zdCB3cmFwcGVyID0gdGhpcy5fYnV0dG9uV3JhcHBlclJlZnNbb3BlbkRpYWxvZy5pZF07XG4gICAgICAgIGlmICghd3JhcHBlciB8fCAhd3JhcHBlci5pbnN0YW5jZS5pc01pbmltaXplZCkge1xuICAgICAgICAgIG9wZW5EaWFsb2cuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRpYWxvZy5jbG9zZUFsbCgpO1xuICAgIH1cbiAgfVxuXG4gIGRpc2FibGVDbG9zZShkaXNhYmxlOiBib29sZWFuLCBkaWFsb2dJZDogbnVtYmVyID0gMCkge1xuICAgIHRoaXMuZGlhbG9nLm9wZW5EaWFsb2dzW2RpYWxvZ0lkXS5kaXNhYmxlQ2xvc2UgPSBkaXNhYmxlO1xuICB9XG5cbiAgcHJpdmF0ZSBhZnRlck9wZW5lZDxULCBSPihkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxULCBSPikge1xuICAgIHRoaXMudHJhY2tNb2RhbChkaWFsb2dSZWYuaWQpO1xuICAgIHRoaXMuc2V0VG9wTW9kYWwoZGlhbG9nUmVmLmlkKTtcbiAgICB0aGlzLnJlcG9zaXRpb25NaW5pbWl6ZWRNb2RhbHMoKTtcbiAgICB0aGlzLl9tb2RhbE9wZW5lZCQubmV4dCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhZnRlckNsb3NlZDxULCBSPihkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxULCBSPikge1xuICAgIHRoaXMudW50cmFja01vZGFsKGRpYWxvZ1JlZi5pZCk7XG4gICAgY29uc3QgbmV3VG9wSWQgPSB0aGlzLl9vcGVuSWRzW3RoaXMuX29wZW5JZHMubGVuZ3RoIC0gMV07XG4gICAgaWYgKG5ld1RvcElkKSB7XG4gICAgICB0aGlzLnNldFRvcE1vZGFsKG5ld1RvcElkKTtcbiAgICB9XG4gICAgdGhpcy5yZXBvc2l0aW9uTWluaW1pemVkTW9kYWxzKGRpYWxvZ1JlZi5pZCk7XG4gICAgdGhpcy5kZXN0cm95QmFja2Ryb3AoZGlhbG9nUmVmLmlkKTtcbiAgICB0aGlzLmRldGFjaEJ1dHRvbldyYXBwZXIoZGlhbG9nUmVmLmlkKTtcbiAgfVxuXG4gIHByaXZhdGUgdHJhY2tNb2RhbChkaWFsb2dJZDogc3RyaW5nKSB7XG4gICAgdGhpcy5fb3Blbklkcy5wdXNoKGRpYWxvZ0lkKTtcbiAgfVxuXG4gIHByaXZhdGUgdW50cmFja01vZGFsKGRpYWxvZ0lkOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9vcGVuSWRzID0gdGhpcy5fb3Blbklkcy5maWx0ZXIoaWQgPT4gaWQgIT09IGRpYWxvZ0lkKTtcbiAgfVxuXG4gIHByaXZhdGUgYmFja2Ryb3BJZChkaWFsb2dJZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ2JhY2tkcm9wLScgKyBkaWFsb2dJZDtcbiAgfVxuXG4gIC8vIFJlbGllcyBvbiB0aGUgQ0RLLWludGVybmFsICcuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXInIGNsYXNzIGFkZGVkIGJ5IE1hdERpYWxvZzsgbWF5IGJyZWFrIG9uIEFuZ3VsYXIgTWF0ZXJpYWwgdXBncmFkZXMuXG4gIHByaXZhdGUgZ2V0V3JhcHBlcihkaWFsb2dJZDogc3RyaW5nKTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICBjb25zdCBkaWFsb2dFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGRpYWxvZ0lkKTtcbiAgICByZXR1cm4gZGlhbG9nRWwgPyBkaWFsb2dFbC5jbG9zZXN0PEhUTUxFbGVtZW50PignLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyJykgOiBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRUb3BNb2RhbChkaWFsb2dJZDogc3RyaW5nKSB7XG4gICAgdGhpcy5fb3Blbklkcy5mb3JFYWNoKGlkID0+IHtcbiAgICAgIGNvbnN0IHdyYXBwZXIgPSB0aGlzLmdldFdyYXBwZXIoaWQpO1xuICAgICAgY29uc3QgYmFja2Ryb3AgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmJhY2tkcm9wSWQoaWQpKTtcbiAgICAgIGlmIChpZCA9PT0gZGlhbG9nSWQpIHtcbiAgICAgICAgaWYgKHdyYXBwZXIpIHdyYXBwZXIuc3R5bGUuekluZGV4ID0gWl9JTkRFWF9GUk9OVDtcbiAgICAgICAgaWYgKGJhY2tkcm9wKSBiYWNrZHJvcC5zdHlsZS56SW5kZXggPSBaX0lOREVYX0JBQ0s7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAod3JhcHBlcikgd3JhcHBlci5zdHlsZS56SW5kZXggPSBaX0lOREVYX0JBQ0s7XG4gICAgICAgIGlmIChiYWNrZHJvcCkgYmFja2Ryb3Auc3R5bGUuekluZGV4ID0gWl9JTkRFWF9CQUNLO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBtaW5pbWl6ZShkaWFsb2dJZDogc3RyaW5nKSB7XG4gICAgdGhpcy51bnRyYWNrTW9kYWwoZGlhbG9nSWQpO1xuICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuYmFja2Ryb3BJZChkaWFsb2dJZCkpPy5jbGFzc0xpc3QuYWRkKCd0Yi1kLW5vbmUnKTtcbiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChkaWFsb2dJZCk/LmNsYXNzTGlzdC5hZGQoJ21pbmltaXplJyk7XG4gICAgdGhpcy5fbWluaW1pemVkSWRzLnB1c2goZGlhbG9nSWQpO1xuICAgIGNvbnN0IG5ld1RvcElkID0gdGhpcy5fb3Blbklkc1t0aGlzLl9vcGVuSWRzLmxlbmd0aCAtIDFdO1xuICAgIGlmIChuZXdUb3BJZCkge1xuICAgICAgdGhpcy5zZXRUb3BNb2RhbChuZXdUb3BJZCk7XG4gICAgfVxuICAgIHRoaXMucmVwb3NpdGlvbk1pbmltaXplZE1vZGFscygpO1xuICB9XG5cbiAgcHJpdmF0ZSBtYXhpbWl6ZShkaWFsb2dJZDogc3RyaW5nKSB7XG4gICAgdGhpcy50cmFja01vZGFsKGRpYWxvZ0lkKTtcbiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmJhY2tkcm9wSWQoZGlhbG9nSWQpKS5jbGFzc0xpc3QucmVtb3ZlKCd0Yi1kLW5vbmUnKTtcbiAgICB0aGlzLnNldFRvcE1vZGFsKGRpYWxvZ0lkKTtcbiAgICBjb25zdCBkaWFsb2dFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGRpYWxvZ0lkKTtcbiAgICBkaWFsb2dFbC5jbGFzc0xpc3QucmVtb3ZlKCdtaW5pbWl6ZScpO1xuICAgIGRpYWxvZ0VsLnN0eWxlLmJvdHRvbSA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLnJlcG9zaXRpb25NaW5pbWl6ZWRNb2RhbHMoZGlhbG9nSWQpO1xuICB9XG5cbiAgcHJpdmF0ZSByZXBvc2l0aW9uTWluaW1pemVkTW9kYWxzKHJlbW92ZWRJZD86IHN0cmluZykge1xuICAgIHRoaXMuX21pbmltaXplZElkcyA9IHRoaXMuX21pbmltaXplZElkcy5maWx0ZXIoaWQgPT4gaWQgIT09IHJlbW92ZWRJZCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl9taW5pbWl6ZWRJZHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5fbWluaW1pemVkSWRzW2ldKTtcbiAgICAgIGlmIChpID09PSAwKSB7XG4gICAgICAgIGVsLnN0eWxlLmJvdHRvbSA9ICcxMHB4JztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHByZXZFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuX21pbmltaXplZElkc1tpIC0gMV0pO1xuICAgICAgICBjb25zdCBoZWlnaHQgPSBwcmV2RWwuY2xpZW50SGVpZ2h0O1xuICAgICAgICBlbC5zdHlsZS5ib3R0b20gPSAoKGhlaWdodCArIDEwKSAqIGkpICsgMTAgKyAncHgnO1xuICAgICAgfVxuICAgICAgZWwuc3R5bGUucmlnaHQgPSAnMTBweCc7XG4gICAgICBjb25zdCBtaW5pbWl6ZUljb25FbCA9IGVsLnF1ZXJ5U2VsZWN0b3IoJy5tb2RhbC1taW5pbWl6ZS1pY29uJyk7XG4gICAgICBpZiAodGhpcy5fb3Blbklkcy5sZW5ndGggJiYgaSAhPT0gMCkge1xuICAgICAgICBtaW5pbWl6ZUljb25FbC5jbGFzc0xpc3QuYWRkKCd0Yi1hY3Rpb24tZGlzYWJsZWQnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG1pbmltaXplSWNvbkVsLmNsYXNzTGlzdC5yZW1vdmUoJ3RiLWFjdGlvbi1kaXNhYmxlZCcpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYnVpbGREaWFsb2dDb25maWc8Sj4obW9kYWxDb25maWc/OiBUaWJhTWF0RGlhbG9nQ29uZmlnPEo+KTogTWF0RGlhbG9nQ29uZmlnIHtcbiAgICBjb25zdCBjb25maWcgPSBPYmplY3QuYXNzaWduKG5ldyBNYXREaWFsb2dDb25maWcoKSwgbW9kYWxDb25maWcpO1xuICAgIGNvbmZpZy5kaXNhYmxlQ2xvc2UgPSBtb2RhbENvbmZpZz8uZGlzYWJsZUNsb3NlICE9PSBmYWxzZTtcbiAgICBjb25maWcuaGFzQmFja2Ryb3AgPSBmYWxzZTtcbiAgICBjb25maWcuYXV0b0ZvY3VzID0gbW9kYWxDb25maWc/LmF1dG9Gb2N1cyAhPT0gZmFsc2U7XG4gICAgcmV0dXJuIGNvbmZpZztcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQmFja2Ryb3AoZGlhbG9nSWQ6IHN0cmluZykge1xuICAgIGNvbnN0IGJhY2tkcm9wID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgYmFja2Ryb3AuY2xhc3NMaXN0LmFkZCgndGItb3ZlcmxheS1iYWNrZHJvcCcpO1xuICAgIGJhY2tkcm9wLmlkID0gdGhpcy5iYWNrZHJvcElkKGRpYWxvZ0lkKTtcbiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuY2RrLW92ZXJsYXktY29udGFpbmVyJykuYXBwZW5kKGJhY2tkcm9wKTtcbiAgfVxuXG4gIHByaXZhdGUgZGVzdHJveUJhY2tkcm9wKGRpYWxvZ0lkOiBzdHJpbmcpIHtcbiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmJhY2tkcm9wSWQoZGlhbG9nSWQpKT8ucmVtb3ZlKCk7XG4gIH1cblxuICBwcml2YXRlIGF0dGFjaEJ1dHRvbldyYXBwZXI8VCwgUj4oZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8VCwgUj4sIG1vZGFsQ29uZmlnPzogVGliYU1hdERpYWxvZ0NvbmZpZzxUPikge1xuICAgIGNvbnN0IGRpYWxvZ0lkID0gZGlhbG9nUmVmLmlkO1xuICAgIGltcG9ydCgnLi4vY29tcG9uZW50cy9tb2RhbC1idXR0b25zLXdyYXBwZXIvbW9kYWwtYnV0dG9ucy13cmFwcGVyLmNvbXBvbmVudCcpLnRoZW4ocmVzID0+IHtcbiAgICAgIGlmICghdGhpcy5kaWFsb2cuZ2V0RGlhbG9nQnlJZChkaWFsb2dJZCkpIHJldHVybjtcblxuICAgICAgdGhpcy5fYnV0dG9uV3JhcHBlclJlZnNbZGlhbG9nSWRdID0gY3JlYXRlQ29tcG9uZW50KHJlcy5Nb2RhbEJ1dHRvbnNXcmFwcGVyQ29tcG9uZW50LCB7IGVudmlyb25tZW50SW5qZWN0b3I6IHRoaXMuZW52aXJvbm1lbnRJbmplY3RvciB9KTtcbiAgICAgIGNvbnN0IGluc3RhbmNlID0gdGhpcy5fYnV0dG9uV3JhcHBlclJlZnNbZGlhbG9nSWRdLmluc3RhbmNlO1xuXG4gICAgICBpbnN0YW5jZS5jbG9zZS5waXBlKHRha2VVbnRpbChpbnN0YW5jZS5kZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiBkaWFsb2dSZWYuY2xvc2UoKSk7XG4gICAgICBpbnN0YW5jZS5taW5pbWl6ZS5waXBlKHRha2VVbnRpbChpbnN0YW5jZS5kZXN0cm95JCkpLnN1YnNjcmliZSgoaXNNaW5pbWl6ZTogYm9vbGVhbikgPT5cbiAgICAgICAgaXNNaW5pbWl6ZSA/IHRoaXMubWluaW1pemUoZGlhbG9nSWQpIDogdGhpcy5tYXhpbWl6ZShkaWFsb2dJZClcbiAgICAgICk7XG4gICAgICBpbnN0YW5jZS5lbmFibGVkTWluaW1pemVkID0gbW9kYWxDb25maWc/LmVuYWJsZWRNaW5pbWl6ZWQ7XG5cbiAgICAgIHRoaXMuYXBwUmVmLmF0dGFjaFZpZXcodGhpcy5fYnV0dG9uV3JhcHBlclJlZnNbZGlhbG9nSWRdLmhvc3RWaWV3KTtcbiAgICAgIGNvbnN0IGRvbUVsID0gKHRoaXMuX2J1dHRvbldyYXBwZXJSZWZzW2RpYWxvZ0lkXS5ob3N0VmlldyBhcyBFbWJlZGRlZFZpZXdSZWY8YW55Pikucm9vdE5vZGVzWzBdIGFzIEhUTUxFbGVtZW50O1xuICAgICAgY29uc3QgcGFuZWxDbGFzcyA9IG1vZGFsQ29uZmlnPy5wYW5lbENsYXNzO1xuICAgICAgY29uc3QgcGFuZWxTZWxlY3RvciA9IEFycmF5LmlzQXJyYXkocGFuZWxDbGFzcylcbiAgICAgICAgPyBwYW5lbENsYXNzLm1hcChjID0+IGAuJHtjfWApLmpvaW4oJycpXG4gICAgICAgIDogcGFuZWxDbGFzcyA/IGAuJHtwYW5lbENsYXNzfWAgOiBudWxsO1xuICAgICAgaWYgKHBhbmVsU2VsZWN0b3IpIHtcbiAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgJHtwYW5lbFNlbGVjdG9yfSAubW9kYWwtYnV0dG9uLXdyYXBwZXJgKT8uYXBwZW5kQ2hpbGQoZG9tRWwpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLy8gRXNjIGRvZXMgd2hhdCB0aGUgZGlhbG9nJ3MgWCBkb2VzOyBhIGRpYWxvZyB3aXRob3V0IGFuIFggc3RheXMgb3Blbi4gTGlzdGVuZWQgb24gdGhlIGRpYWxvZyBpdHNlbGY6XG4gIC8vIHRoZSBvdmVybGF5IGtleWJvYXJkIGRpc3BhdGNoZXIgZ2l2ZXMga2V5cyBvbmx5IHRvIHRoZSB0b3Agb3ZlcmxheSwgb2Z0ZW4gYSB0b29sdGlwIGxlZnQgb24gdGhlIG9wZW5lci5cbiAgcHJpdmF0ZSBjbG9zZU9uRXNjYXBlKGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPHVua25vd24+KSB7XG4gICAgZGlhbG9nUmVmLmFmdGVyT3BlbmVkKCkucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZGlhbG9nUmVmLmlkKTtcbiAgICAgIGNvbnRhaW5lcj8uYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIChldmVudCkgPT4ge1xuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnRXNjYXBlJyAmJiAhZXZlbnQuZGVmYXVsdFByZXZlbnRlZCkge1xuICAgICAgICAgIGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PignLm1vZGFsLWNsb3NlLWljb24nKT8uY2xpY2soKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGRldGFjaEJ1dHRvbldyYXBwZXIoZGlhbG9nSWQ6IHN0cmluZykge1xuICAgIGNvbnN0IHJlZiA9IHRoaXMuX2J1dHRvbldyYXBwZXJSZWZzW2RpYWxvZ0lkXTtcbiAgICBpZiAocmVmKSB7XG4gICAgICB0aGlzLmFwcFJlZi5kZXRhY2hWaWV3KHJlZi5ob3N0Vmlldyk7XG4gICAgICByZWYuZGVzdHJveSgpO1xuICAgICAgZGVsZXRlIHRoaXMuX2J1dHRvbldyYXBwZXJSZWZzW2RpYWxvZ0lkXTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==