valtech-components 2.0.1035 → 4.0.1

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 (81) hide show
  1. package/esm2022/lib/components/atoms/box/box.component.mjs +6 -8
  2. package/esm2022/lib/components/atoms/button/factory.mjs +24 -217
  3. package/esm2022/lib/components/atoms/divider/divider.component.mjs +2 -4
  4. package/esm2022/lib/components/atoms/href/href.component.mjs +1 -2
  5. package/esm2022/lib/components/atoms/image/image.component.mjs +36 -3
  6. package/esm2022/lib/components/molecules/action-card/action-card.component.mjs +4 -9
  7. package/esm2022/lib/components/molecules/breadcrumb/breadcrumb.component.mjs +4 -4
  8. package/esm2022/lib/components/molecules/card/card.component.mjs +53 -10
  9. package/esm2022/lib/components/molecules/checkbox-radio-input/checkbox-radio-input.component.mjs +27 -36
  10. package/esm2022/lib/components/molecules/chip-group/chip-group.component.mjs +44 -6
  11. package/esm2022/lib/components/molecules/command-display/command-display.component.mjs +32 -7
  12. package/esm2022/lib/components/molecules/comment/comment.component.mjs +28 -12
  13. package/esm2022/lib/components/molecules/cta-card/cta-card.component.mjs +4 -9
  14. package/esm2022/lib/components/molecules/date-picker/date-picker.component.mjs +3 -3
  15. package/esm2022/lib/components/molecules/expandable-text/expandable-text.component.mjs +7 -7
  16. package/esm2022/lib/components/molecules/features-list/features-list.component.mjs +159 -71
  17. package/esm2022/lib/components/molecules/file-input/file-input.component.mjs +7 -3
  18. package/esm2022/lib/components/molecules/hint/hint.component.mjs +30 -5
  19. package/esm2022/lib/components/molecules/pagination/pagination.component.mjs +75 -19
  20. package/esm2022/lib/components/molecules/password-input/password-input.component.mjs +42 -9
  21. package/esm2022/lib/components/molecules/permission-selector/types.mjs +1 -1
  22. package/esm2022/lib/components/molecules/rating/rating.component.mjs +88 -12
  23. package/esm2022/lib/components/molecules/stepper/stepper.component.mjs +15 -7
  24. package/esm2022/lib/components/molecules/text-input/text-input.component.mjs +93 -7
  25. package/esm2022/lib/components/organisms/change-email-modal/change-email-modal.component.mjs +5 -5
  26. package/esm2022/lib/components/organisms/change-password-modal/change-password-modal.component.mjs +4 -4
  27. package/esm2022/lib/components/organisms/form/form.component.mjs +62 -20
  28. package/esm2022/lib/components/organisms/login/login.component.mjs +8 -8
  29. package/esm2022/lib/components/organisms/mfa-modal/mfa-modal.component.mjs +3 -3
  30. package/esm2022/lib/components/types.mjs +1 -1
  31. package/esm2022/lib/services/presets/default-presets.mjs +45 -0
  32. package/esm2022/lib/services/presets/index.mjs +3 -1
  33. package/esm2022/lib/services/presets/preset.service.mjs +17 -4
  34. package/esm2022/lib/services/requests/request-form-builder.service.mjs +8 -3
  35. package/esm2022/lib/shared/utils/ionic-color.mjs +36 -0
  36. package/esm2022/lib/version.mjs +2 -2
  37. package/esm2022/public-api.mjs +2 -8
  38. package/fesm2022/valtech-components.mjs +1140 -1024
  39. package/fesm2022/valtech-components.mjs.map +1 -1
  40. package/lib/components/atoms/box/box.component.d.ts +2 -5
  41. package/lib/components/atoms/button/factory.d.ts +15 -69
  42. package/lib/components/atoms/divider/divider.component.d.ts +1 -4
  43. package/lib/components/atoms/href/href.component.d.ts +2 -3
  44. package/lib/components/atoms/image/image.component.d.ts +5 -0
  45. package/lib/components/molecules/action-card/action-card.component.d.ts +1 -1
  46. package/lib/components/molecules/card/card.component.d.ts +2 -1
  47. package/lib/components/molecules/checkbox-radio-input/checkbox-radio-input.component.d.ts +2 -3
  48. package/lib/components/molecules/chip-group/chip-group.component.d.ts +5 -0
  49. package/lib/components/molecules/command-display/command-display.component.d.ts +4 -0
  50. package/lib/components/molecules/comment/comment.component.d.ts +3 -0
  51. package/lib/components/molecules/cta-card/cta-card.component.d.ts +0 -1
  52. package/lib/components/molecules/hint/hint.component.d.ts +11 -1
  53. package/lib/components/molecules/pagination/pagination.component.d.ts +5 -0
  54. package/lib/components/molecules/password-input/password-input.component.d.ts +4 -2
  55. package/lib/components/molecules/permission-selector/types.d.ts +1 -0
  56. package/lib/components/molecules/rating/rating.component.d.ts +11 -0
  57. package/lib/components/molecules/text-input/text-input.component.d.ts +21 -0
  58. package/lib/components/organisms/form/form.component.d.ts +19 -0
  59. package/lib/components/types.d.ts +21 -1
  60. package/lib/services/presets/default-presets.d.ts +22 -0
  61. package/lib/services/presets/index.d.ts +1 -0
  62. package/lib/services/presets/preset.service.d.ts +4 -0
  63. package/lib/shared/utils/ionic-color.d.ts +20 -0
  64. package/lib/version.d.ts +1 -1
  65. package/package.json +1 -1
  66. package/public-api.d.ts +1 -7
  67. package/src/lib/components/styles/mixins.scss +16 -0
  68. package/esm2022/lib/components/molecules/content-card/content-card.component.mjs +0 -86
  69. package/esm2022/lib/components/molecules/content-card/types.mjs +0 -11
  70. package/esm2022/lib/components/molecules/email-input/email-input.component.mjs +0 -68
  71. package/esm2022/lib/components/molecules/hour-input/hour-input.component.mjs +0 -28
  72. package/esm2022/lib/components/molecules/info-card/info-card.component.mjs +0 -126
  73. package/esm2022/lib/components/molecules/info-card/types.mjs +0 -11
  74. package/esm2022/lib/components/molecules/number-input/number-input.component.mjs +0 -34
  75. package/lib/components/molecules/content-card/content-card.component.d.ts +0 -26
  76. package/lib/components/molecules/content-card/types.d.ts +0 -30
  77. package/lib/components/molecules/email-input/email-input.component.d.ts +0 -34
  78. package/lib/components/molecules/hour-input/hour-input.component.d.ts +0 -15
  79. package/lib/components/molecules/info-card/info-card.component.d.ts +0 -37
  80. package/lib/components/molecules/info-card/types.d.ts +0 -44
  81. package/lib/components/molecules/number-input/number-input.component.d.ts +0 -16
@@ -87,6 +87,19 @@ export class ImageComponent {
87
87
  this.isPreviewOpen = true;
88
88
  this.resetZoom();
89
89
  }
90
+ /**
91
+ * Keyboard activation of the preview trigger. Space must preventDefault to
92
+ * avoid scrolling the page when the focused image is activated.
93
+ */
94
+ onPreviewKeydown(event) {
95
+ if (!this.props.previewMode)
96
+ return;
97
+ const key = event.key;
98
+ if (key === ' ' || key === 'Spacebar') {
99
+ event.preventDefault();
100
+ }
101
+ this.openPreview();
102
+ }
90
103
  closePreview() {
91
104
  this.isPreviewOpen = false;
92
105
  }
@@ -250,6 +263,11 @@ export class ImageComponent {
250
263
  [style.max-width.rem]="props.width"
251
264
  [style.height.px]="props.height"
252
265
  (click)="props.previewMode ? openPreview() : null"
266
+ (keydown.enter)="props.previewMode ? openPreview() : null"
267
+ (keydown.space)="onPreviewKeydown($event)"
268
+ [attr.role]="props.previewMode ? 'button' : null"
269
+ [attr.tabindex]="props.previewMode ? 0 : null"
270
+ [attr.aria-haspopup]="props.previewMode ? 'dialog' : null"
253
271
  />
254
272
  } @else {
255
273
  <img
@@ -270,6 +288,11 @@ export class ImageComponent {
270
288
  [style.max-width.rem]="props.width"
271
289
  [style.height.px]="props.height"
272
290
  (click)="props.previewMode ? openPreview() : null"
291
+ (keydown.enter)="props.previewMode ? openPreview() : null"
292
+ (keydown.space)="onPreviewKeydown($event)"
293
+ [attr.role]="props.previewMode ? 'button' : null"
294
+ [attr.tabindex]="props.previewMode ? 0 : null"
295
+ [attr.aria-haspopup]="props.previewMode ? 'dialog' : null"
273
296
  />
274
297
  }
275
298
  </div>
@@ -354,7 +377,7 @@ export class ImageComponent {
354
377
  </ion-content>
355
378
  </ng-template>
356
379
  </ion-modal>
357
- `, isInline: true, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.val-image-container{margin:0;padding:0;max-width:100%}.val-image-container--left{margin-right:auto;text-align:left}.val-image-container--center{margin-left:auto;margin-right:auto;text-align:center}.val-image-container--right{margin-left:auto;text-align:right}.val-image-wrapper{display:inline-block;position:relative}.val-image{width:100%;height:auto;display:block;opacity:1;max-width:100%}.val-image.center{margin:0 auto}.val-image.rounded{border-radius:.5rem}.val-image.circular{border-radius:50%;aspect-ratio:1;object-fit:cover}.val-image.box{border-radius:0}.val-image.bordered{border:.0625rem solid var(--ion-color-medium)}.val-image.shaded{box-shadow:.1875rem .625rem .5rem #1219541a}body.dark .val-image.dark,html.ion-palette-dark .val-image.dark,body[data-theme=dark] .val-image.dark{filter:invert(1)}.val-image.limited{max-width:100%}@media (max-width: 768px){.val-image .val-image-wrapper.small{width:40%}.val-image .val-image-wrapper.medium{width:60%}.val-image .val-image-wrapper.large{width:80%}.val-image .val-image-wrapper.xlarge{width:100%}}.val-image.small{width:30%}.val-image.medium{width:50%}.val-image.large{width:70%}.val-image.xlarge{width:100%}.val-image-caption{margin-top:.5rem;color:var(--ion-color-medium-shade, #666);font-style:italic;line-height:1.4}.val-image-caption--small{font-size:.75rem}.val-image-caption--medium{font-size:.875rem}.val-image-caption--large{font-size:1rem}.val-image.visible{animation:appearance ease-in 1s forwards}@keyframes appearance{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.val-image-container{flex-shrink:0;align-self:flex-start}.flexbox-container .val-image-container--left{align-self:flex-start}.flexbox-container .val-image-container--center{align-self:center}.flexbox-container .val-image-container--right{align-self:flex-end}.val-image--preview-enabled{cursor:pointer;transition:opacity .2s ease,transform .2s ease}.val-image--preview-enabled:hover{opacity:.9;transform:scale(1.02)}ion-modal ion-content{position:relative;--padding-start: 0;--padding-end: 0;--padding-top: 0;--padding-bottom: 0}.val-image-preview-controls{position:absolute;bottom:20px;left:50%;transform:translate(-50%);z-index:1000;display:flex;align-items:center;gap:15px;background:rgba(var(--ion-background-color-rgb, 255, 255, 255),.9);padding:4px 8px;border-radius:25px;backdrop-filter:blur(10px);box-shadow:0 4px 20px #00000026}.val-image-preview-zoom-level{font-size:.875rem;font-weight:600;min-width:50px;text-align:center;color:var(--ion-text-color)}.val-image-preview-viewport{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;display:flex;align-items:center;justify-content:center;touch-action:none}.val-image-preview-img{max-width:90vw;max-height:90vh;object-fit:contain;transition:transform .1s ease-out;transform-origin:center center;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}@media (max-width: 768px){.val-image-preview-controls{bottom:10px;padding:8px 16px;gap:10px}.val-image-preview-zoom-level{font-size:.75rem;min-width:40px}.val-image-preview-img{max-width:95vw;max-height:85vh}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: IonModal, selector: "ion-modal" }, { kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }] }); }
380
+ `, isInline: true, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.val-image-container{margin:0;padding:0;max-width:100%}.val-image-container--left{margin-right:auto;text-align:left}.val-image-container--center{margin-left:auto;margin-right:auto;text-align:center}.val-image-container--right{margin-left:auto;text-align:right}.val-image-wrapper{display:inline-block;position:relative}.val-image{width:100%;height:auto;display:block;opacity:1;max-width:100%}.val-image.center{margin:0 auto}.val-image.rounded{border-radius:.5rem}.val-image.circular{border-radius:50%;aspect-ratio:1;object-fit:cover}.val-image.box{border-radius:0}.val-image.bordered{border:.0625rem solid var(--ion-color-medium)}.val-image.shaded{box-shadow:.1875rem .625rem .5rem #1219541a}body.dark .val-image.dark,html.ion-palette-dark .val-image.dark,body[data-theme=dark] .val-image.dark{filter:invert(1)}.val-image.limited{max-width:100%}@media (max-width: 768px){.val-image .val-image-wrapper.small{width:40%}.val-image .val-image-wrapper.medium{width:60%}.val-image .val-image-wrapper.large{width:80%}.val-image .val-image-wrapper.xlarge{width:100%}}.val-image.small{width:30%}.val-image.medium{width:50%}.val-image.large{width:70%}.val-image.xlarge{width:100%}.val-image-caption{margin-top:.5rem;color:var(--ion-color-medium-shade, #666);font-style:italic;line-height:1.4}.val-image-caption--small{font-size:.75rem}.val-image-caption--medium{font-size:.875rem}.val-image-caption--large{font-size:1rem}.val-image.visible{animation:appearance ease-in 1s forwards}@keyframes appearance{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.val-image-container{flex-shrink:0;align-self:flex-start}.flexbox-container .val-image-container--left{align-self:flex-start}.flexbox-container .val-image-container--center{align-self:center}.flexbox-container .val-image-container--right{align-self:flex-end}.val-image--preview-enabled{cursor:pointer;transition:opacity .2s ease,transform .2s ease}.val-image--preview-enabled:hover{opacity:.9;transform:scale(1.02)}.val-image--preview-enabled:focus-visible:focus{outline:none}.val-image--preview-enabled:focus-visible:focus-visible{outline:.125rem solid var(--ion-color-primary, #7026df);outline-offset:2px;border-radius:inherit}ion-modal ion-content{position:relative;--padding-start: 0;--padding-end: 0;--padding-top: 0;--padding-bottom: 0}.val-image-preview-controls{position:absolute;bottom:20px;left:50%;transform:translate(-50%);z-index:1000;display:flex;align-items:center;gap:15px;background:rgba(var(--ion-background-color-rgb, 255, 255, 255),.9);padding:4px 8px;border-radius:25px;backdrop-filter:blur(10px);box-shadow:0 4px 20px #00000026}.val-image-preview-zoom-level{font-size:.875rem;font-weight:600;min-width:50px;text-align:center;color:var(--ion-text-color)}.val-image-preview-viewport{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;display:flex;align-items:center;justify-content:center;touch-action:none}.val-image-preview-img{max-width:90vw;max-height:90vh;object-fit:contain;transition:transform .1s ease-out;transform-origin:center center;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}@media (max-width: 768px){.val-image-preview-controls{bottom:10px;padding:8px 16px;gap:10px}.val-image-preview-zoom-level{font-size:.75rem;min-width:40px}.val-image-preview-img{max-width:95vw;max-height:85vh}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: IonModal, selector: "ion-modal" }, { kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }] }); }
358
381
  }
359
382
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ImageComponent, decorators: [{
360
383
  type: Component,
@@ -393,6 +416,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
393
416
  [style.max-width.rem]="props.width"
394
417
  [style.height.px]="props.height"
395
418
  (click)="props.previewMode ? openPreview() : null"
419
+ (keydown.enter)="props.previewMode ? openPreview() : null"
420
+ (keydown.space)="onPreviewKeydown($event)"
421
+ [attr.role]="props.previewMode ? 'button' : null"
422
+ [attr.tabindex]="props.previewMode ? 0 : null"
423
+ [attr.aria-haspopup]="props.previewMode ? 'dialog' : null"
396
424
  />
397
425
  } @else {
398
426
  <img
@@ -413,6 +441,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
413
441
  [style.max-width.rem]="props.width"
414
442
  [style.height.px]="props.height"
415
443
  (click)="props.previewMode ? openPreview() : null"
444
+ (keydown.enter)="props.previewMode ? openPreview() : null"
445
+ (keydown.space)="onPreviewKeydown($event)"
446
+ [attr.role]="props.previewMode ? 'button' : null"
447
+ [attr.tabindex]="props.previewMode ? 0 : null"
448
+ [attr.aria-haspopup]="props.previewMode ? 'dialog' : null"
416
449
  />
417
450
  }
418
451
  </div>
@@ -497,11 +530,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
497
530
  </ion-content>
498
531
  </ng-template>
499
532
  </ion-modal>
500
- `, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.val-image-container{margin:0;padding:0;max-width:100%}.val-image-container--left{margin-right:auto;text-align:left}.val-image-container--center{margin-left:auto;margin-right:auto;text-align:center}.val-image-container--right{margin-left:auto;text-align:right}.val-image-wrapper{display:inline-block;position:relative}.val-image{width:100%;height:auto;display:block;opacity:1;max-width:100%}.val-image.center{margin:0 auto}.val-image.rounded{border-radius:.5rem}.val-image.circular{border-radius:50%;aspect-ratio:1;object-fit:cover}.val-image.box{border-radius:0}.val-image.bordered{border:.0625rem solid var(--ion-color-medium)}.val-image.shaded{box-shadow:.1875rem .625rem .5rem #1219541a}body.dark .val-image.dark,html.ion-palette-dark .val-image.dark,body[data-theme=dark] .val-image.dark{filter:invert(1)}.val-image.limited{max-width:100%}@media (max-width: 768px){.val-image .val-image-wrapper.small{width:40%}.val-image .val-image-wrapper.medium{width:60%}.val-image .val-image-wrapper.large{width:80%}.val-image .val-image-wrapper.xlarge{width:100%}}.val-image.small{width:30%}.val-image.medium{width:50%}.val-image.large{width:70%}.val-image.xlarge{width:100%}.val-image-caption{margin-top:.5rem;color:var(--ion-color-medium-shade, #666);font-style:italic;line-height:1.4}.val-image-caption--small{font-size:.75rem}.val-image-caption--medium{font-size:.875rem}.val-image-caption--large{font-size:1rem}.val-image.visible{animation:appearance ease-in 1s forwards}@keyframes appearance{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.val-image-container{flex-shrink:0;align-self:flex-start}.flexbox-container .val-image-container--left{align-self:flex-start}.flexbox-container .val-image-container--center{align-self:center}.flexbox-container .val-image-container--right{align-self:flex-end}.val-image--preview-enabled{cursor:pointer;transition:opacity .2s ease,transform .2s ease}.val-image--preview-enabled:hover{opacity:.9;transform:scale(1.02)}ion-modal ion-content{position:relative;--padding-start: 0;--padding-end: 0;--padding-top: 0;--padding-bottom: 0}.val-image-preview-controls{position:absolute;bottom:20px;left:50%;transform:translate(-50%);z-index:1000;display:flex;align-items:center;gap:15px;background:rgba(var(--ion-background-color-rgb, 255, 255, 255),.9);padding:4px 8px;border-radius:25px;backdrop-filter:blur(10px);box-shadow:0 4px 20px #00000026}.val-image-preview-zoom-level{font-size:.875rem;font-weight:600;min-width:50px;text-align:center;color:var(--ion-text-color)}.val-image-preview-viewport{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;display:flex;align-items:center;justify-content:center;touch-action:none}.val-image-preview-img{max-width:90vw;max-height:90vh;object-fit:contain;transition:transform .1s ease-out;transform-origin:center center;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}@media (max-width: 768px){.val-image-preview-controls{bottom:10px;padding:8px 16px;gap:10px}.val-image-preview-zoom-level{font-size:.75rem;min-width:40px}.val-image-preview-img{max-width:95vw;max-height:85vh}}\n"] }]
533
+ `, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.val-image-container{margin:0;padding:0;max-width:100%}.val-image-container--left{margin-right:auto;text-align:left}.val-image-container--center{margin-left:auto;margin-right:auto;text-align:center}.val-image-container--right{margin-left:auto;text-align:right}.val-image-wrapper{display:inline-block;position:relative}.val-image{width:100%;height:auto;display:block;opacity:1;max-width:100%}.val-image.center{margin:0 auto}.val-image.rounded{border-radius:.5rem}.val-image.circular{border-radius:50%;aspect-ratio:1;object-fit:cover}.val-image.box{border-radius:0}.val-image.bordered{border:.0625rem solid var(--ion-color-medium)}.val-image.shaded{box-shadow:.1875rem .625rem .5rem #1219541a}body.dark .val-image.dark,html.ion-palette-dark .val-image.dark,body[data-theme=dark] .val-image.dark{filter:invert(1)}.val-image.limited{max-width:100%}@media (max-width: 768px){.val-image .val-image-wrapper.small{width:40%}.val-image .val-image-wrapper.medium{width:60%}.val-image .val-image-wrapper.large{width:80%}.val-image .val-image-wrapper.xlarge{width:100%}}.val-image.small{width:30%}.val-image.medium{width:50%}.val-image.large{width:70%}.val-image.xlarge{width:100%}.val-image-caption{margin-top:.5rem;color:var(--ion-color-medium-shade, #666);font-style:italic;line-height:1.4}.val-image-caption--small{font-size:.75rem}.val-image-caption--medium{font-size:.875rem}.val-image-caption--large{font-size:1rem}.val-image.visible{animation:appearance ease-in 1s forwards}@keyframes appearance{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.val-image-container{flex-shrink:0;align-self:flex-start}.flexbox-container .val-image-container--left{align-self:flex-start}.flexbox-container .val-image-container--center{align-self:center}.flexbox-container .val-image-container--right{align-self:flex-end}.val-image--preview-enabled{cursor:pointer;transition:opacity .2s ease,transform .2s ease}.val-image--preview-enabled:hover{opacity:.9;transform:scale(1.02)}.val-image--preview-enabled:focus-visible:focus{outline:none}.val-image--preview-enabled:focus-visible:focus-visible{outline:.125rem solid var(--ion-color-primary, #7026df);outline-offset:2px;border-radius:inherit}ion-modal ion-content{position:relative;--padding-start: 0;--padding-end: 0;--padding-top: 0;--padding-bottom: 0}.val-image-preview-controls{position:absolute;bottom:20px;left:50%;transform:translate(-50%);z-index:1000;display:flex;align-items:center;gap:15px;background:rgba(var(--ion-background-color-rgb, 255, 255, 255),.9);padding:4px 8px;border-radius:25px;backdrop-filter:blur(10px);box-shadow:0 4px 20px #00000026}.val-image-preview-zoom-level{font-size:.875rem;font-weight:600;min-width:50px;text-align:center;color:var(--ion-text-color)}.val-image-preview-viewport{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;display:flex;align-items:center;justify-content:center;touch-action:none}.val-image-preview-img{max-width:90vw;max-height:90vh;object-fit:contain;transition:transform .1s ease-out;transform-origin:center center;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}@media (max-width: 768px){.val-image-preview-controls{bottom:10px;padding:8px 16px;gap:10px}.val-image-preview-zoom-level{font-size:.75rem;min-width:40px}.val-image-preview-img{max-width:95vw;max-height:85vh}}\n"] }]
501
534
  }], ctorParameters: () => [], propDecorators: { props: [{
502
535
  type: Input
503
536
  }], onKeyDown: [{
504
537
  type: HostListener,
505
538
  args: ['document:keydown', ['$event']]
506
539
  }] } });
