valtech-components 4.0.167 → 4.0.168

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.
@@ -148,6 +148,9 @@ export class TicketCardComponent {
148
148
  folio: p.folio,
149
149
  folioLabel: p.shareFolioLabel,
150
150
  buyerName: p.buyerName,
151
+ eventDate: p.shareEventDate,
152
+ eventLocation: p.shareEventLocation,
153
+ scanHint: p.shareScanHint,
151
154
  };
152
155
  }
153
156
  async copyToClipboard(config, p) {
@@ -301,4 +304,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
301
304
  </div>
302
305
  `, styles: ["@charset \"UTF-8\";:host{display:block}.ticket-card{display:flex;flex-direction:column;align-items:center;gap:12px;padding:20px;border:1px solid var(--ion-color-light-shade, #e0e0e0);border-radius:16px;background:var(--ion-card-background, #ffffff);max-width:320px;margin:0 auto}.ticket-card__title{font-size:1rem;font-weight:700;color:var(--ion-color-dark);text-align:center}.ticket-card__qr{display:flex;align-items:center;justify-content:center;min-height:200px}.ticket-card__qr-loading{display:flex;align-items:center;justify-content:center;width:200px;height:200px}.ticket-card__qr-fallback{font-family:monospace;font-size:.75rem;color:var(--ion-color-medium);word-break:break-all;text-align:center;padding:16px}.ticket-card__meta{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center}.ticket-card__folio{font-size:1rem;font-weight:700;color:var(--ion-color-dark)}.ticket-card__buyer{font-size:.875rem;color:var(--ion-color-medium)}.ticket-card__badge{margin-top:4px;font-size:.75rem;font-weight:600;padding:3px 12px;border-radius:999px;background:var(--ion-color-medium);color:var(--ion-color-medium-contrast, #fff);white-space:nowrap}.ticket-card__badge[data-status=sold]{background:var(--ion-color-success, #2dd36f);color:var(--ion-color-success-contrast, #fff)}.ticket-card__badge[data-status=checkedIn]{background:var(--ion-color-medium);color:var(--ion-color-medium-contrast, #fff)}.ticket-card__actions{width:100%;display:flex;flex-direction:column;gap:8px}.ticket-card__actions ion-button{--border-radius: 10px;margin:0}\n"] }]
303
306
  }], ctorParameters: () => [] });
304
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlja2V0LWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy90aWNrZXQtY2FyZC90aWNrZXQtY2FyZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRXhFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBRXpGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDL0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFFdkcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBRXREOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQXVESCxNQUFNLE9BQU8sbUJBQW1CO0lBa0I5QjtRQWpCQSx5Q0FBeUM7UUFDaEMsVUFBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQXNCLENBQUM7UUFFOUMsY0FBUyxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FB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UUFDN0IsR0FBRyxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsT0FBTyxDQUFDLENBQVc7UUFDakIsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3ZCLE9BQU87WUFDTCxFQUFFLEVBQUUsQ0FBQztZQUNMLFdBQVcsRUFBRSxDQUFDLENBQUMsTUFBTSxJQUFJLEdBQUc7WUFDNUIsWUFBWSxFQUFFLEtBQUs7WUFDbkIsU0FBUyxFQUFFLEtBQUs7WUFDaEIsVUFBVSxFQUFFLEtBQUs7WUFDakIsR0FBRyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxJQUFJO1lBQzdCLGFBQWEsRUFBRSxDQUFDLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO1lBQ3BELFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztZQUMzQixVQUFVLEVBQUUsQ0FBQyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksSUFBSTtTQUNoRCxDQUFDO0lBQ0osQ0FBQzsrR0EzTFUsbUJBQW1CO21HQUFuQixtQkFBbUIsOE1BbERwQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErQ1Qsa21EQWhEUyxZQUFZLCtCQUFFLFNBQVMsb1BBQUUsT0FBTywySkFBRSxVQUFVLHlHQUFFLGVBQWU7OzRGQW1ENUQsbUJBQW1CO2tCQXREL0IsU0FBUzsrQkFDRSxpQkFBaUIsY0FDZixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsZUFBZSxDQUFDLFlBQzlEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQStDVCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGVmZmVjdCwgaW5qZWN0LCBpbnB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW9uQnV0dG9uLCBJb25JY29uLCBJb25TcGlubmVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBhZGRJY29ucyB9IGZyb20gJ2lvbmljb25zJztcbmltcG9ydCB7IGRvd25sb2FkT3V0bGluZSwgc2hhcmVPdXRsaW5lIH0gZnJvbSAnaW9uaWNvbnMvaWNvbnMnO1xuXG5pbXBvcnQgeyBRckNvZGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9xci1jb2RlL3FyLWNvZGUuY29tcG9uZW50JztcbmltcG9ydCB7IFFyQ29kZU1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vYXRvbXMvcXItY29kZS90eXBlcyc7XG5pbXBvcnQgeyBRckdlbmVyYXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9xci1nZW5lcmF0b3IvcXItZ2VuZXJhdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgUXJSZXN1bHQgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9xci1nZW5lcmF0b3IvdHlwZXMnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3RvYXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgVGlja2V0Q2FyZEltYWdlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3RpY2tldC1jYXJkLWltYWdlL3RpY2tldC1jYXJkLWltYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgVGlja2V0Q2FyZE1ldGFkYXRhLCBUaWNrZXRDYXJkU3RhdHVzIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBUSUNLRVRfQ0FSRF9JMThOIH0gZnJvbSAnLi90aWNrZXQtY2FyZC5pMThuJztcblxuLyoqXG4gKiB2YWwtdGlja2V0LWNhcmRcbiAqXG4gKiBUYXJqZXRhIHByZXNlbnRhY2lvbmFsIGRlIHVuYSBlbnRyYWRhIGRlIGJpbmdvOiBtdWVzdHJhIGVsIFFSIGVzY2FuZWFibGVcbiAqIChnZW5lcmFkbyBkZWwgYHFyVG9rZW5gIG9wYWNvIGZpcm1hZG8gdsOtYSBgUXJHZW5lcmF0b3JTZXJ2aWNlYCksIGVsIGZvbGlvLCBlbFxuICogbm9tYnJlIGRlbCBjb21wcmFkb3IgKHNpIGhheSkgeSB1biBiYWRnZSBkZSBlc3RhZG8gKHZlbmRpZGEgLyBjYW5qZWFkYSkuXG4gKlxuICogRXMgbGEgcGllemEgcXVlIGVsIHZlbmRlZG9yIGxlIGVudHJlZ2EgYWwgY29tcHJhZG9yIHRyYXMgbGEgdmVudGEgeSBxdWUgbGFcbiAqIHRhcXVpbGxhIGVzY2FuZWEgcGFyYSBjYW5qZWFyLiBPYmplY3QtZmlyc3QgKGBpbnB1dCgpYCBzaWduYWwpLCBpMThuXG4gKiBhdXRvLXJlZ2lzdHJhZG8gKG5hbWVzcGFjZSBgVGlja2V0Q2FyZGApLiBFc3RhZG9zIG5lZ2F0aXZvcy9uZXV0cm9zIGVuIGdyaXNcbiAqIG11dGVkIChjb252ZW5jacOzbiBkZWwgZmFjdG9yeSDigJQgc2luIHJvam8gZGUgYWxhcm1hKS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPHZhbC10aWNrZXQtY2FyZCBbcHJvcHNdPVwieyBxclRva2VuOiB0aWNrZXQucXJUb2tlbiwgZm9saW86IHRpY2tldC5mb2xpbyxcbiAqICAgYnV5ZXJOYW1lOiB0aWNrZXQuY29tcHJhZG9yTm9tYnJlLCBzdGF0dXM6ICdzb2xkJywgc2hvd1NoYXJlOiB0cnVlIH1cIiAvPlxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC10aWNrZXQtY2FyZCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIElvbkJ1dHRvbiwgSW9uSWNvbiwgSW9uU3Bpbm5lciwgUXJDb2RlQ29tcG9uZW50XSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwidGlja2V0LWNhcmRcIj5cbiAgICAgIEBpZiAocHJvcHMoKS50aXRsZSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwidGlja2V0LWNhcmRfX3RpdGxlXCI+e3sgcHJvcHMoKS50aXRsZSB9fTwvZGl2PlxuICAgICAgfVxuXG4gICAgICA8ZGl2IGNsYXNzPVwidGlja2V0LWNhcmRfX3FyXCI+XG4gICAgICAgIEBpZiAocXIoKTsgYXMgcSkge1xuICAgICAgICAgIDx2YWwtcXItY29kZSBbcHJvcHNdPVwicXJQcm9wcyhxKVwiIC8+XG4gICAgICAgIH0gQGVsc2UgaWYgKGZhaWxlZCgpKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRpY2tldC1jYXJkX19xci1mYWxsYmFja1wiPnt7IHRva2VuU2hvcnQoKSB9fTwvZGl2PlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGlja2V0LWNhcmRfX3FyLWxvYWRpbmdcIj5cbiAgICAgICAgICAgIDxpb24tc3Bpbm5lciBuYW1lPVwiY3Jlc2NlbnRcIiBhcmlhLWxhYmVsPVwiR2VuZXJhbmRvIFFSXCIgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0aWNrZXQtY2FyZF9fbWV0YVwiPlxuICAgICAgICBAaWYgKGZvbGlvVGV4dCgpOyBhcyBmKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRpY2tldC1jYXJkX19mb2xpb1wiPnt7IGYgfX08L2Rpdj5cbiAgICAgICAgfVxuICAgICAgICBAaWYgKHByb3BzKCkuYnV5ZXJOYW1lKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRpY2tldC1jYXJkX19idXllclwiPnt7IHByb3BzKCkuYnV5ZXJOYW1lIH19PC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAgQGlmIChzdGF0dXNMYWJlbCgpOyBhcyBzKSB7XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aWNrZXQtY2FyZF9fYmFkZ2VcIiBbYXR0ci5kYXRhLXN0YXR1c109XCJzdGF0dXMoKVwiPnt7IHMgfX08L3NwYW4+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuXG4gICAgICBAaWYgKChwcm9wcygpLnNob3dEb3dubG9hZCB8fCBwcm9wcygpLnNob3dTaGFyZSkgJiYgcXIoKSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwidGlja2V0LWNhcmRfX2FjdGlvbnNcIj5cbiAgICAgICAgICBAaWYgKHByb3BzKCkuc2hvd0Rvd25sb2FkKSB7XG4gICAgICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwib3V0bGluZVwiIGV4cGFuZD1cImJsb2NrXCIgW2Rpc2FibGVkXT1cImRvd25sb2FkaW5nKClcIiAoY2xpY2spPVwiZG93bmxvYWRDYXJkKClcIj5cbiAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJkb3dubG9hZC1vdXRsaW5lXCIgc2xvdD1cInN0YXJ0XCIgLz5cbiAgICAgICAgICAgICAge3sgcHJvcHMoKS5kb3dubG9hZExhYmVsIHx8IHQoJ2Rvd25sb2FkJykgfX1cbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmIChwcm9wcygpLnNob3dTaGFyZSkge1xuICAgICAgICAgICAgPGlvbi1idXR0b24gZmlsbD1cIm91dGxpbmVcIiBleHBhbmQ9XCJibG9ja1wiIFtkaXNhYmxlZF09XCJzaGFyaW5nKClcIiAoY2xpY2spPVwic2hhcmVDYXJkKClcIj5cbiAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJzaGFyZS1vdXRsaW5lXCIgc2xvdD1cInN0YXJ0XCIgLz5cbiAgICAgICAgICAgICAge3sgcHJvcHMoKS5zaGFyZUxhYmVsIHx8IHQoJ3NoYXJlJykgfX1cbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi90aWNrZXQtY2FyZC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBUaWNrZXRDYXJkQ29tcG9uZW50IHtcbiAgLyoqIFByb3BzIG9iamVjdC1maXJzdCBkZWwgY29tcG9uZW50ZS4gKi9cbiAgcmVhZG9ubHkgcHJvcHMgPSBpbnB1dC5yZXF1aXJlZDxUaWNrZXRDYXJkTWV0YWRhdGE+KCk7XG5cbiAgcHJpdmF0ZSBxclNlcnZpY2UgPSBpbmplY3QoUXJHZW5lcmF0b3JTZXJ2aWNlKTtcbiAgcHJpdmF0ZSB0aWNrZXRDYXJkSW1hZ2VTZXJ2aWNlID0gaW5qZWN0KFRpY2tldENhcmRJbWFnZVNlcnZpY2UpO1xuICBwcml2YXRlIGkxOG4gPSBpbmplY3QoSTE4blNlcnZpY2UpO1xuICBwcml2YXRlIHRvYXN0ID0gaW5qZWN0KFRvYXN0U2VydmljZSk7XG5cbiAgLyoqIFFSIGdlbmVyYWRvIChudWxsIG1pZW50cmFzIGNhcmdhIG8gc2kgZmFsbMOzKS4gKi9cbiAgcmVhZG9ubHkgcXIgPSBzaWduYWw8UXJSZXN1bHQgfCBudWxsPihudWxsKTtcbiAgLyoqIEZhbGzDsyBsYSBnZW5lcmFjacOzbiBkZWwgUVIg4oaSIGZhbGxiYWNrIGFsIHRva2VuIGNvcnRvLiAqL1xuICByZWFkb25seSBmYWlsZWQgPSBzaWduYWwoZmFsc2UpO1xuICAvKiogVHJ1ZSBtaWVudHJhcyBzZSBnZW5lcmEgeSBjb21wYXJ0ZSBsYSB0YXJqZXRhIGJyYW5kZWQuICovXG4gIHJlYWRvbmx5IHNoYXJpbmcgPSBzaWduYWwoZmFsc2UpO1xuICAvKiogVHJ1ZSBtaWVudHJhcyBzZSBnZW5lcmEgeSBkZXNjYXJnYSBsYSB0YXJqZXRhIGJyYW5kZWQuICovXG4gIHJlYWRvbmx5IGRvd25sb2FkaW5nID0gc2lnbmFsKGZhbHNlKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBhZGRJY29ucyh7IHNoYXJlT3V0bGluZSwgZG93bmxvYWRPdXRsaW5lIH0pO1xuICAgIHRoaXMuaTE4bi5yZWdpc3RlckRlZmF1bHRzKCdUaWNrZXRDYXJkJywgVElDS0VUX0NBUkRfSTE4Tik7XG5cbiAgICAvLyBSZWdlbmVyYSBlbCBRUiBjdWFuZG8gY2FtYmlhIGVsIHRva2VuIG8gZWwgdGFtYcOxby5cbiAgICBlZmZlY3QoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5wcm9wcygpLnFyVG9rZW47XG4gICAgICAgIGNvbnN0IHNpemUgPSB0aGlzLnByb3BzKCkucXJTaXplID8/IDIwMDtcbiAgICAgICAgaWYgKCF0b2tlbikge1xuICAgICAgICAgIHRoaXMucXIuc2V0KG51bGwpO1xuICAgICAgICAgIHRoaXMuZmFpbGVkLnNldChmYWxzZSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHZvaWQgdGhpcy5nZW5lcmF0ZSh0b2tlbiwgc2l6ZSk7XG4gICAgICB9LFxuICAgICAgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9XG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2VuZXJhdGUoZGF0YTogc3RyaW5nLCBzaXplOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmZhaWxlZC5zZXQoZmFsc2UpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnFyU2VydmljZS5nZW5lcmF0ZSh7XG4gICAgICAgIGRhdGEsXG4gICAgICAgIHdpZHRoOiBzaXplLFxuICAgICAgICBoZWlnaHQ6IHNpemUsXG4gICAgICAgIG1hcmdpbjogMSxcbiAgICAgICAgZG90c1N0eWxlOiAnc3F1YXJlJyxcbiAgICAgICAgZG90c0NvbG9yOiAnIzAwMDAwMCcsXG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogJyNmZmZmZmYnLFxuICAgICAgICBlcnJvckNvcnJlY3Rpb25MZXZlbDogJ00nLFxuICAgICAgICBmb3JtYXQ6ICdwbmcnLFxuICAgICAgfSk7XG4gICAgICB0aGlzLnFyLnNldChyZXN1bHQpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gU2luIHRvYXN0L3Rocm93IOKAlCBlbCBmYWxsYmFjayBtdWVzdHJhIGVsIHRva2VuIGNvcnRvLiBFbCBjb25zdW1lclxuICAgICAgLy8gc2lndWUgcHVkaWVuZG8gY2FuamVhciB0aXBlYW5kby9lc2NhbmVhbmRvIHNpIGhhY2UgZmFsdGEuXG4gICAgICB0aGlzLnFyLnNldChudWxsKTtcbiAgICAgIHRoaXMuZmFpbGVkLnNldCh0cnVlKTtcbiAgICB9XG4gIH1cblxuICB0KGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pMThuLnQoa2V5LCAnVGlja2V0Q2FyZCcpO1xuICB9XG5cbiAgcmVhZG9ubHkgc3RhdHVzID0gY29tcHV0ZWQ8VGlja2V0Q2FyZFN0YXR1cz4oKCkgPT4gdGhpcy5wcm9wcygpLnN0YXR1cyA/PyAnbmV1dHJhbCcpO1xuXG4gIHJlYWRvbmx5IHRva2VuU2hvcnQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgdGsgPSB0aGlzLnByb3BzKCkucXJUb2tlbiA/PyAnJztcbiAgICByZXR1cm4gdGsubGVuZ3RoID4gMTYgPyBgJHt0ay5zbGljZSgwLCAxNil94oCmYCA6IHRrO1xuICB9KTtcblxuICByZWFkb25seSBmb2xpb1RleHQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICBjb25zdCBmb2xpbyA9IHRoaXMucHJvcHMoKS5mb2xpbztcbiAgICBpZiAoZm9saW8gPT09IHVuZGVmaW5lZCB8fCBmb2xpbyA9PT0gbnVsbCB8fCBmb2xpbyA9PT0gJycpIHJldHVybiAnJztcbiAgICBjb25zdCBsYWJlbCA9IHRoaXMucHJvcHMoKS5mb2xpb0xhYmVsID8/IHRoaXMudCgnZm9saW8nKTtcbiAgICByZXR1cm4gYCR7bGFiZWx9ICMke2ZvbGlvfWA7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IHN0YXR1c0xhYmVsID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgY29uc3Qgc3RhdHVzID0gdGhpcy5zdGF0dXMoKTtcbiAgICBpZiAoc3RhdHVzID09PSAnc29sZCcpIHtcbiAgICAgIHJldHVybiB0aGlzLnByb3BzKCkuc3RhdHVzU29sZExhYmVsID8/IHRoaXMudCgnc3RhdHVzU29sZCcpO1xuICAgIH1cbiAgICBpZiAoc3RhdHVzID09PSAnY2hlY2tlZEluJykge1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMoKS5zdGF0dXNDaGVja2VkSW5MYWJlbCA/PyB0aGlzLnQoJ3N0YXR1c0NoZWNrZWRJbicpO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH0pO1xuXG4gIGFzeW5jIHNoYXJlQ2FyZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBxID0gdGhpcy5xcigpO1xuICAgIGlmICghcSkgcmV0dXJuO1xuICAgIGNvbnN0IHAgPSB0aGlzLnByb3BzKCk7XG4gICAgdGhpcy5zaGFyaW5nLnNldCh0cnVlKTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgY29uZmlnID0gdGhpcy5idWlsZEltYWdlQ29uZmlnKHEsIHApO1xuICAgICAgY29uc3Qgc2hhcmVkID0gYXdhaXQgdGhpcy50aWNrZXRDYXJkSW1hZ2VTZXJ2aWNlLnNoYXJlKGNvbmZpZywgcC50aXRsZSB8fCBwLnNoYXJlQnJhbmROYW1lKTtcbiAgICAgIGlmICghc2hhcmVkKSB7XG4gICAgICAgIGF3YWl0IHRoaXMuY29weVRvQ2xpcGJvYXJkKGNvbmZpZywgcCk7XG4gICAgICB9XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuc2hhcmluZy5zZXQoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGRvd25sb2FkQ2FyZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBxID0gdGhpcy5xcigpO1xuICAgIGlmICghcSkgcmV0dXJuO1xuICAgIGNvbnN0IHAgPSB0aGlzLnByb3BzKCk7XG4gICAgdGhpcy5kb3dubG9hZGluZy5zZXQodHJ1ZSk7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMudHJpZ2dlckRvd25sb2FkKHRoaXMuYnVpbGRJbWFnZUNvbmZpZyhxLCBwKSwgcCk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuZG93bmxvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkSW1hZ2VDb25maWcocTogUXJSZXN1bHQsIHA6IFRpY2tldENhcmRNZXRhZGF0YSkge1xuICAgIHJldHVybiB7XG4gICAgICBxckRhdGFVcmw6IHEuZGF0YVVybCxcbiAgICAgIGxvZ29Vcmw6IHAuc2hhcmVMb2dvVXJsLFxuICAgICAgYnJhbmRDb2xvcjogcC5zaGFyZUJyYW5kQ29sb3IsXG4gICAgICBicmFuZENvbG9yVG86IHAuc2hhcmVCcmFuZENvbG9yVG8sXG4gICAgICBicmFuZE5hbWU6IHAuc2hhcmVCcmFuZE5hbWUsXG4gICAgICBmb2xpbzogcC5mb2xpbyxcbiAgICAgIGZvbGlvTGFiZWw6IHAuc2hhcmVGb2xpb0xhYmVsLFxuICAgICAgYnV5ZXJOYW1lOiBwLmJ1eWVyTmFtZSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjb3B5VG9DbGlwYm9hcmQoXG4gICAgY29uZmlnOiBQYXJhbWV0ZXJzPHR5cGVvZiB0aGlzLnRpY2tldENhcmRJbWFnZVNlcnZpY2UuZ2VuZXJhdGU+WzBdLFxuICAgIHA6IFRpY2tldENhcmRNZXRhZGF0YVxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvLyBJbnRlbnRhIGNvcGlhciBsYSBpbWFnZW4gYnJhbmRlZCBhbCBjbGlwYm9hcmQgKENocm9tZS9FZGdlL1NhZmFyaSBkZXNrdG9wKS5cbiAgICBpZiAodHlwZW9mIENsaXBib2FyZEl0ZW0gIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBibG9iID0gYXdhaXQgdGhpcy50aWNrZXRDYXJkSW1hZ2VTZXJ2aWNlLmdlbmVyYXRlKGNvbmZpZyk7XG4gICAgICAgIGF3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGUoW25ldyBDbGlwYm9hcmRJdGVtKHsgJ2ltYWdlL3BuZyc6IGJsb2IgfSldKTtcbiAgICAgICAgdGhpcy50b2FzdC5zaG93KHsgbWVzc2FnZTogdGhpcy50KCdjb3BpZWQnKSwgZHVyYXRpb246IDIwMDAgfSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICAvLyBDbGlwYm9hcmRJdGVtIG5vIHNvcG9ydGFkbyBvIHBlcm1pc28gZGVuZWdhZG8g4oaSIGNhZXIgYSB0ZXh0b1xuICAgICAgfVxuICAgIH1cbiAgICAvLyBGYWxsYmFjazogY29waWEgVVJMIG8gdGV4dG8gZm9saW9cbiAgICBjb25zdCB0ZXh0ID0gKChwLnNoYXJlVXJsID8/IHRoaXMuZm9saW9UZXh0KCkpIHx8IHAuc2hhcmVCcmFuZE5hbWUpID8/ICcnO1xuICAgIGlmICghdGV4dCkgcmV0dXJuO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0ZXh0KTtcbiAgICAgIHRoaXMudG9hc3Quc2hvdyh7IG1lc3NhZ2U6IHRoaXMudChwLnNoYXJlVXJsID8gJ2NvcGllZFVybCcgOiAnY29waWVkJyksIGR1cmF0aW9uOiAyMDAwIH0pO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gY2xpcGJvYXJkIG5vIGRpc3BvbmlibGUg4oCUIHNpbGVuY2lvc29cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHRyaWdnZXJEb3dubG9hZChcbiAgICBjb25maWc6IFBhcmFtZXRlcnM8dHlwZW9mIHRoaXMudGlja2V0Q2FyZEltYWdlU2VydmljZS5nZW5lcmF0ZT5bMF0sXG4gICAgcDogVGlja2V0Q2FyZE1ldGFkYXRhXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGJsb2IgPSBhd2FpdCB0aGlzLnRpY2tldENhcmRJbWFnZVNlcnZpY2UuZ2VuZXJhdGUoY29uZmlnKTtcbiAgICBjb25zdCB1cmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xuICAgIGNvbnN0IGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG4gICAgYS5ocmVmID0gdXJsO1xuICAgIGEuZG93bmxvYWQgPSBgZW50cmFkYS0ke3AuZm9saW8gPz8gJ2JpbmdvJ30ucG5nYDtcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpO1xuICAgIGEuY2xpY2soKTtcbiAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGEpO1xuICAgIFVSTC5yZXZva2VPYmplY3RVUkwodXJsKTtcbiAgfVxuXG4gIHFyUHJvcHMocTogUXJSZXN1bHQpOiBRckNvZGVNZXRhZGF0YSB7XG4gICAgY29uc3QgcCA9IHRoaXMucHJvcHMoKTtcbiAgICByZXR1cm4ge1xuICAgICAgcXI6IHEsXG4gICAgICBkaXNwbGF5U2l6ZTogcC5xclNpemUgPz8gMjAwLFxuICAgICAgc2hvd0Rvd25sb2FkOiBmYWxzZSxcbiAgICAgIHNob3dTaGFyZTogZmFsc2UsXG4gICAgICBzaG93Qm9yZGVyOiBmYWxzZSxcbiAgICAgIGFsdDogdGhpcy5mb2xpb1RleHQoKSB8fCAnUVInLFxuICAgICAgZG93bmxvYWRMYWJlbDogcC5kb3dubG9hZExhYmVsID8/IHRoaXMudCgnZG93bmxvYWQnKSxcbiAgICAgIHNoYXJlTGFiZWw6IHRoaXMudCgnc2hhcmUnKSxcbiAgICAgIHNoYXJlVGl0bGU6IHAudGl0bGUgfHwgdGhpcy5mb2xpb1RleHQoKSB8fCAnUVInLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
307
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlja2V0LWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy90aWNrZXQtY2FyZC90aWNrZXQtY2FyZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRXhFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBRXpGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDL0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFFdkcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBRXREOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQXVESCxNQUFNLE9BQU8sbUJBQW1CO0lBa0I5QjtRQWpCQSx5Q0FBeUM7UUFDaEMsVUFBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQXNCLENBQUM7UUFFOUMsY0FBUyxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FB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O0dBK0NUIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgZWZmZWN0LCBpbmplY3QsIGlucHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJb25CdXR0b24sIElvbkljb24sIElvblNwaW5uZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IGFkZEljb25zIH0gZnJvbSAnaW9uaWNvbnMnO1xuaW1wb3J0IHsgZG93bmxvYWRPdXRsaW5lLCBzaGFyZU91dGxpbmUgfSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5cbmltcG9ydCB7IFFyQ29kZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL3FyLWNvZGUvcXItY29kZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUXJDb2RlTWV0YWRhdGEgfSBmcm9tICcuLi8uLi9hdG9tcy9xci1jb2RlL3R5cGVzJztcbmltcG9ydCB7IFFyR2VuZXJhdG9yU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3FyLWdlbmVyYXRvci9xci1nZW5lcmF0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBRclJlc3VsdCB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3FyLWdlbmVyYXRvci90eXBlcyc7XG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4nO1xuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdG9hc3Quc2VydmljZSc7XG5pbXBvcnQgeyBUaWNrZXRDYXJkSW1hZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdGlja2V0LWNhcmQtaW1hZ2UvdGlja2V0LWNhcmQtaW1hZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBUaWNrZXRDYXJkTWV0YWRhdGEsIFRpY2tldENhcmRTdGF0dXMgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IFRJQ0tFVF9DQVJEX0kxOE4gfSBmcm9tICcuL3RpY2tldC1jYXJkLmkxOG4nO1xuXG4vKipcbiAqIHZhbC10aWNrZXQtY2FyZFxuICpcbiAqIFRhcmpldGEgcHJlc2VudGFjaW9uYWwgZGUgdW5hIGVudHJhZGEgZGUgYmluZ286IG11ZXN0cmEgZWwgUVIgZXNjYW5lYWJsZVxuICogKGdlbmVyYWRvIGRlbCBgcXJUb2tlbmAgb3BhY28gZmlybWFkbyB2w61hIGBRckdlbmVyYXRvclNlcnZpY2VgKSwgZWwgZm9saW8sIGVsXG4gKiBub21icmUgZGVsIGNvbXByYWRvciAoc2kgaGF5KSB5IHVuIGJhZGdlIGRlIGVzdGFkbyAodmVuZGlkYSAvIGNhbmplYWRhKS5cbiAqXG4gKiBFcyBsYSBwaWV6YSBxdWUgZWwgdmVuZGVkb3IgbGUgZW50cmVnYSBhbCBjb21wcmFkb3IgdHJhcyBsYSB2ZW50YSB5IHF1ZSBsYVxuICogdGFxdWlsbGEgZXNjYW5lYSBwYXJhIGNhbmplYXIuIE9iamVjdC1maXJzdCAoYGlucHV0KClgIHNpZ25hbCksIGkxOG5cbiAqIGF1dG8tcmVnaXN0cmFkbyAobmFtZXNwYWNlIGBUaWNrZXRDYXJkYCkuIEVzdGFkb3MgbmVnYXRpdm9zL25ldXRyb3MgZW4gZ3Jpc1xuICogbXV0ZWQgKGNvbnZlbmNpw7NuIGRlbCBmYWN0b3J5IOKAlCBzaW4gcm9qbyBkZSBhbGFybWEpLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBodG1sXG4gKiA8dmFsLXRpY2tldC1jYXJkIFtwcm9wc109XCJ7IHFyVG9rZW46IHRpY2tldC5xclRva2VuLCBmb2xpbzogdGlja2V0LmZvbGlvLFxuICogICBidXllck5hbWU6IHRpY2tldC5jb21wcmFkb3JOb21icmUsIHN0YXR1czogJ3NvbGQnLCBzaG93U2hhcmU6IHRydWUgfVwiIC8+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLXRpY2tldC1jYXJkJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSW9uQnV0dG9uLCBJb25JY29uLCBJb25TcGlubmVyLCBRckNvZGVDb21wb25lbnRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJ0aWNrZXQtY2FyZFwiPlxuICAgICAgQGlmIChwcm9wcygpLnRpdGxlKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aWNrZXQtY2FyZF9fdGl0bGVcIj57eyBwcm9wcygpLnRpdGxlIH19PC9kaXY+XG4gICAgICB9XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0aWNrZXQtY2FyZF9fcXJcIj5cbiAgICAgICAgQGlmIChxcigpOyBhcyBxKSB7XG4gICAgICAgICAgPHZhbC1xci1jb2RlIFtwcm9wc109XCJxclByb3BzKHEpXCIgLz5cbiAgICAgICAgfSBAZWxzZSBpZiAoZmFpbGVkKCkpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGlja2V0LWNhcmRfX3FyLWZhbGxiYWNrXCI+e3sgdG9rZW5TaG9ydCgpIH19PC9kaXY+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aWNrZXQtY2FyZF9fcXItbG9hZGluZ1wiPlxuICAgICAgICAgICAgPGlvbi1zcGlubmVyIG5hbWU9XCJjcmVzY2VudFwiIGFyaWEtbGFiZWw9XCJHZW5lcmFuZG8gUVJcIiAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cInRpY2tldC1jYXJkX19tZXRhXCI+XG4gICAgICAgIEBpZiAoZm9saW9UZXh0KCk7IGFzIGYpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGlja2V0LWNhcmRfX2ZvbGlvXCI+e3sgZiB9fTwvZGl2PlxuICAgICAgICB9XG4gICAgICAgIEBpZiAocHJvcHMoKS5idXllck5hbWUpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGlja2V0LWNhcmRfX2J1eWVyXCI+e3sgcHJvcHMoKS5idXllck5hbWUgfX08L2Rpdj5cbiAgICAgICAgfVxuICAgICAgICBAaWYgKHN0YXR1c0xhYmVsKCk7IGFzIHMpIHtcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpY2tldC1jYXJkX19iYWRnZVwiIFthdHRyLmRhdGEtc3RhdHVzXT1cInN0YXR1cygpXCI+e3sgcyB9fTwvc3Bhbj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG5cbiAgICAgIEBpZiAoKHByb3BzKCkuc2hvd0Rvd25sb2FkIHx8IHByb3BzKCkuc2hvd1NoYXJlKSAmJiBxcigpKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aWNrZXQtY2FyZF9fYWN0aW9uc1wiPlxuICAgICAgICAgIEBpZiAocHJvcHMoKS5zaG93RG93bmxvYWQpIHtcbiAgICAgICAgICAgIDxpb24tYnV0dG9uIGZpbGw9XCJvdXRsaW5lXCIgZXhwYW5kPVwiYmxvY2tcIiBbZGlzYWJsZWRdPVwiZG93bmxvYWRpbmcoKVwiIChjbGljayk9XCJkb3dubG9hZENhcmQoKVwiPlxuICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImRvd25sb2FkLW91dGxpbmVcIiBzbG90PVwic3RhcnRcIiAvPlxuICAgICAgICAgICAgICB7eyBwcm9wcygpLmRvd25sb2FkTGFiZWwgfHwgdCgnZG93bmxvYWQnKSB9fVxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgKHByb3BzKCkuc2hvd1NoYXJlKSB7XG4gICAgICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwib3V0bGluZVwiIGV4cGFuZD1cImJsb2NrXCIgW2Rpc2FibGVkXT1cInNoYXJpbmcoKVwiIChjbGljayk9XCJzaGFyZUNhcmQoKVwiPlxuICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cInNoYXJlLW91dGxpbmVcIiBzbG90PVwic3RhcnRcIiAvPlxuICAgICAgICAgICAgICB7eyBwcm9wcygpLnNoYXJlTGFiZWwgfHwgdCgnc2hhcmUnKSB9fVxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL3RpY2tldC1jYXJkLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRpY2tldENhcmRDb21wb25lbnQge1xuICAvKiogUHJvcHMgb2JqZWN0LWZpcnN0IGRlbCBjb21wb25lbnRlLiAqL1xuICByZWFkb25seSBwcm9wcyA9IGlucHV0LnJlcXVpcmVkPFRpY2tldENhcmRNZXRhZGF0YT4oKTtcblxuICBwcml2YXRlIHFyU2VydmljZSA9IGluamVjdChRckdlbmVyYXRvclNlcnZpY2UpO1xuICBwcml2YXRlIHRpY2tldENhcmRJbWFnZVNlcnZpY2UgPSBpbmplY3QoVGlja2V0Q2FyZEltYWdlU2VydmljZSk7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG4gIHByaXZhdGUgdG9hc3QgPSBpbmplY3QoVG9hc3RTZXJ2aWNlKTtcblxuICAvKiogUVIgZ2VuZXJhZG8gKG51bGwgbWllbnRyYXMgY2FyZ2EgbyBzaSBmYWxsw7MpLiAqL1xuICByZWFkb25seSBxciA9IHNpZ25hbDxRclJlc3VsdCB8IG51bGw+KG51bGwpO1xuICAvKiogRmFsbMOzIGxhIGdlbmVyYWNpw7NuIGRlbCBRUiDihpIgZmFsbGJhY2sgYWwgdG9rZW4gY29ydG8uICovXG4gIHJlYWRvbmx5IGZhaWxlZCA9IHNpZ25hbChmYWxzZSk7XG4gIC8qKiBUcnVlIG1pZW50cmFzIHNlIGdlbmVyYSB5IGNvbXBhcnRlIGxhIHRhcmpldGEgYnJhbmRlZC4gKi9cbiAgcmVhZG9ubHkgc2hhcmluZyA9IHNpZ25hbChmYWxzZSk7XG4gIC8qKiBUcnVlIG1pZW50cmFzIHNlIGdlbmVyYSB5IGRlc2NhcmdhIGxhIHRhcmpldGEgYnJhbmRlZC4gKi9cbiAgcmVhZG9ubHkgZG93bmxvYWRpbmcgPSBzaWduYWwoZmFsc2UpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGFkZEljb25zKHsgc2hhcmVPdXRsaW5lLCBkb3dubG9hZE91dGxpbmUgfSk7XG4gICAgdGhpcy5pMThuLnJlZ2lzdGVyRGVmYXVsdHMoJ1RpY2tldENhcmQnLCBUSUNLRVRfQ0FSRF9JMThOKTtcblxuICAgIC8vIFJlZ2VuZXJhIGVsIFFSIGN1YW5kbyBjYW1iaWEgZWwgdG9rZW4gbyBlbCB0YW1hw7FvLlxuICAgIGVmZmVjdChcbiAgICAgICgpID0+IHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLnByb3BzKCkucXJUb2tlbjtcbiAgICAgICAgY29uc3Qgc2l6ZSA9IHRoaXMucHJvcHMoKS5xclNpemUgPz8gMjAwO1xuICAgICAgICBpZiAoIXRva2VuKSB7XG4gICAgICAgICAgdGhpcy5xci5zZXQobnVsbCk7XG4gICAgICAgICAgdGhpcy5mYWlsZWQuc2V0KGZhbHNlKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdm9pZCB0aGlzLmdlbmVyYXRlKHRva2VuLCBzaXplKTtcbiAgICAgIH0sXG4gICAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH1cbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZW5lcmF0ZShkYXRhOiBzdHJpbmcsIHNpemU6IG51bWJlcik6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuZmFpbGVkLnNldChmYWxzZSk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMucXJTZXJ2aWNlLmdlbmVyYXRlKHtcbiAgICAgICAgZGF0YSxcbiAgICAgICAgd2lkdGg6IHNpemUsXG4gICAgICAgIGhlaWdodDogc2l6ZSxcbiAgICAgICAgbWFyZ2luOiAxLFxuICAgICAgICBkb3RzU3R5bGU6ICdzcXVhcmUnLFxuICAgICAgICBkb3RzQ29sb3I6ICcjMDAwMDAwJyxcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnI2ZmZmZmZicsXG4gICAgICAgIGVycm9yQ29ycmVjdGlvbkxldmVsOiAnTScsXG4gICAgICAgIGZvcm1hdDogJ3BuZycsXG4gICAgICB9KTtcbiAgICAgIHRoaXMucXIuc2V0KHJlc3VsdCk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBTaW4gdG9hc3QvdGhyb3cg4oCUIGVsIGZhbGxiYWNrIG11ZXN0cmEgZWwgdG9rZW4gY29ydG8uIEVsIGNvbnN1bWVyXG4gICAgICAvLyBzaWd1ZSBwdWRpZW5kbyBjYW5qZWFyIHRpcGVhbmRvL2VzY2FuZWFuZG8gc2kgaGFjZSBmYWx0YS5cbiAgICAgIHRoaXMucXIuc2V0KG51bGwpO1xuICAgICAgdGhpcy5mYWlsZWQuc2V0KHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIHQoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmkxOG4udChrZXksICdUaWNrZXRDYXJkJyk7XG4gIH1cblxuICByZWFkb25seSBzdGF0dXMgPSBjb21wdXRlZDxUaWNrZXRDYXJkU3RhdHVzPigoKSA9PiB0aGlzLnByb3BzKCkuc3RhdHVzID8/ICduZXV0cmFsJyk7XG5cbiAgcmVhZG9ubHkgdG9rZW5TaG9ydCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCB0ayA9IHRoaXMucHJvcHMoKS5xclRva2VuID8/ICcnO1xuICAgIHJldHVybiB0ay5sZW5ndGggPiAxNiA/IGAke3RrLnNsaWNlKDAsIDE2KX3igKZgIDogdGs7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGZvbGlvVGV4dCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICB0aGlzLmkxOG4ubGFuZygpO1xuICAgIGNvbnN0IGZvbGlvID0gdGhpcy5wcm9wcygpLmZvbGlvO1xuICAgIGlmIChmb2xpbyA9PT0gdW5kZWZpbmVkIHx8IGZvbGlvID09PSBudWxsIHx8IGZvbGlvID09PSAnJykgcmV0dXJuICcnO1xuICAgIGNvbnN0IGxhYmVsID0gdGhpcy5wcm9wcygpLmZvbGlvTGFiZWwgPz8gdGhpcy50KCdmb2xpbycpO1xuICAgIHJldHVybiBgJHtsYWJlbH0gIyR7Zm9saW99YDtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgc3RhdHVzTGFiZWwgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICBjb25zdCBzdGF0dXMgPSB0aGlzLnN0YXR1cygpO1xuICAgIGlmIChzdGF0dXMgPT09ICdzb2xkJykge1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMoKS5zdGF0dXNTb2xkTGFiZWwgPz8gdGhpcy50KCdzdGF0dXNTb2xkJyk7XG4gICAgfVxuICAgIGlmIChzdGF0dXMgPT09ICdjaGVja2VkSW4nKSB7XG4gICAgICByZXR1cm4gdGhpcy5wcm9wcygpLnN0YXR1c0NoZWNrZWRJbkxhYmVsID8/IHRoaXMudCgnc3RhdHVzQ2hlY2tlZEluJyk7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfSk7XG5cbiAgYXN5bmMgc2hhcmVDYXJkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHEgPSB0aGlzLnFyKCk7XG4gICAgaWYgKCFxKSByZXR1cm47XG4gICAgY29uc3QgcCA9IHRoaXMucHJvcHMoKTtcbiAgICB0aGlzLnNoYXJpbmcuc2V0KHRydWUpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBjb25maWcgPSB0aGlzLmJ1aWxkSW1hZ2VDb25maWcocSwgcCk7XG4gICAgICBjb25zdCBzaGFyZWQgPSBhd2FpdCB0aGlzLnRpY2tldENhcmRJbWFnZVNlcnZpY2Uuc2hhcmUoY29uZmlnLCBwLnRpdGxlIHx8IHAuc2hhcmVCcmFuZE5hbWUpO1xuICAgICAgaWYgKCFzaGFyZWQpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5jb3B5VG9DbGlwYm9hcmQoY29uZmlnLCBwKTtcbiAgICAgIH1cbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5zaGFyaW5nLnNldChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZG93bmxvYWRDYXJkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHEgPSB0aGlzLnFyKCk7XG4gICAgaWYgKCFxKSByZXR1cm47XG4gICAgY29uc3QgcCA9IHRoaXMucHJvcHMoKTtcbiAgICB0aGlzLmRvd25sb2FkaW5nLnNldCh0cnVlKTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy50cmlnZ2VyRG93bmxvYWQodGhpcy5idWlsZEltYWdlQ29uZmlnKHEsIHApLCBwKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5kb3dubG9hZGluZy5zZXQoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRJbWFnZUNvbmZpZyhxOiBRclJlc3VsdCwgcDogVGlja2V0Q2FyZE1ldGFkYXRhKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHFyRGF0YVVybDogcS5kYXRhVXJsLFxuICAgICAgbG9nb1VybDogcC5zaGFyZUxvZ29VcmwsXG4gICAgICBicmFuZENvbG9yOiBwLnNoYXJlQnJhbmRDb2xvcixcbiAgICAgIGJyYW5kQ29sb3JUbzogcC5zaGFyZUJyYW5kQ29sb3JUbyxcbiAgICAgIGJyYW5kTmFtZTogcC5zaGFyZUJyYW5kTmFtZSxcbiAgICAgIGZvbGlvOiBwLmZvbGlvLFxuICAgICAgZm9saW9MYWJlbDogcC5zaGFyZUZvbGlvTGFiZWwsXG4gICAgICBidXllck5hbWU6IHAuYnV5ZXJOYW1lLFxuICAgICAgZXZlbnREYXRlOiBwLnNoYXJlRXZlbnREYXRlLFxuICAgICAgZXZlbnRMb2NhdGlvbjogcC5zaGFyZUV2ZW50TG9jYXRpb24sXG4gICAgICBzY2FuSGludDogcC5zaGFyZVNjYW5IaW50LFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGNvcHlUb0NsaXBib2FyZChcbiAgICBjb25maWc6IFBhcmFtZXRlcnM8dHlwZW9mIHRoaXMudGlja2V0Q2FyZEltYWdlU2VydmljZS5nZW5lcmF0ZT5bMF0sXG4gICAgcDogVGlja2V0Q2FyZE1ldGFkYXRhXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIEludGVudGEgY29waWFyIGxhIGltYWdlbiBicmFuZGVkIGFsIGNsaXBib2FyZCAoQ2hyb21lL0VkZ2UvU2FmYXJpIGRlc2t0b3ApLlxuICAgIGlmICh0eXBlb2YgQ2xpcGJvYXJkSXRlbSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGJsb2IgPSBhd2FpdCB0aGlzLnRpY2tldENhcmRJbWFnZVNlcnZpY2UuZ2VuZXJhdGUoY29uZmlnKTtcbiAgICAgICAgYXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZShbbmV3IENsaXBib2FyZEl0ZW0oeyAnaW1hZ2UvcG5nJzogYmxvYiB9KV0pO1xuICAgICAgICB0aGlzLnRvYXN0LnNob3coeyBtZXNzYWdlOiB0aGlzLnQoJ2NvcGllZCcpLCBkdXJhdGlvbjogMjAwMCB9KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIC8vIENsaXBib2FyZEl0ZW0gbm8gc29wb3J0YWRvIG8gcGVybWlzbyBkZW5lZ2FkbyDihpIgY2FlciBhIHRleHRvXG4gICAgICB9XG4gICAgfVxuICAgIC8vIEZhbGxiYWNrOiBjb3BpYSBVUkwgbyB0ZXh0byBmb2xpb1xuICAgIGNvbnN0IHRleHQgPSAoKHAuc2hhcmVVcmwgPz8gdGhpcy5mb2xpb1RleHQoKSkgfHwgcC5zaGFyZUJyYW5kTmFtZSkgPz8gJyc7XG4gICAgaWYgKCF0ZXh0KSByZXR1cm47XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHRleHQpO1xuICAgICAgdGhpcy50b2FzdC5zaG93KHsgbWVzc2FnZTogdGhpcy50KHAuc2hhcmVVcmwgPyAnY29waWVkVXJsJyA6ICdjb3BpZWQnKSwgZHVyYXRpb246IDIwMDAgfSk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBjbGlwYm9hcmQgbm8gZGlzcG9uaWJsZSDigJQgc2lsZW5jaW9zb1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdHJpZ2dlckRvd25sb2FkKFxuICAgIGNvbmZpZzogUGFyYW1ldGVyczx0eXBlb2YgdGhpcy50aWNrZXRDYXJkSW1hZ2VTZXJ2aWNlLmdlbmVyYXRlPlswXSxcbiAgICBwOiBUaWNrZXRDYXJkTWV0YWRhdGFcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgYmxvYiA9IGF3YWl0IHRoaXMudGlja2V0Q2FyZEltYWdlU2VydmljZS5nZW5lcmF0ZShjb25maWcpO1xuICAgIGNvbnN0IHVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XG4gICAgY29uc3QgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICBhLmhyZWYgPSB1cmw7XG4gICAgYS5kb3dubG9hZCA9IGBlbnRyYWRhLSR7cC5mb2xpbyA/PyAnYmluZ28nfS5wbmdgO1xuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSk7XG4gICAgYS5jbGljaygpO1xuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoYSk7XG4gICAgVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpO1xuICB9XG5cbiAgcXJQcm9wcyhxOiBRclJlc3VsdCk6IFFyQ29kZU1ldGFkYXRhIHtcbiAgICBjb25zdCBwID0gdGhpcy5wcm9wcygpO1xuICAgIHJldHVybiB7XG4gICAgICBxcjogcSxcbiAgICAgIGRpc3BsYXlTaXplOiBwLnFyU2l6ZSA/PyAyMDAsXG4gICAgICBzaG93RG93bmxvYWQ6IGZhbHNlLFxuICAgICAgc2hvd1NoYXJlOiBmYWxzZSxcbiAgICAgIHNob3dCb3JkZXI6IGZhbHNlLFxuICAgICAgYWx0OiB0aGlzLmZvbGlvVGV4dCgpIHx8ICdRUicsXG4gICAgICBkb3dubG9hZExhYmVsOiBwLmRvd25sb2FkTGFiZWwgPz8gdGhpcy50KCdkb3dubG9hZCcpLFxuICAgICAgc2hhcmVMYWJlbDogdGhpcy50KCdzaGFyZScpLFxuICAgICAgc2hhcmVUaXRsZTogcC50aXRsZSB8fCB0aGlzLmZvbGlvVGV4dCgpIHx8ICdRUicsXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3RpY2tldC1jYXJkL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEVzdGFkbyBkZSBjYW5qZS92ZW50YSBxdWUgZWwgdGlja2V0LWNhcmQgcmVmbGVqYSBlbiBzdSBiYWRnZS5cbiAqXG4gKiAtIGBzb2xkYCDigJQgZW50cmFkYSB2ZW5kaWRhLCB0b2RhdsOtYSBubyBjYW5qZWFkYSAoUVIgdsOhbGlkbyBwYXJhIGNhbmplYXIpLlxuICogLSBgY2hlY2tlZEluYCDigJQgZW50cmFkYSB5YSBjYW5qZWFkYSAoUVIgeWEgdXNhZG8gZW4gcHVlcnRhKS5cbiAqIC0gYG5ldXRyYWxgIOKAlCBzaW4gZXN0YWRvIGRlc3RhY2FkbyAocC5lai4gc29sbyBzZSBtdWVzdHJhIGVsIFFSKS5cbiAqL1xuZXhwb3J0IHR5cGUgVGlja2V0Q2FyZFN0YXR1cyA9ICdzb2xkJyB8ICdjaGVja2VkSW4nIHwgJ25ldXRyYWwnO1xuXG4vKipcbiAqIE1ldGFkYXRhIChvYmplY3QtZmlyc3QpIGRlbCBjb21wb25lbnRlIGB2YWwtdGlja2V0LWNhcmRgLlxuICpcbiAqIFRhcmpldGEgcHJlc2VudGFjaW9uYWwgZGUgdW5hIGVudHJhZGE6IG11ZXN0cmEgZWwgUVIgKGdlbmVyYWRvIGEgcGFydGlyIGRlbFxuICogYHFyVG9rZW5gIG9wYWNvIGZpcm1hZG8pLCBlbCBmb2xpbywgZWwgbm9tYnJlIGRlbCBjb21wcmFkb3IgKHNpIGhheSkgeSB1blxuICogYmFkZ2UgZGUgZXN0YWRvLiBOTyB0cmFlIHRleHRvIHByb3BpbyBmaWpvIOKAlCBlbCBjb25zdW1lciBwYXNhIGxvcyBsYWJlbHMgeWFcbiAqIHJlc3VlbHRvcyAoYHN0YXR1c1NvbGRMYWJlbGAgLyBgc3RhdHVzQ2hlY2tlZEluTGFiZWxgIC8gYGZvbGlvTGFiZWxgKS4gRWxcbiAqIMO6bmljbyB0ZXh0byBhdXRvLWkxOG4gc29uIGxvcyBkZWZhdWx0cyBkZSBlc29zIGxhYmVscyAobmFtZXNwYWNlIGBUaWNrZXRDYXJkYCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGlja2V0Q2FyZE1ldGFkYXRhIHtcbiAgLyoqXG4gICAqIFRva2VuIG9wYWNvIGZpcm1hZG8gcXVlIHZhIERFTlRSTyBkZWwgUVIgZXNjYW5lYWJsZSAoZm9ybWF0b1xuICAgKiBgYmFzZTY0dXJsLmJhc2U2NHVybGApLiBFcyBleGFjdGFtZW50ZSBlbCBkYXRvIHF1ZSBsYSB0YXF1aWxsYSBtYW5kYSBhbFxuICAgKiBlbmRwb2ludCBkZSBjYW5qZS4gRWwgY29tcG9uZW50ZSBsbyBjb2RpZmljYSBlbiBlbCBRUiB0YWwgY3VhbC5cbiAgICovXG4gIHFyVG9rZW46IHN0cmluZztcblxuICAvKiogRm9saW8gZGUgbGEgZW50cmFkYSAobsO6bWVybyB2aXNpYmxlIGp1bnRvIGFsIFFSKS4gKi9cbiAgZm9saW8/OiBudW1iZXIgfCBzdHJpbmc7XG5cbiAgLyoqIE5vbWJyZSBkZWwgY29tcHJhZG9yLCBzaSBzZSBjYXB0dXLDsyBlbiBsYSB2ZW50YS4gKi9cbiAgYnV5ZXJOYW1lPzogc3RyaW5nO1xuXG4gIC8qKiBFc3RhZG8gZGUgbGEgZW50cmFkYSAoY29udHJvbGEgZWwgY29sb3IvbGFiZWwgZGVsIGJhZGdlKS4gKi9cbiAgc3RhdHVzPzogVGlja2V0Q2FyZFN0YXR1cztcblxuICAvKiogVMOtdHVsbyBkZSBsYSB0YXJqZXRhIChlai4gbm9tYnJlIGRlbCBldmVudG8pLiBPcGNpb25hbC4gKi9cbiAgdGl0bGU/OiBzdHJpbmc7XG5cbiAgLyoqIFRhbWHDsW8gZGVsIFFSIGVuIHB4IChkZWZhdWx0IDIwMCkuICovXG4gIHFyU2l6ZT86IG51bWJlcjtcblxuICAvKiogTW9zdHJhciBib3TDs24gZGUgZGVzY2FyZ2EgZGVsIFFSLiAqL1xuICBzaG93RG93bmxvYWQ/OiBib29sZWFuO1xuICAvKiogTW9zdHJhciBib3TDs24gZGUgY29tcGFydGlyIGVsIFFSLiAqL1xuICBzaG93U2hhcmU/OiBib29sZWFuO1xuXG4gIC8vID09PSBMYWJlbHMgKG92ZXJyaWRlIGRlbCBhdXRvLWkxOG4pID09PVxuICAvKiogTGFiZWwgZGVsIHByZWZpam8gZGUgZm9saW8gKGRlZmF1bHQgaTE4bjogXCJGb2xpb1wiKS4gKi9cbiAgZm9saW9MYWJlbD86IHN0cmluZztcbiAgLyoqIExhYmVsIGRlbCBiYWRnZSBjdWFuZG8gYHN0YXR1cyA9PT0gJ3NvbGQnYCAoZGVmYXVsdDogXCJWZW5kaWRhXCIpLiAqL1xuICBzdGF0dXNTb2xkTGFiZWw/OiBzdHJpbmc7XG4gIC8qKiBMYWJlbCBkZWwgYmFkZ2UgY3VhbmRvIGBzdGF0dXMgPT09ICdjaGVja2VkSW4nYCAoZGVmYXVsdDogXCJDYW5qZWFkYVwiKS4gKi9cbiAgc3RhdHVzQ2hlY2tlZEluTGFiZWw/OiBzdHJpbmc7XG5cbiAgLy8gPT09IFNoYXJlIGNhcmQgYnJhbmRpbmcgPT09XG4gIC8qKiBVUkwgcMO6YmxpY2EgcGFyYSBjb21wYXJ0aXIgKGxpbmspLiBTaSBlbCBuYXRpdmUgc2hhcmUgZmFsbGEsIHNlIGNvcGlhIGFsIGNsaXBib2FyZCBlbiBzdSBsdWdhci4gKi9cbiAgc2hhcmVVcmw/OiBzdHJpbmc7XG4gIC8qKiBVUkwgZGVsIGxvZ28gZGUgbWFyY2EgcGFyYSBsYSB0YXJqZXRhIGNvbXBhcnRpZGEuICovXG4gIHNoYXJlTG9nb1VybD86IHN0cmluZztcbiAgLyoqIENvbG9yIGRlIGZvbmRvIGRlbCBlbmNhYmV6YWRvIGVuIGxhIHRhcmpldGEgY29tcGFydGlkYS4gRGVmYXVsdDogZ3JhZGllbnRlIGJpbmdvLiAqL1xuICBzaGFyZUJyYW5kQ29sb3I/OiBzdHJpbmc7XG4gIC8qKiBDb2xvciBzZWN1bmRhcmlvIGRlbCBncmFkaWVudGUgKG9wdGlvbmFsKS4gKi9cbiAgc2hhcmVCcmFuZENvbG9yVG8/OiBzdHJpbmc7XG4gIC8qKiBOb21icmUgZGUgZXZlbnRvIC8gbWFyY2EgZW4gbGEgdGFyamV0YSBjb21wYXJ0aWRhLiAqL1xuICBzaGFyZUJyYW5kTmFtZT86IHN0cmluZztcbiAgLyoqIExhYmVsIGRlbCBmb2xpbyBlbiBsYSB0YXJqZXRhIGNvbXBhcnRpZGEuIERlZmF1bHQgXCJFbnRyYWRhXCIuICovXG4gIHNoYXJlRm9saW9MYWJlbD86IHN0cmluZztcbiAgLyoqIExhYmVsIGRlbCBzaGFyZSBidXR0b24uICovXG4gIHNoYXJlTGFiZWw/OiBzdHJpbmc7XG4gIC8qKiBMYWJlbCBkZWwgZG93bmxvYWQgYnV0dG9uLiAqL1xuICBkb3dubG9hZExhYmVsPzogc3RyaW5nO1xufVxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3RpY2tldC1jYXJkL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEVzdGFkbyBkZSBjYW5qZS92ZW50YSBxdWUgZWwgdGlja2V0LWNhcmQgcmVmbGVqYSBlbiBzdSBiYWRnZS5cbiAqXG4gKiAtIGBzb2xkYCDigJQgZW50cmFkYSB2ZW5kaWRhLCB0b2RhdsOtYSBubyBjYW5qZWFkYSAoUVIgdsOhbGlkbyBwYXJhIGNhbmplYXIpLlxuICogLSBgY2hlY2tlZEluYCDigJQgZW50cmFkYSB5YSBjYW5qZWFkYSAoUVIgeWEgdXNhZG8gZW4gcHVlcnRhKS5cbiAqIC0gYG5ldXRyYWxgIOKAlCBzaW4gZXN0YWRvIGRlc3RhY2FkbyAocC5lai4gc29sbyBzZSBtdWVzdHJhIGVsIFFSKS5cbiAqL1xuZXhwb3J0IHR5cGUgVGlja2V0Q2FyZFN0YXR1cyA9ICdzb2xkJyB8ICdjaGVja2VkSW4nIHwgJ25ldXRyYWwnO1xuXG4vKipcbiAqIE1ldGFkYXRhIChvYmplY3QtZmlyc3QpIGRlbCBjb21wb25lbnRlIGB2YWwtdGlja2V0LWNhcmRgLlxuICpcbiAqIFRhcmpldGEgcHJlc2VudGFjaW9uYWwgZGUgdW5hIGVudHJhZGE6IG11ZXN0cmEgZWwgUVIgKGdlbmVyYWRvIGEgcGFydGlyIGRlbFxuICogYHFyVG9rZW5gIG9wYWNvIGZpcm1hZG8pLCBlbCBmb2xpbywgZWwgbm9tYnJlIGRlbCBjb21wcmFkb3IgKHNpIGhheSkgeSB1blxuICogYmFkZ2UgZGUgZXN0YWRvLiBOTyB0cmFlIHRleHRvIHByb3BpbyBmaWpvIOKAlCBlbCBjb25zdW1lciBwYXNhIGxvcyBsYWJlbHMgeWFcbiAqIHJlc3VlbHRvcyAoYHN0YXR1c1NvbGRMYWJlbGAgLyBgc3RhdHVzQ2hlY2tlZEluTGFiZWxgIC8gYGZvbGlvTGFiZWxgKS4gRWxcbiAqIMO6bmljbyB0ZXh0byBhdXRvLWkxOG4gc29uIGxvcyBkZWZhdWx0cyBkZSBlc29zIGxhYmVscyAobmFtZXNwYWNlIGBUaWNrZXRDYXJkYCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGlja2V0Q2FyZE1ldGFkYXRhIHtcbiAgLyoqXG4gICAqIFRva2VuIG9wYWNvIGZpcm1hZG8gcXVlIHZhIERFTlRSTyBkZWwgUVIgZXNjYW5lYWJsZSAoZm9ybWF0b1xuICAgKiBgYmFzZTY0dXJsLmJhc2U2NHVybGApLiBFcyBleGFjdGFtZW50ZSBlbCBkYXRvIHF1ZSBsYSB0YXF1aWxsYSBtYW5kYSBhbFxuICAgKiBlbmRwb2ludCBkZSBjYW5qZS4gRWwgY29tcG9uZW50ZSBsbyBjb2RpZmljYSBlbiBlbCBRUiB0YWwgY3VhbC5cbiAgICovXG4gIHFyVG9rZW46IHN0cmluZztcblxuICAvKiogRm9saW8gZGUgbGEgZW50cmFkYSAobsO6bWVybyB2aXNpYmxlIGp1bnRvIGFsIFFSKS4gKi9cbiAgZm9saW8/OiBudW1iZXIgfCBzdHJpbmc7XG5cbiAgLyoqIE5vbWJyZSBkZWwgY29tcHJhZG9yLCBzaSBzZSBjYXB0dXLDsyBlbiBsYSB2ZW50YS4gKi9cbiAgYnV5ZXJOYW1lPzogc3RyaW5nO1xuXG4gIC8qKiBFc3RhZG8gZGUgbGEgZW50cmFkYSAoY29udHJvbGEgZWwgY29sb3IvbGFiZWwgZGVsIGJhZGdlKS4gKi9cbiAgc3RhdHVzPzogVGlja2V0Q2FyZFN0YXR1cztcblxuICAvKiogVMOtdHVsbyBkZSBsYSB0YXJqZXRhIChlai4gbm9tYnJlIGRlbCBldmVudG8pLiBPcGNpb25hbC4gKi9cbiAgdGl0bGU/OiBzdHJpbmc7XG5cbiAgLyoqIFRhbWHDsW8gZGVsIFFSIGVuIHB4IChkZWZhdWx0IDIwMCkuICovXG4gIHFyU2l6ZT86IG51bWJlcjtcblxuICAvKiogTW9zdHJhciBib3TDs24gZGUgZGVzY2FyZ2EgZGVsIFFSLiAqL1xuICBzaG93RG93bmxvYWQ/OiBib29sZWFuO1xuICAvKiogTW9zdHJhciBib3TDs24gZGUgY29tcGFydGlyIGVsIFFSLiAqL1xuICBzaG93U2hhcmU/OiBib29sZWFuO1xuXG4gIC8vID09PSBMYWJlbHMgKG92ZXJyaWRlIGRlbCBhdXRvLWkxOG4pID09PVxuICAvKiogTGFiZWwgZGVsIHByZWZpam8gZGUgZm9saW8gKGRlZmF1bHQgaTE4bjogXCJGb2xpb1wiKS4gKi9cbiAgZm9saW9MYWJlbD86IHN0cmluZztcbiAgLyoqIExhYmVsIGRlbCBiYWRnZSBjdWFuZG8gYHN0YXR1cyA9PT0gJ3NvbGQnYCAoZGVmYXVsdDogXCJWZW5kaWRhXCIpLiAqL1xuICBzdGF0dXNTb2xkTGFiZWw/OiBzdHJpbmc7XG4gIC8qKiBMYWJlbCBkZWwgYmFkZ2UgY3VhbmRvIGBzdGF0dXMgPT09ICdjaGVja2VkSW4nYCAoZGVmYXVsdDogXCJDYW5qZWFkYVwiKS4gKi9cbiAgc3RhdHVzQ2hlY2tlZEluTGFiZWw/OiBzdHJpbmc7XG5cbiAgLy8gPT09IFNoYXJlIGNhcmQgYnJhbmRpbmcgPT09XG4gIC8qKiBVUkwgcMO6YmxpY2EgcGFyYSBjb21wYXJ0aXIgKGxpbmspLiBTaSBlbCBuYXRpdmUgc2hhcmUgZmFsbGEsIHNlIGNvcGlhIGFsIGNsaXBib2FyZCBlbiBzdSBsdWdhci4gKi9cbiAgc2hhcmVVcmw/OiBzdHJpbmc7XG4gIC8qKiBVUkwgZGVsIGxvZ28gZGUgbWFyY2EgcGFyYSBsYSB0YXJqZXRhIGNvbXBhcnRpZGEuICovXG4gIHNoYXJlTG9nb1VybD86IHN0cmluZztcbiAgLyoqIENvbG9yIGRlIGZvbmRvIGRlbCBlbmNhYmV6YWRvIGVuIGxhIHRhcmpldGEgY29tcGFydGlkYS4gRGVmYXVsdDogZ3JhZGllbnRlIGJpbmdvLiAqL1xuICBzaGFyZUJyYW5kQ29sb3I/OiBzdHJpbmc7XG4gIC8qKiBDb2xvciBzZWN1bmRhcmlvIGRlbCBncmFkaWVudGUgKG9wdGlvbmFsKS4gKi9cbiAgc2hhcmVCcmFuZENvbG9yVG8/OiBzdHJpbmc7XG4gIC8qKiBOb21icmUgZGUgZXZlbnRvIC8gbWFyY2EgZW4gbGEgdGFyamV0YSBjb21wYXJ0aWRhLiAqL1xuICBzaGFyZUJyYW5kTmFtZT86IHN0cmluZztcbiAgLyoqIExhYmVsIGRlbCBmb2xpbyBlbiBsYSB0YXJqZXRhIGNvbXBhcnRpZGEuIERlZmF1bHQgXCJDYXJ0w7NuXCIuICovXG4gIHNoYXJlRm9saW9MYWJlbD86IHN0cmluZztcbiAgLyoqIEZlY2hhIGRlbCBldmVudG8gcGFyYSBsYSB0YXJqZXRhIGNvbXBhcnRpZGEgKHlhIGZvcm1hdGVhZGEgcGFyYSBtb3N0cmFyKS4gKi9cbiAgc2hhcmVFdmVudERhdGU/OiBzdHJpbmc7XG4gIC8qKiBMdWdhciBkZWwgZXZlbnRvIHBhcmEgbGEgdGFyamV0YSBjb21wYXJ0aWRhLiAqL1xuICBzaGFyZUV2ZW50TG9jYXRpb24/OiBzdHJpbmc7XG4gIC8qKiBUZXh0byBoaW50IGJham8gZWwgUVIgZW4gbGEgdGFyamV0YSBjb21wYXJ0aWRhLiAqL1xuICBzaGFyZVNjYW5IaW50Pzogc3RyaW5nO1xuICAvKiogTGFiZWwgZGVsIHNoYXJlIGJ1dHRvbi4gKi9cbiAgc2hhcmVMYWJlbD86IHN0cmluZztcbiAgLyoqIExhYmVsIGRlbCBkb3dubG9hZCBidXR0b24uICovXG4gIGRvd25sb2FkTGFiZWw/OiBzdHJpbmc7XG59XG4iXX0=
@@ -1,14 +1,15 @@
1
1
  import { Injectable } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  const CANVAS_WIDTH = 560;
4
- const HEADER_H = 160;
5
- const QR_ZONE_H = 380;
6
- const FOOTER_H = 240;
7
- const CANVAS_HEIGHT = HEADER_H + QR_ZONE_H + FOOTER_H;
8
- const QR_SIZE = 280;
4
+ const HEADER_H = 210;
5
+ const QR_ZONE_H = 340;
6
+ const PERF_H = 28;
7
+ const FOOTER_H = 220;
8
+ const CANVAS_HEIGHT = HEADER_H + QR_ZONE_H + PERF_H + FOOTER_H;
9
+ const QR_SIZE = 260;
9
10
  const DEFAULT_BRAND_COLOR = '#9b1fde';
10
11
  const DEFAULT_BRAND_COLOR_TO = '#c93075';
11
- const FONT_STACK = 'Khula, Arial, sans-serif';
12
+ const FONT_STACK = '"Plus Jakarta Sans", Khula, Arial, sans-serif';
12
13
  export class TicketCardImageService {
13
14
  async generate(config) {
14
15
  const width = config.width ?? CANVAS_WIDTH;
@@ -26,6 +27,7 @@ export class TicketCardImageService {
26
27
  }
27
28
  await this.drawHeader(ctx, config, width);
28
29
  await this.drawQrZone(ctx, config, width);
30
+ this.drawPerforated(ctx, config, width);
29
31
  this.drawFooter(ctx, config, width);
30
32
  if (canvas instanceof OffscreenCanvas) {
31
33
  return canvas.convertToBlob({ type: 'image/png' });
@@ -79,31 +81,41 @@ export class TicketCardImageService {
79
81
  grad.addColorStop(1, colorTo);
80
82
  ctx.fillStyle = grad;
81
83
  ctx.fillRect(0, 0, width, HEADER_H);
82
- const logoH = 44;
83
- const logoPad = 28;
84
- let textY = HEADER_H / 2;
84
+ const logoH = 48;
85
+ const logoPadTop = 28;
86
+ let cursorY = logoPadTop;
85
87
  if (config.logoUrl) {
86
88
  try {
87
89
  const logoImg = await this.loadImage(config.logoUrl);
88
90
  const ratio = logoImg.width / logoImg.height;
89
91
  const logoW = logoH * ratio;
90
- const logoX = logoPad;
91
- const logoY = (HEADER_H - logoH) / 2;
92
- ctx.drawImage(logoImg, logoX, logoY, logoW, logoH);
93
- if (config.brandName) {
94
- textY = logoY + logoH + 14;
95
- }
92
+ const logoX = (width - logoW) / 2;
93
+ ctx.drawImage(logoImg, logoX, cursorY, logoW, logoH);
94
+ cursorY += logoH + 14;
96
95
  }
97
96
  catch {
98
- // logo failed — render brand name centered as fallback
97
+ // logo failed — continue without it
99
98
  }
100
99
  }
101
100
  if (config.brandName) {
102
101
  ctx.fillStyle = '#ffffff';
103
- ctx.font = `bold 1.75rem ${FONT_STACK}`;
102
+ ctx.font = `bold 1.625rem ${FONT_STACK}`;
103
+ ctx.textAlign = 'center';
104
+ ctx.textBaseline = 'top';
105
+ ctx.fillText(config.brandName, width / 2, cursorY, width - 48);
106
+ cursorY += 32;
107
+ }
108
+ const metaParts = [];
109
+ if (config.eventDate)
110
+ metaParts.push(config.eventDate);
111
+ if (config.eventLocation)
112
+ metaParts.push(config.eventLocation);
113
+ if (metaParts.length > 0) {
114
+ ctx.fillStyle = 'rgba(255,255,255,0.78)';
115
+ ctx.font = `0.875rem ${FONT_STACK}`;
104
116
  ctx.textAlign = 'center';
105
- ctx.textBaseline = 'middle';
106
- ctx.fillText(config.brandName, width / 2, textY, width - logoPad * 2);
117
+ ctx.textBaseline = 'top';
118
+ ctx.fillText(metaParts.join(' · '), width / 2, cursorY, width - 48);
107
119
  }
108
120
  }
109
121
  async drawQrZone(ctx, config, width) {
@@ -111,7 +123,7 @@ export class TicketCardImageService {
111
123
  ctx.fillStyle = '#ffffff';
112
124
  ctx.fillRect(0, zoneTop, width, QR_ZONE_H);
113
125
  const qrX = (width - QR_SIZE) / 2;
114
- const qrY = zoneTop + (QR_ZONE_H - QR_SIZE - 28) / 2;
126
+ const qrY = zoneTop + (QR_ZONE_H - QR_SIZE - 40) / 2;
115
127
  try {
116
128
  const qrImg = await this.loadImage(config.qrDataUrl);
117
129
  ctx.drawImage(qrImg, qrX, qrY, QR_SIZE, QR_SIZE);
@@ -120,42 +132,106 @@ export class TicketCardImageService {
120
132
  ctx.strokeStyle = '#e0e0e0';
121
133
  ctx.strokeRect(qrX, qrY, QR_SIZE, QR_SIZE);
122
134
  }
123
- ctx.fillStyle = '#2f2a36';
124
- ctx.font = `0.9375rem ${FONT_STACK}`;
135
+ const hint = config.scanHint ?? 'Muestra este QR en la puerta para canjear tu entrada.';
136
+ ctx.fillStyle = '#6b6675';
137
+ ctx.font = `0.875rem ${FONT_STACK}`;
125
138
  ctx.textAlign = 'center';
126
139
  ctx.textBaseline = 'top';
127
- ctx.fillText('Escanea para verificar', width / 2, qrY + QR_SIZE + 12);
140
+ const hintY = qrY + QR_SIZE + 14;
141
+ this.fillWrappedText(ctx, hint, width / 2, hintY, width - 80, 22);
142
+ }
143
+ drawPerforated(ctx, config, width) {
144
+ const y = HEADER_H + QR_ZONE_H;
145
+ const notchR = PERF_H / 2;
146
+ const colorFrom = config.brandColor ?? DEFAULT_BRAND_COLOR;
147
+ ctx.fillStyle = '#ffffff';
148
+ ctx.fillRect(0, y, width, PERF_H);
149
+ // Left notch (semicircle cut from edge)
150
+ ctx.fillStyle = '#f8f8f8';
151
+ ctx.beginPath();
152
+ ctx.arc(-1, y + notchR, notchR + 1, -Math.PI / 2, Math.PI / 2);
153
+ ctx.fill();
154
+ // Right notch
155
+ ctx.beginPath();
156
+ ctx.arc(width + 1, y + notchR, notchR + 1, Math.PI / 2, -Math.PI / 2);
157
+ ctx.fill();
158
+ // Dashed line in middle
159
+ ctx.setLineDash([8, 6]);
160
+ ctx.strokeStyle = colorFrom + '55';
161
+ ctx.lineWidth = 1.5;
162
+ ctx.beginPath();
163
+ ctx.moveTo(notchR * 2 + 8, y + notchR);
164
+ ctx.lineTo(width - notchR * 2 - 8, y + notchR);
165
+ ctx.stroke();
166
+ ctx.setLineDash([]);
128
167
  }
129
168
  drawFooter(ctx, config, width) {
130
- const footerTop = HEADER_H + QR_ZONE_H;
169
+ const footerTop = HEADER_H + QR_ZONE_H + PERF_H;
170
+ const colorFrom = config.brandColor ?? DEFAULT_BRAND_COLOR;
131
171
  ctx.fillStyle = '#ffffff';
132
172
  ctx.fillRect(0, footerTop, width, FOOTER_H);
133
- const colorFrom = config.brandColor ?? DEFAULT_BRAND_COLOR;
134
- ctx.fillStyle = colorFrom;
135
- ctx.fillRect(0, footerTop, width, 3);
136
- let contentY = footerTop + 40;
173
+ let contentY = footerTop + 32;
137
174
  if (config.folio !== undefined && config.folio !== null && config.folio !== '') {
138
- const label = config.folioLabel ?? 'Entrada';
139
- const folioText = `${label} #${config.folio}`;
140
- ctx.fillStyle = '#1a0b2e';
141
- ctx.font = `bold 3rem ${FONT_STACK}`;
175
+ const label = (config.folioLabel ?? 'Cartón').toUpperCase();
176
+ // Label small brand color, letter-spaced
177
+ ctx.fillStyle = colorFrom;
178
+ ctx.font = `600 0.8125rem ${FONT_STACK}`;
142
179
  ctx.textAlign = 'center';
143
180
  ctx.textBaseline = 'top';
144
- ctx.fillText(folioText, width / 2, contentY, width - 40);
145
- contentY += 56;
181
+ this.fillLetterSpaced(ctx, label, width / 2, contentY, 3);
182
+ contentY += 24;
183
+ // Folio number — large, bold, brand color
184
+ ctx.fillStyle = colorFrom;
185
+ ctx.font = `800 3.5rem ${FONT_STACK}`;
186
+ ctx.textAlign = 'center';
187
+ ctx.textBaseline = 'top';
188
+ ctx.fillText(`#${config.folio}`, width / 2, contentY, width - 40);
189
+ contentY += 68;
146
190
  }