507
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2F0b21zL2ltYWdlL2ltYWdlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFVBQVUsRUFDVixTQUFTLEVBQ1QsT0FBTyxFQUNQLFFBQVEsRUFDUixRQUFRLEVBQ1IsVUFBVSxHQUNYLE1BQU0sMkJBQTJCLENBQUM7OztBQXFKbkM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9DRztBQUNILE1BQU0sT0FBTyxjQUFjO0lBNkJ6QjtRQXpCQSxjQUFTLEdBQVksSUFBSSxDQUFDO1FBRTFCLDBCQUEwQjtRQUMxQixrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUMvQixjQUFTLEdBQVcsQ0FBQyxDQUFDO1FBQ3RCLFlBQU8sR0FBVyxHQUFHLENBQUM7UUFDdEIsWUFBTyxHQUFXLENBQUMsQ0FBQztRQUNwQixTQUFJLEdBQVcsQ0FBQyxDQUFDO1FBQ2pCLFNBQUksR0FBVyxDQUFDLENBQUM7UUFFakIseUNBQXlDO1FBQ3pDLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFDNUIsYUFBUSxHQUFXLENBQUMsQ0FBQztRQUNyQixhQUFRLEdBQVcsQ0FBQyxDQUFDO1FBQ3JCLFdBQU0sR0FBVyxDQUFDLENBQUM7UUFDbkIsV0FBTSxHQUFXLENBQUMsQ0FBQztRQUVuQiwyQkFBMkI7UUFDM0Isb0JBQWUsR0FBVyxDQUFDLENBQUM7UUFDNUIsZ0JBQVcsR0FBVyxDQUFDLENBQUM7UUFDeEIsWUFBTyxHQUFZLEVBQUUsQ0FBQztRQUV0QixvQkFB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Y0FBYztrQkF2TDFCLFNBQVM7K0JBQ0UsV0FBVyxjQUNULElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsVUFBVSxDQUFDLFlBQ3BHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMklUO3dEQTBDRCxLQUFLO3NCQURKLEtBQUs7Z0JBa0xOLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgSW9uQnV0dG9uLFxuICBJb25CdXR0b25zLFxuICBJb25Db250ZW50LFxuICBJb25IZWFkZXIsXG4gIElvbkljb24sXG4gIElvbk1vZGFsLFxuICBJb25UaXRsZSxcbiAgSW9uVG9vbGJhcixcbn0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBJbWFnZU1ldGFkYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1pbWFnZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIElvbk1vZGFsLCBJb25IZWFkZXIsIElvblRvb2xiYXIsIElvblRpdGxlLCBJb25Db250ZW50LCBJb25CdXR0b24sIElvbkljb24sIElvbkJ1dHRvbnNdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxmaWd1cmVcbiAgICAgIGNsYXNzPVwidmFsLWltYWdlLWNvbnRhaW5lclwiXG4gICAgICBbY2xhc3NdPVwicHJvcHMuY29udGFpbmVyQ2xhc3NcIlxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAndmFsLWltYWdlLWNvbnRhaW5lci0tbGVmdCc6IHByb3BzLmFsaWdubWVudCA9PT0gJ2xlZnQnLFxuICAgICAgICAndmFsLWltYWdlLWNvbnRhaW5lci0tY2VudGVyJzogcHJvcHMuYWxpZ25tZW50ID09PSAnY2VudGVyJyB8fCAhcHJvcHMuYWxpZ25tZW50LFxuICAgICAgICAndmFsLWltYWdlLWNvbnRhaW5lci0tcmlnaHQnOiBwcm9wcy5hbGlnbm1lbnQgPT09ICdyaWdodCcsXG4gICAgICB9XCJcbiAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgZGlzcGxheTogcHJvcHMuZmxleCA/ICdmbGV4JyA6ICdpbmxpbmUtYmxvY2snLFxuICAgICAgfVwiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzcz1cInZhbC1pbWFnZS13cmFwcGVyXCI+XG4gICAgICAgIEBpZiAocHJvcHMuc3JjLmluY2x1ZGVzKCctLScpKSB7XG4gICAgICAgICAgPGltZ1xuICAgICAgICAgICAgY2xhc3M9XCJ2YWwtaW1hZ2VcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwiW1xuICAgICAgICAgICAgICBwcm9wcy5tb2RlLFxuICAgICAgICAgICAgICAhcHJvcHMud2lkdGggPyBwcm9wcy5zaXplIDogJycsXG4gICAgICAgICAgICAgIHByb3BzLnByZXZpZXdNb2RlID8gJ3ZhbC1pbWFnZS0tcHJldmlldy1lbmFibGVkJyA6ICcnLFxuICAgICAgICAgICAgXVwiXG4gICAgICAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6ICd2YXIoJyArIHByb3BzLnNyYyArICcpJyxcbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgW2NsYXNzLmJvcmRlcmVkXT1cInByb3BzLmJvcmRlcmVkXCJcbiAgICAgICAgICAgIFtjbGFzcy5zaGFkZWRdPVwicHJvcHMuc2hhZGVkXCJcbiAgICAgICAgICAgIFtjbGFzcy5kYXJrXT1cInByb3BzLmRhcmtcIlxuICAgICAgICAgICAgW2NsYXNzLmxpbWl0ZWRdPVwicHJvcHMubGltaXRlZFwiXG4gICAgICAgICAgICBbY2xhc3MuY2VudGVyXT1cInByb3BzLmFsaWdubWVudCA9PT0gJ2NlbnRlcidcIlxuICAgICAgICAgICAgW2FsdF09XCJwcm9wcy5hbHRcIlxuICAgICAgICAgICAgW3N0eWxlLndpZHRoLnJlbV09XCJwcm9wcy53aWR0aFwiXG4gICAgICAgICAgICBbc3R5bGUubWF4LXdpZHRoLnJlbV09XCJwcm9wcy53aWR0aFwiXG4gICAgICAgICAgICBbc3R5bGUuaGVpZ2h0LnB4XT1cInByb3BzLmhlaWdodFwiXG4gICAgICAgICAgICAoY2xpY2spPVwicHJvcHMucHJldmlld01vZGUgPyBvcGVuUHJldmlldygpIDogbnVsbFwiXG4gICAgICAgICAgLz5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPGltZ1xuICAgICAgICAgICAgY2xhc3M9XCJ2YWwtaW1hZ2VcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwiW1xuICAgICAgICAgICAgICBwcm9wcy5tb2RlLFxuICAgICAgICAgICAgICAhcHJvcHMud2lkdGggPyBwcm9wcy5zaXplIDogJycsXG4gICAgICAgICAgICAgIHByb3BzLnByZXZpZXdNb2RlID8gJ3ZhbC1pbWFnZS0tcHJldmlldy1lbmFibGVkJyA6ICcnLFxuICAgICAgICAgICAgXVwiXG4gICAgICAgICAgICBbY2xhc3MuYm9yZGVyZWRdPVwicHJvcHMuYm9yZGVyZWRcIlxuICAgICAgICAgICAgW2NsYXNzLnNoYWRlZF09XCJwcm9wcy5zaGFkZWRcIlxuICAgICAgICAgICAgW2NsYXNzLmRhcmtdPVwicHJvcHMuZGFya1wiXG4gICAgICAgICAgICBbY2xhc3MubGltaXRlZF09XCJwcm9wcy5saW1pdGVkXCJcbiAgICAgICAgICAgIFtjbGFzcy5jZW50ZXJdPVwicHJvcHMuYWxpZ25tZW50ID09PSAnY2VudGVyJ1wiXG4gICAgICAgICAgICBbc3JjXT1cInByb3BzLnNyY1wiXG4gICAgICAgICAgICBbYWx0XT1cInByb3BzLmFsdFwiXG4gICAgICAgICAgICBbc3R5bGUud2lkdGgucmVtXT1cInByb3BzLndpZHRoXCJcbiAgICAgICAgICAgIFtzdHlsZS5tYXgtd2lkdGgucmVtXT1cInByb3BzLndpZHRoXCJcbiAgICAgICAgICAgIFtzdHlsZS5oZWlnaHQucHhdPVwicHJvcHMuaGVpZ2h0XCJcbiAgICAgICAgICAgIChjbGljayk9XCJwcm9wcy5wcmV2aWV3TW9kZSA/IG9wZW5QcmV2aWV3KCkgOiBudWxsXCJcbiAgICAgICAgICAvPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cblxuICAgICAgQGlmIChwcm9wcy5jYXB0aW9uKSB7XG4gICAgICAgIDxmaWdjYXB0aW9uXG4gICAgICAgICAgY2xhc3M9XCJ2YWwtaW1hZ2UtY2FwdGlvblwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgJ3ZhbC1pbWFnZS1jYXB0aW9uLS1zbWFsbCc6IHByb3BzLmNhcHRpb25TaXplID09PSAnc21hbGwnLFxuICAgICAgICAgICAgJ3ZhbC1pbWFnZS1jYXB0aW9uLS1tZWRpdW0nOiBwcm9wcy5jYXB0aW9uU2l6ZSA9PT0gJ21lZGl1bScgfHwgIXByb3BzLmNhcHRpb25TaXplLFxuICAgICAgICAgICAgJ3ZhbC1pbWFnZS1jYXB0aW9uLS1sYXJnZSc6IHByb3BzLmNhcHRpb25TaXplID09PSAnbGFyZ2UnLFxuICAgICAgICAgIH1cIlxuICAgICAgICA+XG4gICAgICAgICAge3sgcHJvcHMuY2FwdGlvbiB9fVxuICAgICAgICA8L2ZpZ2NhcHRpb24+XG4gICAgICB9XG4gICAgPC9maWd1cmU+XG5cbiAgICA8IS0tIE1vZGFsIGRlIHByZXZpc3VhbGl6YWNpw7NuIGNvbiBpb24tbW9kYWwgLS0+XG4gICAgPGlvbi1tb2RhbCBbaXNPcGVuXT1cImlzUHJldmlld09wZW5cIiAoZGlkRGlzbWlzcyk9XCJjbG9zZVByZXZpZXcoKVwiPlxuICAgICAgPG5nLXRlbXBsYXRlPlxuICAgICAgICA8aW9uLWhlYWRlcj5cbiAgICAgICAgICA8aW9uLXRvb2xiYXI+XG4gICAgICAgICAgICA8IS0tIDxpb24tdGl0bGU+e3sgcHJvcHMuYWx0IHx8ICdQcmV2aXN1YWxpemFjacOzbiBkZSBpbWFnZW4nIH19PC9pb24tdGl0bGU+IC0tPlxuICAgICAgICAgICAgPGlvbi1idXR0b25zIHNsb3Q9XCJlbmRcIj5cbiAgICAgICAgICAgICAgPGlvbi1idXR0b24gKGNsaWNrKT1cImNsb3NlUHJldmlldygpXCIgZmlsbD1cImNsZWFyXCI+XG4gICAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJjbG9zZS1vdXRsaW5lXCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgICAgPC9pb24tYnV0dG9ucz5cbiAgICAgICAgICA8L2lvbi10b29sYmFyPlxuICAgICAgICA8L2lvbi1oZWFkZXI+XG5cbiAgICAgICAgPGlvbi1jb250ZW50PlxuICAgICAgICAgIDwhLS0gQ29udHJvbGVzIGRlIHpvb20gLS0+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInZhbC1pbWFnZS1wcmV2aWV3LWNvbnRyb2xzXCI+XG4gICAgICAgICAgICA8aW9uLWJ1dHRvblxuICAgICAgICAgICAgICAoY2xpY2spPVwiem9vbU91dCgpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiem9vbUxldmVsIDw9IG1pblpvb21cIlxuICAgICAgICAgICAgICBmaWxsPVwiY2xlYXJcIlxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cInJlbW92ZS1vdXRsaW5lXCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cblxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWwtaW1hZ2UtcHJldmlldy16b29tLWxldmVsXCI+e3sgTWF0aC5yb3VuZCh6b29tTGV2ZWwgKiAxMDApIH19JTwvc3Bhbj5cblxuICAgICAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICAgICAgKGNsaWNrKT1cInpvb21JbigpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiem9vbUxldmVsID49IG1heFpvb21cIlxuICAgICAgICAgICAgICBmaWxsPVwiY2xlYXJcIlxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImFkZC1vdXRsaW5lXCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDwhLS0gSW1hZ2VuIGFtcGxpYWRhIC0tPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwidmFsLWltYWdlLXByZXZpZXctdmlld3BvcnRcIlxuICAgICAgICAgICAgKHRvdWNoc3RhcnQpPVwib25Ub3VjaFN0YXJ0KCRldmVudClcIlxuICAgICAgICAgICAgKHRvdWNobW92ZSk9XCJvblRvdWNoTW92ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICh0b3VjaGVuZCk9XCJvblRvdWNoRW5kKCRldmVudClcIlxuICAgICAgICAgICAgKHdoZWVsKT1cIm9uV2hlZWwoJGV2ZW50KVwiXG4gICAgICAgICAgICAobW91c2Vkb3duKT1cIm9uTW91c2VEb3duKCRldmVudClcIlxuICAgICAgICAgICAgKG1vdXNlbW92ZSk9XCJvbk1vdXNlTW92ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIChtb3VzZXVwKT1cIm9uTW91c2VVcCgkZXZlbnQpXCJcbiAgICAgICAgICAgIChtb3VzZWxlYXZlKT1cIm9uTW91c2VVcCgkZXZlbnQpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICNwcmV2aWV3SW1hZ2VcbiAgICAgICAgICAgICAgY2xhc3M9XCJ2YWwtaW1hZ2UtcHJldmlldy1pbWdcIlxuICAgICAgICAgICAgICBbc3JjXT1cInByb3BzLnNyYy5pbmNsdWRlcygnLS0nKSA/IG51bGwgOiBwcm9wcy5zcmNcIlxuICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgICAgICAgY29udGVudDogcHJvcHMuc3JjLmluY2x1ZGVzKCctLScpID8gJ3ZhcignICsgcHJvcHMuc3JjICsgJyknIDogbnVsbCxcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06ICdzY2FsZSgnICsgem9vbUxldmVsICsgJykgdHJhbnNsYXRlKCcgKyBwYW5YICsgJ3B4LCAnICsgcGFuWSArICdweCknLFxuICAgICAgICAgICAgICAgIGN1cnNvcjogaXNEcmFnZ2luZyA/ICdncmFiYmluZycgOiB6b29tTGV2ZWwgPiAxID8gJ2dyYWInIDogJ2RlZmF1bHQnLFxuICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgW2FsdF09XCJwcm9wcy5hbHRcIlxuICAgICAgICAgICAgICBkcmFnZ2FibGU9XCJmYWxzZVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2lvbi1jb250ZW50PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2lvbi1tb2RhbD5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vaW1hZ2UuY29tcG9uZW50LnNjc3MnXSxcbn0pXG4vKipcbiAqIHZhbC1pbWFnZVxuICpcbiAqIERpc3BsYXlzIGFuIGltYWdlIHdpdGggdmFyaW91cyBkaXNwbGF5IG9wdGlvbnMgKGJvcmRlcmVkLCBzaGFkZWQsIGRhcmssIGV0YykuXG4gKiBOb3cgaW5jbHVkZXMgYSBjb250YWluZXIgd3JhcHBlciBmb3IgYmV0dGVyIGZsZXhib3ggc3VwcG9ydCBhbmQgYWxpZ25tZW50IG9wdGlvbnMuXG4gKlxuICogTkVXOiBPcHRpb25hbCBwcmV2aWV3IG1vZGUgd2l0aCBmdWxsLXNjcmVlbiB6b29tIGNhcGFiaWxpdGllczpcbiAqIC0gQ2xpY2sgdG8gb3BlbiBmdWxsLXNjcmVlbiBwcmV2aWV3ICh3aGVuIHByZXZpZXdNb2RlIGlzIGVuYWJsZWQpXG4gKiAtIFBpbmNoLXRvLXpvb20gb24gbW9iaWxlIGRldmljZXNcbiAqIC0gTW91c2Ugd2hlZWwgem9vbSBvbiBkZXNrdG9wXG4gKiAtIFBhbi9kcmFnIHRvIG5hdmlnYXRlIHpvb21lZCBpbWFnZXNcbiAqIC0gWm9vbSBjb250cm9scyB3aXRoIGJ1dHRvbnNcbiAqIC0gS2V5Ym9hcmQgc2hvcnRjdXRzIChFc2MgdG8gY2xvc2UsICsvLSB0byB6b29tLCAwIHRvIHJlc2V0KVxuICogLSBUb3VjaC1mcmllbmRseSBpbnRlcmZhY2Ugd2l0aCBnZXN0dXJlIHN1cHBvcnRcbiAqXG4gKiBAZXhhbXBsZSBCYXNpYyB1c2FnZTpcbiAqIDx2YWwtaW1hZ2UgW3Byb3BzXT1cIntcbiAqICAgc3JjOiAndXJsJyxcbiAqICAgYWx0OiAnZGVzYycsXG4gKiAgIHdpZHRoOiAxMDAsXG4gKiAgIGhlaWdodDogMTAwLFxuICogICBib3JkZXJlZDogdHJ1ZSxcbiAqICAgYWxpZ25tZW50OiAnY2VudGVyJyxcbiAqICAgY2FwdGlvbjogJ0ltYWdlIGRlc2NyaXB0aW9uJ1xuICogfVwiPjwvdmFsLWltYWdlPlxuICpcbiAqIEBleGFtcGxlIFdpdGggcHJldmlldyBtb2RlOlxuICogPHZhbC1pbWFnZSBbcHJvcHNdPVwie1xuICogICBzcmM6ICd1cmwnLFxuICogICBhbHQ6ICdkZXNjJyxcbiAqICAgcHJldmlld01vZGU6IHRydWUsXG4gKiAgIGJvcmRlcmVkOiB0cnVlLFxuICogICBhbGlnbm1lbnQ6ICdjZW50ZXInXG4gKiB9XCI+PC92YWwtaW1hZ2U+XG4gKlxuICogQGlucHV0IHByb3BzOiBJbWFnZU1ldGFkYXRhIC0gQ29uZmlndXJhdGlvbiBmb3IgdGhlIGltYWdlIChzcmMsIGFsdCwgc2l6ZSwgbW9kZSwgYWxpZ25tZW50LCBjYXB0aW9uLCBwcmV2aWV3TW9kZSwgZXRjLilcbiAqL1xuZXhwb3J0IGNsYXNzIEltYWdlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KClcbiAgcHJvcHMhOiBJbWFnZU1ldGFkYXRhO1xuXG4gIGF2YWlsYWJsZTogYm9vbGVhbiA9IHRydWU7XG5cbiAgLy8gUHJldmlldyBtb2RlIHByb3BlcnRpZXNcbiAgaXNQcmV2aWV3T3BlbjogYm9vbGVhbiA9IGZhbHNlO1xuICB6b29tTGV2ZWw6IG51bWJlciA9IDE7XG4gIG1pblpvb206IG51bWJlciA9IDAuNTtcbiAgbWF4Wm9vbTogbnVtYmVyID0gNTtcbiAgcGFuWDogbnVtYmVyID0gMDtcbiAgcGFuWTogbnVtYmVyID0gMDtcblxuICAvLyBUb3VjaCBhbmQgbW91c2UgaW50ZXJhY3Rpb24gcHJvcGVydGllc1xuICBpc0RyYWdnaW5nOiBib29sZWFuID0gZmFsc2U7XG4gIGxhc3RQYW5YOiBudW1iZXIgPSAwO1xuICBsYXN0UGFuWTogbnVtYmVyID0gMDtcbiAgc3RhcnRYOiBudW1iZXIgPSAwO1xuICBzdGFydFk6IG51bWJlciA9IDA7XG5cbiAgLy8gVG91Y2ggZ2VzdHVyZSBwcm9wZXJ0aWVzXG4gIGluaXRpYWxEaXN0YW5jZTogbnVtYmVyID0gMDtcbiAgaW5pdGlhbFpvb206IG51bWJlciA9IDE7XG4gIHRvdWNoZXM6IFRvdWNoW10gPSBbXTtcblxuICAvLyBNYXRoIGZvciB0ZW1wbGF0ZVxuICBNYXRoID0gTWF0aDtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgLy8gU2V0IGRlZmF1bHQgdmFsdWVzXG4gICAgaWYgKCF0aGlzLnByb3BzLmFsaWdubWVudCkge1xuICAgICAgdGhpcy5wcm9wcy5hbGlnbm1lbnQgPSAnY2VudGVyJztcbiAgICB9XG4gICAgaWYgKCF0aGlzLnByb3BzLmNhcHRpb25TaXplKSB7XG4gICAgICB0aGlzLnByb3BzLmNhcHRpb25TaXplID0gJ21lZGl1bSc7XG4gICAgfVxuICAgIGlmICghdGhpcy5wcm9wcy5tb2RlKSB7XG4gICAgICB0aGlzLnByb3BzLm1vZGUgPSAnYm94JztcbiAgICB9XG4gIH1cblxuICBjaGFuZ2VUb1Zpc2libGUoKSB7XG4gICAgc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgdGhpcy5hdmFpbGFibGUgPSB0cnVlO1xuICAgIH0sIDEwMCk7XG4gIH1cblxuICAvLyBQcmV2aWV3IG1vZGUgbWV0aG9kc1xuICBvcGVuUHJldmlldygpIHtcbiAgICBpZiAoIXRoaXMucHJvcHMucHJldmlld01vZGUpIHJldHVybjtcbiAgICB0aGlzLmlzUHJldmlld09wZW4gPSB0cnVlO1xuICAgIHRoaXMucmVzZXRab29tKCk7XG4gIH1cblxuICBjbG9zZVByZXZpZXcoKSB7XG4gICAgdGhpcy5pc1ByZXZpZXdPcGVuID0gZmFsc2U7XG4gIH1cblxuICAvLyBab29tIG1ldGhvZHNcbiAgem9vbUluKCkge1xuICAgIGlmICh0aGlzLnpvb21MZXZlbCA8IHRoaXMubWF4Wm9vbSkge1xuICAgICAgdGhpcy56b29tTGV2ZWwgPSBNYXRoLm1pbih0aGlzLnpvb21MZXZlbCAqIDEuMiwgdGhpcy5tYXhab29tKTtcbiAgICB9XG4gIH1cblxuICB6b29tT3V0KCkge1xuICAgIGlmICh0aGlzLnpvb21MZXZlbCA+IHRoaXMubWluWm9vbSkge1xuICAgICAgdGhpcy56b29tTGV2ZWwgPSBNYXRoLm1heCh0aGlzLnpvb21MZXZlbCAvIDEuMiwgdGhpcy5taW5ab29tKTtcbiAgICAgIC8vIFJlc2V0IHBhbiBpZiB6b29tZWQgb3V0IHRvIDF4IG9yIGxlc3NcbiAgICAgIGlmICh0aGlzLnpvb21MZXZlbCA8PSAxKSB7XG4gICAgICAgIHRoaXMucGFuWCA9IDA7XG4gICAgICAgIHRoaXMucGFuWSA9IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmVzZXRab29tKCkge1xuICAgIHRoaXMuem9vbUxldmVsID0gMTtcbiAgICB0aGlzLnBhblggPSAwO1xuICAgIHRoaXMucGFuWSA9IDA7XG4gIH1cblxuICAvLyBNb3VzZSBldmVudHNcbiAgb25Nb3VzZURvd24oZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAodGhpcy56b29tTGV2ZWwgPD0gMSkgcmV0dXJuO1xuXG4gICAgdGhpcy5pc0RyYWdnaW5nID0gdHJ1ZTtcbiAgICB0aGlzLnN0YXJ0WCA9IGV2ZW50LmNsaWVudFggLSB0aGlzLnBhblg7XG4gICAgdGhpcy5zdGFydFkgPSBldmVudC5jbGllbnRZIC0gdGhpcy5wYW5ZO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cblxuICBvbk1vdXNlTW92ZShldmVudDogTW91c2VFdmVudCkge1xuICAgIGlmICghdGhpcy5pc0RyYWdnaW5nIHx8IHRoaXMuem9vbUxldmVsIDw9IDEpIHJldHVybjtcblxuICAgIHRoaXMucGFuWCA9IGV2ZW50LmNsaWVudFggLSB0aGlzLnN0YXJ0WDtcbiAgICB0aGlzLnBhblkgPSBldmVudC5jbGllbnRZIC0gdGhpcy5zdGFydFk7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxuXG4gIG9uTW91c2VVcChldmVudDogTW91c2VFdmVudCkge1xuICAgIHRoaXMuaXNEcmFnZ2luZyA9IGZhbHNlO1xuICB9XG5cbiAgLy8gVG91Y2ggZXZlbnRzIGZvciBtb2JpbGVcbiAgb25Ub3VjaFN0YXJ0KGV2ZW50OiBUb3VjaEV2ZW50KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLnRvdWNoZXMgPSBBcnJheS5mcm9tKGV2ZW50LnRvdWNoZXMpO1xuXG4gICAgaWYgKHRoaXMudG91Y2hlcy5sZW5ndGggPT09IDEpIHtcbiAgICAgIC8vIFNpbmdsZSB0b3VjaCAtIHN0YXJ0IGRyYWdnaW5nXG4gICAgICBpZiAodGhpcy56b29tTGV2ZWwgPiAxKSB7XG4gICAgICAgIHRoaXMuaXNEcmFnZ2luZyA9IHRydWU7XG4gICAgICAgIHRoaXMuc3RhcnRYID0gdGhpcy50b3VjaGVzWzBdLmNsaWVudFggLSB0aGlzLnBhblg7XG4gICAgICAgIHRoaXMuc3RhcnRZID0gdGhpcy50b3VjaGVzWzBdLmNsaWVudFkgLSB0aGlzLnBhblk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLnRvdWNoZXMubGVuZ3RoID09PSAyKSB7XG4gICAgICAvLyBUd28gdG91Y2hlcyAtIHN0YXJ0IHBpbmNoIHpvb21cbiAgICAgIHRoaXMuaXNEcmFnZ2luZyA9IGZhbHNlO1xuICAgICAgdGhpcy5pbml0aWFsRGlzdGFuY2UgPSB0aGlzLmdldERpc3RhbmNlKHRoaXMudG91Y2hlc1swXSwgdGhpcy50b3VjaGVzWzFdKTtcbiAgICAgIHRoaXMuaW5pdGlhbFpvb20gPSB0aGlzLnpvb21MZXZlbDtcbiAgICB9XG4gIH1cblxuICBvblRvdWNoTW92ZShldmVudDogVG91Y2hFdmVudCkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy50b3VjaGVzID0gQXJyYXkuZnJvbShldmVudC50b3VjaGVzKTtcblxuICAgIGlmICh0aGlzLnRvdWNoZXMubGVuZ3RoID09PSAxICYmIHRoaXMuaXNEcmFnZ2luZyAmJiB0aGlzLnpvb21MZXZlbCA+IDEpIHtcbiAgICAgIC8vIFNpbmdsZSB0b3VjaCAtIGRyYWdcbiAgICAgIHRoaXMucGFuWCA9IHRoaXMudG91Y2hlc1swXS5jbGllbnRYIC0gdGhpcy5zdGFydFg7XG4gICAgICB0aGlzLnBhblkgPSB0aGlzLnRvdWNoZXNbMF0uY2xpZW50WSAtIHRoaXMuc3RhcnRZO1xuICAgIH0gZWxzZSBpZiAodGhpcy50b3VjaGVzLmxlbmd0aCA9PT0gMikge1xuICAgICAgLy8gVHdvIHRvdWNoZXMgLSBwaW5jaCB6b29tXG4gICAgICBjb25zdCBjdXJyZW50RGlzdGFuY2UgPSB0aGlzLmdldERpc3RhbmNlKHRoaXMudG91Y2hlc1swXSwgdGhpcy50b3VjaGVzWzFdKTtcbiAgICAgIGNvbnN0IHNjYWxlID0gY3VycmVudERpc3RhbmNlIC8gdGhpcy5pbml0aWFsRGlzdGFuY2U7XG4gICAgICB0aGlzLnpvb21MZXZlbCA9IE1hdGgubWluKE1hdGgubWF4KHRoaXMuaW5pdGlhbFpvb20gKiBzY2FsZSwgdGhpcy5taW5ab29tKSwgdGhpcy5tYXhab29tKTtcblxuICAgICAgLy8gUmVzZXQgcGFuIGlmIHpvb21lZCBvdXQgdG8gMXggb3IgbGVzc1xuICAgICAgaWYgKHRoaXMuem9vbUxldmVsIDw9IDEpIHtcbiAgICAgICAgdGhpcy5wYW5YID0gMDtcbiAgICAgICAgdGhpcy5wYW5ZID0gMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvblRvdWNoRW5kKGV2ZW50OiBUb3VjaEV2ZW50KSB7XG4gICAgdGhpcy5pc0RyYWdnaW5nID0gZmFsc2U7XG4gICAgdGhpcy50b3VjaGVzID0gQXJyYXkuZnJvbShldmVudC50b3VjaGVzKTtcbiAgfVxuXG4gIC8vIE1vdXNlIHdoZWVsIHpvb21cbiAgb25XaGVlbChldmVudDogV2hlZWxFdmVudCkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICBjb25zdCBkZWx0YSA9IGV2ZW50LmRlbHRhWSA+IDAgPyAtMSA6IDE7XG4gICAgY29uc3Qgem9vbUZhY3RvciA9IDEgKyBkZWx0YSAqIDAuMTtcblxuICAgIHRoaXMuem9vbUxldmVsID0gTWF0aC5taW4oTWF0aC5tYXgodGhpcy56b29tTGV2ZWwgKiB6b29tRmFjdG9yLCB0aGlzLm1pblpvb20pLCB0aGlzLm1heFpvb20pO1xuXG4gICAgLy8gUmVzZXQgcGFuIGlmIHpvb21lZCBvdXQgdG8gMXggb3IgbGVzc1xuICAgIGlmICh0aGlzLnpvb21MZXZlbCA8PSAxKSB7XG4gICAgICB0aGlzLnBhblggPSAwO1xuICAgICAgdGhpcy5wYW5ZID0gMDtcbiAgICB9XG4gIH1cblxuICAvLyBIZWxwZXIgbWV0aG9kc1xuICBwcml2YXRlIGdldERpc3RhbmNlKHRvdWNoMTogVG91Y2gsIHRvdWNoMjogVG91Y2gpOiBudW1iZXIge1xuICAgIGNvbnN0IGR4ID0gdG91Y2gxLmNsaWVudFggLSB0b3VjaDIuY2xpZW50WDtcbiAgICBjb25zdCBkeSA9IHRvdWNoMS5jbGllbnRZIC0gdG91Y2gyLmNsaWVudFk7XG4gICAgcmV0dXJuIE1hdGguc3FydChkeCAqIGR4ICsgZHkgKiBkeSk7XG4gIH1cblxuICAvLyBLZXlib2FyZCBzaG9ydGN1dHNcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmICghdGhpcy5pc1ByZXZpZXdPcGVuKSByZXR1cm47XG5cbiAgICBzd2l0Y2ggKGV2ZW50LmtleSkge1xuICAgICAgY2FzZSAnRXNjYXBlJzpcbiAgICAgICAgdGhpcy5jbG9zZVByZXZpZXcoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICcrJzpcbiAgICAgIGNhc2UgJz0nOlxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLnpvb21JbigpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJy0nOlxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLnpvb21PdXQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICcwJzpcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5yZXNldFpvb20oKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG59XG4iXX0=
540
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2F0b21zL2ltYWdlL2ltYWdlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFVBQVUsRUFDVixTQUFTLEVBQ1QsT0FBTyxFQUNQLFFBQVEsRUFDUixRQUFRLEVBQ1IsVUFBVSxHQUNYLE1BQU0sMkJBQTJCLENBQUM7OztBQStKbkM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9DRztBQUNILE1BQU0sT0FBTyxjQUFjO0lBNkJ6QjtRQXpCQSxjQUFTLEdBQVksSUFBSSxDQUFDO1FBRTFCLDBCQUEwQjtRQUMxQixrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUMvQixjQUFTLEdBQVcsQ0FBQyxDQUFDO1FBQ3RCLFlBQU8sR0FBVyxHQUFHLENBQUM7UUFDdEIsWUFBTyxHQUFXLENBQUMsQ0FBQztRQUNwQixTQUFJLEdBQVcsQ0FBQyxDQUFDO1FBQ2pCLFNBQUksR0FBVyxDQUFDLENBQUM7UUFFakIseUNBQXlDO1FBQ3pDLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFDNUIsYUFBUSxHQUFXLENBQUMsQ0FBQztRQUNyQixhQUFRLEdBQVcsQ0FBQyxDQUFDO1FBQ3JCLFdBQU0sR0FBVyxDQUFDLENBQUM7UUFDbkIsV0FBTSxHQUFXLENBQUMsQ0FBQztRQUVuQiwyQkFBMkI7UUFDM0Isb0JBQWUsR0FBVyxDQUFDLENBQUM7UUFDNUIsZ0JBQVcsR0FBVyxDQUFDLENBQUM7UUFDeEIsWUFBTyxHQUFZLEVBQUUsQ0FBQztRQUV0QixvQkFB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Y0FBYzttR0FBZCxjQUFjLG1LQTdMZjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxSlQsNi9MQXRKUyxZQUFZLGtOQUFFLFFBQVEsc0RBQUUsU0FBUyxvR0FBRSxVQUFVLG1GQUFZLFVBQVUsd0tBQUUsU0FBUyxvUEFBRSxPQUFPLDJKQUFFLFVBQVU7OzRGQThMbEcsY0FBYztrQkFqTTFCLFNBQVM7K0JBQ0UsV0FBVyxjQUNULElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsVUFBVSxDQUFDLFlBQ3BHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFKVDt3REEwQ0QsS0FBSztzQkFESixLQUFLO2dCQStMTixTQUFTO3NCQURSLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIElvbkJ1dHRvbixcbiAgSW9uQnV0dG9ucyxcbiAgSW9uQ29udGVudCxcbiAgSW9uSGVhZGVyLFxuICBJb25JY29uLFxuICBJb25Nb2RhbCxcbiAgSW9uVGl0bGUsXG4gIElvblRvb2xiYXIsXG59IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgSW1hZ2VNZXRhZGF0YSB9IGZyb20gJy4vdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtaW1hZ2UnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJb25Nb2RhbCwgSW9uSGVhZGVyLCBJb25Ub29sYmFyLCBJb25UaXRsZSwgSW9uQ29udGVudCwgSW9uQnV0dG9uLCBJb25JY29uLCBJb25CdXR0b25zXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZmlndXJlXG4gICAgICBjbGFzcz1cInZhbC1pbWFnZS1jb250YWluZXJcIlxuICAgICAgW2NsYXNzXT1cInByb3BzLmNvbnRhaW5lckNsYXNzXCJcbiAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgJ3ZhbC1pbWFnZS1jb250YWluZXItLWxlZnQnOiBwcm9wcy5hbGlnbm1lbnQgPT09ICdsZWZ0JyxcbiAgICAgICAgJ3ZhbC1pbWFnZS1jb250YWluZXItLWNlbnRlcic6IHByb3BzLmFsaWdubWVudCA9PT0gJ2NlbnRlcicgfHwgIXByb3BzLmFsaWdubWVudCxcbiAgICAgICAgJ3ZhbC1pbWFnZS1jb250YWluZXItLXJpZ2h0JzogcHJvcHMuYWxpZ25tZW50ID09PSAncmlnaHQnLFxuICAgICAgfVwiXG4gICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgIGRpc3BsYXk6IHByb3BzLmZsZXggPyAnZmxleCcgOiAnaW5saW5lLWJsb2NrJyxcbiAgICAgIH1cIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJ2YWwtaW1hZ2Utd3JhcHBlclwiPlxuICAgICAgICBAaWYgKHByb3BzLnNyYy5pbmNsdWRlcygnLS0nKSkge1xuICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgIGNsYXNzPVwidmFsLWltYWdlXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIltcbiAgICAgICAgICAgICAgcHJvcHMubW9kZSxcbiAgICAgICAgICAgICAgIXByb3BzLndpZHRoID8gcHJvcHMuc2l6ZSA6ICcnLFxuICAgICAgICAgICAgICBwcm9wcy5wcmV2aWV3TW9kZSA/ICd2YWwtaW1hZ2UtLXByZXZpZXctZW5hYmxlZCcgOiAnJyxcbiAgICAgICAgICAgIF1cIlxuICAgICAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgICAgICBjb250ZW50OiAndmFyKCcgKyBwcm9wcy5zcmMgKyAnKScsXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICAgIFtjbGFzcy5ib3JkZXJlZF09XCJwcm9wcy5ib3JkZXJlZFwiXG4gICAgICAgICAgICBbY2xhc3Muc2hhZGVkXT1cInByb3BzLnNoYWRlZFwiXG4gICAgICAgICAgICBbY2xhc3MuZGFya109XCJwcm9wcy5kYXJrXCJcbiAgICAgICAgICAgIFtjbGFzcy5saW1pdGVkXT1cInByb3BzLmxpbWl0ZWRcIlxuICAgICAgICAgICAgW2NsYXNzLmNlbnRlcl09XCJwcm9wcy5hbGlnbm1lbnQgPT09ICdjZW50ZXInXCJcbiAgICAgICAgICAgIFthbHRdPVwicHJvcHMuYWx0XCJcbiAgICAgICAgICAgIFtzdHlsZS53aWR0aC5yZW1dPVwicHJvcHMud2lkdGhcIlxuICAgICAgICAgICAgW3N0eWxlLm1heC13aWR0aC5yZW1dPVwicHJvcHMud2lkdGhcIlxuICAgICAgICAgICAgW3N0eWxlLmhlaWdodC5weF09XCJwcm9wcy5oZWlnaHRcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInByb3BzLnByZXZpZXdNb2RlID8gb3BlblByZXZpZXcoKSA6IG51bGxcIlxuICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwicHJvcHMucHJldmlld01vZGUgPyBvcGVuUHJldmlldygpIDogbnVsbFwiXG4gICAgICAgICAgICAoa2V5ZG93bi5zcGFjZSk9XCJvblByZXZpZXdLZXlkb3duKCRldmVudClcIlxuICAgICAgICAgICAgW2F0dHIucm9sZV09XCJwcm9wcy5wcmV2aWV3TW9kZSA/ICdidXR0b24nIDogbnVsbFwiXG4gICAgICAgICAgICBbYXR0ci50YWJpbmRleF09XCJwcm9wcy5wcmV2aWV3TW9kZSA/IDAgOiBudWxsXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtaGFzcG9wdXBdPVwicHJvcHMucHJldmlld01vZGUgPyAnZGlhbG9nJyA6IG51bGxcIlxuICAgICAgICAgIC8+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgIGNsYXNzPVwidmFsLWltYWdlXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIltcbiAgICAgICAgICAgICAgcHJvcHMubW9kZSxcbiAgICAgICAgICAgICAgIXByb3BzLndpZHRoID8gcHJvcHMuc2l6ZSA6ICcnLFxuICAgICAgICAgICAgICBwcm9wcy5wcmV2aWV3TW9kZSA/ICd2YWwtaW1hZ2UtLXByZXZpZXctZW5hYmxlZCcgOiAnJyxcbiAgICAgICAgICAgIF1cIlxuICAgICAgICAgICAgW2NsYXNzLmJvcmRlcmVkXT1cInByb3BzLmJvcmRlcmVkXCJcbiAgICAgICAgICAgIFtjbGFzcy5zaGFkZWRdPVwicHJvcHMuc2hhZGVkXCJcbiAgICAgICAgICAgIFtjbGFzcy5kYXJrXT1cInByb3BzLmRhcmtcIlxuICAgICAgICAgICAgW2NsYXNzLmxpbWl0ZWRdPVwicHJvcHMubGltaXRlZFwiXG4gICAgICAgICAgICBbY2xhc3MuY2VudGVyXT1cInByb3BzLmFsaWdubWVudCA9PT0gJ2NlbnRlcidcIlxuICAgICAgICAgICAgW3NyY109XCJwcm9wcy5zcmNcIlxuICAgICAgICAgICAgW2FsdF09XCJwcm9wcy5hbHRcIlxuICAgICAgICAgICAgW3N0eWxlLndpZHRoLnJlbV09XCJwcm9wcy53aWR0aFwiXG4gICAgICAgICAgICBbc3R5bGUubWF4LXdpZHRoLnJlbV09XCJwcm9wcy53aWR0aFwiXG4gICAgICAgICAgICBbc3R5bGUuaGVpZ2h0LnB4XT1cInByb3BzLmhlaWdodFwiXG4gICAgICAgICAgICAoY2xpY2spPVwicHJvcHMucHJldmlld01vZGUgPyBvcGVuUHJldmlldygpIDogbnVsbFwiXG4gICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJwcm9wcy5wcmV2aWV3TW9kZSA/IG9wZW5QcmV2aWV3KCkgOiBudWxsXCJcbiAgICAgICAgICAgIChrZXlkb3duLnNwYWNlKT1cIm9uUHJldmlld0tleWRvd24oJGV2ZW50KVwiXG4gICAgICAgICAgICBbYXR0ci5yb2xlXT1cInByb3BzLnByZXZpZXdNb2RlID8gJ2J1dHRvbicgOiBudWxsXCJcbiAgICAgICAgICAgIFthdHRyLnRhYmluZGV4XT1cInByb3BzLnByZXZpZXdNb2RlID8gMCA6IG51bGxcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1oYXNwb3B1cF09XCJwcm9wcy5wcmV2aWV3TW9kZSA/ICdkaWFsb2cnIDogbnVsbFwiXG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG5cbiAgICAgIEBpZiAocHJvcHMuY2FwdGlvbikge1xuICAgICAgICA8ZmlnY2FwdGlvblxuICAgICAgICAgIGNsYXNzPVwidmFsLWltYWdlLWNhcHRpb25cIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICd2YWwtaW1hZ2UtY2FwdGlvbi0tc21hbGwnOiBwcm9wcy5jYXB0aW9uU2l6ZSA9PT0gJ3NtYWxsJyxcbiAgICAgICAgICAgICd2YWwtaW1hZ2UtY2FwdGlvbi0tbWVkaXVtJzogcHJvcHMuY2FwdGlvblNpemUgPT09ICdtZWRpdW0nIHx8ICFwcm9wcy5jYXB0aW9uU2l6ZSxcbiAgICAgICAgICAgICd2YWwtaW1hZ2UtY2FwdGlvbi0tbGFyZ2UnOiBwcm9wcy5jYXB0aW9uU2l6ZSA9PT0gJ2xhcmdlJyxcbiAgICAgICAgICB9XCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IHByb3BzLmNhcHRpb24gfX1cbiAgICAgICAgPC9maWdjYXB0aW9uPlxuICAgICAgfVxuICAgIDwvZmlndXJlPlxuXG4gICAgPCEtLSBNb2RhbCBkZSBwcmV2aXN1YWxpemFjacOzbiBjb24gaW9uLW1vZGFsIC0tPlxuICAgIDxpb24tbW9kYWwgW2lzT3Blbl09XCJpc1ByZXZpZXdPcGVuXCIgKGRpZERpc21pc3MpPVwiY2xvc2VQcmV2aWV3KClcIj5cbiAgICAgIDxuZy10ZW1wbGF0ZT5cbiAgICAgICAgPGlvbi1oZWFkZXI+XG4gICAgICAgICAgPGlvbi10b29sYmFyPlxuICAgICAgICAgICAgPCEtLSA8aW9uLXRpdGxlPnt7IHByb3BzLmFsdCB8fCAnUHJldmlzdWFsaXphY2nDs24gZGUgaW1hZ2VuJyB9fTwvaW9uLXRpdGxlPiAtLT5cbiAgICAgICAgICAgIDxpb24tYnV0dG9ucyBzbG90PVwiZW5kXCI+XG4gICAgICAgICAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJjbG9zZVByZXZpZXcoKVwiIGZpbGw9XCJjbGVhclwiPlxuICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2xvc2Utb3V0bGluZVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbnM+XG4gICAgICAgICAgPC9pb24tdG9vbGJhcj5cbiAgICAgICAgPC9pb24taGVhZGVyPlxuXG4gICAgICAgIDxpb24tY29udGVudD5cbiAgICAgICAgICA8IS0tIENvbnRyb2xlcyBkZSB6b29tIC0tPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2YWwtaW1hZ2UtcHJldmlldy1jb250cm9sc1wiPlxuICAgICAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICAgICAgKGNsaWNrKT1cInpvb21PdXQoKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInpvb21MZXZlbCA8PSBtaW5ab29tXCJcbiAgICAgICAgICAgICAgZmlsbD1cImNsZWFyXCJcbiAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJyZW1vdmUtb3V0bGluZVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICA8L2lvbi1idXR0b24+XG5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsLWltYWdlLXByZXZpZXctem9vbS1sZXZlbFwiPnt7IE1hdGgucm91bmQoem9vbUxldmVsICogMTAwKSB9fSU8L3NwYW4+XG5cbiAgICAgICAgICAgIDxpb24tYnV0dG9uXG4gICAgICAgICAgICAgIChjbGljayk9XCJ6b29tSW4oKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInpvb21MZXZlbCA+PSBtYXhab29tXCJcbiAgICAgICAgICAgICAgZmlsbD1cImNsZWFyXCJcbiAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJhZGQtb3V0bGluZVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8IS0tIEltYWdlbiBhbXBsaWFkYSAtLT5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInZhbC1pbWFnZS1wcmV2aWV3LXZpZXdwb3J0XCJcbiAgICAgICAgICAgICh0b3VjaHN0YXJ0KT1cIm9uVG91Y2hTdGFydCgkZXZlbnQpXCJcbiAgICAgICAgICAgICh0b3VjaG1vdmUpPVwib25Ub3VjaE1vdmUoJGV2ZW50KVwiXG4gICAgICAgICAgICAodG91Y2hlbmQpPVwib25Ub3VjaEVuZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICh3aGVlbCk9XCJvbldoZWVsKCRldmVudClcIlxuICAgICAgICAgICAgKG1vdXNlZG93bik9XCJvbk1vdXNlRG93bigkZXZlbnQpXCJcbiAgICAgICAgICAgIChtb3VzZW1vdmUpPVwib25Nb3VzZU1vdmUoJGV2ZW50KVwiXG4gICAgICAgICAgICAobW91c2V1cCk9XCJvbk1vdXNlVXAoJGV2ZW50KVwiXG4gICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJvbk1vdXNlVXAoJGV2ZW50KVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAjcHJldmlld0ltYWdlXG4gICAgICAgICAgICAgIGNsYXNzPVwidmFsLWltYWdlLXByZXZpZXctaW1nXCJcbiAgICAgICAgICAgICAgW3NyY109XCJwcm9wcy5zcmMuaW5jbHVkZXMoJy0tJykgPyBudWxsIDogcHJvcHMuc3JjXCJcbiAgICAgICAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHByb3BzLnNyYy5pbmNsdWRlcygnLS0nKSA/ICd2YXIoJyArIHByb3BzLnNyYyArICcpJyA6IG51bGwsXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiAnc2NhbGUoJyArIHpvb21MZXZlbCArICcpIHRyYW5zbGF0ZSgnICsgcGFuWCArICdweCwgJyArIHBhblkgKyAncHgpJyxcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGlzRHJhZ2dpbmcgPyAnZ3JhYmJpbmcnIDogem9vbUxldmVsID4gMSA/ICdncmFiJyA6ICdkZWZhdWx0JyxcbiAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgIFthbHRdPVwicHJvcHMuYWx0XCJcbiAgICAgICAgICAgICAgZHJhZ2dhYmxlPVwiZmFsc2VcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9pb24tY29udGVudD5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9pb24tbW9kYWw+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL2ltYWdlLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuLyoqXG4gKiB2YWwtaW1hZ2VcbiAqXG4gKiBEaXNwbGF5cyBhbiBpbWFnZSB3aXRoIHZhcmlvdXMgZGlzcGxheSBvcHRpb25zIChib3JkZXJlZCwgc2hhZGVkLCBkYXJrLCBldGMpLlxuICogTm93IGluY2x1ZGVzIGEgY29udGFpbmVyIHdyYXBwZXIgZm9yIGJldHRlciBmbGV4Ym94IHN1cHBvcnQgYW5kIGFsaWdubWVudCBvcHRpb25zLlxuICpcbiAqIE5FVzogT3B0aW9uYWwgcHJldmlldyBtb2RlIHdpdGggZnVsbC1zY3JlZW4gem9vbSBjYXBhYmlsaXRpZXM6XG4gKiAtIENsaWNrIHRvIG9wZW4gZnVsbC1zY3JlZW4gcHJldmlldyAod2hlbiBwcmV2aWV3TW9kZSBpcyBlbmFibGVkKVxuICogLSBQaW5jaC10by16b29tIG9uIG1vYmlsZSBkZXZpY2VzXG4gKiAtIE1vdXNlIHdoZWVsIHpvb20gb24gZGVza3RvcFxuICogLSBQYW4vZHJhZyB0byBuYXZpZ2F0ZSB6b29tZWQgaW1hZ2VzXG4gKiAtIFpvb20gY29udHJvbHMgd2l0aCBidXR0b25zXG4gKiAtIEtleWJvYXJkIHNob3J0Y3V0cyAoRXNjIHRvIGNsb3NlLCArLy0gdG8gem9vbSwgMCB0byByZXNldClcbiAqIC0gVG91Y2gtZnJpZW5kbHkgaW50ZXJmYWNlIHdpdGggZ2VzdHVyZSBzdXBwb3J0XG4gKlxuICogQGV4YW1wbGUgQmFzaWMgdXNhZ2U6XG4gKiA8dmFsLWltYWdlIFtwcm9wc109XCJ7XG4gKiAgIHNyYzogJ3VybCcsXG4gKiAgIGFsdDogJ2Rlc2MnLFxuICogICB3aWR0aDogMTAwLFxuICogICBoZWlnaHQ6IDEwMCxcbiAqICAgYm9yZGVyZWQ6IHRydWUsXG4gKiAgIGFsaWdubWVudDogJ2NlbnRlcicsXG4gKiAgIGNhcHRpb246ICdJbWFnZSBkZXNjcmlwdGlvbidcbiAqIH1cIj48L3ZhbC1pbWFnZT5cbiAqXG4gKiBAZXhhbXBsZSBXaXRoIHByZXZpZXcgbW9kZTpcbiAqIDx2YWwtaW1hZ2UgW3Byb3BzXT1cIntcbiAqICAgc3JjOiAndXJsJyxcbiAqICAgYWx0OiAnZGVzYycsXG4gKiAgIHByZXZpZXdNb2RlOiB0cnVlLFxuICogICBib3JkZXJlZDogdHJ1ZSxcbiAqICAgYWxpZ25tZW50OiAnY2VudGVyJ1xuICogfVwiPjwvdmFsLWltYWdlPlxuICpcbiAqIEBpbnB1dCBwcm9wczogSW1hZ2VNZXRhZGF0YSAtIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBpbWFnZSAoc3JjLCBhbHQsIHNpemUsIG1vZGUsIGFsaWdubWVudCwgY2FwdGlvbiwgcHJldmlld01vZGUsIGV0Yy4pXG4gKi9cbmV4cG9ydCBjbGFzcyBJbWFnZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpXG4gIHByb3BzITogSW1hZ2VNZXRhZGF0YTtcblxuICBhdmFpbGFibGU6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIC8vIFByZXZpZXcgbW9kZSBwcm9wZXJ0aWVzXG4gIGlzUHJldmlld09wZW46IGJvb2xlYW4gPSBmYWxzZTtcbiAgem9vbUxldmVsOiBudW1iZXIgPSAxO1xuICBtaW5ab29tOiBudW1iZXIgPSAwLjU7XG4gIG1heFpvb206IG51bWJlciA9IDU7XG4gIHBhblg6IG51bWJlciA9IDA7XG4gIHBhblk6IG51bWJlciA9IDA7XG5cbiAgLy8gVG91Y2ggYW5kIG1vdXNlIGludGVyYWN0aW9uIHByb3BlcnRpZXNcbiAgaXNEcmFnZ2luZzogYm9vbGVhbiA9IGZhbHNlO1xuICBsYXN0UGFuWDogbnVtYmVyID0gMDtcbiAgbGFzdFBhblk6IG51bWJlciA9IDA7XG4gIHN0YXJ0WDogbnVtYmVyID0gMDtcbiAgc3RhcnRZOiBudW1iZXIgPSAwO1xuXG4gIC8vIFRvdWNoIGdlc3R1cmUgcHJvcGVydGllc1xuICBpbml0aWFsRGlzdGFuY2U6IG51bWJlciA9IDA7XG4gIGluaXRpYWxab29tOiBudW1iZXIgPSAxO1xuICB0b3VjaGVzOiBUb3VjaFtdID0gW107XG5cbiAgLy8gTWF0aCBmb3IgdGVtcGxhdGVcbiAgTWF0aCA9IE1hdGg7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIC8vIFNldCBkZWZhdWx0IHZhbHVlc1xuICAgIGlmICghdGhpcy5wcm9wcy5hbGlnbm1lbnQpIHtcbiAgICAgIHRoaXMucHJvcHMuYWxpZ25tZW50ID0gJ2NlbnRlcic7XG4gICAgfVxuICAgIGlmICghdGhpcy5wcm9wcy5jYXB0aW9uU2l6ZSkge1xuICAgICAgdGhpcy5wcm9wcy5jYXB0aW9uU2l6ZSA9ICdtZWRpdW0nO1xuICAgIH1cbiAgICBpZiAoIXRoaXMucHJvcHMubW9kZSkge1xuICAgICAgdGhpcy5wcm9wcy5tb2RlID0gJ2JveCc7XG4gICAgfVxuICB9XG5cbiAgY2hhbmdlVG9WaXNpYmxlKCkge1xuICAgIHNldEludGVydmFsKCgpID0+IHtcbiAgICAgIHRoaXMuYXZhaWxhYmxlID0gdHJ1ZTtcbiAgICB9LCAxMDApO1xuICB9XG5cbiAgLy8gUHJldmlldyBtb2RlIG1ldGhvZHNcbiAgb3BlblByZXZpZXcoKSB7XG4gICAgaWYgKCF0aGlzLnByb3BzLnByZXZpZXdNb2RlKSByZXR1cm47XG4gICAgdGhpcy5pc1ByZXZpZXdPcGVuID0gdHJ1ZTtcbiAgICB0aGlzLnJlc2V0Wm9vbSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEtleWJvYXJkIGFjdGl2YXRpb24gb2YgdGhlIHByZXZpZXcgdHJpZ2dlci4gU3BhY2UgbXVzdCBwcmV2ZW50RGVmYXVsdCB0b1xuICAgKiBhdm9pZCBzY3JvbGxpbmcgdGhlIHBhZ2Ugd2hlbiB0aGUgZm9jdXNlZCBpbWFnZSBpcyBhY3RpdmF0ZWQuXG4gICAqL1xuICBvblByZXZpZXdLZXlkb3duKGV2ZW50OiBFdmVudCkge1xuICAgIGlmICghdGhpcy5wcm9wcy5wcmV2aWV3TW9kZSkgcmV0dXJuO1xuICAgIGNvbnN0IGtleSA9IChldmVudCBhcyBLZXlib2FyZEV2ZW50KS5rZXk7XG4gICAgaWYgKGtleSA9PT0gJyAnIHx8IGtleSA9PT0gJ1NwYWNlYmFyJykge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gICAgdGhpcy5vcGVuUHJldmlldygpO1xuICB9XG5cbiAgY2xvc2VQcmV2aWV3KCkge1xuICAgIHRoaXMuaXNQcmV2aWV3T3BlbiA9IGZhbHNlO1xuICB9XG5cbiAgLy8gWm9vbSBtZXRob2RzXG4gIHpvb21JbigpIHtcbiAgICBpZiAodGhpcy56b29tTGV2ZWwgPCB0aGlzLm1heFpvb20pIHtcbiAgICAgIHRoaXMuem9vbUxldmVsID0gTWF0aC5taW4odGhpcy56b29tTGV2ZWwgKiAxLjIsIHRoaXMubWF4Wm9vbSk7XG4gICAgfVxuICB9XG5cbiAgem9vbU91dCgpIHtcbiAgICBpZiAodGhpcy56b29tTGV2ZWwgPiB0aGlzLm1pblpvb20pIHtcbiAgICAgIHRoaXMuem9vbUxldmVsID0gTWF0aC5tYXgodGhpcy56b29tTGV2ZWwgLyAxLjIsIHRoaXMubWluWm9vbSk7XG4gICAgICAvLyBSZXNldCBwYW4gaWYgem9vbWVkIG91dCB0byAxeCBvciBsZXNzXG4gICAgICBpZiAodGhpcy56b29tTGV2ZWwgPD0gMSkge1xuICAgICAgICB0aGlzLnBhblggPSAwO1xuICAgICAgICB0aGlzLnBhblkgPSAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJlc2V0Wm9vbSgpIHtcbiAgICB0aGlzLnpvb21MZXZlbCA9IDE7XG4gICAgdGhpcy5wYW5YID0gMDtcbiAgICB0aGlzLnBhblkgPSAwO1xuICB9XG5cbiAgLy8gTW91c2UgZXZlbnRzXG4gIG9uTW91c2VEb3duKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKHRoaXMuem9vbUxldmVsIDw9IDEpIHJldHVybjtcblxuICAgIHRoaXMuaXNEcmFnZ2luZyA9IHRydWU7XG4gICAgdGhpcy5zdGFydFggPSBldmVudC5jbGllbnRYIC0gdGhpcy5wYW5YO1xuICAgIHRoaXMuc3RhcnRZID0gZXZlbnQuY2xpZW50WSAtIHRoaXMucGFuWTtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG5cbiAgb25Nb3VzZU1vdmUoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAoIXRoaXMuaXNEcmFnZ2luZyB8fCB0aGlzLnpvb21MZXZlbCA8PSAxKSByZXR1cm47XG5cbiAgICB0aGlzLnBhblggPSBldmVudC5jbGllbnRYIC0gdGhpcy5zdGFydFg7XG4gICAgdGhpcy5wYW5ZID0gZXZlbnQuY2xpZW50WSAtIHRoaXMuc3RhcnRZO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cblxuICBvbk1vdXNlVXAoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICB0aGlzLmlzRHJhZ2dpbmcgPSBmYWxzZTtcbiAgfVxuXG4gIC8vIFRvdWNoIGV2ZW50cyBmb3IgbW9iaWxlXG4gIG9uVG91Y2hTdGFydChldmVudDogVG91Y2hFdmVudCkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy50b3VjaGVzID0gQXJyYXkuZnJvbShldmVudC50b3VjaGVzKTtcblxuICAgIGlmICh0aGlzLnRvdWNoZXMubGVuZ3RoID09PSAxKSB7XG4gICAgICAvLyBTaW5nbGUgdG91Y2ggLSBzdGFydCBkcmFnZ2luZ1xuICAgICAgaWYgKHRoaXMuem9vbUxldmVsID4gMSkge1xuICAgICAgICB0aGlzLmlzRHJhZ2dpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLnN0YXJ0WCA9IHRoaXMudG91Y2hlc1swXS5jbGllbnRYIC0gdGhpcy5wYW5YO1xuICAgICAgICB0aGlzLnN0YXJ0WSA9IHRoaXMudG91Y2hlc1swXS5jbGllbnRZIC0gdGhpcy5wYW5ZO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGhpcy50b3VjaGVzLmxlbmd0aCA9PT0gMikge1xuICAgICAgLy8gVHdvIHRvdWNoZXMgLSBzdGFydCBwaW5jaCB6b29tXG4gICAgICB0aGlzLmlzRHJhZ2dpbmcgPSBmYWxzZTtcbiAgICAgIHRoaXMuaW5pdGlhbERpc3RhbmNlID0gdGhpcy5nZXREaXN0YW5jZSh0aGlzLnRvdWNoZXNbMF0sIHRoaXMudG91Y2hlc1sxXSk7XG4gICAgICB0aGlzLmluaXRpYWxab29tID0gdGhpcy56b29tTGV2ZWw7XG4gICAgfVxuICB9XG5cbiAgb25Ub3VjaE1vdmUoZXZlbnQ6IFRvdWNoRXZlbnQpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMudG91Y2hlcyA9IEFycmF5LmZyb20oZXZlbnQudG91Y2hlcyk7XG5cbiAgICBpZiAodGhpcy50b3VjaGVzLmxlbmd0aCA9PT0gMSAmJiB0aGlzLmlzRHJhZ2dpbmcgJiYgdGhpcy56b29tTGV2ZWwgPiAxKSB7XG4gICAgICAvLyBTaW5nbGUgdG91Y2ggLSBkcmFnXG4gICAgICB0aGlzLnBhblggPSB0aGlzLnRvdWNoZXNbMF0uY2xpZW50WCAtIHRoaXMuc3RhcnRYO1xuICAgICAgdGhpcy5wYW5ZID0gdGhpcy50b3VjaGVzWzBdLmNsaWVudFkgLSB0aGlzLnN0YXJ0WTtcbiAgICB9IGVsc2UgaWYgKHRoaXMudG91Y2hlcy5sZW5ndGggPT09IDIpIHtcbiAgICAgIC8vIFR3byB0b3VjaGVzIC0gcGluY2ggem9vbVxuICAgICAgY29uc3QgY3VycmVudERpc3RhbmNlID0gdGhpcy5nZXREaXN0YW5jZSh0aGlzLnRvdWNoZXNbMF0sIHRoaXMudG91Y2hlc1sxXSk7XG4gICAgICBjb25zdCBzY2FsZSA9IGN1cnJlbnREaXN0YW5jZSAvIHRoaXMuaW5pdGlhbERpc3RhbmNlO1xuICAgICAgdGhpcy56b29tTGV2ZWwgPSBNYXRoLm1pbihNYXRoLm1heCh0aGlzLmluaXRpYWxab29tICogc2NhbGUsIHRoaXMubWluWm9vbSksIHRoaXMubWF4Wm9vbSk7XG5cbiAgICAgIC8vIFJlc2V0IHBhbiBpZiB6b29tZWQgb3V0IHRvIDF4IG9yIGxlc3NcbiAgICAgIGlmICh0aGlzLnpvb21MZXZlbCA8PSAxKSB7XG4gICAgICAgIHRoaXMucGFuWCA9IDA7XG4gICAgICAgIHRoaXMucGFuWSA9IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25Ub3VjaEVuZChldmVudDogVG91Y2hFdmVudCkge1xuICAgIHRoaXMuaXNEcmFnZ2luZyA9IGZhbHNlO1xuICAgIHRoaXMudG91Y2hlcyA9IEFycmF5LmZyb20oZXZlbnQudG91Y2hlcyk7XG4gIH1cblxuICAvLyBNb3VzZSB3aGVlbCB6b29tXG4gIG9uV2hlZWwoZXZlbnQ6IFdoZWVsRXZlbnQpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgY29uc3QgZGVsdGEgPSBldmVudC5kZWx0YVkgPiAwID8gLTEgOiAxO1xuICAgIGNvbnN0IHpvb21GYWN0b3IgPSAxICsgZGVsdGEgKiAwLjE7XG5cbiAgICB0aGlzLnpvb21MZXZlbCA9IE1hdGgubWluKE1hdGgubWF4KHRoaXMuem9vbUxldmVsICogem9vbUZhY3RvciwgdGhpcy5taW5ab29tKSwgdGhpcy5tYXhab29tKTtcblxuICAgIC8vIFJlc2V0IHBhbiBpZiB6b29tZWQgb3V0IHRvIDF4IG9yIGxlc3NcbiAgICBpZiAodGhpcy56b29tTGV2ZWwgPD0gMSkge1xuICAgICAgdGhpcy5wYW5YID0gMDtcbiAgICAgIHRoaXMucGFuWSA9IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gSGVscGVyIG1ldGhvZHNcbiAgcHJpdmF0ZSBnZXREaXN0YW5jZSh0b3VjaDE6IFRvdWNoLCB0b3VjaDI6IFRvdWNoKTogbnVtYmVyIHtcbiAgICBjb25zdCBkeCA9IHRvdWNoMS5jbGllbnRYIC0gdG91Y2gyLmNsaWVudFg7XG4gICAgY29uc3QgZHkgPSB0b3VjaDEuY2xpZW50WSAtIHRvdWNoMi5jbGllbnRZO1xuICAgIHJldHVybiBNYXRoLnNxcnQoZHggKiBkeCArIGR5ICogZHkpO1xuICB9XG5cbiAgLy8gS2V5Ym9hcmQgc2hvcnRjdXRzXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24nLCBbJyRldmVudCddKVxuICBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAoIXRoaXMuaXNQcmV2aWV3T3BlbikgcmV0dXJuO1xuXG4gICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgIGNhc2UgJ0VzY2FwZSc6XG4gICAgICAgIHRoaXMuY2xvc2VQcmV2aWV3KCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnKyc6XG4gICAgICBjYXNlICc9JzpcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy56b29tSW4oKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICctJzpcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy56b29tT3V0KCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnMCc6XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMucmVzZXRab29tKCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -6,10 +6,10 @@ import { addIcons } from 'ionicons';
6
6
  import { chevronForwardOutline } from 'ionicons/icons';