147
191
  if (config.buyerName) {
148
- ctx.fillStyle = '#2f2a36';
149
- ctx.font = `1.25rem ${FONT_STACK}`;
192
+ ctx.fillStyle = '#6b6675';
193
+ ctx.font = `0.9375rem ${FONT_STACK}`;
150
194
  ctx.textAlign = 'center';
151
195
  ctx.textBaseline = 'top';
152
196
  ctx.fillText(config.buyerName, width / 2, contentY, width - 40);
153
197
  }
154
- ctx.fillStyle = '#6b6675';
155
- ctx.font = `0.75rem ${FONT_STACK}`;
156
- ctx.textAlign = 'right';
198
+ // Copyright
199
+ ctx.fillStyle = '#b0a8bc';
200
+ ctx.font = `0.6875rem ${FONT_STACK}`;
201
+ ctx.textAlign = 'center';
157
202
  ctx.textBaseline = 'bottom';
158
- ctx.fillText('Valtech', width - 16, footerTop + FOOTER_H - 12);
203
+ ctx.fillText('© 2026 Valtech. Todos los derechos reservados.', width / 2, footerTop + FOOTER_H - 14);
204
+ }
205
+ fillWrappedText(ctx, text, x, y, maxWidth, lineHeight) {
206
+ const words = text.split(' ');
207
+ let line = '';
208
+ let curY = y;
209
+ for (const word of words) {
210
+ const test = line ? `${line} ${word}` : word;
211
+ if (ctx.measureText(test).width > maxWidth && line) {
212
+ ctx.fillText(line, x, curY);
213
+ line = word;
214
+ curY += lineHeight;
215
+ }
216
+ else {
217
+ line = test;
218
+ }
219
+ }
220
+ if (line)
221
+ ctx.fillText(line, x, curY);
222
+ }
223
+ fillLetterSpaced(ctx, text, cx, y, spacing) {
224
+ // Measure total width with spacing and center
225
+ const chars = text.split('');
226
+ const charWidths = chars.map(c => ctx.measureText(c).width);
227
+ const totalW = charWidths.reduce((s, w) => s + w, 0) + spacing * (chars.length - 1);
228
+ let x = cx - totalW / 2;
229
+ ctx.textAlign = 'left';
230
+ for (let i = 0; i < chars.length; i++) {
231
+ ctx.fillText(chars[i], x, y);
232
+ x += charWidths[i] + spacing;
233
+ }
234
+ ctx.textAlign = 'center';
159
235
  }