7
7
  import { I18nService } from '../../../services/i18n';
8
8
  import { NavigationService } from '../../../services/navigation';
9
+ import { resolveIonicColor } from '../../../shared/utils/ionic-color';
9
10
  import { ACTION_CARD_DEFAULTS } from './types';
10
11
  import * as i0 from "@angular/core";
11
12
  addIcons({ chevronForwardOutline });
12
- const IONIC_COLORS = ['primary', 'secondary', 'tertiary', 'success', 'warning', 'danger', 'light', 'medium', 'dark'];
13
13
  /**
14
14
  * val-action-card
15
15
  *
@@ -85,14 +85,9 @@ export class ActionCardComponent {
85
85
  }
86
86
  return cfg.description || '';
87
87
  }
88
- /** Resolve color to CSS value */
88
+ /** Resolve color to CSS value (named Ionic token → CSS var, else passthrough) */
89
89
  resolveColor(color) {
90
- if (!color)
91
- return null;
92
- if (IONIC_COLORS.includes(color)) {
93
- return `var(--ion-color-${color})`;
94
- }
95
- return color;
90
+ return resolveIonicColor(color) ?? null;
96
91
  }
97
92
  getBackgroundColor() {
98
93
  return this.resolveColor(this.config().backgroundColor);
@@ -270,4 +265,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
270
265
  }], propDecorators: { onClick: [{
271
266
  type: Output
272
267
  }] } });
273
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9hY3Rpb24tY2FyZC9hY3Rpb24tY2FyZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRSxPQUFPLEVBQTRDLG9CQUFvQixFQUFFLE1BQU0sU0FBUyxDQUFDOztBQUV6RixRQUFRLENBQUMsRUFBRSxxQkFBcUIsRUFBRSxDQUFDLENBQUM7QUFFcEMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBRXJIOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EwQ0c7QUF3RUgsTUFBTSxPQUFPLG1CQUFtQjtJQXZFaEM7UUF3RVUsU0FBSSxHQUFHLE1B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UyxPQUFPO3NCQUFoQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBpbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXJMaW5rIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IElvbkljb24sIElvblJpcHBsZUVmZmVjdCB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgYWRkSWNvbnMgfSBmcm9tICdpb25pY29ucyc7XG5pbXBvcnQgeyBjaGV2cm9uRm9yd2FyZE91dGxpbmUgfSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4nO1xuaW1wb3J0IHsgTmF2aWdhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9uYXZpZ2F0aW9uJztcbmltcG9ydCB7IEFjdGlvbkNhcmRNZXRhZGF0YSwgQWN0aW9uQ2FyZENsaWNrRXZlbnQsIEFDVElPTl9DQVJEX0RFRkFVTFRTIH0gZnJvbSAnLi90eXBlcyc7XG5cbmFkZEljb25zKHsgY2hldnJvbkZvcndhcmRPdXRsaW5lIH0pO1xuXG5jb25zdCBJT05JQ19DT0xPUlMgPSBbJ3ByaW1hcnknLCAnc2Vjb25kYXJ5JywgJ3RlcnRpYXJ5JywgJ3N1Y2Nlc3MnLCAnd2FybmluZycsICdkYW5nZXInLCAnbGlnaHQnLCAnbWVkaXVtJywgJ2RhcmsnXTtcblxuLyoqXG4gKiB2YWwtYWN0aW9uLWNhcmRcbiAqXG4gKiBBIGNsaWNrYWJsZSBjYXJkIGNvbXBvbmVudCB3aXRoIGljb24sIHRpdGxlLCBkZXNjcmlwdGlvbiwgYW5kIG9wdGlvbmFsIGJhZGdlLlxuICogU3VwcG9ydHMgbXVsdGlwbGUgaWNvbiBmb3JtYXRzOiBJb25pY29ucywgU1ZHIHBhdGhzLCBhbmQgaW1hZ2UgVVJMcy5cbiAqXG4gKiBAZXhhbXBsZSBCYXNpYyB1c2FnZSB3aXRoIElvbmljb25cbiAqIGBgYGh0bWxcbiAqIDx2YWwtYWN0aW9uLWNhcmRcbiAqICAgW3Byb3BzXT1cIntcbiAqICAgICBpY29uOiB7IGlvbmljb246ICdzZXR0aW5ncy1vdXRsaW5lJyB9LFxuICogICAgIHRpdGxlOiAnU2V0dGluZ3MnLFxuICogICAgIGRlc2NyaXB0aW9uOiAnTWFuYWdlIHlvdXIgcHJlZmVyZW5jZXMnXG4gKiAgIH1cIlxuICogICAob25DbGljayk9XCJvbkNhcmRDbGljaygkZXZlbnQpXCJcbiAqIC8+XG4gKiBgYGBcbiAqXG4gKiBAZXhhbXBsZSBXaXRoIHJvdXRlckxpbmsgbmF2aWdhdGlvblxuICogYGBgaHRtbFxuICogPHZhbC1hY3Rpb24tY2FyZFxuICogICBbcHJvcHNdPVwie1xuICogICAgIGljb246IHsgaW9uaWNvbjogJ3BlcnNvbi1vdXRsaW5lJywgY29sb3I6ICdwcmltYXJ5JyB9LFxuICogICAgIHRpdGxlOiAnUHJvZmlsZScsXG4gKiAgICAgZGVzY3JpcHRpb246ICdWaWV3IGFuZCBlZGl0IHlvdXIgcHJvZmlsZScsXG4gKiAgICAgcm91dGVyTGluazogJy9zZXR0aW5ncy9wcm9maWxlJyxcbiAqICAgICBzaG93Q2hldnJvbjogdHJ1ZVxuICogICB9XCJcbiAqIC8+XG4gKiBgYGBcbiAqXG4gKiBAZXhhbXBsZSBXaXRoIGN1c3RvbSBTVkcgaWNvblxuICogYGBgaHRtbFxuICogPHZhbC1hY3Rpb24tY2FyZFxuICogICBbcHJvcHNdPVwie1xuICogICAgIGljb246IHsgc3ZnUGF0aDogJ00xMiAyTDIgN2wxMCA1IDEwLTUtMTAtNXpNMiAxN2wxMCA1IDEwLTVNMiAxMmwxMCA1IDEwLTUnIH0sXG4gKiAgICAgdGl0bGU6ICdDdXN0b20gRmVhdHVyZScsXG4gKiAgICAgZGVzY3JpcHRpb246ICdBIGZlYXR1cmUgd2l0aCBjdXN0b20gU1ZHIGljb24nLFxuICogICAgIGJhZGdlOiB7IHRleHQ6ICdORVcnLCBjb2xvcjogJ2xpZ2h0JywgYmFja2dyb3VuZENvbG9yOiAncHJpbWFyeScgfVxuICogICB9XCJcbiAqIC8+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWFjdGlvbi1jYXJkJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUm91dGVyTGluaywgSW9uSWNvbiwgSW9uUmlwcGxlRWZmZWN0XSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8YXJ0aWNsZVxuICAgICAgY2xhc3M9XCJhY3Rpb24tY2FyZFwiXG4gICAgICBbY2xhc3MuYWN0aW9uLWNhcmQtLXNtYWxsXT1cImNvbmZpZygpLnNpemUgPT09ICdzbWFsbCdcIlxuICAgICAgW2NsYXNzLmFjdGlvbi1jYXJkLS1tZWRpdW1dPVwiY29uZmlnKCkuc2l6ZSA9PT0gJ21lZGl1bSdcIlxuICAgICAgW2NsYXNzLmFjdGlvbi1jYXJkLS1sYXJnZV09XCJjb25maWcoKS5zaXplID09PSAnbGFyZ2UnXCJcbiAgICAgIFtjbGFzcy5hY3Rpb24tY2FyZC0tYm9yZGVyZWRdPVwiY29uZmlnKCkuYm9yZGVyZWRcIlxuICAgICAgW2NsYXNzLmFjdGlvbi1jYXJkLS1zaGFkb3dlZF09XCJjb25maWcoKS5zaGFkb3dlZFwiXG4gICAgICBbY2xhc3MuYWN0aW9uLWNhcmQtLWRpc2FibGVkXT1cImNvbmZpZygpLmRpc2FibGVkXCJcbiAgICAgIFtjbGFzcy5hY3Rpb24tY2FyZC0tY2xpY2thYmxlXT1cIiFjb25maWcoKS5kaXNhYmxlZFwiXG4gICAgICBbc3R5bGUuLS1jYXJkLWJnXT1cImdldEJhY2tncm91bmRDb2xvcigpXCJcbiAgICAgIFtzdHlsZS4tLWNhcmQtYm9yZGVyLWNvbG9yXT1cImdldEJvcmRlckNvbG9yKClcIlxuICAgICAgW3JvdXRlckxpbmtdPVwiY29uZmlnKCkuZGlzYWJsZWQgPyBudWxsIDogY29uZmlnKCkucm91dGVyTGlua1wiXG4gICAgICAoY2xpY2spPVwiaGFuZGxlQ2xpY2soJGV2ZW50KVwiXG4gICAgICBbYXR0ci50YWJpbmRleF09XCJjb25maWcoKS5kaXNhYmxlZCA/IC0xIDogMFwiXG4gICAgICBbYXR0ci5yb2xlXT1cIididXR0b24nXCJcbiAgICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiY29uZmlnKCkuZGlzYWJsZWRcIlxuICAgID5cbiAgICAgIDxpb24tcmlwcGxlLWVmZmVjdD48L2lvbi1yaXBwbGUtZWZmZWN0PlxuXG4gICAgICA8IS0tIEJhZGdlICh0b3AtcmlnaHQgY29ybmVyKSAtLT5cbiAgICAgIEBpZiAoY29uZmlnKCkuYmFkZ2UpIHtcbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBjbGFzcz1cImFjdGlvbi1jYXJkX19iYWRnZVwiXG4gICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImdldEJhZGdlQ29sb3IoKVwiXG4gICAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiZ2V0QmFkZ2VCYWNrZ3JvdW5kQ29sb3IoKVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBjb25maWcoKS5iYWRnZSEudGV4dCB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICB9XG5cbiAgICAgIDwhLS0gSWNvbiBDb250YWluZXIgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uLWNhcmRfX2ljb25cIiBbc3R5bGUuY29sb3JdPVwiZ2V0SWNvbkNvbG9yKClcIiBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJnZXRJY29uQmFja2dyb3VuZENvbG9yKClcIj5cbiAgICAgICAgQGlmIChjb25maWcoKS5pY29uPy5pb25pY29uKSB7XG4gICAgICAgICAgPGlvbi1pY29uIFtuYW1lXT1cImNvbmZpZygpLmljb24hLmlvbmljb24hXCI+PC9pb24taWNvbj5cbiAgICAgICAgfSBAZWxzZSBpZiAoY29uZmlnKCkuaWNvbj8uc3ZnUGF0aCkge1xuICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiXG4gICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8cGF0aCBbYXR0ci5kXT1cImNvbmZpZygpLmljb24hLnN2Z1BhdGhcIiAvPlxuICAgICAgICAgIDwvc3ZnPlxuICAgICAgICB9IEBlbHNlIGlmIChjb25maWcoKS5pY29uPy5pbWFnZVVybCkge1xuICAgICAgICAgIDxpbWcgW3NyY109XCJjb25maWcoKS5pY29uIS5pbWFnZVVybFwiIFthbHRdPVwiZ2V0VGl0bGUoKVwiIGNsYXNzPVwiYWN0aW9uLWNhcmRfX2ljb24taW1hZ2VcIiAvPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBDb250ZW50IC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImFjdGlvbi1jYXJkX19jb250ZW50XCI+XG4gICAgICAgIDxoMyBjbGFzcz1cImFjdGlvbi1jYXJkX190aXRsZVwiPnt7IGdldFRpdGxlKCkgfX08L2gzPlxuICAgICAgICBAaWYgKGdldERlc2NyaXB0aW9uKCkpIHtcbiAgICAgICAgICA8cCBjbGFzcz1cImFjdGlvbi1jYXJkX19kZXNjcmlwdGlvblwiPnt7IGdldERlc2NyaXB0aW9uKCkgfX08L3A+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIENoZXZyb24gKG9wdGlvbmFsKSAtLT5cbiAgICAgIEBpZiAoY29uZmlnKCkuc2hvd0NoZXZyb24gJiYgIWNvbmZpZygpLmRpc2FibGVkKSB7XG4gICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2hldnJvbi1mb3J3YXJkLW91dGxpbmVcIiBjbGFzcz1cImFjdGlvbi1jYXJkX19jaGV2cm9uXCI+PC9pb24taWNvbj5cbiAgICAgIH1cbiAgICA8L2FydGljbGU+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL2FjdGlvbi1jYXJkLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEFjdGlvbkNhcmRDb21wb25lbnQge1xuICBwcml2YXRlIGkxOG4gPSBpbmplY3QoSTE4blNlcnZpY2UpO1xuICBwcml2YXRlIG5hdmlnYXRpb24gPSBpbmplY3QoTmF2aWdhdGlvblNlcnZpY2UpO1xuXG4gIC8qKiBDb21wb25lbnQgY29uZmlndXJhdGlvbiAqL1xuICByZWFkb25seSBwcm9wcyA9IGlucHV0PFBhcnRpYWw8QWN0aW9uQ2FyZE1ldGFkYXRhPj4oe30pO1xuXG4gIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gY2FyZCBpcyBjbGlja2VkICovXG4gIEBPdXRwdXQoKSBvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxBY3Rpb25DYXJkQ2xpY2tFdmVudD4oKTtcblxuICAvKiogTWVyZ2VkIGNvbmZpZ3VyYXRpb24gd2l0aCBkZWZhdWx0cyAqL1xuICBjb25maWcgPSBjb21wdXRlZCgoKSA9PiAoe1xuICAgIC4uLkFDVElPTl9DQVJEX0RFRkFVTFRTLFxuICAgIC4uLnRoaXMucHJvcHMoKSxcbiAgfSkpO1xuXG4gIC8qKiBHZXQgdGl0bGUgd2l0aCBpMThuIHN1cHBvcnQgKi9cbiAgZ2V0VGl0bGUoKTogc3RyaW5nIHtcbiAgICBjb25zdCBjZmcgPSB0aGlzLmNvbmZpZygpO1xuICAgIGlmIChjZmcuaTE4bk5hbWVzcGFjZSAmJiBjZmcudGl0bGVLZXkpIHtcbiAgICAgIHRoaXMuaTE4bi5sYW5nKCk7IC8vIFRyYWNrIGxhbmd1YWdlIGNoYW5nZXMgZm9yIHJlYWN0aXZpdHlcbiAgICAgIHJldHVybiB0aGlzLmkxOG4udChjZmcudGl0bGVLZXksIGNmZy5pMThuTmFtZXNwYWNlKTtcbiAgICB9XG4gICAgcmV0dXJuIGNmZy50aXRsZSB8fCAnJztcbiAgfVxuXG4gIC8qKiBHZXQgZGVzY3JpcHRpb24gd2l0aCBpMThuIHN1cHBvcnQgKi9cbiAgZ2V0RGVzY3JpcHRpb24oKTogc3RyaW5nIHtcbiAgICBjb25zdCBjZmcgPSB0aGlzLmNvbmZpZygpO1xuICAgIGlmIChjZmcuaTE4bk5hbWVzcGFjZSAmJiBjZmcuZGVzY3JpcHRpb25LZXkpIHtcbiAgICAgIHRoaXMuaTE4bi5sYW5nKCk7IC8vIFRyYWNrIGxhbmd1YWdlIGNoYW5nZXMgZm9yIHJlYWN0aXZpdHlcbiAgICAgIHJldHVybiB0aGlzLmkxOG4udChjZmcuZGVzY3JpcHRpb25LZXksIGNmZy5pMThuTmFtZXNwYWNlKTtcbiAgICB9XG4gICAgcmV0dXJuIGNmZy5kZXNjcmlwdGlvbiB8fCAnJztcbiAgfVxuXG4gIC8qKiBSZXNvbHZlIGNvbG9yIHRvIENTUyB2YWx1ZSAqL1xuICBwcml2YXRlIHJlc29sdmVDb2xvcihjb2xvcj86IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xuICAgIGlmICghY29sb3IpIHJldHVybiBudWxsO1xuICAgIGlmIChJT05JQ19DT0xPUlMuaW5jbHVkZXMoY29sb3IpKSB7XG4gICAgICByZXR1cm4gYHZhcigtLWlvbi1jb2xvci0ke2NvbG9yfSlgO1xuICAgIH1cbiAgICByZXR1cm4gY29sb3I7XG4gIH1cblxuICBnZXRCYWNrZ3JvdW5kQ29sb3IoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZUNvbG9yKHRoaXMuY29uZmlnKCkuYmFja2dyb3VuZENvbG9yIGFzIHN0cmluZyk7XG4gIH1cblxuICBnZXRCb3JkZXJDb2xvcigpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlQ29sb3IodGhpcy5jb25maWcoKS5ib3JkZXJDb2xvciBhcyBzdHJpbmcpIHx8ICd2YXIoLS1pb24tY29sb3ItbGlnaHQtc2hhZGUpJztcbiAgfVxuXG4gIGdldEljb25Db2xvcigpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlQ29sb3IodGhpcy5jb25maWcoKS5pY29uPy5jb2xvciBhcyBzdHJpbmcpIHx8ICd2YXIoLS1pb24tY29sb3ItcHJpbWFyeSknO1xuICB9XG5cbiAgZ2V0SWNvbkJhY2tncm91bmRDb2xvcigpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBjb25zdCBiZyA9IHRoaXMuY29uZmlnKCkuaWNvbj8uYmFja2dyb3VuZENvbG9yO1xuICAgIGlmICghYmcpIHJldHVybiAncmdiYSh2YXIoLS1pb24tY29sb3ItcHJpbWFyeS1yZ2IpLCAwLjEpJztcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlQ29sb3IoYmcgYXMgc3RyaW5nKTtcbiAgfVxuXG4gIGdldEJhZGdlQ29sb3IoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZUNvbG9yKHRoaXMuY29uZmlnKCkuYmFkZ2U/LmNvbG9yIGFzIHN0cmluZykgfHwgJ3doaXRlJztcbiAgfVxuXG4gIGdldEJhZGdlQmFja2dyb3VuZENvbG9yKCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVDb2xvcih0aGlzLmNvbmZpZygpLmJhZGdlPy5iYWNrZ3JvdW5kQ29sb3IgYXMgc3RyaW5nKSB8fCAndmFyKC0taW9uLWNvbG9yLXByaW1hcnkpJztcbiAgfVxuXG4gIC8qKiBIYW5kbGUgY2FyZCBjbGljayAqL1xuICBoYW5kbGVDbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGNmZyA9IHRoaXMuY29uZmlnKCk7XG5cbiAgICBpZiAoY2ZnLmRpc2FibGVkKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gRW1pdCBjbGljayBldmVudFxuICAgIHRoaXMub25DbGljay5lbWl0KHtcbiAgICAgIHRva2VuOiBjZmcudG9rZW4sXG4gICAgICBuYXZpZ2F0ZWQ6ICEhY2ZnLnJvdXRlckxpbmsgfHwgISFjZmcuaHJlZixcbiAgICB9KTtcblxuICAgIC8vIEhhbmRsZSBleHRlcm5hbCBVUkxcbiAgICBpZiAoY2ZnLmhyZWYpIHtcbiAgICAgIHRoaXMubmF2aWdhdGlvbi5vcGVuSW5OZXdUYWIoY2ZnLmhyZWYpO1xuICAgIH1cbiAgfVxufVxuIl19
268
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9hY3Rpb24tY2FyZC9hY3Rpb24tY2FyZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN0RSxPQUFPLEVBQTRDLG9CQUFvQixFQUFFLE1BQU0sU0FBUyxDQUFDOztBQUV6RixRQUFRLENBQUMsRUFBRSxxQkFBcUIsRUFBRSxDQUFDLENBQUM7QUFFcEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTBDRztBQXdFSCxNQUFNLE9BQU8sbUJBQW1CO0lBdkVoQztRQXdFVSxTQUFJLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzNCLGVBQVUsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUUvQyw4QkFBOEI7UUFDckIsVUFBSyxHQUFHLEtBQUssQ0FBOEIsRUFBRSxDQUFDLENBQUM7UUFFeEQseUNBQXlDO1FBQy9CLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBd0IsQ0FBQztRQUU3RCx5Q0FBeUM7UUFDekMsV0FBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZCLEdBQUcsb0JBQW9CO1lBQ3ZCLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRTtTQUNoQixDQUFDLENBQUMsQ0FBQztLQTBFTDtJQXhFQyxrQ0FBa0M7SUFDbEMsUUFBUTtRQUNOLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUMxQixJQUFJLEdBQUcsQ0FBQyxhQUFhLElBQUksR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyx3Q0FBd0M7WUFDMUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN0RCxDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsd0NBQXdDO0lBQ3hDLGNBQWM7UUFDWixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDMUIsSUFBSSxHQUFHLENBQUMsYUFBYSxJQUFJLEdBQUcsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUM1QyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsd0NBQXdDO1lBQzFELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDNUQsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELGlGQUFpRjtJQUN6RSxZQUFZLENBQUMsS0FBYztRQUNqQyxPQUFPLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQztJQUMxQyxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsZUFBeUIsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRCxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxXQUFxQixDQUFDLElBQUksOEJBQThCLENBQUM7SUFDbEcsQ0FBQztJQUVELFlBQVk7UUFDVixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxLQUFlLENBQUMsSUFBSSwwQkFBMEIsQ0FBQztJQUM5RixDQUFDO0lBRUQsc0JBQXNCO1FBQ3BCLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsZUFBZSxDQUFDO1FBQy9DLElBQUksQ0FBQyxFQUFFO1lBQUUsT0FBTyx5Q0FBeUMsQ0FBQztRQUMxRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBWSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFlLENBQUMsSUFBSSxPQUFPLENBQUM7SUFDNUUsQ0FBQztJQUVELHVCQUF1QjtRQUNyQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssRUFBRSxlQUF5QixDQUFDLElBQUksMEJBQTBCLENBQUM7SUFDekcsQ0FBQztJQUVELHdCQUF3QjtJQUN4QixXQUFXLENBQUMsS0FBaUI7UUFDM0IsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBRTFCLElBQUksR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2pCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDeEIsT0FBTztRQUNULENBQUM7UUFFRCxtQkFBbUI7UUFDbkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDaEIsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLO1lBQ2hCLFNBQVMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUk7U0FDMUMsQ0FBQyxDQUFDO1FBRUgsc0JBQXNCO1FBQ3RCLElBQUksR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pDLENBQUM7SUFDSCxDQUFDOytHQXZGVSxtQkFBbUI7bUdBQW5CLG1CQUFtQixnUEFuRXBCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBZ0VULHkwR0FqRVMsWUFBWSwrQkFBRSxVQUFVLG9PQUFFLE9BQU8sMkpBQUUsZUFBZTs7NEZBb0VqRCxtQkFBbUI7a0JBdkUvQixTQUFTOytCQUNFLGlCQUFpQixjQUNmLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLGVBQWUsQ0FBQyxZQUNuRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWdFVDs4QkFXUyxPQUFPO3NCQUFoQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBpbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXJMaW5rIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IElvbkljb24sIElvblJpcHBsZUVmZmVjdCB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgYWRkSWNvbnMgfSBmcm9tICdpb25pY29ucyc7XG5pbXBvcnQgeyBjaGV2cm9uRm9yd2FyZE91dGxpbmUgfSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4nO1xuaW1wb3J0IHsgTmF2aWdhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9uYXZpZ2F0aW9uJztcbmltcG9ydCB7IHJlc29sdmVJb25pY0NvbG9yIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3V0aWxzL2lvbmljLWNvbG9yJztcbmltcG9ydCB7IEFjdGlvbkNhcmRNZXRhZGF0YSwgQWN0aW9uQ2FyZENsaWNrRXZlbnQsIEFDVElPTl9DQVJEX0RFRkFVTFRTIH0gZnJvbSAnLi90eXBlcyc7XG5cbmFkZEljb25zKHsgY2hldnJvbkZvcndhcmRPdXRsaW5lIH0pO1xuXG4vKipcbiAqIHZhbC1hY3Rpb24tY2FyZFxuICpcbiAqIEEgY2xpY2thYmxlIGNhcmQgY29tcG9uZW50IHdpdGggaWNvbiwgdGl0bGUsIGRlc2NyaXB0aW9uLCBhbmQgb3B0aW9uYWwgYmFkZ2UuXG4gKiBTdXBwb3J0cyBtdWx0aXBsZSBpY29uIGZvcm1hdHM6IElvbmljb25zLCBTVkcgcGF0aHMsIGFuZCBpbWFnZSBVUkxzLlxuICpcbiAqIEBleGFtcGxlIEJhc2ljIHVzYWdlIHdpdGggSW9uaWNvblxuICogYGBgaHRtbFxuICogPHZhbC1hY3Rpb24tY2FyZFxuICogICBbcHJvcHNdPVwie1xuICogICAgIGljb246IHsgaW9uaWNvbjogJ3NldHRpbmdzLW91dGxpbmUnIH0sXG4gKiAgICAgdGl0bGU6ICdTZXR0aW5ncycsXG4gKiAgICAgZGVzY3JpcHRpb246ICdNYW5hZ2UgeW91ciBwcmVmZXJlbmNlcydcbiAqICAgfVwiXG4gKiAgIChvbkNsaWNrKT1cIm9uQ2FyZENsaWNrKCRldmVudClcIlxuICogLz5cbiAqIGBgYFxuICpcbiAqIEBleGFtcGxlIFdpdGggcm91dGVyTGluayBuYXZpZ2F0aW9uXG4gKiBgYGBodG1sXG4gKiA8dmFsLWFjdGlvbi1jYXJkXG4gKiAgIFtwcm9wc109XCJ7XG4gKiAgICAgaWNvbjogeyBpb25pY29uOiAncGVyc29uLW91dGxpbmUnLCBjb2xvcjogJ3ByaW1hcnknIH0sXG4gKiAgICAgdGl0bGU6ICdQcm9maWxlJyxcbiAqICAgICBkZXNjcmlwdGlvbjogJ1ZpZXcgYW5kIGVkaXQgeW91ciBwcm9maWxlJyxcbiAqICAgICByb3V0ZXJMaW5rOiAnL3NldHRpbmdzL3Byb2ZpbGUnLFxuICogICAgIHNob3dDaGV2cm9uOiB0cnVlXG4gKiAgIH1cIlxuICogLz5cbiAqIGBgYFxuICpcbiAqIEBleGFtcGxlIFdpdGggY3VzdG9tIFNWRyBpY29uXG4gKiBgYGBodG1sXG4gKiA8dmFsLWFjdGlvbi1jYXJkXG4gKiAgIFtwcm9wc109XCJ7XG4gKiAgICAgaWNvbjogeyBzdmdQYXRoOiAnTTEyIDJMMiA3bDEwIDUgMTAtNS0xMC01ek0yIDE3bDEwIDUgMTAtNU0yIDEybDEwIDUgMTAtNScgfSxcbiAqICAgICB0aXRsZTogJ0N1c3RvbSBGZWF0dXJlJyxcbiAqICAgICBkZXNjcmlwdGlvbjogJ0EgZmVhdHVyZSB3aXRoIGN1c3RvbSBTVkcgaWNvbicsXG4gKiAgICAgYmFkZ2U6IHsgdGV4dDogJ05FVycsIGNvbG9yOiAnbGlnaHQnLCBiYWNrZ3JvdW5kQ29sb3I6ICdwcmltYXJ5JyB9XG4gKiAgIH1cIlxuICogLz5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtYWN0aW9uLWNhcmQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSb3V0ZXJMaW5rLCBJb25JY29uLCBJb25SaXBwbGVFZmZlY3RdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxhcnRpY2xlXG4gICAgICBjbGFzcz1cImFjdGlvbi1jYXJkXCJcbiAgICAgIFtjbGFzcy5hY3Rpb24tY2FyZC0tc21hbGxdPVwiY29uZmlnKCkuc2l6ZSA9PT0gJ3NtYWxsJ1wiXG4gICAgICBbY2xhc3MuYWN0aW9uLWNhcmQtLW1lZGl1bV09XCJjb25maWcoKS5zaXplID09PSAnbWVkaXVtJ1wiXG4gICAgICBbY2xhc3MuYWN0aW9uLWNhcmQtLWxhcmdlXT1cImNvbmZpZygpLnNpemUgPT09ICdsYXJnZSdcIlxuICAgICAgW2NsYXNzLmFjdGlvbi1jYXJkLS1ib3JkZXJlZF09XCJjb25maWcoKS5ib3JkZXJlZFwiXG4gICAgICBbY2xhc3MuYWN0aW9uLWNhcmQtLXNoYWRvd2VkXT1cImNvbmZpZygpLnNoYWRvd2VkXCJcbiAgICAgIFtjbGFzcy5hY3Rpb24tY2FyZC0tZGlzYWJsZWRdPVwiY29uZmlnKCkuZGlzYWJsZWRcIlxuICAgICAgW2NsYXNzLmFjdGlvbi1jYXJkLS1jbGlja2FibGVdPVwiIWNvbmZpZygpLmRpc2FibGVkXCJcbiAgICAgIFtzdHlsZS4tLWNhcmQtYmddPVwiZ2V0QmFja2dyb3VuZENvbG9yKClcIlxuICAgICAgW3N0eWxlLi0tY2FyZC1ib3JkZXItY29sb3JdPVwiZ2V0Qm9yZGVyQ29sb3IoKVwiXG4gICAgICBbcm91dGVyTGlua109XCJjb25maWcoKS5kaXNhYmxlZCA/IG51bGwgOiBjb25maWcoKS5yb3V0ZXJMaW5rXCJcbiAgICAgIChjbGljayk9XCJoYW5kbGVDbGljaygkZXZlbnQpXCJcbiAgICAgIFthdHRyLnRhYmluZGV4XT1cImNvbmZpZygpLmRpc2FibGVkID8gLTEgOiAwXCJcbiAgICAgIFthdHRyLnJvbGVdPVwiJ2J1dHRvbidcIlxuICAgICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJjb25maWcoKS5kaXNhYmxlZFwiXG4gICAgPlxuICAgICAgPGlvbi1yaXBwbGUtZWZmZWN0PjwvaW9uLXJpcHBsZS1lZmZlY3Q+XG5cbiAgICAgIDwhLS0gQmFkZ2UgKHRvcC1yaWdodCBjb3JuZXIpIC0tPlxuICAgICAgQGlmIChjb25maWcoKS5iYWRnZSkge1xuICAgICAgICA8c3BhblxuICAgICAgICAgIGNsYXNzPVwiYWN0aW9uLWNhcmRfX2JhZGdlXCJcbiAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiZ2V0QmFkZ2VDb2xvcigpXCJcbiAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJnZXRCYWRnZUJhY2tncm91bmRDb2xvcigpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGNvbmZpZygpLmJhZGdlIS50ZXh0IH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIH1cblxuICAgICAgPCEtLSBJY29uIENvbnRhaW5lciAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpb24tY2FyZF9faWNvblwiIFtzdHlsZS5jb2xvcl09XCJnZXRJY29uQ29sb3IoKVwiIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImdldEljb25CYWNrZ3JvdW5kQ29sb3IoKVwiPlxuICAgICAgICBAaWYgKGNvbmZpZygpLmljb24/Lmlvbmljb24pIHtcbiAgICAgICAgICA8aW9uLWljb24gW25hbWVdPVwiY29uZmlnKCkuaWNvbiEuaW9uaWNvbiFcIj48L2lvbi1pY29uPlxuICAgICAgICB9IEBlbHNlIGlmIChjb25maWcoKS5pY29uPy5zdmdQYXRoKSB7XG4gICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCJcbiAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxwYXRoIFthdHRyLmRdPVwiY29uZmlnKCkuaWNvbiEuc3ZnUGF0aFwiIC8+XG4gICAgICAgICAgPC9zdmc+XG4gICAgICAgIH0gQGVsc2UgaWYgKGNvbmZpZygpLmljb24/LmltYWdlVXJsKSB7XG4gICAgICAgICAgPGltZyBbc3JjXT1cImNvbmZpZygpLmljb24hLmltYWdlVXJsXCIgW2FsdF09XCJnZXRUaXRsZSgpXCIgY2xhc3M9XCJhY3Rpb24tY2FyZF9faWNvbi1pbWFnZVwiIC8+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIENvbnRlbnQgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uLWNhcmRfX2NvbnRlbnRcIj5cbiAgICAgICAgPGgzIGNsYXNzPVwiYWN0aW9uLWNhcmRfX3RpdGxlXCI+e3sgZ2V0VGl0bGUoKSB9fTwvaDM+XG4gICAgICAgIEBpZiAoZ2V0RGVzY3JpcHRpb24oKSkge1xuICAgICAgICAgIDxwIGNsYXNzPVwiYWN0aW9uLWNhcmRfX2Rlc2NyaXB0aW9uXCI+e3sgZ2V0RGVzY3JpcHRpb24oKSB9fTwvcD5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gQ2hldnJvbiAob3B0aW9uYWwpIC0tPlxuICAgICAgQGlmIChjb25maWcoKS5zaG93Q2hldnJvbiAmJiAhY29uZmlnKCkuZGlzYWJsZWQpIHtcbiAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJjaGV2cm9uLWZvcndhcmQtb3V0bGluZVwiIGNsYXNzPVwiYWN0aW9uLWNhcmRfX2NoZXZyb25cIj48L2lvbi1pY29uPlxuICAgICAgfVxuICAgIDwvYXJ0aWNsZT5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vYWN0aW9uLWNhcmQuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQWN0aW9uQ2FyZENvbXBvbmVudCB7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG4gIHByaXZhdGUgbmF2aWdhdGlvbiA9IGluamVjdChOYXZpZ2F0aW9uU2VydmljZSk7XG5cbiAgLyoqIENvbXBvbmVudCBjb25maWd1cmF0aW9uICovXG4gIHJlYWRvbmx5IHByb3BzID0gaW5wdXQ8UGFydGlhbDxBY3Rpb25DYXJkTWV0YWRhdGE+Pih7fSk7XG5cbiAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiBjYXJkIGlzIGNsaWNrZWQgKi9cbiAgQE91dHB1dCgpIG9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEFjdGlvbkNhcmRDbGlja0V2ZW50PigpO1xuXG4gIC8qKiBNZXJnZWQgY29uZmlndXJhdGlvbiB3aXRoIGRlZmF1bHRzICovXG4gIGNvbmZpZyA9IGNvbXB1dGVkKCgpID0+ICh7XG4gICAgLi4uQUNUSU9OX0NBUkRfREVGQVVMVFMsXG4gICAgLi4udGhpcy5wcm9wcygpLFxuICB9KSk7XG5cbiAgLyoqIEdldCB0aXRsZSB3aXRoIGkxOG4gc3VwcG9ydCAqL1xuICBnZXRUaXRsZSgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNmZyA9IHRoaXMuY29uZmlnKCk7XG4gICAgaWYgKGNmZy5pMThuTmFtZXNwYWNlICYmIGNmZy50aXRsZUtleSkge1xuICAgICAgdGhpcy5pMThuLmxhbmcoKTsgLy8gVHJhY2sgbGFuZ3VhZ2UgY2hhbmdlcyBmb3IgcmVhY3Rpdml0eVxuICAgICAgcmV0dXJuIHRoaXMuaTE4bi50KGNmZy50aXRsZUtleSwgY2ZnLmkxOG5OYW1lc3BhY2UpO1xuICAgIH1cbiAgICByZXR1cm4gY2ZnLnRpdGxlIHx8ICcnO1xuICB9XG5cbiAgLyoqIEdldCBkZXNjcmlwdGlvbiB3aXRoIGkxOG4gc3VwcG9ydCAqL1xuICBnZXREZXNjcmlwdGlvbigpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNmZyA9IHRoaXMuY29uZmlnKCk7XG4gICAgaWYgKGNmZy5pMThuTmFtZXNwYWNlICYmIGNmZy5kZXNjcmlwdGlvbktleSkge1xuICAgICAgdGhpcy5pMThuLmxhbmcoKTsgLy8gVHJhY2sgbGFuZ3VhZ2UgY2hhbmdlcyBmb3IgcmVhY3Rpdml0eVxuICAgICAgcmV0dXJuIHRoaXMuaTE4bi50KGNmZy5kZXNjcmlwdGlvbktleSwgY2ZnLmkxOG5OYW1lc3BhY2UpO1xuICAgIH1cbiAgICByZXR1cm4gY2ZnLmRlc2NyaXB0aW9uIHx8ICcnO1xuICB9XG5cbiAgLyoqIFJlc29sdmUgY29sb3IgdG8gQ1NTIHZhbHVlIChuYW1lZCBJb25pYyB0b2tlbiDihpIgQ1NTIHZhciwgZWxzZSBwYXNzdGhyb3VnaCkgKi9cbiAgcHJpdmF0ZSByZXNvbHZlQ29sb3IoY29sb3I/OiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gcmVzb2x2ZUlvbmljQ29sb3IoY29sb3IpID8/IG51bGw7XG4gIH1cblxuICBnZXRCYWNrZ3JvdW5kQ29sb3IoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZUNvbG9yKHRoaXMuY29uZmlnKCkuYmFja2dyb3VuZENvbG9yIGFzIHN0cmluZyk7XG4gIH1cblxuICBnZXRCb3JkZXJDb2xvcigpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlQ29sb3IodGhpcy5jb25maWcoKS5ib3JkZXJDb2xvciBhcyBzdHJpbmcpIHx8ICd2YXIoLS1pb24tY29sb3ItbGlnaHQtc2hhZGUpJztcbiAgfVxuXG4gIGdldEljb25Db2xvcigpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlQ29sb3IodGhpcy5jb25maWcoKS5pY29uPy5jb2xvciBhcyBzdHJpbmcpIHx8ICd2YXIoLS1pb24tY29sb3ItcHJpbWFyeSknO1xuICB9XG5cbiAgZ2V0SWNvbkJhY2tncm91bmRDb2xvcigpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBjb25zdCBiZyA9IHRoaXMuY29uZmlnKCkuaWNvbj8uYmFja2dyb3VuZENvbG9yO1xuICAgIGlmICghYmcpIHJldHVybiAncmdiYSh2YXIoLS1pb24tY29sb3ItcHJpbWFyeS1yZ2IpLCAwLjEpJztcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlQ29sb3IoYmcgYXMgc3RyaW5nKTtcbiAgfVxuXG4gIGdldEJhZGdlQ29sb3IoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZUNvbG9yKHRoaXMuY29uZmlnKCkuYmFkZ2U/LmNvbG9yIGFzIHN0cmluZykgfHwgJ3doaXRlJztcbiAgfVxuXG4gIGdldEJhZGdlQmFja2dyb3VuZENvbG9yKCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVDb2xvcih0aGlzLmNvbmZpZygpLmJhZGdlPy5iYWNrZ3JvdW5kQ29sb3IgYXMgc3RyaW5nKSB8fCAndmFyKC0taW9uLWNvbG9yLXByaW1hcnkpJztcbiAgfVxuXG4gIC8qKiBIYW5kbGUgY2FyZCBjbGljayAqL1xuICBoYW5kbGVDbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGNmZyA9IHRoaXMuY29uZmlnKCk7XG5cbiAgICBpZiAoY2ZnLmRpc2FibGVkKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gRW1pdCBjbGljayBldmVudFxuICAgIHRoaXMub25DbGljay5lbWl0KHtcbiAgICAgIHRva2VuOiBjZmcudG9rZW4sXG4gICAgICBuYXZpZ2F0ZWQ6ICEhY2ZnLnJvdXRlckxpbmsgfHwgISFjZmcuaHJlZixcbiAgICB9KTtcblxuICAgIC8vIEhhbmRsZSBleHRlcm5hbCBVUkxcbiAgICBpZiAoY2ZnLmhyZWYpIHtcbiAgICAgIHRoaXMubmF2aWdhdGlvbi5vcGVuSW5OZXdUYWIoY2ZnLmhyZWYpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -45,9 +45,7 @@ export class BreadcrumbComponent {
45
45
  }