160
236
  loadImage(src) {
161
237
  return new Promise((resolve, reject) => {
@@ -172,4 +248,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
172
248
  type: Injectable,
173
249
  args: [{ providedIn: 'root' }]
174
250
  }] });
175
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlja2V0LWNhcmQtaW1hZ2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvdGlja2V0LWNhcmQtaW1hZ2UvdGlja2V0LWNhcmQtaW1hZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUczQyxNQUFNLFlBQVksR0FBRyxHQUFHLENBQUM7QUFDekIsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDO0FBQ3JCLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQztBQUN0QixNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUM7QUFDckIsTUFBTSxhQUFhLEdBQUcsUUFBUSxHQUFHLFNBQVMsR0FBRyxRQUFRLENBQUM7QUFDdEQsTUFBTSxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBRXBCLE1BQU0sbUJBQW1CLEdBQUcsU0FBUyxDQUFDO0FBQ3RDLE1BQU0sc0JBQXNCLEdBQUcsU0FBUyxDQUFDO0FBQ3pDLE1BQU0sVUFBVSxHQUFHLDBCQUEwQixDQUFDO0FBRzlDLE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUE2QjtRQUMxQyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxJQUFJLFlBQVksQ0FBQztRQUUzQyxJQUFJLE1BQTJDLENBQUM7UUFDaEQsSUFBSSxHQUFpRSxDQUFDO1FBRXRFLElBQUksT0FBTyxlQUFlLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDM0MsTUFBTSxHQUFHLElBQUksZUFBZSxDQUFDLEtBQUssRUFBRSxhQUFhLENBQUMsQ0FBQztZQUNuRCxHQUFHLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQXNDLENBQUM7UUFDckUsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FB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QUMsU0FBUyxFQUFFLEtBQUssR0FBRyxFQUFFLEVBQUUsU0FBUyxHQUFHLFFBQVEsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRU8sU0FBUyxDQUFDLEdBQVc7UUFDM0IsT0FBTyxJQUFJLE9BQU8sQ0FBbUIsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDdkQsTUFBTSxHQUFHLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUN4QixHQUFHLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNoQyxHQUFHLENBQUMsT0FBTyxHQUFHLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3RFLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0FoTVUsc0JBQXNCO21IQUF0QixzQkFBc0IsY0FEVCxNQUFNOzs0RkFDbkIsc0JBQXNCO2tCQURsQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRpY2tldENhcmRJbWFnZUNvbmZpZyB9IGZyb20gJy4vdHlwZXMnO1xuXG5jb25zdCBDQU5WQVNfV0lEVEggPSA1NjA7XG5jb25zdCBIRUFERVJfSCA9IDE2MDtcbmNvbnN0IFFSX1pPTkVfSCA9IDM4MDtcbmNvbnN0IEZPT1RFUl9IID0gMjQwO1xuY29uc3QgQ0FOVkFTX0hFSUdIVCA9IEhFQURFUl9IICsgUVJfWk9ORV9IICsgRk9PVEVSX0g7XG5jb25zdCBRUl9TSVpFID0gMjgwO1xuXG5jb25zdCBERUZBVUxUX0JSQU5EX0NPTE9SID0gJyM5YjFmZGUnO1xuY29uc3QgREVGQVVMVF9CUkFORF9DT0xPUl9UTyA9ICcjYzkzMDc1JztcbmNvbnN0IEZPTlRfU1RBQ0sgPSAnS2h1bGEsIEFyaWFsLCBzYW5zLXNlcmlmJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBUaWNrZXRDYXJkSW1hZ2VTZXJ2aWNlIHtcbiAgYXN5bmMgZ2VuZXJhdGUoY29uZmlnOiBUaWNrZXRDYXJkSW1hZ2VDb25maWcpOiBQcm9taXNlPEJsb2I+IHtcbiAgICBjb25zdCB3aWR0aCA9IGNvbmZpZy53aWR0aCA/PyBDQU5WQVNfV0lEVEg7XG5cbiAgICBsZXQgY2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudCB8IE9mZnNjcmVlbkNhbnZhcztcbiAgICBsZXQgY3R4OiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgfCBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ7XG5cbiAgICBpZiAodHlwZW9mIE9mZnNjcmVlbkNhbnZhcyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGNhbnZhcyA9IG5ldyBPZmZzY3JlZW5DYW52YXMod2lkdGgsIENBTlZBU19IRUlHSFQpO1xuICAgICAgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJykgYXMgT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEO1xuICAgIH0gZWxzZSB7XG4gICAgICBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTtcbiAgICAgIChjYW52YXMgYXMgSFRNTENhbnZhc0VsZW1lbnQpLndpZHRoID0gd2lkdGg7XG4gICAgICAoY2FudmFzIGFzIEhUTUxDYW52YXNFbGVtZW50KS5oZWlnaHQgPSBDQU5WQVNfSEVJR0hUO1xuICAgICAgY3R4ID0gKGNhbnZhcyBhcyBIVE1MQ2FudmFzRWxlbWVudCkuZ2V0Q29udGV4dCgnMmQnKSBhcyBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ7XG4gICAgfVxuXG4gICAgYXdhaXQgdGhpcy5kcmF3SGVhZGVyKGN0eCwgY29uZmlnLCB3aWR0aCk7XG4gICAgYXdhaXQgdGhpcy5kcmF3UXJab25lKGN0eCwgY29uZmlnLCB3aWR0aCk7XG4gICAgdGhpcy5kcmF3Rm9vdGVyKGN0eCwgY29uZmlnLCB3aWR0aCk7XG5cbiAgICBpZiAoY2FudmFzIGluc3RhbmNlb2YgT2Zmc2NyZWVuQ2FudmFzKSB7XG4gICAgICByZXR1cm4gY2FudmFzLmNvbnZlcnRUb0Jsb2IoeyB0eXBlOiAnaW1hZ2UvcG5nJyB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IFByb21pc2U8QmxvYj4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgKGNhbnZhcyBhcyBIVE1MQ2FudmFzRWxlbWVudCkudG9CbG9iKGJsb2IgPT4ge1xuICAgICAgICBpZiAoYmxvYikge1xuICAgICAgICAgIHJlc29sdmUoYmxvYik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVqZWN0KG5ldyBFcnJvcignQ2FudmFzIHRvQmxvYiByZXR1cm5lZCBudWxsJykpO1xuICAgICAgICB9XG4gICAgICB9LCAnaW1hZ2UvcG5nJyk7XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBzaGFyZShjb25maWc6IFRpY2tldENhcmRJbWFnZUNvbmZpZywgc2hhcmVUaXRsZT86IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGlmICghbmF2aWdhdG9yLnNoYXJlIHx8ICFuYXZpZ2F0b3IuY2FuU2hhcmUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBsZXQgYmxvYjogQmxvYjtcbiAgICB0cnkge1xuICAgICAgYmxvYiA9IGF3YWl0IHRoaXMuZ2VuZXJhdGUoY29uZmlnKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBmaWxlbmFtZSA9ICdlbnRyYWRhLnBuZyc7XG4gICAgY29uc3QgZmlsZSA9IG5ldyBGaWxlKFtibG9iXSwgZmlsZW5hbWUsIHsgdHlwZTogJ2ltYWdlL3BuZycgfSk7XG5cbiAgICBpZiAoIW5hdmlnYXRvci5jYW5TaGFyZSh7IGZpbGVzOiBbZmlsZV0gfSkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgbmF2aWdhdG9yLnNoYXJlKHtcbiAgICAgICAgdGl0bGU6IHNoYXJlVGl0bGUgPz8gY29uZmlnLmJyYW5kTmFtZSA/PyAnRW50cmFkYScsXG4gICAgICAgIGZpbGVzOiBbZmlsZV0sXG4gICAgICB9KTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIERPTUV4Y2VwdGlvbiAmJiBlcnIubmFtZSA9PT0gJ0Fib3J0RXJyb3InKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGRyYXdIZWFkZXIoXG4gICAgY3R4OiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgfCBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQsXG4gICAgY29uZmlnOiBUaWNrZXRDYXJkSW1hZ2VDb25maWcsXG4gICAgd2lkdGg6IG51bWJlclxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBjb2xvckZyb20gPSBjb25maWcuYnJhbmRDb2xvciA/PyBERUZBVUxUX0JSQU5EX0NPTE9SO1xuICAgIGNvbnN0IGNvbG9yVG8gPVxuICAgICAgY29uZmlnLmJyYW5kQ29sb3JUbyA/PyAoY29uZmlnLmJyYW5kQ29sb3IgPyBjb25maWcuYnJhbmRDb2xvciA6IERFRkFVTFRfQlJBTkRfQ09MT1JfVE8pO1xuXG4gICAgY29uc3QgZ3JhZCA9IGN0eC5jcmVhdGVMaW5lYXJHcmFkaWVudCgwLCAwLCB3aWR0aCwgSEVBREVSX0gpO1xuICAgIGdyYWQuYWRkQ29sb3JTdG9wKDAsIGNvbG9yRnJvbSk7XG4gICAgZ3JhZC5hZGRDb2xvclN0b3AoMSwgY29sb3JUbyk7XG5cbiAgICBjdHguZmlsbFN0eWxlID0gZ3JhZDtcbiAgICBjdHguZmlsbFJlY3QoMCwgMCwgd2lkdGgsIEhFQURFUl9IKTtcblxuICAgIGNvbnN0IGxvZ29IID0gNDQ7XG4gICAgY29uc3QgbG9nb1BhZCA9IDI4O1xuICAgIGxldCB0ZXh0WSA9IEhFQURFUl9IIC8gMjtcblxuICAgIGlmIChjb25maWcubG9nb1VybCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgbG9nb0ltZyA9IGF3YWl0IHRoaXMubG9hZEltYWdlKGNvbmZpZy5sb2dvVXJsKTtcbiAgICAgICAgY29uc3QgcmF0aW8gPSBsb2dvSW1nLndpZHRoIC8gbG9nb0ltZy5oZWlnaHQ7XG4gICAgICAgIGNvbnN0IGxvZ29XID0gbG9nb0ggKiByYXRpbztcbiAgICAgICAgY29uc3QgbG9nb1ggPSBsb2dvUGFkO1xuICAgICAgICBjb25zdCBsb2dvWSA9IChIRUFERVJfSCAtIGxvZ29IKSAvIDI7XG4gICAgICAgIGN0eC5kcmF3SW1hZ2UobG9nb0ltZywgbG9nb1gsIGxvZ29ZLCBsb2dvVywgbG9nb0gpO1xuXG4gICAgICAgIGlmIChjb25maWcuYnJhbmROYW1lKSB7XG4gICAgICAgICAgdGV4dFkgPSBsb2dvWSArIGxvZ29IICsgMTQ7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICAvLyBsb2dvIGZhaWxlZCDigJQgcmVuZGVyIGJyYW5kIG5hbWUgY2VudGVyZWQgYXMgZmFsbGJhY2tcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY29uZmlnLmJyYW5kTmFtZSkge1xuICAgICAgY3R4LmZpbGxTdHlsZSA9ICcjZmZmZmZmJztcbiAgICAgIGN0eC5mb250ID0gYGJvbGQgMS43NXJlbSAke0ZPTlRfU1RBQ0t9YDtcbiAgICAgIGN0eC50ZXh0QWxpZ24gPSAnY2VudGVyJztcbiAgICAgIGN0eC50ZXh0QmFzZWxpbmUgPSAnbWlkZGxlJztcbiAgICAgIGN0eC5maWxsVGV4dChjb25maWcuYnJhbmROYW1lLCB3aWR0aCAvIDIsIHRleHRZLCB3aWR0aCAtIGxvZ29QYWQgKiAyKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGRyYXdRclpvbmUoXG4gICAgY3R4OiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgfCBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQsXG4gICAgY29uZmlnOiBUaWNrZXRDYXJkSW1hZ2VDb25maWcsXG4gICAgd2lkdGg6IG51bWJlclxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB6b25lVG9wID0gSEVBREVSX0g7XG5cbiAgICBjdHguZmlsbFN0eWxlID0gJyNmZmZmZmYnO1xuICAgIGN0eC5maWxsUmVjdCgwLCB6b25lVG9wLCB3aWR0aCwgUVJfWk9ORV9IKTtcblxuICAgIGNvbnN0IHFyWCA9ICh3aWR0aCAtIFFSX1NJWkUpIC8gMjtcbiAgICBjb25zdCBxclkgPSB6b25lVG9wICsgKFFSX1pPTkVfSCAtIFFSX1NJWkUgLSAyOCkgLyAyO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHFySW1nID0gYXdhaXQgdGhpcy5sb2FkSW1hZ2UoY29uZmlnLnFyRGF0YVVybCk7XG4gICAgICBjdHguZHJhd0ltYWdlKHFySW1nLCBxclgsIHFyWSwgUVJfU0laRSwgUVJfU0laRSk7XG4gICAgfSBjYXRjaCB7XG4gICAgICBjdHguc3Ryb2tlU3R5bGUgPSAnI2UwZTBlMCc7XG4gICAgICBjdHguc3Ryb2tlUmVjdChxclgsIHFyWSwgUVJfU0laRSwgUVJfU0laRSk7XG4gICAgfVxuXG4gICAgY3R4LmZpbGxTdHlsZSA9ICcjMmYyYTM2JztcbiAgICBjdHguZm9udCA9IGAwLjkzNzVyZW0gJHtGT05UX1NUQUNLfWA7XG4gICAgY3R4LnRleHRBbGlnbiA9ICdjZW50ZXInO1xuICAgIGN0eC50ZXh0QmFzZWxpbmUgPSAndG9wJztcbiAgICBjdHguZmlsbFRleHQoJ0VzY2FuZWEgcGFyYSB2ZXJpZmljYXInLCB3aWR0aCAvIDIsIHFyWSArIFFSX1NJWkUgKyAxMik7XG4gIH1cblxuICBwcml2YXRlIGRyYXdGb290ZXIoXG4gICAgY3R4OiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgfCBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQsXG4gICAgY29uZmlnOiBUaWNrZXRDYXJkSW1hZ2VDb25maWcsXG4gICAgd2lkdGg6IG51bWJlclxuICApOiB2b2lkIHtcbiAgICBjb25zdCBmb290ZXJUb3AgPSBIRUFERVJfSCArIFFSX1pPTkVfSDtcblxuICAgIGN0eC5maWxsU3R5bGUgPSAnI2ZmZmZmZic7XG4gICAgY3R4LmZpbGxSZWN0KDAsIGZvb3RlclRvcCwgd2lkdGgsIEZPT1RFUl9IKTtcblxuICAgIGNvbnN0IGNvbG9yRnJvbSA9IGNvbmZpZy5icmFuZENvbG9yID8/IERFRkFVTFRfQlJBTkRfQ09MT1I7XG4gICAgY3R4LmZpbGxTdHlsZSA9IGNvbG9yRnJvbTtcbiAgICBjdHguZmlsbFJlY3QoMCwgZm9vdGVyVG9wLCB3aWR0aCwgMyk7XG5cbiAgICBsZXQgY29udGVudFkgPSBmb290ZXJUb3AgKyA0MDtcblxuICAgIGlmIChjb25maWcuZm9saW8gIT09IHVuZGVmaW5lZCAmJiBjb25maWcuZm9saW8gIT09IG51bGwgJiYgY29uZmlnLmZvbGlvICE9PSAnJykge1xuICAgICAgY29uc3QgbGFiZWwgPSBjb25maWcuZm9saW9MYWJlbCA/PyAnRW50cmFkYSc7XG4gICAgICBjb25zdCBmb2xpb1RleHQgPSBgJHtsYWJlbH0gIyR7Y29uZmlnLmZvbGlvfWA7XG4gICAgICBjdHguZmlsbFN0eWxlID0gJyMxYTBiMmUnO1xuICAgICAgY3R4LmZvbnQgPSBgYm9sZCAzcmVtICR7Rk9OVF9TVEFDS31gO1xuICAgICAgY3R4LnRleHRBbGlnbiA9ICdjZW50ZXInO1xuICAgICAgY3R4LnRleHRCYXNlbGluZSA9ICd0b3AnO1xuICAgICAgY3R4LmZpbGxUZXh0KGZvbGlvVGV4dCwgd2lkdGggLyAyLCBjb250ZW50WSwgd2lkdGggLSA0MCk7XG4gICAgICBjb250ZW50WSArPSA1NjtcbiAgICB9XG5cbiAgICBpZiAoY29uZmlnLmJ1eWVyTmFtZSkge1xuICAgICAgY3R4LmZpbGxTdHlsZSA9ICcjMmYyYTM2JztcbiAgICAgIGN0eC5mb250ID0gYDEuMjVyZW0gJHtGT05UX1NUQUNLfWA7XG4gICAgICBjdHgudGV4dEFsaWduID0gJ2NlbnRlcic7XG4gICAgICBjdHgudGV4dEJhc2VsaW5lID0gJ3RvcCc7XG4gICAgICBjdHguZmlsbFRleHQoY29uZmlnLmJ1eWVyTmFtZSwgd2lkdGggLyAyLCBjb250ZW50WSwgd2lkdGggLSA0MCk7XG4gICAgfVxuXG4gICAgY3R4LmZpbGxTdHlsZSA9ICcjNmI2Njc1JztcbiAgICBjdHguZm9udCA9IGAwLjc1cmVtICR7Rk9OVF9TVEFDS31gO1xuICAgIGN0eC50ZXh0QWxpZ24gPSAncmlnaHQnO1xuICAgIGN0eC50ZXh0QmFzZWxpbmUgPSAnYm90dG9tJztcbiAgICBjdHguZmlsbFRleHQoJ1ZhbHRlY2gnLCB3aWR0aCAtIDE2LCBmb290ZXJUb3AgKyBGT09URVJfSCAtIDEyKTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZEltYWdlKHNyYzogc3RyaW5nKTogUHJvbWlzZTxIVE1MSW1hZ2VFbGVtZW50PiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPEhUTUxJbWFnZUVsZW1lbnQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGNvbnN0IGltZyA9IG5ldyBJbWFnZSgpO1xuICAgICAgaW1nLm9ubG9hZCA9ICgpID0+IHJlc29sdmUoaW1nKTtcbiAgICAgIGltZy5vbmVycm9yID0gKCkgPT4gcmVqZWN0KG5ldyBFcnJvcihgRmFpbGVkIHRvIGxvYWQgaW1hZ2U6ICR7c3JjfWApKTtcbiAgICAgIGltZy5zcmMgPSBzcmM7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
251
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlja2V0LWNhcmQtaW1hZ2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvdGlja2V0LWNhcmQtaW1hZ2UvdGlja2V0LWNhcmQtaW1hZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUczQyxNQUFNLFlBQVksR0FBRyxHQUFHLENBQUM7QUFDekIsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDO0FBQ3JCLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQztBQUN0QixNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUM7QUFDbEIsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDO0FBQ3JCLE1BQU0sYUFBYSxHQUFHLFFBQVEsR0FBRyxTQUFTLEdBQUcsTUFBTSxHQUFHLFFBQVEsQ0FBQztBQUMvRCxNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFFcEIsTUFBTSxtQkFBbUIsR0FBRyxTQUFTLENBQUM7QUFDdEMsTUFBTSxzQkFBc0IsR0FBRyxTQUFTLENBQUM7QUFDekMsTUFBTSxVQUFVLEdBQUcsK0NBQStDLENBQUM7QUFHbkUsTUFBTSxPQUFPLHNCQUFzQjtJQUNqQyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQTZCO1FBQzFDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLElBQUksWUFBWSxDQUFDO1FBRTNDLElBQUksTUFBMkMsQ0FBQztRQUNoRCxJQUFJLEdBQWlFLENBQUM7UUFFdEUsSUFBSSxPQUFPLGVBQWUsS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUMzQyxNQUFNLEdBQUcsSUFBSSxlQUFlLENBQUMsS0FBSyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1lBQ25ELEdBQUcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBc0MsQ0FBQztRQUNyRSxDQUFDO2FBQU0sQ0FBQztZQUNOLE1B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O1FBQzNCLE9BQU8sSUFBSSxPQUFPLENBQW1CLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3ZELE1BQU0sR0FBRyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7WUFDeEIsR0FBRyxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDaEMsR0FBRyxDQUFDLE9BQU8sR0FBRyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMseUJBQXlCLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN0RSxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7K0dBblNVLHNCQUFzQjttSEFBdEIsc0JBQXNCLGNBRFQsTUFBTTs7NEZBQ25CLHNCQUFzQjtrQkFEbEMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaWNrZXRDYXJkSW1hZ2VDb25maWcgfSBmcm9tICcuL3R5cGVzJztcblxuY29uc3QgQ0FOVkFTX1dJRFRIID0gNTYwO1xuY29uc3QgSEVBREVSX0ggPSAyMTA7XG5jb25zdCBRUl9aT05FX0ggPSAzNDA7XG5jb25zdCBQRVJGX0ggPSAyODtcbmNvbnN0IEZPT1RFUl9IID0gMjIwO1xuY29uc3QgQ0FOVkFTX0hFSUdIVCA9IEhFQURFUl9IICsgUVJfWk9ORV9IICsgUEVSRl9IICsgRk9PVEVSX0g7XG5jb25zdCBRUl9TSVpFID0gMjYwO1xuXG5jb25zdCBERUZBVUxUX0JSQU5EX0NPTE9SID0gJyM5YjFmZGUnO1xuY29uc3QgREVGQVVMVF9CUkFORF9DT0xPUl9UTyA9ICcjYzkzMDc1JztcbmNvbnN0IEZPTlRfU1RBQ0sgPSAnXCJQbHVzIEpha2FydGEgU2Fuc1wiLCBLaHVsYSwgQXJpYWwsIHNhbnMtc2VyaWYnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFRpY2tldENhcmRJbWFnZVNlcnZpY2Uge1xuICBhc3luYyBnZW5lcmF0ZShjb25maWc6IFRpY2tldENhcmRJbWFnZUNvbmZpZyk6IFByb21pc2U8QmxvYj4ge1xuICAgIGNvbnN0IHdpZHRoID0gY29uZmlnLndpZHRoID8/IENBTlZBU19XSURUSDtcblxuICAgIGxldCBjYW52YXM6IEhUTUxDYW52YXNFbGVtZW50IHwgT2Zmc2NyZWVuQ2FudmFzO1xuICAgIGxldCBjdHg6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCB8IE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDtcblxuICAgIGlmICh0eXBlb2YgT2Zmc2NyZWVuQ2FudmFzICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgY2FudmFzID0gbmV3IE9mZnNjcmVlbkNhbnZhcyh3aWR0aCwgQ0FOVkFTX0hFSUdIVCk7XG4gICAgICBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKSBhcyBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xuICAgICAgKGNhbnZhcyBhcyBIVE1MQ2FudmFzRWxlbWVudCkud2lkdGggPSB3aWR0aDtcbiAgICAgIChjYW52YXMgYXMgSFRNTENhbnZhc0VsZW1lbnQpLmhlaWdodCA9IENBTlZBU19IRUlHSFQ7XG4gICAgICBjdHggPSAoY2FudmFzIGFzIEhUTUxDYW52YXNFbGVtZW50KS5nZXRDb250ZXh0KCcyZCcpIGFzIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDtcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLmRyYXdIZWFkZXIoY3R4LCBjb25maWcsIHdpZHRoKTtcbiAgICBhd2FpdCB0aGlzLmRyYXdRclpvbmUoY3R4LCBjb25maWcsIHdpZHRoKTtcbiAgICB0aGlzLmRyYXdQZXJmb3JhdGVkKGN0eCwgY29uZmlnLCB3aWR0aCk7XG4gICAgdGhpcy5kcmF3Rm9vdGVyKGN0eCwgY29uZmlnLCB3aWR0aCk7XG5cbiAgICBpZiAoY2FudmFzIGluc3RhbmNlb2YgT2Zmc2NyZWVuQ2FudmFzKSB7XG4gICAgICByZXR1cm4gY2FudmFzLmNvbnZlcnRUb0Jsb2IoeyB0eXBlOiAnaW1hZ2UvcG5nJyB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IFByb21pc2U8QmxvYj4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgKGNhbnZhcyBhcyBIVE1MQ2FudmFzRWxlbWVudCkudG9CbG9iKGJsb2IgPT4ge1xuICAgICAgICBpZiAoYmxvYikge1xuICAgICAgICAgIHJlc29sdmUoYmxvYik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVqZWN0KG5ldyBFcnJvcignQ2FudmFzIHRvQmxvYiByZXR1cm5lZCBudWxsJykpO1xuICAgICAgICB9XG4gICAgICB9LCAnaW1hZ2UvcG5nJyk7XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBzaGFyZShjb25maWc6IFRpY2tldENhcmRJbWFnZUNvbmZpZywgc2hhcmVUaXRsZT86IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGlmICghbmF2aWdhdG9yLnNoYXJlIHx8ICFuYXZpZ2F0b3IuY2FuU2hhcmUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBsZXQgYmxvYjogQmxvYjtcbiAgICB0cnkge1xuICAgICAgYmxvYiA9IGF3YWl0IHRoaXMuZ2VuZXJhdGUoY29uZmlnKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBmaWxlbmFtZSA9ICdlbnRyYWRhLnBuZyc7XG4gICAgY29uc3QgZmlsZSA9IG5ldyBGaWxlKFtibG9iXSwgZmlsZW5hbWUsIHsgdHlwZTogJ2ltYWdlL3BuZycgfSk7XG5cbiAgICBpZiAoIW5hdmlnYXRvci5jYW5TaGFyZSh7IGZpbGVzOiBbZmlsZV0gfSkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgbmF2aWdhdG9yLnNoYXJlKHtcbiAgICAgICAgdGl0bGU6IHNoYXJlVGl0bGUgPz8gY29uZmlnLmJyYW5kTmFtZSA/PyAnRW50cmFkYScsXG4gICAgICAgIGZpbGVzOiBbZmlsZV0sXG4gICAgICB9KTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIERPTUV4Y2VwdGlvbiAmJiBlcnIubmFtZSA9PT0gJ0Fib3J0RXJyb3InKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGRyYXdIZWFkZXIoXG4gICAgY3R4OiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgfCBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQsXG4gICAgY29uZmlnOiBUaWNrZXRDYXJkSW1hZ2VDb25maWcsXG4gICAgd2lkdGg6IG51bWJlclxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBjb2xvckZyb20gPSBjb25maWcuYnJhbmRDb2xvciA/PyBERUZBVUxUX0JSQU5EX0NPTE9SO1xuICAgIGNvbnN0IGNvbG9yVG8gPVxuICAgICAgY29uZmlnLmJyYW5kQ29sb3JUbyA/PyAoY29uZmlnLmJyYW5kQ29sb3IgPyBjb25maWcuYnJhbmRDb2xvciA6IERFRkFVTFRfQlJBTkRfQ09MT1JfVE8pO1xuXG4gICAgY29uc3QgZ3JhZCA9IGN0eC5jcmVhdGVMaW5lYXJHcmFkaWVudCgwLCAwLCB3aWR0aCwgSEVBREVSX0gpO1xuICAgIGdyYWQuYWRkQ29sb3JTdG9wKDAsIGNvbG9yRnJvbSk7XG4gICAgZ3JhZC5hZGRDb2xvclN0b3AoMSwgY29sb3JUbyk7XG4gICAgY3R4LmZpbGxTdHlsZSA9IGdyYWQ7XG4gICAgY3R4LmZpbGxSZWN0KDAsIDAsIHdpZHRoLCBIRUFERVJfSCk7XG5cbiAgICBjb25zdCBsb2dvSCA9IDQ4O1xuICAgIGNvbnN0IGxvZ29QYWRUb3AgPSAyODtcbiAgICBsZXQgY3Vyc29yWSA9IGxvZ29QYWRUb3A7XG5cbiAgICBpZiAoY29uZmlnLmxvZ29VcmwpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGxvZ29JbWcgPSBhd2FpdCB0aGlzLmxvYWRJbWFnZShjb25maWcubG9nb1VybCk7XG4gICAgICAgIGNvbnN0IHJhdGlvID0gbG9nb0ltZy53aWR0aCAvIGxvZ29JbWcuaGVpZ2h0O1xuICAgICAgICBjb25zdCBsb2dvVyA9IGxvZ29IICogcmF0aW87XG4gICAgICAgIGNvbnN0IGxvZ29YID0gKHdpZHRoIC0gbG9nb1cpIC8gMjtcbiAgICAgICAgY3R4LmRyYXdJbWFnZShsb2dvSW1nLCBsb2dvWCwgY3Vyc29yWSwgbG9nb1csIGxvZ29IKTtcbiAgICAgICAgY3Vyc29yWSArPSBsb2dvSCArIDE0O1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIC8vIGxvZ28gZmFpbGVkIOKAlCBjb250aW51ZSB3aXRob3V0IGl0XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGNvbmZpZy5icmFuZE5hbWUpIHtcbiAgICAgIGN0eC5maWxsU3R5bGUgPSAnI2ZmZmZmZic7XG4gICAgICBjdHguZm9udCA9IGBib2xkIDEuNjI1cmVtICR7Rk9OVF9TVEFDS31gO1xuICAgICAgY3R4LnRleHRBbGlnbiA9ICdjZW50ZXInO1xuICAgICAgY3R4LnRleHRCYXNlbGluZSA9ICd0b3AnO1xuICAgICAgY3R4LmZpbGxUZXh0KGNvbmZpZy5icmFuZE5hbWUsIHdpZHRoIC8gMiwgY3Vyc29yWSwgd2lkdGggLSA0OCk7XG4gICAgICBjdXJzb3JZICs9IDMyO1xuICAgIH1cblxuICAgIGNvbnN0IG1ldGFQYXJ0czogc3RyaW5nW10gPSBbXTtcbiAgICBpZiAoY29uZmlnLmV2ZW50RGF0ZSkgbWV0YVBhcnRzLnB1c2goY29uZmlnLmV2ZW50RGF0ZSk7XG4gICAgaWYgKGNvbmZpZy5ldmVudExvY2F0aW9uKSBtZXRhUGFydHMucHVzaChjb25maWcuZXZlbnRMb2NhdGlvbik7XG4gICAgaWYgKG1ldGFQYXJ0cy5sZW5ndGggPiAwKSB7XG4gICAgICBjdHguZmlsbFN0eWxlID0gJ3JnYmEoMjU1LDI1NSwyNTUsMC43OCknO1xuICAgICAgY3R4LmZvbnQgPSBgMC44NzVyZW0gJHtGT05UX1NUQUNLfWA7XG4gICAgICBjdHgudGV4dEFsaWduID0gJ2NlbnRlcic7XG4gICAgICBjdHgudGV4dEJhc2VsaW5lID0gJ3RvcCc7XG4gICAgICBjdHguZmlsbFRleHQobWV0YVBhcnRzLmpvaW4oJyAgwrcgICcpLCB3aWR0aCAvIDIsIGN1cnNvclksIHdpZHRoIC0gNDgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZHJhd1FyWm9uZShcbiAgICBjdHg6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCB8IE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCxcbiAgICBjb25maWc6IFRpY2tldENhcmRJbWFnZUNvbmZpZyxcbiAgICB3aWR0aDogbnVtYmVyXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHpvbmVUb3AgPSBIRUFERVJfSDtcblxuICAgIGN0eC5maWxsU3R5bGUgPSAnI2ZmZmZmZic7XG4gICAgY3R4LmZpbGxSZWN0KDAsIHpvbmVUb3AsIHdpZHRoLCBRUl9aT05FX0gpO1xuXG4gICAgY29uc3QgcXJYID0gKHdpZHRoIC0gUVJfU0laRSkgLyAyO1xuICAgIGNvbnN0IHFyWSA9IHpvbmVUb3AgKyAoUVJfWk9ORV9IIC0gUVJfU0laRSAtIDQwKSAvIDI7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcXJJbWcgPSBhd2FpdCB0aGlzLmxvYWRJbWFnZShjb25maWcucXJEYXRhVXJsKTtcbiAgICAgIGN0eC5kcmF3SW1hZ2UocXJJbWcsIHFyWCwgcXJZLCBRUl9TSVpFLCBRUl9TSVpFKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIGN0eC5zdHJva2VTdHlsZSA9ICcjZTBlMGUwJztcbiAgICAgIGN0eC5zdHJva2VSZWN0KHFyWCwgcXJZLCBRUl9TSVpFLCBRUl9TSVpFKTtcbiAgICB9XG5cbiAgICBjb25zdCBoaW50ID0gY29uZmlnLnNjYW5IaW50ID8/ICdNdWVzdHJhIGVzdGUgUVIgZW4gbGEgcHVlcnRhIHBhcmEgY2FuamVhciB0dSBlbnRyYWRhLic7XG4gICAgY3R4LmZpbGxTdHlsZSA9ICcjNmI2Njc1JztcbiAgICBjdHguZm9udCA9IGAwLjg3NXJlbSAke0ZPTlRfU1RBQ0t9YDtcbiAgICBjdHgudGV4dEFsaWduID0gJ2NlbnRlcic7XG4gICAgY3R4LnRleHRCYXNlbGluZSA9ICd0b3AnO1xuICAgIGNvbnN0IGhpbnRZID0gcXJZICsgUVJfU0laRSArIDE0O1xuICAgIHRoaXMuZmlsbFdyYXBwZWRUZXh0KGN0eCwgaGludCwgd2lkdGggLyAyLCBoaW50WSwgd2lkdGggLSA4MCwgMjIpO1xuICB9XG5cbiAgcHJpdmF0ZSBkcmF3UGVyZm9yYXRlZChcbiAgICBjdHg6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCB8IE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCxcbiAgICBjb25maWc6IFRpY2tldENhcmRJbWFnZUNvbmZpZyxcbiAgICB3aWR0aDogbnVtYmVyXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IHkgPSBIRUFERVJfSCArIFFSX1pPTkVfSDtcbiAgICBjb25zdCBub3RjaFIgPSBQRVJGX0ggLyAyO1xuICAgIGNvbnN0IGNvbG9yRnJvbSA9IGNvbmZpZy5icmFuZENvbG9yID8/IERFRkFVTFRfQlJBTkRfQ09MT1I7XG5cbiAgICBjdHguZmlsbFN0eWxlID0gJyNmZmZmZmYnO1xuICAgIGN0eC5maWxsUmVjdCgwLCB5LCB3aWR0aCwgUEVSRl9IKTtcblxuICAgIC8vIExlZnQgbm90Y2ggKHNlbWljaXJjbGUgY3V0IGZyb20gZWRnZSlcbiAgICBjdHguZmlsbFN0eWxlID0gJyNmOGY4ZjgnO1xuICAgIGN0eC5iZWdpblBhdGgoKTtcbiAgICBjdHguYXJjKC0xLCB5ICsgbm90Y2hSLCBub3RjaFIgKyAxLCAtTWF0aC5QSSAvIDIsIE1hdGguUEkgLyAyKTtcbiAgICBjdHguZmlsbCgpO1xuXG4gICAgLy8gUmlnaHQgbm90Y2hcbiAgICBjdHguYmVnaW5QYXRoKCk7XG4gICAgY3R4LmFyYyh3aWR0aCArIDEsIHkgKyBub3RjaFIsIG5vdGNoUiArIDEsIE1hdGguUEkgLyAyLCAtTWF0aC5QSSAvIDIpO1xuICAgIGN0eC5maWxsKCk7XG5cbiAgICAvLyBEYXNoZWQgbGluZSBpbiBtaWRkbGVcbiAgICBjdHguc2V0TGluZURhc2goWzgsIDZdKTtcbiAgICBjdHguc3Ryb2tlU3R5bGUgPSBjb2xvckZyb20gKyAnNTUnO1xuICAgIGN0eC5saW5lV2lkdGggPSAxLjU7XG4gICAgY3R4LmJlZ2luUGF0aCgpO1xuICAgIGN0eC5tb3ZlVG8obm90Y2hSICogMiArIDgsIHkgKyBub3RjaFIpO1xuICAgIGN0eC5saW5lVG8od2lkdGggLSBub3RjaFIgKiAyIC0gOCwgeSArIG5vdGNoUik7XG4gICAgY3R4LnN0cm9rZSgpO1xuICAgIGN0eC5zZXRMaW5lRGFzaChbXSk7XG4gIH1cblxuICBwcml2YXRlIGRyYXdGb290ZXIoXG4gICAgY3R4OiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgfCBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQsXG4gICAgY29uZmlnOiBUaWNrZXRDYXJkSW1hZ2VDb25maWcsXG4gICAgd2lkdGg6IG51bWJlclxuICApOiB2b2lkIHtcbiAgICBjb25zdCBmb290ZXJUb3AgPSBIRUFERVJfSCArIFFSX1pPTkVfSCArIFBFUkZfSDtcbiAgICBjb25zdCBjb2xvckZyb20gPSBjb25maWcuYnJhbmRDb2xvciA/PyBERUZBVUxUX0JSQU5EX0NPTE9SO1xuXG4gICAgY3R4LmZpbGxTdHlsZSA9ICcjZmZmZmZmJztcbiAgICBjdHguZmlsbFJlY3QoMCwgZm9vdGVyVG9wLCB3aWR0aCwgRk9PVEVSX0gpO1xuXG4gICAgbGV0IGNvbnRlbnRZID0gZm9vdGVyVG9wICsgMzI7XG5cbiAgICBpZiAoY29uZmlnLmZvbGlvICE9PSB1bmRlZmluZWQgJiYgY29uZmlnLmZvbGlvICE9PSBudWxsICYmIGNvbmZpZy5mb2xpbyAhPT0gJycpIHtcbiAgICAgIGNvbnN0IGxhYmVsID0gKGNvbmZpZy5mb2xpb0xhYmVsID8/ICdDYXJ0w7NuJykudG9VcHBlckNhc2UoKTtcblxuICAgICAgLy8gTGFiZWwgc21hbGwg4oCUIGJyYW5kIGNvbG9yLCBsZXR0ZXItc3BhY2VkXG4gICAgICBjdHguZmlsbFN0eWxlID0gY29sb3JGcm9tO1xuICAgICAgY3R4LmZvbnQgPSBgNjAwIDAuODEyNXJlbSAke0ZPTlRfU1RBQ0t9YDtcbiAgICAgIGN0eC50ZXh0QWxpZ24gPSAnY2VudGVyJztcbiAgICAgIGN0eC50ZXh0QmFzZWxpbmUgPSAndG9wJztcbiAgICAgIHRoaXMuZmlsbExldHRlclNwYWNlZChjdHgsIGxhYmVsLCB3aWR0aCAvIDIsIGNvbnRlbnRZLCAzKTtcbiAgICAgIGNvbnRlbnRZICs9IDI0O1xuXG4gICAgICAvLyBGb2xpbyBudW1iZXIg4oCUIGxhcmdlLCBib2xkLCBicmFuZCBjb2xvclxuICAgICAgY3R4LmZpbGxTdHlsZSA9IGNvbG9yRnJvbTtcbiAgICAgIGN0eC5mb250ID0gYDgwMCAzLjVyZW0gJHtGT05UX1NUQUNLfWA7XG4gICAgICBjdHgudGV4dEFsaWduID0gJ2NlbnRlcic7XG4gICAgICBjdHgudGV4dEJhc2VsaW5lID0gJ3RvcCc7XG4gICAgICBjdHguZmlsbFRleHQoYCMke2NvbmZpZy5mb2xpb31gLCB3aWR0aCAvIDIsIGNvbnRlbnRZLCB3aWR0aCAtIDQwKTtcbiAgICAgIGNvbnRlbnRZICs9IDY4O1xuICAgIH1cblxuICAgIGlmIChjb25maWcuYnV5ZXJOYW1lKSB7XG4gICAgICBjdHguZmlsbFN0eWxlID0gJyM2YjY2NzUnO1xuICAgICAgY3R4LmZvbnQgPSBgMC45Mzc1cmVtICR7Rk9OVF9TVEFDS31gO1xuICAgICAgY3R4LnRleHRBbGlnbiA9ICdjZW50ZXInO1xuICAgICAgY3R4LnRleHRCYXNlbGluZSA9ICd0b3AnO1xuICAgICAgY3R4LmZpbGxUZXh0KGNvbmZpZy5idXllck5hbWUsIHdpZHRoIC8gMiwgY29udGVudFksIHdpZHRoIC0gNDApO1xuICAgIH1cblxuICAgIC8vIENvcHlyaWdodFxuICAgIGN0eC5maWxsU3R5bGUgPSAnI2IwYThiYyc7XG4gICAgY3R4LmZvbnQgPSBgMC42ODc1cmVtICR7Rk9OVF9TVEFDS31gO1xuICAgIGN0eC50ZXh0QWxpZ24gPSAnY2VudGVyJztcbiAgICBjdHgudGV4dEJhc2VsaW5lID0gJ2JvdHRvbSc7XG4gICAgY3R4LmZpbGxUZXh0KFxuICAgICAgJ8KpIDIwMjYgVmFsdGVjaC4gVG9kb3MgbG9zIGRlcmVjaG9zIHJlc2VydmFkb3MuJyxcbiAgICAgIHdpZHRoIC8gMixcbiAgICAgIGZvb3RlclRvcCArIEZPT1RFUl9IIC0gMTRcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBmaWxsV3JhcHBlZFRleHQoXG4gICAgY3R4OiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgfCBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQsXG4gICAgdGV4dDogc3RyaW5nLFxuICAgIHg6IG51bWJlcixcbiAgICB5OiBudW1iZXIsXG4gICAgbWF4V2lkdGg6IG51bWJlcixcbiAgICBsaW5lSGVpZ2h0OiBudW1iZXJcbiAgKTogdm9pZCB7XG4gICAgY29uc3Qgd29yZHMgPSB0ZXh0LnNwbGl0KCcgJyk7XG4gICAgbGV0IGxpbmUgPSAnJztcbiAgICBsZXQgY3VyWSA9IHk7XG4gICAgZm9yIChjb25zdCB3b3JkIG9mIHdvcmRzKSB7XG4gICAgICBjb25zdCB0ZXN0ID0gbGluZSA/IGAke2xpbmV9ICR7d29yZH1gIDogd29yZDtcbiAgICAgIGlmIChjdHgubWVhc3VyZVRleHQodGVzdCkud2lkdGggPiBtYXhXaWR0aCAmJiBsaW5lKSB7XG4gICAgICAgIGN0eC5maWxsVGV4dChsaW5lLCB4LCBjdXJZKTtcbiAgICAgICAgbGluZSA9IHdvcmQ7XG4gICAgICAgIGN1clkgKz0gbGluZUhlaWdodDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxpbmUgPSB0ZXN0O1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAobGluZSkgY3R4LmZpbGxUZXh0KGxpbmUsIHgsIGN1clkpO1xuICB9XG5cbiAgcHJpdmF0ZSBmaWxsTGV0dGVyU3BhY2VkKFxuICAgIGN0eDogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIHwgT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELFxuICAgIHRleHQ6IHN0cmluZyxcbiAgICBjeDogbnVtYmVyLFxuICAgIHk6IG51bWJlcixcbiAgICBzcGFjaW5nOiBudW1iZXJcbiAgKTogdm9pZCB7XG4gICAgLy8gTWVhc3VyZSB0b3RhbCB3aWR0aCB3aXRoIHNwYWNpbmcgYW5kIGNlbnRlclxuICAgIGNvbnN0IGNoYXJzID0gdGV4dC5zcGxpdCgnJyk7XG4gICAgY29uc3QgY2hhcldpZHRocyA9IGNoYXJzLm1hcChjID0+IGN0eC5tZWFzdXJlVGV4dChjKS53aWR0aCk7XG4gICAgY29uc3QgdG90YWxXID0gY2hhcldpZHRocy5yZWR1Y2UoKHMsIHcpID0+IHMgKyB3LCAwKSArIHNwYWNpbmcgKiAoY2hhcnMubGVuZ3RoIC0gMSk7XG4gICAgbGV0IHggPSBjeCAtIHRvdGFsVyAvIDI7XG4gICAgY3R4LnRleHRBbGlnbiA9ICdsZWZ0JztcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNoYXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjdHguZmlsbFRleHQoY2hhcnNbaV0sIHgsIHkpO1xuICAgICAgeCArPSBjaGFyV2lkdGhzW2ldICsgc3BhY2luZztcbiAgICB9XG4gICAgY3R4LnRleHRBbGlnbiA9ICdjZW50ZXInO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkSW1hZ2Uoc3JjOiBzdHJpbmcpOiBQcm9taXNlPEhUTUxJbWFnZUVsZW1lbnQ+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8SFRNTEltYWdlRWxlbWVudD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgY29uc3QgaW1nID0gbmV3IEltYWdlKCk7XG4gICAgICBpbWcub25sb2FkID0gKCkgPT4gcmVzb2x2ZShpbWcpO1xuICAgICAgaW1nLm9uZXJyb3IgPSAoKSA9PiByZWplY3QobmV3IEVycm9yKGBGYWlsZWQgdG8gbG9hZCBpbWFnZTogJHtzcmN9YCkpO1xuICAgICAgaW1nLnNyYyA9IHNyYztcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL3RpY2tldC1jYXJkLWltYWdlL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFRpY2tldENhcmRJbWFnZUNvbmZpZyB7XG4gIC8qKiBRUiBjb2RlIGFzIGRhdGFVcmwgKFBORy9iYXNlNjQpICovXG4gIHFyRGF0YVVybDogc3RyaW5nO1xuICAvKiogTG9nbyB0byBzaG93IGluIHRoZSBoZWFkZXIuIFVSTCBvciBkYXRhVXJsLiBPcHRpb25hbC4gKi9cbiAgbG9nb1VybD86IHN0cmluZztcbiAgLyoqIEhlYWRlciBiYWNrZ3JvdW5kIGNvbG9yIChDU1MgY29sb3IpLiBEZWZhdWx0OiBiaW5nbyBncmFkaWVudCAnIzliMWZkZScgLT4gJyNjOTMwNzUnLiAqL1xuICBicmFuZENvbG9yPzogc3RyaW5nO1xuICAvKiogU2Vjb25kIGNvbG9yIGZvciBncmFkaWVudC4gSWYgYWJzZW50LCB1c2Ugc29saWQgYnJhbmRDb2xvci4gKi9cbiAgYnJhbmRDb2xvclRvPzogc3RyaW5nO1xuICAvKiogQnJhbmQvZXZlbnQgbmFtZSBzaG93biBpbiBoZWFkZXIuICovXG4gIGJyYW5kTmFtZT86IHN0cmluZztcbiAgLyoqIEZvbGlvIG51bWJlciBvciBzdHJpbmcuICovXG4gIGZvbGlvPzogbnVtYmVyIHwgc3RyaW5nO1xuICAvKiogTGFiZWwgZm9yIGZvbGlvLiBEZWZhdWx0OiBcIkVudHJhZGFcIi4gKi9cbiAgZm9saW9MYWJlbD86IHN0cmluZztcbiAgLyoqIEJ1eWVyIG5hbWUuIE9wdGlvbmFsLiAqL1xuICBidXllck5hbWU/OiBzdHJpbmc7XG4gIC8qKiBDYW52YXMgd2lkdGggKGRlZmF1bHQgNTYwKS4gKi9cbiAgd2lkdGg/OiBudW1iZXI7XG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL3RpY2tldC1jYXJkLWltYWdlL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFRpY2tldENhcmRJbWFnZUNvbmZpZyB7XG4gIC8qKiBRUiBjb2RlIGFzIGRhdGFVcmwgKFBORy9iYXNlNjQpICovXG4gIHFyRGF0YVVybDogc3RyaW5nO1xuICAvKiogTG9nbyB0byBzaG93IGluIHRoZSBoZWFkZXIuIFVSTCBvciBkYXRhVXJsLiBPcHRpb25hbC4gKi9cbiAgbG9nb1VybD86IHN0cmluZztcbiAgLyoqIEhlYWRlciBiYWNrZ3JvdW5kIGNvbG9yIChDU1MgY29sb3IpLiBEZWZhdWx0OiBiaW5nbyBncmFkaWVudCAnIzliMWZkZScgLT4gJyNjOTMwNzUnLiAqL1xuICBicmFuZENvbG9yPzogc3RyaW5nO1xuICAvKiogU2Vjb25kIGNvbG9yIGZvciBncmFkaWVudC4gSWYgYWJzZW50LCB1c2Ugc29saWQgYnJhbmRDb2xvci4gKi9cbiAgYnJhbmRDb2xvclRvPzogc3RyaW5nO1xuICAvKiogQnJhbmQvZXZlbnQgbmFtZSBzaG93biBpbiBoZWFkZXIuICovXG4gIGJyYW5kTmFtZT86IHN0cmluZztcbiAgLyoqIEZvbGlvIG51bWJlciBvciBzdHJpbmcuICovXG4gIGZvbGlvPzogbnVtYmVyIHwgc3RyaW5nO1xuICAvKiogTGFiZWwgZm9yIGZvbGlvLiBEZWZhdWx0OiBcIkVudHJhZGFcIi4gKi9cbiAgZm9saW9MYWJlbD86IHN0cmluZztcbiAgLyoqIEJ1eWVyIG5hbWUuIE9wdGlvbmFsLiAqL1xuICBidXllck5hbWU/OiBzdHJpbmc7XG4gIC8qKiBDYW52YXMgd2lkdGggKGRlZmF1bHQgNTYwKS4gKi9cbiAgd2lkdGg/OiBudW1iZXI7XG4gIC8qKiBFdmVudCBkYXRlIHN0cmluZyB0byBzaG93IGluIGhlYWRlciAoYWxyZWFkeSBmb3JtYXR0ZWQgZm9yIGRpc3BsYXksIGUuZy4gXCJtYXJ0ZXMsIDI0IGRlIGp1bmlvXCIpLiAqL1xuICBldmVudERhdGU/OiBzdHJpbmc7XG4gIC8qKiBFdmVudCBsb2NhdGlvbiB0byBzaG93IGluIGhlYWRlci4gKi9cbiAgZXZlbnRMb2NhdGlvbj86IHN0cmluZztcbiAgLyoqIEhpbnQgdGV4dCBiZWxvdyB0aGUgUVIgY29kZS4gRGVmYXVsdDogXCJNdWVzdHJhIGVzdGUgUVIgZW4gbGEgcHVlcnRhIHBhcmEgY2FuamVhciB0dSBlbnRyYWRhLlwiICovXG4gIHNjYW5IaW50Pzogc3RyaW5nO1xufVxuIl19
@@ -2,5 +2,5 @@
2
2
  * Current version of valtech-components.
3
3
  * This is automatically updated during the publish process.
4
4
  */
5
- export const VERSION = '4.0.167';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuMC4xNjcnO1xuIl19
5
+ export const VERSION = '4.0.168';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuMC4xNjgnO1xuIl19