46
46
  }
47
47
  resolveProps() {
48
- const presetProps = this.preset
49
- ? this.presets.get('breadcrumb', this.preset)
50
- : {};
48
+ const presetProps = this.preset ? this.presets.get('breadcrumb', this.preset) : {};
51
49
  this.resolvedProps = {
52
50
  ...presetProps,
53
51
  ...this.props,
@@ -77,6 +75,7 @@ export class BreadcrumbComponent {
77
75
  [active]="item.active || isLast"
78
76
  [disabled]="item.disabled"
79
77
  [separator]="!isLast"
78
+ [attr.aria-current]="item.active || isLast ? 'page' : null"
80
79
  (click)="onBreadcrumbClick($event, item, $index)"
81
80
  >
82
81
  @if (item.icon) {
@@ -105,6 +104,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
105
104
  [active]="item.active || isLast"
106
105
  [disabled]="item.disabled"
107
106
  [separator]="!isLast"
107
+ [attr.aria-current]="item.active || isLast ? 'page' : null"
108
108
  (click)="onBreadcrumbClick($event, item, $index)"
109
109
  >
110
110
  @if (item.icon) {
@@ -127,4 +127,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
127
127
  }], collapsedClick: [{
128
128
  type: Output
129
129
  }] } });
130
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsWUFBWSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNuRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTFELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDcEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFFMUUsUUFBUSxDQUFDLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxDQUFDLENBQUM7QUFpQ3ZEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkc7QUFDSCxNQUFNLE9BQU8sbUJBQW1CO0lBckRoQztRQXNEVSxZQUFPLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRy9CLFVBQUssR0FBZ0MsRUFBRSxDQUFDO1FBRWpELGtCQUFhLEdBQXVCLEVBQXdCLENBQUM7UUFFbkQsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBbUQsQ0FBQztRQUN0RixtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFlLENBQUM7S0FvQzVEO0lBbENDLFFBQVE7UUFDTixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUMxQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEIsQ0FBQztJQUNILENBQUM7SUFFTyxZQUFZO1FBQ2xCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNO1lBQzdCLENBQUMsQ0FBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBaUM7WUFDOUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUVQLElBQUksQ0FBQyxhQUFhLEdBQUc7WUFDbkIsR0FBRyxXQUFXO1lBQ2QsR0FBRyxJQUFJLENBQUMsS0FBSztTQUNRLENBQUM7SUFDMUIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEtBQVksRUFBRSxJQUE0QixFQUFFLEtBQWE7UUFDekUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUM3QyxDQUFDO0lBQ0gsQ0FBQztJQUVELGdCQUFnQixDQUFDLEtBQWtCO1FBQ2pDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxZQUFZLENBQUMsSUFBNEI7UUFDdkMsT0FBTyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxlQUFlLElBQUksRUFBRSxDQUFDO0lBQ2xELENBQUM7K0dBNUNVLG1CQUFtQjttR0FBbkIsbUJBQW1CLGdPQWpEcEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdCVCx5aUJBekJTLFlBQVksK0JBQUUsYUFBYSxvTUFBRSxjQUFjLGdKQUFFLE9BQU87OzRGQWtEbkQsbUJBQW1CO2tCQXJEL0IsU0FBUzsrQkFDRSxnQkFBZ0IsY0FDZCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxPQUFPLENBQUMsWUFDckQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdCVDs4QkE0QlEsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFJSSxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW9uQnJlYWRjcnVtYiwgSW9uQnJlYWRjcnVtYnMsIElvbkljb24gfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBQcmVzZXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcHJlc2V0cyc7XG5pbXBvcnQgeyBCcmVhZGNydW1iTWV0YWRhdGEsIEJyZWFkY3J1bWJJdGVtTWV0YWRhdGEgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IGFkZEljb25zIH0gZnJvbSAnaW9uaWNvbnMnO1xuaW1wb3J0IHsgY2hldnJvbkZvcndhcmQsIGhvbWUsIGVsbGlwc2lzSG9yaXpvbnRhbCB9IGZyb20gJ2lvbmljb25zL2ljb25zJztcblxuYWRkSWNvbnMoeyBjaGV2cm9uRm9yd2FyZCwgaG9tZSwgZWxsaXBzaXNIb3Jpem9udGFsIH0pO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtYnJlYWRjcnVtYicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIElvbkJyZWFkY3J1bWIsIElvbkJyZWFkY3J1bWJzLCBJb25JY29uXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8aW9uLWJyZWFkY3J1bWJzXG4gICAgICBbbWF4SXRlbXNdPVwicmVzb2x2ZWRQcm9wcy5tYXhJdGVtc1wiXG4gICAgICBbbW9kZV09XCJyZXNvbHZlZFByb3BzLm1vZGVcIlxuICAgICAgKGlvbkNvbGxhcHNlZENsaWNrKT1cIm9uQ29sbGFwc2VkQ2xpY2soJGV2ZW50KVwiXG4gICAgPlxuICAgICAgQGZvciAoaXRlbSBvZiByZXNvbHZlZFByb3BzLml0ZW1zOyB0cmFjayAkaW5kZXg7IGxldCBpc0xhc3QgPSAkbGFzdCkge1xuICAgICAgICA8aW9uLWJyZWFkY3J1bWJcbiAgICAgICAgICBbaHJlZl09XCJpdGVtLmhyZWZcIlxuICAgICAgICAgIFthY3RpdmVdPVwiaXRlbS5hY3RpdmUgfHwgaXNMYXN0XCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZFwiXG4gICAgICAgICAgW3NlcGFyYXRvcl09XCIhaXNMYXN0XCJcbiAgICAgICAgICAoY2xpY2spPVwib25CcmVhZGNydW1iQ2xpY2soJGV2ZW50LCBpdGVtLCAkaW5kZXgpXCJcbiAgICAgICAgPlxuICAgICAgICAgIEBpZiAoaXRlbS5pY29uKSB7XG4gICAgICAgICAgICA8aW9uLWljb24gW25hbWVdPVwiaXRlbS5pY29uXCIgc2xvdD1cInN0YXJ0XCI+PC9pb24taWNvbj5cbiAgICAgICAgICB9XG4gICAgICAgICAge3sgZ2V0SXRlbUxhYmVsKGl0ZW0pIH19XG4gICAgICAgICAgQGlmICghaXNMYXN0ICYmIHJlc29sdmVkUHJvcHMuc2VwYXJhdG9ySWNvbikge1xuICAgICAgICAgICAgPGlvbi1pY29uIFtuYW1lXT1cInJlc29sdmVkUHJvcHMuc2VwYXJhdG9ySWNvblwiIHNsb3Q9XCJzZXBhcmF0b3JcIj48L2lvbi1pY29uPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9pb24tYnJlYWRjcnVtYj5cbiAgICAgIH1cbiAgICA8L2lvbi1icmVhZGNydW1icz5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vYnJlYWRjcnVtYi5jb21wb25lbnQuc2NzcyddLFxufSlcbi8qKlxuICogdmFsLWJyZWFkY3J1bWJcbiAqXG4gKiBBIGJyZWFkY3J1bWIgbmF2aWdhdGlvbiBjb21wb25lbnQgZm9yIGhpZXJhcmNoaWNhbCBuYXZpZ2F0aW9uLlxuICogU3VwcG9ydHMgcHJlc2V0cyBmb3IgcmV1c2FibGUgY29uZmlndXJhdGlvbnMuXG4gKlxuICogQGV4YW1wbGUgV2l0aCBwcmVzZXQ6XG4gKiA8dmFsLWJyZWFkY3J1bWIgcHJlc2V0PVwiZGVmYXVsdFwiIFtwcm9wc109XCJ7IGl0ZW1zOiBbLi4uXSB9XCI+PC92YWwtYnJlYWRjcnVtYj5cbiAqXG4gKiBAZXhhbXBsZSBTdGF0aWM6XG4gKiA8dmFsLWJyZWFkY3J1bWIgW3Byb3BzXT1cIntcbiAqICAgaXRlbXM6IFtcbiAqICAgICB7IGxhYmVsOiAnSW5pY2lvJywgaHJlZjogJy8nLCBpY29uOiAnaG9tZScgfSxcbiAqICAgICB7IGxhYmVsOiAnUHJvZHVjdG9zJywgaHJlZjogJy9wcm9kdWN0cycgfSxcbiAqICAgICB7IGxhYmVsOiAnRWxlY3Ryw7NuaWNhJywgYWN0aXZlOiB0cnVlIH1cbiAqICAgXVxuICogfVwiPjwvdmFsLWJyZWFkY3J1bWI+XG4gKlxuICogQGlucHV0IHByZXNldDogc3RyaW5nIC0gTmFtZSBvZiBwcmVzZXQgdG8gYXBwbHlcbiAqIEBpbnB1dCBwcm9wczogQnJlYWRjcnVtYk1ldGFkYXRhIC0gQ29uZmlndXJhdGlvbiBmb3IgdGhlIGJyZWFkY3J1bWJcbiAqIEBvdXRwdXQgYnJlYWRjcnVtYkNsaWNrOiB7IGl0ZW06IEJyZWFkY3J1bWJJdGVtTWV0YWRhdGEsIGluZGV4OiBudW1iZXIgfVxuICovXG5leHBvcnQgY2xhc3MgQnJlYWRjcnVtYkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgcHJpdmF0ZSBwcmVzZXRzID0gaW5qZWN0KFByZXNldFNlcnZpY2UpO1xuXG4gIEBJbnB1dCgpIHByZXNldD86IHN0cmluZztcbiAgQElucHV0KCkgcHJvcHM6IFBhcnRpYWw8QnJlYWRjcnVtYk1ldGFkYXRhPiA9IHt9O1xuXG4gIHJlc29sdmVkUHJvcHM6IEJyZWFkY3J1bWJNZXRhZGF0YSA9IHt9IGFzIEJyZWFkY3J1bWJNZXRhZGF0YTtcblxuICBAT3V0cHV0KCkgYnJlYWRjcnVtYkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjx7IGl0ZW06IEJyZWFkY3J1bWJJdGVtTWV0YWRhdGE7IGluZGV4OiBudW1iZXIgfT4oKTtcbiAgQE91dHB1dCgpIGNvbGxhcHNlZENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudD4oKTtcblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnJlc29sdmVQcm9wcygpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzWydwcmVzZXQnXSB8fCBjaGFuZ2VzWydwcm9wcyddKSB7XG4gICAgICB0aGlzLnJlc29sdmVQcm9wcygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVzb2x2ZVByb3BzKCk6IHZvaWQge1xuICAgIGNvbnN0IHByZXNldFByb3BzID0gdGhpcy5wcmVzZXRcbiAgICAgID8gKHRoaXMucHJlc2V0cy5nZXQoJ2JyZWFkY3J1bWInLCB0aGlzLnByZXNldCkgYXMgUGFydGlhbDxCcmVhZGNydW1iTWV0YWRhdGE+KVxuICAgICAgOiB7fTtcblxuICAgIHRoaXMucmVzb2x2ZWRQcm9wcyA9IHtcbiAgICAgIC4uLnByZXNldFByb3BzLFxuICAgICAgLi4udGhpcy5wcm9wcyxcbiAgICB9IGFzIEJyZWFkY3J1bWJNZXRhZGF0YTtcbiAgfVxuXG4gIG9uQnJlYWRjcnVtYkNsaWNrKGV2ZW50OiBFdmVudCwgaXRlbTogQnJlYWRjcnVtYkl0ZW1NZXRhZGF0YSwgaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIGlmICghaXRlbS5kaXNhYmxlZCAmJiAhaXRlbS5hY3RpdmUpIHtcbiAgICAgIHRoaXMuYnJlYWRjcnVtYkNsaWNrLmVtaXQoeyBpdGVtLCBpbmRleCB9KTtcbiAgICB9XG4gIH1cblxuICBvbkNvbGxhcHNlZENsaWNrKGV2ZW50OiBDdXN0b21FdmVudCk6IHZvaWQge1xuICAgIHRoaXMuY29sbGFwc2VkQ2xpY2suZW1pdChldmVudCk7XG4gIH1cblxuICBnZXRJdGVtTGFiZWwoaXRlbTogQnJlYWRjcnVtYkl0ZW1NZXRhZGF0YSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGl0ZW0ubGFiZWwgfHwgaXRlbS5jb250ZW50RmFsbGJhY2sgfHwgJyc7XG4gIH1cbn1cbiJdfQ==
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsWUFBWSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNuRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTFELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDcEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFFMUUsUUFBUSxDQUFDLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxDQUFDLENBQUM7QUFrQ3ZEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkc7QUFDSCxNQUFNLE9BQU8sbUJBQW1CO0lBdERoQztRQXVEVSxZQUFPLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRy9CLFVBQUssR0FBZ0MsRUFBRSxDQUFDO1FBRWpELGtCQUFhLEdBQXVCLEVBQXdCLENBQUM7UUFFbkQsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBbUQsQ0FBQztRQUN0RixtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFlLENBQUM7S0FrQzVEO0lBaENDLFFBQVE7UUFDTixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUMxQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEIsQ0FBQztJQUNILENBQUM7SUFFTyxZQUFZO1FBQ2xCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFpQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFcEgsSUFBSSxDQUFDLGFBQWEsR0FBRztZQUNuQixHQUFHLFdBQVc7WUFDZCxHQUFHLElBQUksQ0FBQyxLQUFLO1NBQ1EsQ0FBQztJQUMxQixDQUFDO0lBRUQsaUJBQWlCLENBQUMsS0FBWSxFQUFFLElBQTRCLEVBQUUsS0FBYTtRQUN6RSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQzdDLENBQUM7SUFDSCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBa0I7UUFDakMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUE0QjtRQUN2QyxPQUFPLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLGVBQWUsSUFBSSxFQUFFLENBQUM7SUFDbEQsQ0FBQzsrR0ExQ1UsbUJBQW1CO21HQUFuQixtQkFBbUIsZ09BbERwQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlCVCx5aUJBMUJTLFlBQVksK0JBQUUsYUFBYSxvTUFBRSxjQUFjLGdKQUFFLE9BQU87OzRGQW1EbkQsbUJBQW1CO2tCQXREL0IsU0FBUzsrQkFDRSxnQkFBZ0IsY0FDZCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxPQUFPLENBQUMsWUFDckQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5QlQ7OEJBNEJRLE1BQU07c0JBQWQsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBSUksZUFBZTtzQkFBeEIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElvbkJyZWFkY3J1bWIsIElvbkJyZWFkY3J1bWJzLCBJb25JY29uIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUHJlc2V0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3ByZXNldHMnO1xuaW1wb3J0IHsgQnJlYWRjcnVtYk1ldGFkYXRhLCBCcmVhZGNydW1iSXRlbU1ldGFkYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBhZGRJY29ucyB9IGZyb20gJ2lvbmljb25zJztcbmltcG9ydCB7IGNoZXZyb25Gb3J3YXJkLCBob21lLCBlbGxpcHNpc0hvcml6b250YWwgfSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5cbmFkZEljb25zKHsgY2hldnJvbkZvcndhcmQsIGhvbWUsIGVsbGlwc2lzSG9yaXpvbnRhbCB9KTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWJyZWFkY3J1bWInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJb25CcmVhZGNydW1iLCBJb25CcmVhZGNydW1icywgSW9uSWNvbl0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGlvbi1icmVhZGNydW1ic1xuICAgICAgW21heEl0ZW1zXT1cInJlc29sdmVkUHJvcHMubWF4SXRlbXNcIlxuICAgICAgW21vZGVdPVwicmVzb2x2ZWRQcm9wcy5tb2RlXCJcbiAgICAgIChpb25Db2xsYXBzZWRDbGljayk9XCJvbkNvbGxhcHNlZENsaWNrKCRldmVudClcIlxuICAgID5cbiAgICAgIEBmb3IgKGl0ZW0gb2YgcmVzb2x2ZWRQcm9wcy5pdGVtczsgdHJhY2sgJGluZGV4OyBsZXQgaXNMYXN0ID0gJGxhc3QpIHtcbiAgICAgICAgPGlvbi1icmVhZGNydW1iXG4gICAgICAgICAgW2hyZWZdPVwiaXRlbS5ocmVmXCJcbiAgICAgICAgICBbYWN0aXZlXT1cIml0ZW0uYWN0aXZlIHx8IGlzTGFzdFwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWRcIlxuICAgICAgICAgIFtzZXBhcmF0b3JdPVwiIWlzTGFzdFwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1jdXJyZW50XT1cIml0ZW0uYWN0aXZlIHx8IGlzTGFzdCA/ICdwYWdlJyA6IG51bGxcIlxuICAgICAgICAgIChjbGljayk9XCJvbkJyZWFkY3J1bWJDbGljaygkZXZlbnQsIGl0ZW0sICRpbmRleClcIlxuICAgICAgICA+XG4gICAgICAgICAgQGlmIChpdGVtLmljb24pIHtcbiAgICAgICAgICAgIDxpb24taWNvbiBbbmFtZV09XCJpdGVtLmljb25cIiBzbG90PVwic3RhcnRcIj48L2lvbi1pY29uPlxuICAgICAgICAgIH1cbiAgICAgICAgICB7eyBnZXRJdGVtTGFiZWwoaXRlbSkgfX1cbiAgICAgICAgICBAaWYgKCFpc0xhc3QgJiYgcmVzb2x2ZWRQcm9wcy5zZXBhcmF0b3JJY29uKSB7XG4gICAgICAgICAgICA8aW9uLWljb24gW25hbWVdPVwicmVzb2x2ZWRQcm9wcy5zZXBhcmF0b3JJY29uXCIgc2xvdD1cInNlcGFyYXRvclwiPjwvaW9uLWljb24+XG4gICAgICAgICAgfVxuICAgICAgICA8L2lvbi1icmVhZGNydW1iPlxuICAgICAgfVxuICAgIDwvaW9uLWJyZWFkY3J1bWJzPlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9icmVhZGNydW1iLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuLyoqXG4gKiB2YWwtYnJlYWRjcnVtYlxuICpcbiAqIEEgYnJlYWRjcnVtYiBuYXZpZ2F0aW9uIGNvbXBvbmVudCBmb3IgaGllcmFyY2hpY2FsIG5hdmlnYXRpb24uXG4gKiBTdXBwb3J0cyBwcmVzZXRzIGZvciByZXVzYWJsZSBjb25maWd1cmF0aW9ucy5cbiAqXG4gKiBAZXhhbXBsZSBXaXRoIHByZXNldDpcbiAqIDx2YWwtYnJlYWRjcnVtYiBwcmVzZXQ9XCJkZWZhdWx0XCIgW3Byb3BzXT1cInsgaXRlbXM6IFsuLi5dIH1cIj48L3ZhbC1icmVhZGNydW1iPlxuICpcbiAqIEBleGFtcGxlIFN0YXRpYzpcbiAqIDx2YWwtYnJlYWRjcnVtYiBbcHJvcHNdPVwie1xuICogICBpdGVtczogW1xuICogICAgIHsgbGFiZWw6ICdJbmljaW8nLCBocmVmOiAnLycsIGljb246ICdob21lJyB9LFxuICogICAgIHsgbGFiZWw6ICdQcm9kdWN0b3MnLCBocmVmOiAnL3Byb2R1Y3RzJyB9LFxuICogICAgIHsgbGFiZWw6ICdFbGVjdHLDs25pY2EnLCBhY3RpdmU6IHRydWUgfVxuICogICBdXG4gKiB9XCI+PC92YWwtYnJlYWRjcnVtYj5cbiAqXG4gKiBAaW5wdXQgcHJlc2V0OiBzdHJpbmcgLSBOYW1lIG9mIHByZXNldCB0byBhcHBseVxuICogQGlucHV0IHByb3BzOiBCcmVhZGNydW1iTWV0YWRhdGEgLSBDb25maWd1cmF0aW9uIGZvciB0aGUgYnJlYWRjcnVtYlxuICogQG91dHB1dCBicmVhZGNydW1iQ2xpY2s6IHsgaXRlbTogQnJlYWRjcnVtYkl0ZW1NZXRhZGF0YSwgaW5kZXg6IG51bWJlciB9XG4gKi9cbmV4cG9ydCBjbGFzcyBCcmVhZGNydW1iQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBwcml2YXRlIHByZXNldHMgPSBpbmplY3QoUHJlc2V0U2VydmljZSk7XG5cbiAgQElucHV0KCkgcHJlc2V0Pzogc3RyaW5nO1xuICBASW5wdXQoKSBwcm9wczogUGFydGlhbDxCcmVhZGNydW1iTWV0YWRhdGE+ID0ge307XG5cbiAgcmVzb2x2ZWRQcm9wczogQnJlYWRjcnVtYk1ldGFkYXRhID0ge30gYXMgQnJlYWRjcnVtYk1ldGFkYXRhO1xuXG4gIEBPdXRwdXQoKSBicmVhZGNydW1iQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHsgaXRlbTogQnJlYWRjcnVtYkl0ZW1NZXRhZGF0YTsgaW5kZXg6IG51bWJlciB9PigpO1xuICBAT3V0cHV0KCkgY29sbGFwc2VkQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PigpO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMucmVzb2x2ZVByb3BzKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXNbJ3ByZXNldCddIHx8IGNoYW5nZXNbJ3Byb3BzJ10pIHtcbiAgICAgIHRoaXMucmVzb2x2ZVByb3BzKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlUHJvcHMoKTogdm9pZCB7XG4gICAgY29uc3QgcHJlc2V0UHJvcHMgPSB0aGlzLnByZXNldCA/ICh0aGlzLnByZXNldHMuZ2V0KCdicmVhZGNydW1iJywgdGhpcy5wcmVzZXQpIGFzIFBhcnRpYWw8QnJlYWRjcnVtYk1ldGFkYXRhPikgOiB7fTtcblxuICAgIHRoaXMucmVzb2x2ZWRQcm9wcyA9IHtcbiAgICAgIC4uLnByZXNldFByb3BzLFxuICAgICAgLi4udGhpcy5wcm9wcyxcbiAgICB9IGFzIEJyZWFkY3J1bWJNZXRhZGF0YTtcbiAgfVxuXG4gIG9uQnJlYWRjcnVtYkNsaWNrKGV2ZW50OiBFdmVudCwgaXRlbTogQnJlYWRjcnVtYkl0ZW1NZXRhZGF0YSwgaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIGlmICghaXRlbS5kaXNhYmxlZCAmJiAhaXRlbS5hY3RpdmUpIHtcbiAgICAgIHRoaXMuYnJlYWRjcnVtYkNsaWNrLmVtaXQoeyBpdGVtLCBpbmRleCB9KTtcbiAgICB9XG4gIH1cblxuICBvbkNvbGxhcHNlZENsaWNrKGV2ZW50OiBDdXN0b21FdmVudCk6IHZvaWQge1xuICAgIHRoaXMuY29sbGFwc2VkQ2xpY2suZW1pdChldmVudCk7XG4gIH1cblxuICBnZXRJdGVtTGFiZWwoaXRlbTogQnJlYWRjcnVtYkl0ZW1NZXRhZGF0YSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGl0ZW0ubGFiZWwgfHwgaXRlbS5jb250ZW50RmFsbGJhY2sgfHwgJyc7XG4gIH1cbn1cbiJdfQ==