asksuite-citrus 1.13.5 → 1.14.6-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -10,8 +10,7 @@ export class RichtextWrapper {
10
10
  .pipe(map(() => this.quill.root.innerHTML));
11
11
  }
12
12
  get listenOnTouched$() {
13
- return fromEvent(this.quill, 'selection-change')
14
- .pipe(map(() => !this.quill.getSelection(false)));
13
+ return fromEvent(this.quill, 'selection-change').pipe(filter(() => Boolean(this.quill.getSelection(false))), map(() => null));
15
14
  }
16
15
  get listenEscape$() {
17
16
  return this.esc$.asObservable();
@@ -301,4 +300,4 @@ export const QuillProxy = {
301
300
  export const RichtextWrapperProxy = {
302
301
  RichtextWrapper
303
302
  };
304
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmljaHRleHQtd3JhcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fza3N1aXRlLWNpdHJ1cy9zcmMvbGliL2NsYXNzZXMvcmljaHRleHQtd3JhcHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQXdGLE1BQU0sT0FBTyxDQUFDO0FBQzdHLE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFnQixNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQVF0RixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFNUQsTUFBTSxPQUFPLGVBQWU7SUF5RTFCLElBQVcsS0FBSztRQUNaLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUE7SUFDOUIsQ0FBQztJQUlELElBQVcsa0JBQWtCO1FBQzNCLE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsYUFBYSxDQUFDO2FBQ3hDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsSUFBVyxnQkFBZ0I7UUFDekIsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxrQkFBa0IsQ0FBQzthQUM3QyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxJQUFXLGFBQWE7UUFDdEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFBO0lBQ2pDLENBQUM7SUFFRCxJQUFXLFlBQVk7UUFDckIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFD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RSxJQUFJLElBQUksRUFBRTtZQUM1QixhQUFhLEVBQUUsVUFBVSxFQUFFLElBQUksS0FBSyxRQUFRO1lBQzVDLGFBQWEsRUFBRSxVQUFVLEVBQUUsSUFBSSxLQUFLLFNBQVM7WUFDN0MsWUFBWSxFQUFFLFVBQVUsRUFBRSxLQUFLLEtBQUssTUFBTTtZQUMxQyxjQUFjLEVBQUUsVUFBVSxFQUFFLEtBQUssS0FBSyxRQUFRO1lBQzlDLGFBQWEsRUFBRSxVQUFVLEVBQUUsS0FBSyxLQUFLLE9BQU87U0FDN0MsQ0FBQztRQUVGLE1BQU0sWUFBWSxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDO1FBQ3JDLE1BQU0sUUFBUSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFFekIsTUFBTSxRQUFRLEdBQWU7WUFDM0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUs7WUFDdEIsWUFBWTtZQUNaLE9BQU87WUFDUCxNQUFNO1lBQ04sUUFBUTtTQUNULENBQUM7UUFFRixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDN0IsSUFBSSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7Q0FDRjtBQUVELGtDQUFrQztBQUNsQyxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUU7SUFDdkIsS0FBSztDQUNOLENBQUE7QUFFRCxrQ0FBa0M7QUFDbEMsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUc7SUFDbEMsZUFBZTtDQUNoQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIEVsZW1lbnRSZWYsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IFF1aWxsLCB7IEJvdW5kc1N0YXRpYywgUmFuZ2VTdGF0aWMsIFNlbGVjdGlvbkNoYW5nZUhhbmRsZXIsIFNvdXJjZXMsIFRleHRDaGFuZ2VIYW5kbGVyIH0gZnJvbSAncXVpbGwnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIGZpbHRlciwgZnJvbUV2ZW50LCBtYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIFJpY2hUZXh0RnVuY3Rpb25zLFxuICBSaWNodGV4dEZvcm1hdHMsXG4gIFRvb2wsXG4gIFRvb2xLZXlzLFxuICBUb29sc1N0YXRlLFxufSBmcm9tICcuLi9pbnRlcmZhY2VzL3JpY2h0ZXh0LXRvb2xib3guaW50ZXJmYWNlJztcbmltcG9ydCB7IFVSTF9SRUdFWCB9IGZyb20gJy4uL2NvbnN0YW50cy91cmwtcmVnZXguY29uc3RhbnQnO1xuXG5leHBvcnQgY2xhc3MgUmljaHRleHRXcmFwcGVyIGltcGxlbWVudHMgUmljaFRleHRGdW5jdGlvbnMge1xuICBwcml2YXRlIHF1aWxsITogUXVpbGw7XG4gIHByaXZhdGUgc3RhdGVTdWIgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRvb2xzU3RhdGU+KHtcbiAgICBoYXNTZWxlY3Rpb246IGZhbHNlLFxuICAgIGhhc0ZvY3VzOiBmYWxzZSxcbiAgICBmb3JtYXRzOiB7XG4gICAgICBpdGFsaWM6IGZhbHNlLFxuICAgICAgYm9sZDogZmFsc2UsXG4gICAgICB1bmRlcmxpbmU6IGZhbHNlLFxuICAgICAgc3RyaWtlOiBmYWxzZSxcbiAgICAgIGxpbms6ICcnLFxuICAgICAgbGlzdF9idWxsZXRlZDogZmFsc2UsXG4gICAgICBsaXN0X251bWJlcmVkOiBmYWxzZSxcbiAgICAgIGp1c3RpZnlfbGVmdDogZmFsc2UsXG4gICAgICBqdXN0aWZ5X2NlbnRlcjogZmFsc2UsXG4gICAgICBqdXN0aWZ5X3JpZ2h0OiBmYWxzZSxcbiAgICB9LFxuICAgIGRpc2FibGVkVG9vbHM6IFtdXG4gIH0pO1xuICBwcml2YXRlIGVzYyQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBwcml2YXRlIGVudGVyJCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIHByaXZhdGUgbWF4TGVuZ3RoID0gLTE7XG4gIHByaXZhdGUgYnJlYWtPbkVudGVyID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSB0ZXh0Q2hhbmdlSGFuZGxlcjogVGV4dENoYW5nZUhhbmRsZXIgPSAoKSA9PiB7XG4gICAgdGhpcy51cGRhdGUoKTtcbiAgfTtcblxuICBwcml2YXRlIHNlbGVjdGlvbkNoYW5nZUhhbmRsZXI6IFNlbGVjdGlvbkNoYW5nZUhhbmRsZXIgPSAoXG4gICAgdmFsdWU6IFJhbmdlU3RhdGljLFxuICAgIG9sZFJhbmdlOiBSYW5nZVN0YXRpYyxcbiAgICBzb3VyY2U6IFNvdXJjZXNcbiAgKSA9PiB7XG4gICAgdGhpcy51cGRhdGUoKTtcbiAgfTtcblxuICBwcml2YXRlIGJpbmRpbmdzID0ge1xuICAgIGJvbGQ6IHtcbiAgICAgIGhhbmRsZXI6ICgpID0+IHtcbiAgICAgICAgdGhpcy5zZXRCb2xkKCk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH0sXG4gICAgfSxcbiAgICBpdGFsaWM6IHtcbiAgICAgIGhhbmRsZXI6ICgpID0+IHtcbiAgICAgICAgdGhpcy5zZXRJdGFsaWMoKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfSxcbiAgICB9LFxuICAgIHVuZGVybGluZToge1xuICAgICAgaGFuZGxlcjogKCkgPT4ge1xuICAgICAgICB0aGlzLnNldFVuZGVybGluZSgpO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9LFxuICAgIH0sXG4gICAgZXNjYXBlOntcbiAgICAgIGtleTogJ2VzY2FwZScsXG4gICAgICBoYW5kbGVyOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuZXNjJC5uZXh0KHRydWUpO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfSxcbiAgICBlbnRlcjoge1xuICAgICAga2V5OiAnZW50ZXInLFxuICAgICAgaGFuZGxlcjogKCkgPT4ge1xuICAgICAgICB0aGlzLmVudGVyJC5uZXh0KHRydWUpO1xuICAgICAgICByZXR1cm4gdGhpcy5icmVha09uRW50ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gIH07XG4gIHByaXZhdGUgbWF4TGVuZ3RoU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuXG4gIHB1YmxpYyBnZXQgc3RhdGUoKXtcbiAgICAgIHJldHVybiB0aGlzLnN0YXRlU3ViLnZhbHVlXG4gIH1cbiAgXG4gIHB1YmxpYyBzdGF0ZSQgPSB0aGlzLnN0YXRlU3ViLmFzT2JzZXJ2YWJsZSgpO1xuICAgIFxuICBwdWJsaWMgZ2V0IGxpc3RlblRleHRDaGFuZ2VzJCgpe1xuICAgIHJldHVybiBmcm9tRXZlbnQodGhpcy5xdWlsbCwgJ3RleHQtY2hhbmdlJylcbiAgICAgIC5waXBlKG1hcCgoKSA9PiB0aGlzLnF1aWxsLnJvb3QuaW5uZXJIVE1MKSk7IFxuICB9XG5cbiAgcHVibGljIGdldCBsaXN0ZW5PblRvdWNoZWQkKCl7XG4gICAgcmV0dXJuIGZyb21FdmVudCh0aGlzLnF1aWxsLCAnc2VsZWN0aW9uLWNoYW5nZScpXG4gICAgICAucGlwZShtYXAoKCkgPT4gIXRoaXMucXVpbGwuZ2V0U2VsZWN0aW9uKGZhbHNlKSkpO1xuICB9XG5cbiAgcHVibGljIGdldCBsaXN0ZW5Fc2NhcGUkKCl7XG4gICAgcmV0dXJuIHRoaXMuZXNjJC5hc09ic2VydmFibGUoKVxuICB9XG5cbiAgcHVibGljIGdldCBsaXN0ZW5FbnRlciQoKXtcbiAgICByZXR1cm4gdGhpcy5lbnRlciQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxuICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICkge1xuICAgIGNvbnN0IGVkaXRvcklkID0gYGVkaXRvci0ke25ldyBEYXRlKCkuZ2V0VGltZSgpfWA7XG4gICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCdpZCcsIGVkaXRvcklkKTtcbiAgICB0aGlzLnF1aWxsID0gbmV3IFF1aWxsUHJveHkuUXVpbGwoYCMke2VkaXRvcklkfWAsIHtcbiAgICAgIHBsYWNlaG9sZGVyOiAnJyxcbiAgICAgIG1vZHVsZXM6IHtcbiAgICAgICAgY2xpcGJvYXJkOiB7XG4gICAgICAgICAgbWF0Y2hlcnM6IFtbTm9kZS5URVhUX05PREUsIHRoaXMudXJsTWF0Y2hlci5iaW5kKHRoaXMpXV0sXG4gICAgICAgIH0sXG4gICAgICAgIGtleWJvYXJkOiB7IGJpbmRpbmdzOiB0aGlzLmJpbmRpbmdzIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHRoaXMubGlzdGVuRWRpdG9yQ2hhbmdlcygpO1xuICB9XG5cbiAgcHVibGljIHNldEl0YWxpYygpIHtcbiAgICBpZih0aGlzLmlzVG9vbERpc2FibGVkKCdpdGFsaWMnKSkgcmV0dXJuO1xuICAgIHRoaXMucXVpbGwuZm9ybWF0KCdpdGFsaWMnLCAhdGhpcy5zdGF0ZS5mb3JtYXRzLml0YWxpYyk7XG4gICAgdGhpcy51cGRhdGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRCb2xkKCkge1xuICAgIGlmKHRoaXMuaXNUb29sRGlzYWJsZWQoJ2JvbGQnKSkgcmV0dXJuXG4gICAgdGhpcy5xdWlsbC5mb3JtYXQoJ2JvbGQnLCAhdGhpcy5zdGF0ZS5mb3JtYXRzLmJvbGQpO1xuICAgIHRoaXMudXBkYXRlKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0VW5kZXJsaW5lKCkge1xuICAgIGlmKHRoaXMuaXNUb29sRGlzYWJsZWQoJ3VuZGVybGluZScpKSByZXR1cm47XG4gICAgdGhpcy5xdWlsbC5mb3JtYXQoJ3VuZGVybGluZScsICF0aGlzLnN0YXRlLmZvcm1hdHMudW5kZXJsaW5lKTtcbiAgICB0aGlzLnVwZGF0ZSgpO1xuICB9XG5cbiAgcHVibGljIHNldFN0cmlrZSgpIHtcbiAgICBpZih0aGlzLmlzVG9vbERpc2FibGVkKCdzdHJpa2UnKSkgcmV0dXJuO1xuICAgIHRoaXMucXVpbGwuZm9ybWF0KCdzdHJpa2UnLCAhdGhpcy5zdGF0ZS5mb3JtYXRzLnN0cmlrZSk7XG4gICAgdGhpcy51cGRhdGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRMaXN0TnVtYmVyZWQoKSB7XG4gICAgaWYodGhpcy5pc1Rvb2xEaXNhYmxlZCgnbGlzdF9udW1iZXJlZCcpKSByZXR1cm47XG4gICAgaWYgKHRoaXMuc3RhdGUuZm9ybWF0cy5saXN0X251bWJlcmVkKVxuICAgICAgdGhpcy5xdWlsbC5mb3JtYXQoJ2xpc3QnLCBudWxsKTtcbiAgICBlbHNlICBcbiAgICAgIHRoaXMucXVpbGwuZm9ybWF0KCdsaXN0JywgJ29yZGVyZWQnKTtcbiAgICB0aGlzLnVwZGF0ZSgpO1xuICB9XG5cbiAgcHVibGljIHNldExpc3RCdWxsZXRlZCgpIHtcbiAgICBpZih0aGlzLmlzVG9vbERpc2FibGVkKCdsaXN0X2J1bGxldGVkJykpIHJldHVybjtcbiAgICBpZiAodGhpcy5zdGF0ZS5mb3JtYXRzLmxpc3RfYnVsbGV0ZWQpXG4gICAgICB0aGlzLnF1aWxsLmZvcm1hdCgnbGlzdCcsIG51bGwpO1xuICAgIGVsc2UgIFxuICAgICAgdGhpcy5xdWlsbC5mb3JtYXQoJ2xpc3QnLCAnYnVsbGV0ZWQnKTtcbiAgICB0aGlzLnVwZGF0ZSgpO1xuICB9XG5cbiAgcHVibGljIHNldExpbmsobGluazogc3RyaW5nKSB7XG4gICAgaWYodGhpcy5pc1Rvb2xEaXNhYmxlZCgnbGluaycpKSByZXR1cm47XG5cbiAgICBjb25zdCByYW5nZSA9IHRoaXMucXVpbGwuZ2V0U2VsZWN0aW9uKHRydWUpO1xuXG4gICAgaWYgKHJhbmdlICYmICFyYW5nZS5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IFt0ZXh0QmxvYXQsIG9mZnNldF0gPSB0aGlzLnF1aWxsLmdldExlYWYocmFuZ2UhLmluZGV4KTtcblxuICAgICAgY29uc3Qgc3RhcnQgPSByYW5nZSEuaW5kZXggLSBvZmZzZXQ7XG4gICAgICBjb25zdCBsZW5ndGggPSB0ZXh0QmxvYXQubGVuZ3RoKCk7XG5cbiAgICAgIHRoaXMucXVpbGwuZm9ybWF0VGV4dChzdGFydCwgbGVuZ3RoLCAnbGluaycsIGxpbmspO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnF1aWxsLmZvcm1hdCgnbGluaycsIGxpbmspO1xuICAgIH1cblxuICAgIHRoaXMudXBkYXRlKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0SnVzdGlmeUxlZnQoKSB7XG4gICAgaWYodGhpcy5pc1Rvb2xEaXNhYmxlZCgnanVzdGlmeV9sZWZ0JykpIHJldHVybjtcbiAgICB0aGlzLnF1aWxsLmZvcm1hdCgnYWxpZ24nLCBudWxsKTtcbiAgICB0aGlzLnVwZGF0ZSgpO1xuICB9XG5cbiAgcHVibGljIHNldEp1c3RpZnlDZW50ZXIoKSB7XG4gICAgaWYodGhpcy5pc1Rvb2xEaXNhYmxlZCgnanVzdGlmeV9jZW50ZXInKSkgcmV0dXJuO1xuICAgIHRoaXMucXVpbGwuZm9ybWF0KCdhbGlnbicsICdjZW50ZXInKTtcbiAgICB0aGlzLnVwZGF0ZSgpO1xuICB9XG5cbiAgcHVibGljIHNldEp1c3RpZnlSaWdodCgpIHtcbiAgICBpZih0aGlzLmlzVG9vbERpc2FibGVkKCdqdXN0aWZ5X3JpZ2h0JykpIHJldHVybjtcbiAgICB0aGlzLnF1aWxsLmZvcm1hdCgnYWxpZ24nLCAncmlnaHQnKTtcbiAgICB0aGlzLnVwZGF0ZSgpO1xuICB9XG5cbiAgcHVibGljIHNldFJlbW92ZSgpIHtcbiAgICBjb25zdCBzZWxlY3Rpb24gPSB0aGlzLnF1aWxsLmdldFNlbGVjdGlvbigpO1xuICAgIGlmIChzZWxlY3Rpb24pIHRoaXMucXVpbGwucmVtb3ZlRm9ybWF0KHNlbGVjdGlvbiEuaW5kZXgsIHNlbGVjdGlvbiEubGVuZ3RoKTtcbiAgICB0aGlzLnVwZGF0ZSgpO1xuICB9XG5cbiAgcHVibGljIHNldFBsYWNlaG9sZGVyKHBsYWNlaG9sZGVyOiBzdHJpbmcpe1xuICAgIHRoaXMucXVpbGwucm9vdC5kYXRhc2V0WydwbGFjZWhvbGRlciddID0gcGxhY2Vob2xkZXI7XG4gIH1cblxuICBwdWJsaWMgc2V0VGV4dCh0ZXh0OiBzdHJpbmcpe1xuICAgIHRoaXMucXVpbGwuc2V0Q29udGVudHModGhpcy5xdWlsbC5jbGlwYm9hcmQuY29udmVydCh0ZXh0KSk7XG4gIH1cblxuICBwdWJsaWMgc2V0TWF4TGVuZ3RoKGxlbmd0aDogbnVtYmVyKXtcbiAgICB0aGlzLm1heExlbmd0aCA9IGxlbmd0aDtcblxuICAgIHRoaXMubWF4TGVuZ3RoU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIGlmKHRoaXMubWF4TGVuZ3RoID4gMClcbiAgICAgIHRoaXMubWF4TGVuZ3RoU3Vic2NyaXB0aW9uID0gXG4gICAgICAgIGZyb21FdmVudCh0aGlzLnF1aWxsLCAndGV4dC1jaGFuZ2UnKVxuICAgICAgICAucGlwZShmaWx0ZXIoKCkgPT4gdGhpcy5xdWlsbC5nZXRMZW5ndGgoKSA+IHRoaXMubWF4TGVuZ3RoKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5xdWlsbC5kZWxldGVUZXh0KHRoaXMubWF4TGVuZ3RoLCB0aGlzLnF1aWxsLmdldExlbmd0aCgpKTtcbiAgICAgIH0pXG4gIH1cblxuICBwdWJsaWMgc2V0RGlzYWJsZWRUb29scyh0b29sczogVG9vbEtleXMpe1xuICAgIGlmKEpTT04uc3RyaW5naWZ5KHRvb2xzKSAhPT0gSlNPTi5zdHJpbmdpZnkodGhpcy5zdGF0ZVN1Yi52YWx1ZS5kaXNhYmxlZFRvb2xzKSlcbiAgICAgIHRoaXMuc3RhdGVTdWIubmV4dCh7Li4udGhpcy5zdGF0ZVN1Yi52YWx1ZSwgZGlzYWJsZWRUb29sczogdG9vbHMsIH0pXG4gIH1cblxuICBwdWJsaWMgc2V0RWRpdG9yQ2xhc3MoY2xhc3NOYW1lOiBzdHJpbmcpe1xuICAgIGlmKCFjbGFzc05hbWUpIHJldHVybjtcbiAgICB0aGlzLnF1aWxsLnJvb3QuY2xhc3NMaXN0LmFkZChjbGFzc05hbWUpO1xuICB9XG5cbiAgcHVibGljIGdldEVkaXRvckVsZW1lbnQoKXtcbiAgICByZXR1cm4gdGhpcy5xdWlsbC5yb290O1xuICB9XG5cbiAgcHVibGljIGRpc2FibGUoKXtcbiAgICB0aGlzLnF1aWxsLmRpc2FibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBlbmFibGUoKXtcbiAgICB0aGlzLnF1aWxsLmVuYWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGZvY3VzKCl7XG4gICAgdGhpcy5xdWlsbC5mb2N1cygpO1xuICB9XG5cbiAgcHVibGljIHNldEJyZWFrT25FbnRlcihicmVha09uRW50ZXI6IGJvb2xlYW4pe1xuICAgIHRoaXMuYnJlYWtPbkVudGVyID0gYnJlYWtPbkVudGVyO1xuICB9XG5cbiAgcHVibGljIGRlc3Ryb3koKSB7XG4gICAgdGhpcy5xdWlsbC5vZmYoJ3NlbGVjdGlvbi1jaGFuZ2UnLCB0aGlzLnNlbGVjdGlvbkNoYW5nZUhhbmRsZXIpO1xuICAgIHRoaXMucXVpbGwub2ZmKCd0ZXh0LWNoYW5nZScsIHRoaXMudGV4dENoYW5nZUhhbmRsZXIpO1xuICAgIHRoaXMuZXNjJC51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuZW50ZXIkLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5zdGF0ZVN1Yi51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMubWF4TGVuZ3RoU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1Rvb2xEaXNhYmxlZCh0b29sOiBUb29sKXtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZVN1Yi52YWx1ZS5kaXNhYmxlZFRvb2xzLmluY2x1ZGVzKHRvb2wpXG4gIH1cblxuICBwcml2YXRlIHVybE1hdGNoZXIobm9kZTogYW55LCBkZWx0YTogYW55KSB7XG4gICAgaWYgKHR5cGVvZiBub2RlLmRhdGEgIT09ICdzdHJpbmcnKSByZXR1cm47XG4gICAgY29uc3QgbWF0Y2hlcyA9IG5vZGUuZGF0YS5tYXRjaChVUkxfUkVHRVgpO1xuXG4gICAgaWYgKG1hdGNoZXMgJiYgbWF0Y2hlcy5sZW5ndGggPiAwKSB7XG4gICAgICBsZXQgdGV4dCA9ICcnO1xuICAgICAgY29uc3Qgc2VsZWN0aW9uID0gdGhpcy5xdWlsbC5nZXRTZWxlY3Rpb24odHJ1ZSk7XG4gICAgICBpZiAoc2VsZWN0aW9uLmxlbmd0aClcbiAgICAgICAgdGV4dCA9IHRoaXMucXVpbGwuZ2V0VGV4dChzZWxlY3Rpb24hLmluZGV4LCBzZWxlY3Rpb24hLmxlbmd0aCk7XG5cbiAgICAgIGNvbnN0IG9wcyA9IFtdO1xuICAgICAgbGV0IHN0ciA9IG5vZGUuZGF0YTtcbiAgICAgIG1hdGNoZXMuZm9yRWFjaChmdW5jdGlvbiAobWF0Y2g6IGFueSkge1xuICAgICAgICBjb25zdCBzcGxpdCA9IHN0ci5zcGxpdChtYXRjaCk7XG4gICAgICAgIGNvbnN0IGJlZm9yZUxpbmsgPSBzcGxpdC5zaGlmdCgpO1xuICAgICAgICBvcHMucHVzaCh7IGluc2VydDogYmVmb3JlTGluayB9KTtcbiAgICAgICAgb3BzLnB1c2goeyBpbnNlcnQ6IHRleHQgfHwgbWF0Y2gsIGF0dHJpYnV0ZXM6IHsgbGluazogbWF0Y2ggfSB9KTtcbiAgICAgICAgc3RyID0gc3BsaXQuam9pbihtYXRjaCk7XG4gICAgICB9KTtcbiAgICAgIG9wcy5wdXNoKHsgaW5zZXJ0OiBzdHIgfSk7XG4gICAgICBkZWx0YS5vcHMgPSBvcHM7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRlbHRhO1xuICB9XG5cbiAgcHJpdmF0ZSBsaXN0ZW5FZGl0b3JDaGFuZ2VzKCkge1xuICAgIHRoaXMucXVpbGwub24oJ3NlbGVjdGlvbi1jaGFuZ2UnLCB0aGlzLnNlbGVjdGlvbkNoYW5nZUhhbmRsZXIpO1xuICAgIHRoaXMucXVpbGwub24oJ3RleHQtY2hhbmdlJywgdGhpcy50ZXh0Q2hhbmdlSGFuZGxlcik7XG4gIH1cblxuXG4gIHByaXZhdGUgdXBkYXRlKCkge1xuICAgIGxldCBib3VuZHM6IEJvdW5kc1N0YXRpYyB8IHVuZGVmaW5lZDtcbiAgICBsZXQgZm9ybWF0c0FycjtcblxuICAgIGNvbnN0IHJhbmdlID0gdGhpcy5xdWlsbC5nZXRTZWxlY3Rpb24oZmFsc2UpO1xuICAgIGlmICAocmFuZ2UpeyBcbiAgICAgIGJvdW5kcyA9IHRoaXMucXVpbGwuZ2V0Qm91bmRzKHJhbmdlLmluZGV4LCByYW5nZS5sZW5ndGgpO1xuICAgICAgZm9ybWF0c0FyciA9IHRoaXMucXVpbGwuZ2V0Rm9ybWF0KHJhbmdlKSBhcyBhbnk7XG4gICAgfVxuXG4gICAgY29uc3QgZm9ybWF0czogUmljaHRleHRGb3JtYXRzID0ge1xuICAgICAgaXRhbGljOiBmb3JtYXRzQXJyPy5pdGFsaWMgfHwgZmFsc2UsXG4gICAgICBib2xkOiBmb3JtYXRzQXJyPy5ib2xkIHx8IGZhbHNlLFxuICAgICAgdW5kZXJsaW5lOiBmb3JtYXRzQXJyPy51bmRlcmxpbmUgfHwgZmFsc2UsXG4gICAgICBzdHJpa2U6IGZvcm1hdHNBcnI/LnN0cmlrZSB8fCBmYWxzZSxcbiAgICAgIGxpbms6IGZvcm1hdHNBcnI/LmxpbmsgfHwgJycsXG4gICAgICBsaXN0X2J1bGxldGVkOiBmb3JtYXRzQXJyPy5saXN0ID09PSAnYnVsbGV0JyxcbiAgICAgIGxpc3RfbnVtYmVyZWQ6IGZvcm1hdHNBcnI/Lmxpc3QgPT09ICdvcmRlcmVkJyxcbiAgICAgIGp1c3RpZnlfbGVmdDogZm9ybWF0c0Fycj8uYWxpZ24gPT09ICdsZWZ0JyxcbiAgICAgIGp1c3RpZnlfY2VudGVyOiBmb3JtYXRzQXJyPy5hbGlnbiA9PT0gJ2NlbnRlcicsXG4gICAgICBqdXN0aWZ5X3JpZ2h0OiBmb3JtYXRzQXJyPy5hbGlnbiA9PT0gJ3JpZ2h0JyxcbiAgICB9O1xuXG4gICAgY29uc3QgaGFzU2VsZWN0aW9uID0gISFyYW5nZT8ubGVuZ3RoO1xuICAgIGNvbnN0IGhhc0ZvY3VzID0gISFyYW5nZTtcblxuICAgIGNvbnN0IG5ld1N0YXRlOiBUb29sc1N0YXRlID0geyBcbiAgICAgIC4uLnRoaXMuc3RhdGVTdWIudmFsdWUsIFxuICAgICAgaGFzU2VsZWN0aW9uLCBcbiAgICAgIGZvcm1hdHMsIFxuICAgICAgYm91bmRzLCBcbiAgICAgIGhhc0ZvY3VzIFxuICAgIH07XG5cbiAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgdGhpcy5zdGF0ZVN1Yi5uZXh0KG5ld1N0YXRlKTtcbiAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gICAgfSlcbiAgfVxufVxuXG4vL3RvIHdvcmsgYXJvdW5kIHRlc3RpbmcgcHJvYmxlbXMgXG5leHBvcnQgY29uc3QgUXVpbGxQcm94eSA9e1xuICBRdWlsbFxufVxuXG4vL3RvIHdvcmsgYXJvdW5kIHRlc3RpbmcgcHJvYmxlbXMgXG5leHBvcnQgY29uc3QgUmljaHRleHRXcmFwcGVyUHJveHkgPSB7XG4gIFJpY2h0ZXh0V3JhcHBlclxufSJdfQ==
303
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmljaHRleHQtd3JhcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fza3N1aXRlLWNpdHJ1cy9zcmMvbGliL2NsYXNzZXMvcmljaHRleHQtd3JhcHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQXdGLE1BQU0sT0FBTyxDQUFDO0FBQzdHLE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFnQixNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQVF0RixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFNUQsTUFBTSxPQUFPLGVBQWU7SUF5RTFCLElBQVcsS0FBSztRQUNaLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUE7SUFDOUIsQ0FBQztJQUlELElBQVcsa0JBQWtCO1FBQzNCLE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsYUFBYSxDQUFDO2FBQ3hDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsSUFBVyxnQkFBZ0I7UUFDekIsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxrQkFBa0IsQ0FBQyxDQUFDLElBQUksQ0FDbkQsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQ3JELEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FDaEIsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFXLGFBQWE7UUFDdEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFBO0lBQ2pDLENBQUM7SUFFRCxJQUFX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RSxVQUFVLEVBQUUsTUFBTSxJQUFJLEtBQUs7WUFDbkMsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLElBQUksRUFBRTtZQUM1QixhQUFhLEVBQUUsVUFBVSxFQUFFLElBQUksS0FBSyxRQUFRO1lBQzVDLGFBQWEsRUFBRSxVQUFVLEVBQUUsSUFBSSxLQUFLLFNBQVM7WUFDN0MsWUFBWSxFQUFFLFVBQVUsRUFBRSxLQUFLLEtBQUssTUFBTTtZQUMxQyxjQUFjLEVBQUUsVUFBVSxFQUFFLEtBQUssS0FBSyxRQUFRO1lBQzlDLGFBQWEsRUFBRSxVQUFVLEVBQUUsS0FBSyxLQUFLLE9BQU87U0FDN0MsQ0FBQztRQUVGLE1BQU0sWUFBWSxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDO1FBQ3JDLE1BQU0sUUFBUSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFFekIsTUFBTSxRQUFRLEdBQWU7WUFDM0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUs7WUFDdEIsWUFBWTtZQUNaLE9BQU87WUFDUCxNQUFNO1lBQ04sUUFBUTtTQUNULENBQUM7UUFFRixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDN0IsSUFBSSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7Q0FDRjtBQUVELGtDQUFrQztBQUNsQyxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUU7SUFDdkIsS0FBSztDQUNOLENBQUE7QUFFRCxrQ0FBa0M7QUFDbEMsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUc7SUFDbEMsZUFBZTtDQUNoQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIEVsZW1lbnRSZWYsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IFF1aWxsLCB7IEJvdW5kc1N0YXRpYywgUmFuZ2VTdGF0aWMsIFNlbGVjdGlvbkNoYW5nZUhhbmRsZXIsIFNvdXJjZXMsIFRleHRDaGFuZ2VIYW5kbGVyIH0gZnJvbSAncXVpbGwnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIGZpbHRlciwgZnJvbUV2ZW50LCBtYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIFJpY2hUZXh0RnVuY3Rpb25zLFxuICBSaWNodGV4dEZvcm1hdHMsXG4gIFRvb2wsXG4gIFRvb2xLZXlzLFxuICBUb29sc1N0YXRlLFxufSBmcm9tICcuLi9pbnRlcmZhY2VzL3JpY2h0ZXh0LXRvb2xib3guaW50ZXJmYWNlJztcbmltcG9ydCB7IFVSTF9SRUdFWCB9IGZyb20gJy4uL2NvbnN0YW50cy91cmwtcmVnZXguY29uc3RhbnQnO1xuXG5leHBvcnQgY2xhc3MgUmljaHRleHRXcmFwcGVyIGltcGxlbWVudHMgUmljaFRleHRGdW5jdGlvbnMge1xuICBwcml2YXRlIHF1aWxsITogUXVpbGw7XG4gIHByaXZhdGUgc3RhdGVTdWIgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRvb2xzU3RhdGU+KHtcbiAgICBoYXNTZWxlY3Rpb246IGZhbHNlLFxuICAgIGhhc0ZvY3VzOiBmYWxzZSxcbiAgICBmb3JtYXRzOiB7XG4gICAgICBpdGFsaWM6IGZhbHNlLFxuICAgICAgYm9sZDogZmFsc2UsXG4gICAgICB1bmRlcmxpbmU6IGZhbHNlLFxuICAgICAgc3RyaWtlOiBmYWxzZSxcbiAgICAgIGxpbms6ICcnLFxuICAgICAgbGlzdF9idWxsZXRlZDogZmFsc2UsXG4gICAgICBsaXN0X251bWJlcmVkOiBmYWxzZSxcbiAgICAgIGp1c3RpZnlfbGVmdDogZmFsc2UsXG4gICAgICBqdXN0aWZ5X2NlbnRlcjogZmFsc2UsXG4gICAgICBqdXN0aWZ5X3JpZ2h0OiBmYWxzZSxcbiAgICB9LFxuICAgIGRpc2FibGVkVG9vbHM6IFtdXG4gIH0pO1xuICBwcml2YXRlIGVzYyQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBwcml2YXRlIGVudGVyJCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIHByaXZhdGUgbWF4TGVuZ3RoID0gLTE7XG4gIHByaXZhdGUgYnJlYWtPbkVudGVyID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSB0ZXh0Q2hhbmdlSGFuZGxlcjogVGV4dENoYW5nZUhhbmRsZXIgPSAoKSA9PiB7XG4gICAgdGhpcy51cGRhdGUoKTtcbiAgfTtcblxuICBwcml2YXRlIHNlbGVjdGlvbkNoYW5nZUhhbmRsZXI6IFNlbGVjdGlvbkNoYW5nZUhhbmRsZXIgPSAoXG4gICAgdmFsdWU6IFJhbmdlU3RhdGljLFxuICAgIG9sZFJhbmdlOiBSYW5nZVN0YXRpYyxcbiAgICBzb3VyY2U6IFNvdXJjZXNcbiAgKSA9PiB7XG4gICAgdGhpcy51cGRhdGUoKTtcbiAgfTtcblxuICBwcml2YXRlIGJpbmRpbmdzID0ge1xuICAgIGJvbGQ6IHtcbiAgICAgIGhhbmRsZXI6ICgpID0+IHtcbiAgICAgICAgdGhpcy5zZXRCb2xkKCk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH0sXG4gICAgfSxcbiAgICBpdGFsaWM6IHtcbiAgICAgIGhhbmRsZXI6ICgpID0+IHtcbiAgICAgICAgdGhpcy5zZXRJdGFsaWMoKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfSxcbiAgICB9LFxuICAgIHVuZGVybGluZToge1xuICAgICAgaGFuZGxlcjogKCkgPT4ge1xuICAgICAgICB0aGlzLnNldFVuZGVybGluZSgpO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9LFxuICAgIH0sXG4gICAgZXNjYXBlOntcbiAgICAgIGtleTogJ2VzY2FwZScsXG4gICAgICBoYW5kbGVyOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuZXNjJC5uZXh0KHRydWUpO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfSxcbiAgICBlbnRlcjoge1xuICAgICAga2V5OiAnZW50ZXInLFxuICAgICAgaGFuZGxlcjogKCkgPT4ge1xuICAgICAgICB0aGlzLmVudGVyJC5uZXh0KHRydWUpO1xuICAgICAgICByZXR1cm4gdGhpcy5icmVha09uRW50ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gIH07XG4gIHByaXZhdGUgbWF4TGVuZ3RoU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuXG4gIHB1YmxpYyBnZXQgc3RhdGUoKXtcbiAgICAgIHJldHVybiB0aGlzLnN0YXRlU3ViLnZhbHVlXG4gIH1cbiAgXG4gIHB1YmxpYyBzdGF0ZSQgPSB0aGlzLnN0YXRlU3ViLmFzT2JzZXJ2YWJsZSgpO1xuICAgIFxuICBwdWJsaWMgZ2V0IGxpc3RlblRleHRDaGFuZ2VzJCgpe1xuICAgIHJldHVybiBmcm9tRXZlbnQodGhpcy5xdWlsbCwgJ3RleHQtY2hhbmdlJylcbiAgICAgIC5waXBlKG1hcCgoKSA9PiB0aGlzLnF1aWxsLnJvb3QuaW5uZXJIVE1MKSk7IFxuICB9XG5cbiAgcHVibGljIGdldCBsaXN0ZW5PblRvdWNoZWQkKCkge1xuICAgIHJldHVybiBmcm9tRXZlbnQodGhpcy5xdWlsbCwgJ3NlbGVjdGlvbi1jaGFuZ2UnKS5waXBlKFxuICAgICAgZmlsdGVyKCgpID0+IEJvb2xlYW4odGhpcy5xdWlsbC5nZXRTZWxlY3Rpb24oZmFsc2UpKSksXG4gICAgICBtYXAoKCkgPT4gbnVsbClcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCBsaXN0ZW5Fc2NhcGUkKCl7XG4gICAgcmV0dXJuIHRoaXMuZXNjJC5hc09ic2VydmFibGUoKVxuICB9XG5cbiAgcHVibGljIGdldCBsaXN0ZW5FbnRlciQoKXtcbiAgICByZXR1cm4gdGhpcy5lbnRlciQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxuICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICkge1xuICAgIGNvbnN0IGVkaXRvcklkID0gYGVkaXRvci0ke25ldyBEYXRlKCkuZ2V0VGltZSgpfWA7XG4gICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCdpZCcsIGVkaXRvcklkKTtcbiAgICB0aGlzLnF1aWxsID0gbmV3IFF1aWxsUHJveHkuUXVpbGwoYCMke2VkaXRvcklkfWAsIHtcbiAgICAgIHBsYWNlaG9sZGVyOiAnJyxcbiAgICAgIG1vZHVsZXM6IHtcbiAgICAgICAgY2xpcGJvYXJkOiB7XG4gICAgICAgICAgbWF0Y2hlcnM6IFtbTm9kZS5URVhUX05PREUsIHRoaXMudXJsTWF0Y2hlci5iaW5kKHRoaXMpXV0sXG4gICAgICAgIH0sXG4gICAgICAgIGtleWJvYXJkOiB7IGJpbmRpbmdzOiB0aGlzLmJpbmRpbmdzIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHRoaXMubGlzdGVuRWRpdG9yQ2hhbmdlcygpO1xuICB9XG5cbiAgcHVibGljIHNldEl0YWxpYygpIHtcbiAgICBpZih0aGlzLmlzVG9vbERpc2FibGVkKCdpdGFsaWMnKSkgcmV0dXJuO1xuICAgIHRoaXMucXVpbGwuZm9ybWF0KCdpdGFsaWMnLCAhdGhpcy5zdGF0ZS5mb3JtYXRzLml0YWxpYyk7XG4gICAgdGhpcy51cGRhdGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRCb2xkKCkge1xuICAgIGlmKHRoaXMuaXNUb29sRGlzYWJsZWQoJ2JvbGQnKSkgcmV0dXJuXG4gICAgdGhpcy5xdWlsbC5mb3JtYXQoJ2JvbGQnLCAhdGhpcy5zdGF0ZS5mb3JtYXRzLmJvbGQpO1xuICAgIHRoaXMudXBkYXRlKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0VW5kZXJsaW5lKCkge1xuICAgIGlmKHRoaXMuaXNUb29sRGlzYWJsZWQoJ3VuZGVybGluZScpKSByZXR1cm47XG4gICAgdGhpcy5xdWlsbC5mb3JtYXQoJ3VuZGVybGluZScsICF0aGlzLnN0YXRlLmZvcm1hdHMudW5kZXJsaW5lKTtcbiAgICB0aGlzLnVwZGF0ZSgpO1xuICB9XG5cbiAgcHVibGljIHNldFN0cmlrZSgpIHtcbiAgICBpZih0aGlzLmlzVG9vbERpc2FibGVkKCdzdHJpa2UnKSkgcmV0dXJuO1xuICAgIHRoaXMucXVpbGwuZm9ybWF0KCdzdHJpa2UnLCAhdGhpcy5zdGF0ZS5mb3JtYXRzLnN0cmlrZSk7XG4gICAgdGhpcy51cGRhdGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRMaXN0TnVtYmVyZWQoKSB7XG4gICAgaWYodGhpcy5pc1Rvb2xEaXNhYmxlZCgnbGlzdF9udW1iZXJlZCcpKSByZXR1cm47XG4gICAgaWYgKHRoaXMuc3RhdGUuZm9ybWF0cy5saXN0X251bWJlcmVkKVxuICAgICAgdGhpcy5xdWlsbC5mb3JtYXQoJ2xpc3QnLCBudWxsKTtcbiAgICBlbHNlICBcbiAgICAgIHRoaXMucXVpbGwuZm9ybWF0KCdsaXN0JywgJ29yZGVyZWQnKTtcbiAgICB0aGlzLnVwZGF0ZSgpO1xuICB9XG5cbiAgcHVibGljIHNldExpc3RCdWxsZXRlZCgpIHtcbiAgICBpZih0aGlzLmlzVG9vbERpc2FibGVkKCdsaXN0X2J1bGxldGVkJykpIHJldHVybjtcbiAgICBpZiAodGhpcy5zdGF0ZS5mb3JtYXRzLmxpc3RfYnVsbGV0ZWQpXG4gICAgICB0aGlzLnF1aWxsLmZvcm1hdCgnbGlzdCcsIG51bGwpO1xuICAgIGVsc2UgIFxuICAgICAgdGhpcy5xdWlsbC5mb3JtYXQoJ2xpc3QnLCAnYnVsbGV0ZWQnKTtcbiAgICB0aGlzLnVwZGF0ZSgpO1xuICB9XG5cbiAgcHVibGljIHNldExpbmsobGluazogc3RyaW5nKSB7XG4gICAgaWYodGhpcy5pc1Rvb2xEaXNhYmxlZCgnbGluaycpKSByZXR1cm47XG5cbiAgICBjb25zdCByYW5nZSA9IHRoaXMucXVpbGwuZ2V0U2VsZWN0aW9uKHRydWUpO1xuXG4gICAgaWYgKHJhbmdlICYmICFyYW5nZS5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IFt0ZXh0QmxvYXQsIG9mZnNldF0gPSB0aGlzLnF1aWxsLmdldExlYWYocmFuZ2UhLmluZGV4KTtcblxuICAgICAgY29uc3Qgc3RhcnQgPSByYW5nZSEuaW5kZXggLSBvZmZzZXQ7XG4gICAgICBjb25zdCBsZW5ndGggPSB0ZXh0QmxvYXQubGVuZ3RoKCk7XG5cbiAgICAgIHRoaXMucXVpbGwuZm9ybWF0VGV4dChzdGFydCwgbGVuZ3RoLCAnbGluaycsIGxpbmspO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnF1aWxsLmZvcm1hdCgnbGluaycsIGxpbmspO1xuICAgIH1cblxuICAgIHRoaXMudXBkYXRlKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0SnVzdGlmeUxlZnQoKSB7XG4gICAgaWYodGhpcy5pc1Rvb2xEaXNhYmxlZCgnanVzdGlmeV9sZWZ0JykpIHJldHVybjtcbiAgICB0aGlzLnF1aWxsLmZvcm1hdCgnYWxpZ24nLCBudWxsKTtcbiAgICB0aGlzLnVwZGF0ZSgpO1xuICB9XG5cbiAgcHVibGljIHNldEp1c3RpZnlDZW50ZXIoKSB7XG4gICAgaWYodGhpcy5pc1Rvb2xEaXNhYmxlZCgnanVzdGlmeV9jZW50ZXInKSkgcmV0dXJuO1xuICAgIHRoaXMucXVpbGwuZm9ybWF0KCdhbGlnbicsICdjZW50ZXInKTtcbiAgICB0aGlzLnVwZGF0ZSgpO1xuICB9XG5cbiAgcHVibGljIHNldEp1c3RpZnlSaWdodCgpIHtcbiAgICBpZih0aGlzLmlzVG9vbERpc2FibGVkKCdqdXN0aWZ5X3JpZ2h0JykpIHJldHVybjtcbiAgICB0aGlzLnF1aWxsLmZvcm1hdCgnYWxpZ24nLCAncmlnaHQnKTtcbiAgICB0aGlzLnVwZGF0ZSgpO1xuICB9XG5cbiAgcHVibGljIHNldFJlbW92ZSgpIHtcbiAgICBjb25zdCBzZWxlY3Rpb24gPSB0aGlzLnF1aWxsLmdldFNlbGVjdGlvbigpO1xuICAgIGlmIChzZWxlY3Rpb24pIHRoaXMucXVpbGwucmVtb3ZlRm9ybWF0KHNlbGVjdGlvbiEuaW5kZXgsIHNlbGVjdGlvbiEubGVuZ3RoKTtcbiAgICB0aGlzLnVwZGF0ZSgpO1xuICB9XG5cbiAgcHVibGljIHNldFBsYWNlaG9sZGVyKHBsYWNlaG9sZGVyOiBzdHJpbmcpe1xuICAgIHRoaXMucXVpbGwucm9vdC5kYXRhc2V0WydwbGFjZWhvbGRlciddID0gcGxhY2Vob2xkZXI7XG4gIH1cblxuICBwdWJsaWMgc2V0VGV4dCh0ZXh0OiBzdHJpbmcpe1xuICAgIHRoaXMucXVpbGwuc2V0Q29udGVudHModGhpcy5xdWlsbC5jbGlwYm9hcmQuY29udmVydCh0ZXh0KSk7XG4gIH1cblxuICBwdWJsaWMgc2V0TWF4TGVuZ3RoKGxlbmd0aDogbnVtYmVyKXtcbiAgICB0aGlzLm1heExlbmd0aCA9IGxlbmd0aDtcblxuICAgIHRoaXMubWF4TGVuZ3RoU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIGlmKHRoaXMubWF4TGVuZ3RoID4gMClcbiAgICAgIHRoaXMubWF4TGVuZ3RoU3Vic2NyaXB0aW9uID0gXG4gICAgICAgIGZyb21FdmVudCh0aGlzLnF1aWxsLCAndGV4dC1jaGFuZ2UnKVxuICAgICAgICAucGlwZShmaWx0ZXIoKCkgPT4gdGhpcy5xdWlsbC5nZXRMZW5ndGgoKSA+IHRoaXMubWF4TGVuZ3RoKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5xdWlsbC5kZWxldGVUZXh0KHRoaXMubWF4TGVuZ3RoLCB0aGlzLnF1aWxsLmdldExlbmd0aCgpKTtcbiAgICAgIH0pXG4gIH1cblxuICBwdWJsaWMgc2V0RGlzYWJsZWRUb29scyh0b29sczogVG9vbEtleXMpe1xuICAgIGlmKEpTT04uc3RyaW5naWZ5KHRvb2xzKSAhPT0gSlNPTi5zdHJpbmdpZnkodGhpcy5zdGF0ZVN1Yi52YWx1ZS5kaXNhYmxlZFRvb2xzKSlcbiAgICAgIHRoaXMuc3RhdGVTdWIubmV4dCh7Li4udGhpcy5zdGF0ZVN1Yi52YWx1ZSwgZGlzYWJsZWRUb29sczogdG9vbHMsIH0pXG4gIH1cblxuICBwdWJsaWMgc2V0RWRpdG9yQ2xhc3MoY2xhc3NOYW1lOiBzdHJpbmcpe1xuICAgIGlmKCFjbGFzc05hbWUpIHJldHVybjtcbiAgICB0aGlzLnF1aWxsLnJvb3QuY2xhc3NMaXN0LmFkZChjbGFzc05hbWUpO1xuICB9XG5cbiAgcHVibGljIGdldEVkaXRvckVsZW1lbnQoKXtcbiAgICByZXR1cm4gdGhpcy5xdWlsbC5yb290O1xuICB9XG5cbiAgcHVibGljIGRpc2FibGUoKXtcbiAgICB0aGlzLnF1aWxsLmRpc2FibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBlbmFibGUoKXtcbiAgICB0aGlzLnF1aWxsLmVuYWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGZvY3VzKCl7XG4gICAgdGhpcy5xdWlsbC5mb2N1cygpO1xuICB9XG5cbiAgcHVibGljIHNldEJyZWFrT25FbnRlcihicmVha09uRW50ZXI6IGJvb2xlYW4pe1xuICAgIHRoaXMuYnJlYWtPbkVudGVyID0gYnJlYWtPbkVudGVyO1xuICB9XG5cbiAgcHVibGljIGRlc3Ryb3koKSB7XG4gICAgdGhpcy5xdWlsbC5vZmYoJ3NlbGVjdGlvbi1jaGFuZ2UnLCB0aGlzLnNlbGVjdGlvbkNoYW5nZUhhbmRsZXIpO1xuICAgIHRoaXMucXVpbGwub2ZmKCd0ZXh0LWNoYW5nZScsIHRoaXMudGV4dENoYW5nZUhhbmRsZXIpO1xuICAgIHRoaXMuZXNjJC51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuZW50ZXIkLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5zdGF0ZVN1Yi51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMubWF4TGVuZ3RoU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1Rvb2xEaXNhYmxlZCh0b29sOiBUb29sKXtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZVN1Yi52YWx1ZS5kaXNhYmxlZFRvb2xzLmluY2x1ZGVzKHRvb2wpXG4gIH1cblxuICBwcml2YXRlIHVybE1hdGNoZXIobm9kZTogYW55LCBkZWx0YTogYW55KSB7XG4gICAgaWYgKHR5cGVvZiBub2RlLmRhdGEgIT09ICdzdHJpbmcnKSByZXR1cm47XG4gICAgY29uc3QgbWF0Y2hlcyA9IG5vZGUuZGF0YS5tYXRjaChVUkxfUkVHRVgpO1xuXG4gICAgaWYgKG1hdGNoZXMgJiYgbWF0Y2hlcy5sZW5ndGggPiAwKSB7XG4gICAgICBsZXQgdGV4dCA9ICcnO1xuICAgICAgY29uc3Qgc2VsZWN0aW9uID0gdGhpcy5xdWlsbC5nZXRTZWxlY3Rpb24odHJ1ZSk7XG4gICAgICBpZiAoc2VsZWN0aW9uLmxlbmd0aClcbiAgICAgICAgdGV4dCA9IHRoaXMucXVpbGwuZ2V0VGV4dChzZWxlY3Rpb24hLmluZGV4LCBzZWxlY3Rpb24hLmxlbmd0aCk7XG5cbiAgICAgIGNvbnN0IG9wcyA9IFtdO1xuICAgICAgbGV0IHN0ciA9IG5vZGUuZGF0YTtcbiAgICAgIG1hdGNoZXMuZm9yRWFjaChmdW5jdGlvbiAobWF0Y2g6IGFueSkge1xuICAgICAgICBjb25zdCBzcGxpdCA9IHN0ci5zcGxpdChtYXRjaCk7XG4gICAgICAgIGNvbnN0IGJlZm9yZUxpbmsgPSBzcGxpdC5zaGlmdCgpO1xuICAgICAgICBvcHMucHVzaCh7IGluc2VydDogYmVmb3JlTGluayB9KTtcbiAgICAgICAgb3BzLnB1c2goeyBpbnNlcnQ6IHRleHQgfHwgbWF0Y2gsIGF0dHJpYnV0ZXM6IHsgbGluazogbWF0Y2ggfSB9KTtcbiAgICAgICAgc3RyID0gc3BsaXQuam9pbihtYXRjaCk7XG4gICAgICB9KTtcbiAgICAgIG9wcy5wdXNoKHsgaW5zZXJ0OiBzdHIgfSk7XG4gICAgICBkZWx0YS5vcHMgPSBvcHM7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRlbHRhO1xuICB9XG5cbiAgcHJpdmF0ZSBsaXN0ZW5FZGl0b3JDaGFuZ2VzKCkge1xuICAgIHRoaXMucXVpbGwub24oJ3NlbGVjdGlvbi1jaGFuZ2UnLCB0aGlzLnNlbGVjdGlvbkNoYW5nZUhhbmRsZXIpO1xuICAgIHRoaXMucXVpbGwub24oJ3RleHQtY2hhbmdlJywgdGhpcy50ZXh0Q2hhbmdlSGFuZGxlcik7XG4gIH1cblxuXG4gIHByaXZhdGUgdXBkYXRlKCkge1xuICAgIGxldCBib3VuZHM6IEJvdW5kc1N0YXRpYyB8IHVuZGVmaW5lZDtcbiAgICBsZXQgZm9ybWF0c0FycjtcblxuICAgIGNvbnN0IHJhbmdlID0gdGhpcy5xdWlsbC5nZXRTZWxlY3Rpb24oZmFsc2UpO1xuICAgIGlmICAocmFuZ2UpeyBcbiAgICAgIGJvdW5kcyA9IHRoaXMucXVpbGwuZ2V0Qm91bmRzKHJhbmdlLmluZGV4LCByYW5nZS5sZW5ndGgpO1xuICAgICAgZm9ybWF0c0FyciA9IHRoaXMucXVpbGwuZ2V0Rm9ybWF0KHJhbmdlKSBhcyBhbnk7XG4gICAgfVxuXG4gICAgY29uc3QgZm9ybWF0czogUmljaHRleHRGb3JtYXRzID0ge1xuICAgICAgaXRhbGljOiBmb3JtYXRzQXJyPy5pdGFsaWMgfHwgZmFsc2UsXG4gICAgICBib2xkOiBmb3JtYXRzQXJyPy5ib2xkIHx8IGZhbHNlLFxuICAgICAgdW5kZXJsaW5lOiBmb3JtYXRzQXJyPy51bmRlcmxpbmUgfHwgZmFsc2UsXG4gICAgICBzdHJpa2U6IGZvcm1hdHNBcnI/LnN0cmlrZSB8fCBmYWxzZSxcbiAgICAgIGxpbms6IGZvcm1hdHNBcnI/LmxpbmsgfHwgJycsXG4gICAgICBsaXN0X2J1bGxldGVkOiBmb3JtYXRzQXJyPy5saXN0ID09PSAnYnVsbGV0JyxcbiAgICAgIGxpc3RfbnVtYmVyZWQ6IGZvcm1hdHNBcnI/Lmxpc3QgPT09ICdvcmRlcmVkJyxcbiAgICAgIGp1c3RpZnlfbGVmdDogZm9ybWF0c0Fycj8uYWxpZ24gPT09ICdsZWZ0JyxcbiAgICAgIGp1c3RpZnlfY2VudGVyOiBmb3JtYXRzQXJyPy5hbGlnbiA9PT0gJ2NlbnRlcicsXG4gICAgICBqdXN0aWZ5X3JpZ2h0OiBmb3JtYXRzQXJyPy5hbGlnbiA9PT0gJ3JpZ2h0JyxcbiAgICB9O1xuXG4gICAgY29uc3QgaGFzU2VsZWN0aW9uID0gISFyYW5nZT8ubGVuZ3RoO1xuICAgIGNvbnN0IGhhc0ZvY3VzID0gISFyYW5nZTtcblxuICAgIGNvbnN0IG5ld1N0YXRlOiBUb29sc1N0YXRlID0geyBcbiAgICAgIC4uLnRoaXMuc3RhdGVTdWIudmFsdWUsIFxuICAgICAgaGFzU2VsZWN0aW9uLCBcbiAgICAgIGZvcm1hdHMsIFxuICAgICAgYm91bmRzLCBcbiAgICAgIGhhc0ZvY3VzIFxuICAgIH07XG5cbiAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgdGhpcy5zdGF0ZVN1Yi5uZXh0KG5ld1N0YXRlKTtcbiAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gICAgfSlcbiAgfVxufVxuXG4vL3RvIHdvcmsgYXJvdW5kIHRlc3RpbmcgcHJvYmxlbXMgXG5leHBvcnQgY29uc3QgUXVpbGxQcm94eSA9e1xuICBRdWlsbFxufVxuXG4vL3RvIHdvcmsgYXJvdW5kIHRlc3RpbmcgcHJvYmxlbXMgXG5leHBvcnQgY29uc3QgUmljaHRleHRXcmFwcGVyUHJveHkgPSB7XG4gIFJpY2h0ZXh0V3JhcHBlclxufSJdfQ==
@@ -7,6 +7,7 @@ import { takeUntilDestroyed } from "@angular/core/rxjs-interop";
7
7
  import { filterSelectedList } from "../../../shared/helpers/filter.helper";
8
8
  import CountryFlagService from "../../../shared/services/country-flag.service";
9
9
  import { NON_DIGIT_REGEX } from "../../../shared/utils/regex";
10
+ import { getCountryFromPhone } from "../../helpers/phone.helper";
10
11
  import * as i0 from "@angular/core";
11
12
  import * as i1 from "@angular/cdk/overlay";
12
13
  import * as i2 from "@angular/common";
@@ -103,7 +104,10 @@ export class PhoneDdiComponent {
103
104
  writeValue(value) {
104
105
  this.value = value;
105
106
  this.inputControl.setValue(value);
106
- this.valueChange.emit(this.value);
107
+ const country = getCountryFromPhone(value);
108
+ if (country) {
109
+ this.selectedFlag = this.countryItems.find(item => item.countryCode === country);
110
+ }
107
111
  }
108
112
  addAvailableFlags(data) {
109
113
  this.countryItems = data;
@@ -164,4 +168,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
164
168
  type: HostListener,
165
169
  args: ["window:click", ['$event']]
166
170
  }] } });
167
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtZGRpLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fza3N1aXRlLWNpdHJ1cy9zcmMvbGliL2NvbXBvbmVudHMvcGhvbmUtZGRpL3Bob25lLWRkaS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc2tzdWl0ZS1jaXRydXMvc3JjL2xpYi9jb21wb25lbnRzL3Bob25lLWRkaS9waG9uZS1kZGkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsVUFBVSxFQUVWLFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUlOLFNBQVMsRUFDVCxZQUFZLEdBRWIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF1QixXQUFXLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRixPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFbkQsT0FBTyxFQUFDLFlBQVksRUFBRSxHQUFHLEVBQWUsTUFBTSxNQUFNLENBQUM7QUFDckQsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDdEQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxrQkFBa0IsTUFBTSwrQ0FBK0MsQ0FBQztBQUUvRSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sNkJBQTZCLENBQUM7Ozs7Ozs7Ozs7QUFFNUQsTUFBTSxhQUFhLEdBQWE7SUFDOUIsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixLQUFLLEVBQUUsSUFBSTtJQUNYLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FB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YyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIERlc3Ryb3lSZWYsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBpbmplY3QsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFByb3ZpZGVyLFxuICBRdWVyeUxpc3QsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDaGlsZHJlbixcbiAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQ29udHJvbCwgTkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7VGVtcGxhdGVQb3J0YWx9IGZyb20gXCJAYW5ndWxhci9jZGsvcG9ydGFsXCI7XG5pbXBvcnQge092ZXJsYXksIE92ZXJsYXlSZWZ9IGZyb20gXCJAYW5ndWxhci9jZGsvb3ZlcmxheVwiO1xuaW1wb3J0IHtkZWJvdW5jZVRpbWUsIG1hcCwgU3Vic2NyaXB0aW9ufSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHtBc2tEcm9wZG93bkRpcmVjdGl2ZX0gZnJvbSBcIi4uLy4uL2RpcmVjdGl2ZXNcIjtcbmltcG9ydCB7dGFrZVVudGlsRGVzdHJveWVkfSBmcm9tIFwiQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3BcIjtcbmltcG9ydCB7ZmlsdGVyU2VsZWN0ZWRMaXN0fSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL2hlbHBlcnMvZmlsdGVyLmhlbHBlclwiO1xuaW1wb3J0IENvdW50cnlGbGFnU2VydmljZSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL3NlcnZpY2VzL2NvdW50cnktZmxhZy5zZXJ2aWNlXCI7XG5pbXBvcnQge0NvdW50cnlEYXRhfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL3Byb3ZpZGVycy9mbGFnLnByb3ZpZGVyXCI7XG5pbXBvcnQge05PTl9ESUdJVF9SRUdFWH0gZnJvbSBcIi4uLy4uLy4uL3NoYXJlZC91dGlscy9yZWdleFwiO1xuXG5jb25zdCB2YWx1ZUFjY2Vzc29yOiBQcm92aWRlciA9IHtcbiAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gIG11bHRpOiB0cnVlLFxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBQaG9uZURkaUNvbXBvbmVudCksXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhc2stcGhvbmUtZGRpJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Bob25lLWRkaS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Bob25lLWRkaS5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFt2YWx1ZUFjY2Vzc29yXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgUGhvbmVEZGlDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIHZhbHVlID0gJyc7XG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBAT3V0cHV0KCkgb25DaGFuZ2VGbGFnID0gbmV3IEV2ZW50RW1pdHRlcjxDb3VudHJ5RGF0YT4oKTtcblxuICBAVmlld0NoaWxkKCdwaG9uZUNvbnRhaW5lcicpIHBob25lQ29udGFpbmVyOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkXG5cbiAgQFZpZXdDaGlsZCgnd3JhcHBlcicpIHdyYXBwZXI6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWRcblxuICBAVmlld0NoaWxkKFwibWVudUNvbnRhaW5lclwiKSBtZW51Q29udGFpbmVyOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkXG5cbiAgQFZpZXdDaGlsZCgnb3ZlcmxheUNvbnRlbnQnKSBvdmVybGF5Q29udGVudDogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZFxuXG4gIEBWaWV3Q2hpbGRyZW4oQXNrRHJvcGRvd25EaXJlY3RpdmUpXG4gIGRyb3Bkb3duTGlzdD86IFF1ZXJ5TGlzdDxBc2tEcm9wZG93bkRpcmVjdGl2ZT47XG5cbiAgc2VsZWN0ZWRGbGFnPzogQ291bnRyeURhdGE7XG4gIGNvdW50cnlJdGVtczogQ291bnRyeURhdGFbXSA9IFtdXG4gIG9uQ2hhbmdlITogKHZhbHVlPzogYW55KSA9PiB2b2lkO1xuICBvblRvdWNoITogKCkgPT4gdm9pZDtcbiAgcHJvdGVjdGVkIGNsb3NlZCA9IHRydWU7XG4gIHByb3RlY3RlZCBpbnB1dENvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woe3ZhbHVlOiAnJywgZGlzYWJsZWQ6IHRoaXMuZGlzYWJsZWR9KVxuICBwcm90ZWN0ZWQgc2VhcmNoRmllbGRDb250cm9sID0gbmV3IEZvcm1Db250cm9sKFwiXCIpXG4gIHByb3RlY3RlZCBmaWx0ZXJlZE9wdGlvbnM6IGFueVtdID0gW11cbiAgcHJvdGVjdGVkIGlzVmFsaWQgPSB0cnVlO1xuICBwcml2YXRlIF9vdmVybGF5UmVmOiBPdmVybGF5UmVmIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIF9wb3J0YWw6IFRlbXBsYXRlUG9ydGFsPGFueT4gfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgX2Rlc3Ryb3kgPSBpbmplY3QoRGVzdHJveVJlZilcbiAgcHJpdmF0ZSBzY3JvbGxTdWI/OiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjaGFuZ2U6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSxcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJpdmF0ZSBjb3VudHJ5RmxhZ1NlcnZpY2U6IENvdW50cnlGbGFnU2VydmljZVxuICApIHtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLmNvdW50cnlGbGFnU2VydmljZS5saXN0KCkuc3Vic2NyaWJlKHRoaXMuYWRkQXZhaWxhYmxlRmxhZ3MuYmluZCh0aGlzKSlcbiAgICB0aGlzLmhhbmRsZUlucHV0Q2hhbmdlKCk7XG4gIH1cblxuICBoYW5kbGVPcHRpb25TZWxlY3RlZChpdGVtOiBhbnkpIHtcbiAgICB0aGlzLnNlbGVjdGVkRmxhZyA9IGl0ZW07XG4gICAgdGhpcy5oaWRlT3B0aW9ucygpO1xuICAgIHRoaXMuaW5wdXRDb250cm9sLnNldFZhbHVlKCcnKTtcbiAgICB0aGlzLnNlYXJjaEZpZWxkQ29udHJvbC5zZXRWYWx1ZSgnJyk7XG4gICAgdGhpcy5vbkNoYW5nZSgnJyk7XG4gICAgdGhpcy5vbkNoYW5nZUZsYWcuZW1pdCh0aGlzLnNlbGVjdGVkRmxhZyk7XG4gICAgdGhpcy5jaGFuZ2UuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgZGlzcGxheShvcHRpb246IGFueSkge1xuICAgIHJldHVybiB0aGlzLmRpc3BsYXlGbihvcHRpb24pXG4gIH1cblxuICBASG9zdExpc3RlbmVyKFwid2luZG93OmNsaWNrXCIsIFsnJGV2ZW50J10pXG4gIGhhbmRsZUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKFxuICAgICAgIXRoaXMuY2xvc2VkXG4gICAgICAmJiAhdGhpcy53cmFwcGVyPy5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldClcbiAgICAgICYmICF0aGlzLm1lbnVDb250YWluZXI/Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkge1xuICAgICAgdGhpcy5oaWRlT3B0aW9ucygpXG4gICAgfVxuICB9XG5cbiAgaGFuZGxlRmxhZ0NsaWNrKGV2ZW50PzogRXZlbnQpIHtcbiAgICBldmVudD8uc3RvcFByb3BhZ2F0aW9uKClcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuY2xvc2VkXG4gICAgICAgID8gdGhpcy5zaG93T3B0aW9ucygpXG4gICAgICAgIDogdGhpcy5oaWRlT3B0aW9ucygpXG4gICAgfVxuICAgIHRoaXMuY2hhbmdlLmRldGVjdENoYW5nZXMoKVxuICB9XG5cbiAgc2hvd09wdGlvbnMoKSB7XG4gICAgdGhpcy5jbG9zZWQgPSBmYWxzZVxuICAgIGlmICh0aGlzLnBob25lQ29udGFpbmVyKSB7XG4gICAgICB0aGlzLl9vdmVybGF5UmVmID0gdGhpcy5nZXRPdmVybGF5Q29uZmlnKHRoaXMucGhvbmVDb250YWluZXIpXG5cbiAgICAgIHRoaXMuX3BvcnRhbCA9IG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLm92ZXJsYXlDb250ZW50ISwgdGhpcy52aWV3Q29udGFpbmVyUmVmKVxuICAgIH1cblxuICAgIHRoaXMuX292ZXJsYXlSZWY/LmF0dGFjaCh0aGlzLl9wb3J0YWwpO1xuICB9XG5cbiAgaGlkZU9wdGlvbnMoKSB7XG4gICAgdGhpcy5jbG9zZWQgPSB0cnVlO1xuICAgIHRoaXMuc2VhcmNoRmllbGRDb250cm9sLnNldFZhbHVlKCcnKVxuICAgIHRoaXMuX292ZXJsYXlSZWY/LmRldGFjaCgpXG4gICAgdGhpcy5jaGFuZ2UuZGV0ZWN0Q2hhbmdlcygpXG4gICAgdGhpcy5zY3JvbGxTdWI/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBvbkNoYW5nZVBob25lTnVtYmVyKGU6IGFueSkge1xuICAgIGNvbnN0IG5ld1ZhbHVlID0gZS50YXJnZXQudmFsdWU/LnJlcGxhY2UoTk9OX0RJR0lUX1JFR0VYLCAnJyk7XG5cbiAgICBpZiAodGhpcy52YWx1ZSAhPT0gbmV3VmFsdWUpIHtcbiAgICAgIHRoaXMub25DaGFuZ2UobmV3VmFsdWUpXG4gICAgfVxuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaCA9IGZuO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMuaW5wdXRDb250cm9sLnNldFZhbHVlKHZhbHVlKTtcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGlzcGxheUZuID0gKGNvdW50cnlGbGFnOiBhbnkpID0+IGAke2NvdW50cnlGbGFnLmNvdW50cnlOYW1lfSAoJHtjb3VudHJ5RmxhZy5jb2RlfSlgO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBmaWx0ZXJGbiA9IChzZWFyY2g6IHN0cmluZykgPT5cbiAgICBmaWx0ZXJTZWxlY3RlZExpc3QodGhpcy5jb3VudHJ5SXRlbXMsIHNlYXJjaCwgWydjb2RlJywgJ2NvdW50cnlOYW1lJ10pO1xuXG4gIHByaXZhdGUgYWRkQXZhaWxhYmxlRmxhZ3MoZGF0YTogQ291bnRyeURhdGFbXSkge1xuICAgIHRoaXMuY291bnRyeUl0ZW1zID0gZGF0YTtcbiAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IHRoaXMuY291bnRyeUl0ZW1zO1xuICAgIHRoaXMuc2VsZWN0ZWRGbGFnID0gdGhpcy5jb3VudHJ5RmxhZ1NlcnZpY2UuZ2V0RGVmYXVsdENvdW50cnlGbGFnKGRhdGEpO1xuICAgIHRoaXMub25DaGFuZ2VGbGFnLmVtaXQodGhpcy5zZWxlY3RlZEZsYWcpO1xuICAgIHRoaXMuY2hhbmdlLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlSW5wdXRDaGFuZ2UoKSB7XG4gICAgdGhpcy5zZWFyY2hGaWVsZENvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveSksXG4gICAgICBkZWJvdW5jZVRpbWUoMzAwKSxcbiAgICAgIG1hcCh2YWx1ZSA9PiB0aGlzLmZpbHRlckZuKHZhbHVlIHx8ICcnKSlcbiAgICApLnN1YnNjcmliZShpdGVtcyA9PiB7XG4gICAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IGl0ZW1zXG4gICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgZ2V0T3ZlcmxheUNvbmZpZyh3cmFwcGVyOiBFbGVtZW50UmVmKSB7XG4gICAgcmV0dXJuIHRoaXMub3ZlcmxheS5jcmVhdGUoe1xuICAgICAgd2lkdGg6IHdyYXBwZXIubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCxcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKCksXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkucG9zaXRpb24oKVxuICAgICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyh3cmFwcGVyLm5hdGl2ZUVsZW1lbnQpXG4gICAgICAgIC53aXRoUG9zaXRpb25zKFt7XG4gICAgICAgICAgb3JpZ2luWDogXCJzdGFydFwiLFxuICAgICAgICAgIG9yaWdpblk6IFwiYm90dG9tXCIsXG4gICAgICAgICAgb3ZlcmxheVg6IFwic3RhcnRcIixcbiAgICAgICAgICBvdmVybGF5WTogXCJ0b3BcIixcbiAgICAgICAgfV0pXG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgI3Bob25lQ29udGFpbmVyIFtzdHlsZV09XCJ7Y3Vyc29yOiBkaXNhYmxlZCA/ICdub3QtYWxsb3dlZCcgOiAnYXV0byd9XCIgY2xhc3M9XCJwaG9uZS1kZGlcIj5cblxuICA8ZGl2XG4gICAgI3dyYXBwZXJcbiAgICAoY2xpY2spPVwiaGFuZGxlRmxhZ0NsaWNrKClcIlxuICAgICpuZ0lmPVwic2VsZWN0ZWRGbGFnXCJcbiAgICBbc3R5bGVdPVwie2N1cnNvcjogIWRpc2FibGVkID8gJ3BvaW50ZXInIDogJ25vdC1hbGxvd2VkJ31cIlxuICAgIGNsYXNzPVwiZmxhZ1wiXG4gICAgZGF0YS10ZXN0aWQ9XCJmbGFnXCI+XG5cbiAgICA8ZGl2IFtzdHlsZV09XCJ7YmFja2dyb3VuZFBvc2l0aW9uOiB0aGlzLnNlbGVjdGVkRmxhZz8uYmFja2dyb3VuZFBvc2l0aW9ufVwiIGNsYXNzPVwiZmxhZy1pY29uXCI+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZsYWctYXJyb3dcIj48L2Rpdj5cbiAgPC9kaXY+XG5cblxuICA8YXNrLWlucHV0XG4gICAgKGlucHV0KT1cIm9uQ2hhbmdlUGhvbmVOdW1iZXIoJGV2ZW50KVwiXG4gICAgKm5nSWY9XCJzZWxlY3RlZEZsYWc7IGVsc2UgbG9hZGluZ1Bob25lSW5wdXRcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW2V4dHJhUGFkZGluZ109XCJ0cnVlXCJcbiAgICBbZm9ybUNvbnRyb2xdPVwiaW5wdXRDb250cm9sXCJcbiAgICBbaXNDbG9zZWRdPVwiY2xvc2VkXCJcbiAgICBbbWFza109XCJzZWxlY3RlZEZsYWcubWFza1wiXG4gICAgW3BsYWNlaG9sZGVyXT1cIidQSE9ORV9QTEFDRUhPTERFUicgfCB0cmFuc2xhdGVcIlxuICAgIFt2YWx1ZVByZWZpeF09XCJzZWxlY3RlZEZsYWcuY29kZSArICcgJ1wiXG4gICAgYXNrQXV0b2ZvY3VzXG4gICAgY2xhc3M9XCJwaG9uZVwiXG4gIC8+XG5cbiAgPG5nLXRlbXBsYXRlICNsb2FkaW5nUGhvbmVJbnB1dD5cbiAgICA8ZGl2IGNsYXNzPVwic2tlbGV0b25cIj5cbiAgICAgIDxhc2stc2tlbGV0b24gW2JhcnNIZWlnaHRdPVwiMjRcIiBbcmFkaXVzXT1cIjEwXCIgc3R5bGU9XCJoZWlnaHQ6IDI0cHg7XCIvPlxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuXG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNvdmVybGF5Q29udGVudD5cbiAgPGRpdiAjbWVudUNvbnRhaW5lciBjbGFzcz1cIm1lbnUtY29udGFpbmVyXCI+XG4gICAgPGRpdiBbc3R5bGVdPVwie3BhZGRpbmc6ICc4cHgnfVwiPlxuICAgICAgPGFzay1pbnB1dFxuICAgICAgICBbZm9ybUNvbnRyb2xdPVwic2VhcmNoRmllbGRDb250cm9sXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidGSU5EX0RESV9PUl9DT1VOVFJZJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIFthdXRvRm9jdXNdPVwidHJ1ZVwiXG4gICAgICAgIGNsYXNzPVwic2VhcmNoXCJcbiAgICAgIC8+XG4gICAgPC9kaXY+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWZpbHRlcmVkT3B0aW9ucy5sZW5ndGg7IGVsc2UgbGlzdFwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJlbXB0eVwiPnt7XG4gICAgICAgICdOT19PUFRJT05TJyB8IHRyYW5zbGF0ZVxuICAgICAgICB9fTwvc3Bhbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy10ZW1wbGF0ZSAjbGlzdD5cbiAgICAgIDxkaXYgW2Fza1Njcm9sbFRocmVzaG9sZF09XCI1MFwiIGFza1Njcm9sbCBjbGFzcz1cImxpc3RcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY291bnRyeUl0ZW0gb2YgZmlsdGVyZWRPcHRpb25zXCI+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZU9wdGlvblNlbGVjdGVkKGNvdW50cnlJdGVtKVwiXG4gICAgICAgICAgICBjbGFzcz1cIm9wdGlvbi1pdGVtXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IFtzdHlsZV09XCJ7YmFja2dyb3VuZFBvc2l0aW9uOiBjb3VudHJ5SXRlbS5iYWNrZ3JvdW5kUG9zaXRpb259XCIgY2xhc3M9XCJjb3VudHJ5XCI+PC9kaXY+XG4gICAgICAgICAgICA8cCBjbGFzcz1cInRleHRcIj57eyBkaXNwbGF5KGNvdW50cnlJdGVtKSB9fTwvcD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
171
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtZGRpLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fza3N1aXRlLWNpdHJ1cy9zcmMvbGliL2NvbXBvbmVudHMvcGhvbmUtZGRpL3Bob25lLWRkaS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc2tzdWl0ZS1jaXRydXMvc3JjL2xpYi9jb21wb25lbnRzL3Bob25lLWRkaS9waG9uZS1kZGkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsVUFBVSxFQUVWLFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUlOLFNBQVMsRUFDVCxZQUFZLEdBRWIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF1QixXQUFXLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRixPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFbkQsT0FBTyxFQUFDLFlBQVksRUFBRSxHQUFHLEVBQWUsTUFBTSxNQUFNLENBQUM7QUFDckQsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDdEQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxrQkFBa0IsTUFBTSwrQ0FBK0MsQ0FBQztBQUUvRSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7Ozs7QUFFL0QsTUFBTSxhQUFhLEdBQWE7SUFDOUIsT0FBTyxFQUFFLGlCQUFpQjtJQUMx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TCxPQUFPO3NCQUE1QixTQUFTO3VCQUFDLFNBQVM7Z0JBRVEsYUFBYTtzQkFBeEMsU0FBUzt1QkFBQyxlQUFlO2dCQUVHLGNBQWM7c0JBQTFDLFNBQVM7dUJBQUMsZ0JBQWdCO2dCQUczQixZQUFZO3NCQURYLFlBQVk7dUJBQUMsb0JBQW9CO2dCQTZDbEMsV0FBVztzQkFEVixZQUFZO3VCQUFDLGNBQWMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBEZXN0cm95UmVmLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgaW5qZWN0LFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBQcm92aWRlcixcbiAgUXVlcnlMaXN0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3Q2hpbGRyZW4sXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUNvbnRyb2wsIE5HX1ZBTFVFX0FDQ0VTU09SfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1RlbXBsYXRlUG9ydGFsfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL3BvcnRhbFwiO1xuaW1wb3J0IHtPdmVybGF5LCBPdmVybGF5UmVmfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL292ZXJsYXlcIjtcbmltcG9ydCB7ZGVib3VuY2VUaW1lLCBtYXAsIFN1YnNjcmlwdGlvbn0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7QXNrRHJvcGRvd25EaXJlY3RpdmV9IGZyb20gXCIuLi8uLi9kaXJlY3RpdmVzXCI7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZH0gZnJvbSBcIkBhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wXCI7XG5pbXBvcnQge2ZpbHRlclNlbGVjdGVkTGlzdH0gZnJvbSBcIi4uLy4uLy4uL3NoYXJlZC9oZWxwZXJzL2ZpbHRlci5oZWxwZXJcIjtcbmltcG9ydCBDb3VudHJ5RmxhZ1NlcnZpY2UgZnJvbSBcIi4uLy4uLy4uL3NoYXJlZC9zZXJ2aWNlcy9jb3VudHJ5LWZsYWcuc2VydmljZVwiO1xuaW1wb3J0IHtDb3VudHJ5RGF0YX0gZnJvbSBcIi4uLy4uLy4uL3NoYXJlZC9wcm92aWRlcnMvZmxhZy5wcm92aWRlclwiO1xuaW1wb3J0IHtOT05fRElHSVRfUkVHRVh9IGZyb20gXCIuLi8uLi8uLi9zaGFyZWQvdXRpbHMvcmVnZXhcIjtcbmltcG9ydCB7Z2V0Q291bnRyeUZyb21QaG9uZX0gZnJvbSBcIi4uLy4uL2hlbHBlcnMvcGhvbmUuaGVscGVyXCI7XG5cbmNvbnN0IHZhbHVlQWNjZXNzb3I6IFByb3ZpZGVyID0ge1xuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgbXVsdGk6IHRydWUsXG4gIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFBob25lRGRpQ29tcG9uZW50KSxcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Fzay1waG9uZS1kZGknLFxuICB0ZW1wbGF0ZVVybDogJy4vcGhvbmUtZGRpLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcGhvbmUtZGRpLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW3ZhbHVlQWNjZXNzb3JdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBQaG9uZURkaUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgdmFsdWUgPSAnJztcbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBPdXRwdXQoKSBvbkNoYW5nZUZsYWcgPSBuZXcgRXZlbnRFbWl0dGVyPENvdW50cnlEYXRhPigpO1xuXG4gIEBWaWV3Q2hpbGQoJ3Bob25lQ29udGFpbmVyJykgcGhvbmVDb250YWluZXI6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWRcblxuICBAVmlld0NoaWxkKCd3cmFwcGVyJykgd3JhcHBlcjogRWxlbWVudFJlZiB8IHVuZGVmaW5lZFxuXG4gIEBWaWV3Q2hpbGQoXCJtZW51Q29udGFpbmVyXCIpIG1lbnVDb250YWluZXI6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWRcblxuICBAVmlld0NoaWxkKCdvdmVybGF5Q29udGVudCcpIG92ZXJsYXlDb250ZW50OiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkXG5cbiAgQFZpZXdDaGlsZHJlbihBc2tEcm9wZG93bkRpcmVjdGl2ZSlcbiAgZHJvcGRvd25MaXN0PzogUXVlcnlMaXN0PEFza0Ryb3Bkb3duRGlyZWN0aXZlPjtcblxuICBzZWxlY3RlZEZsYWc/OiBDb3VudHJ5RGF0YTtcbiAgY291bnRyeUl0ZW1zOiBDb3VudHJ5RGF0YVtdID0gW11cbiAgb25DaGFuZ2UhOiAodmFsdWU/OiBhbnkpID0+IHZvaWQ7XG4gIG9uVG91Y2ghOiAoKSA9PiB2b2lkO1xuICBwcm90ZWN0ZWQgY2xvc2VkID0gdHJ1ZTtcbiAgcHJvdGVjdGVkIGlucHV0Q29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCh7dmFsdWU6ICcnLCBkaXNhYmxlZDogdGhpcy5kaXNhYmxlZH0pXG4gIHByb3RlY3RlZCBzZWFyY2hGaWVsZENvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woXCJcIilcbiAgcHJvdGVjdGVkIGZpbHRlcmVkT3B0aW9uczogYW55W10gPSBbXVxuICBwcm90ZWN0ZWQgaXNWYWxpZCA9IHRydWU7XG4gIHByaXZhdGUgX292ZXJsYXlSZWY6IE92ZXJsYXlSZWYgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgX3BvcnRhbDogVGVtcGxhdGVQb3J0YWw8YW55PiB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBfZGVzdHJveSA9IGluamVjdChEZXN0cm95UmVmKVxuICBwcml2YXRlIHNjcm9sbFN1Yj86IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNoYW5nZTogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LFxuICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICBwcml2YXRlIGNvdW50cnlGbGFnU2VydmljZTogQ291bnRyeUZsYWdTZXJ2aWNlXG4gICkge1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuY291bnRyeUZsYWdTZXJ2aWNlLmxpc3QoKS5zdWJzY3JpYmUodGhpcy5hZGRBdmFpbGFibGVGbGFncy5iaW5kKHRoaXMpKVxuICAgIHRoaXMuaGFuZGxlSW5wdXRDaGFuZ2UoKTtcbiAgfVxuXG4gIGhhbmRsZU9wdGlvblNlbGVjdGVkKGl0ZW06IGFueSkge1xuICAgIHRoaXMuc2VsZWN0ZWRGbGFnID0gaXRlbTtcbiAgICB0aGlzLmhpZGVPcHRpb25zKCk7XG4gICAgdGhpcy5pbnB1dENvbnRyb2wuc2V0VmFsdWUoJycpO1xuICAgIHRoaXMuc2VhcmNoRmllbGRDb250cm9sLnNldFZhbHVlKCcnKTtcbiAgICB0aGlzLm9uQ2hhbmdlKCcnKTtcbiAgICB0aGlzLm9uQ2hhbmdlRmxhZy5lbWl0KHRoaXMuc2VsZWN0ZWRGbGFnKTtcbiAgICB0aGlzLmNoYW5nZS5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBkaXNwbGF5KG9wdGlvbjogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuZGlzcGxheUZuKG9wdGlvbilcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoXCJ3aW5kb3c6Y2xpY2tcIiwgWyckZXZlbnQnXSlcbiAgaGFuZGxlQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAoXG4gICAgICAhdGhpcy5jbG9zZWRcbiAgICAgICYmICF0aGlzLndyYXBwZXI/Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KVxuICAgICAgJiYgIXRoaXMubWVudUNvbnRhaW5lcj8ubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpKSB7XG4gICAgICB0aGlzLmhpZGVPcHRpb25zKClcbiAgICB9XG4gIH1cblxuICBoYW5kbGVGbGFnQ2xpY2soZXZlbnQ/OiBFdmVudCkge1xuICAgIGV2ZW50Py5zdG9wUHJvcGFnYXRpb24oKVxuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5jbG9zZWRcbiAgICAgICAgPyB0aGlzLnNob3dPcHRpb25zKClcbiAgICAgICAgOiB0aGlzLmhpZGVPcHRpb25zKClcbiAgICB9XG4gICAgdGhpcy5jaGFuZ2UuZGV0ZWN0Q2hhbmdlcygpXG4gIH1cblxuICBzaG93T3B0aW9ucygpIHtcbiAgICB0aGlzLmNsb3NlZCA9IGZhbHNlXG4gICAgaWYgKHRoaXMucGhvbmVDb250YWluZXIpIHtcbiAgICAgIHRoaXMuX292ZXJsYXlSZWYgPSB0aGlzLmdldE92ZXJsYXlDb25maWcodGhpcy5waG9uZUNvbnRhaW5lcilcblxuICAgICAgdGhpcy5fcG9ydGFsID0gbmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMub3ZlcmxheUNvbnRlbnQhLCB0aGlzLnZpZXdDb250YWluZXJSZWYpXG4gICAgfVxuXG4gICAgdGhpcy5fb3ZlcmxheVJlZj8uYXR0YWNoKHRoaXMuX3BvcnRhbCk7XG4gIH1cblxuICBoaWRlT3B0aW9ucygpIHtcbiAgICB0aGlzLmNsb3NlZCA9IHRydWU7XG4gICAgdGhpcy5zZWFyY2hGaWVsZENvbnRyb2wuc2V0VmFsdWUoJycpXG4gICAgdGhpcy5fb3ZlcmxheVJlZj8uZGV0YWNoKClcbiAgICB0aGlzLmNoYW5nZS5kZXRlY3RDaGFuZ2VzKClcbiAgICB0aGlzLnNjcm9sbFN1Yj8udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIG9uQ2hhbmdlUGhvbmVOdW1iZXIoZTogYW55KSB7XG4gICAgY29uc3QgbmV3VmFsdWUgPSBlLnRhcmdldC52YWx1ZT8ucmVwbGFjZShOT05fRElHSVRfUkVHRVgsICcnKTtcblxuICAgIGlmICh0aGlzLnZhbHVlICE9PSBuZXdWYWx1ZSkge1xuICAgICAgdGhpcy5vbkNoYW5nZShuZXdWYWx1ZSlcbiAgICB9XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoID0gZm47XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5pbnB1dENvbnRyb2wuc2V0VmFsdWUodmFsdWUpO1xuICAgIGNvbnN0IGNvdW50cnkgPSBnZXRDb3VudHJ5RnJvbVBob25lKHZhbHVlKVxuICAgIGlmIChjb3VudHJ5KSB7XG4gICAgICB0aGlzLnNlbGVjdGVkRmxhZyA9IHRoaXMuY291bnRyeUl0ZW1zLmZpbmQoaXRlbSA9PiBpdGVtLmNvdW50cnlDb2RlID09PSBjb3VudHJ5KVxuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCByZWFkb25seSBkaXNwbGF5Rm4gPSAoY291bnRyeUZsYWc6IGFueSkgPT4gYCR7Y291bnRyeUZsYWcuY291bnRyeU5hbWV9ICgke2NvdW50cnlGbGFnLmNvZGV9KWA7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGZpbHRlckZuID0gKHNlYXJjaDogc3RyaW5nKSA9PlxuICAgIGZpbHRlclNlbGVjdGVkTGlzdCh0aGlzLmNvdW50cnlJdGVtcywgc2VhcmNoLCBbJ2NvZGUnLCAnY291bnRyeU5hbWUnXSk7XG5cbiAgcHJpdmF0ZSBhZGRBdmFpbGFibGVGbGFncyhkYXRhOiBDb3VudHJ5RGF0YVtdKSB7XG4gICAgdGhpcy5jb3VudHJ5SXRlbXMgPSBkYXRhO1xuICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gdGhpcy5jb3VudHJ5SXRlbXM7XG4gICAgdGhpcy5zZWxlY3RlZEZsYWcgPSB0aGlzLmNvdW50cnlGbGFnU2VydmljZS5nZXREZWZhdWx0Q291bnRyeUZsYWcoZGF0YSk7XG4gICAgdGhpcy5vbkNoYW5nZUZsYWcuZW1pdCh0aGlzLnNlbGVjdGVkRmxhZyk7XG4gICAgdGhpcy5jaGFuZ2UuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVJbnB1dENoYW5nZSgpIHtcbiAgICB0aGlzLnNlYXJjaEZpZWxkQ29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95KSxcbiAgICAgIGRlYm91bmNlVGltZSgzMDApLFxuICAgICAgbWFwKHZhbHVlID0+IHRoaXMuZmlsdGVyRm4odmFsdWUgfHwgJycpKVxuICAgICkuc3Vic2NyaWJlKGl0ZW1zID0+IHtcbiAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gaXRlbXNcbiAgICB9KVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRPdmVybGF5Q29uZmlnKHdyYXBwZXI6IEVsZW1lbnRSZWYpIHtcbiAgICByZXR1cm4gdGhpcy5vdmVybGF5LmNyZWF0ZSh7XG4gICAgICB3aWR0aDogd3JhcHBlci5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoLFxuICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKSxcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5wb3NpdGlvbigpXG4gICAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKHdyYXBwZXIubmF0aXZlRWxlbWVudClcbiAgICAgICAgLndpdGhQb3NpdGlvbnMoW3tcbiAgICAgICAgICBvcmlnaW5YOiBcInN0YXJ0XCIsXG4gICAgICAgICAgb3JpZ2luWTogXCJib3R0b21cIixcbiAgICAgICAgICBvdmVybGF5WDogXCJzdGFydFwiLFxuICAgICAgICAgIG92ZXJsYXlZOiBcInRvcFwiLFxuICAgICAgICB9XSlcbiAgICB9KTtcbiAgfVxufVxuIiwiPGRpdiAjcGhvbmVDb250YWluZXIgW3N0eWxlXT1cIntjdXJzb3I6IGRpc2FibGVkID8gJ25vdC1hbGxvd2VkJyA6ICdhdXRvJ31cIiBjbGFzcz1cInBob25lLWRkaVwiPlxuXG4gIDxkaXZcbiAgICAjd3JhcHBlclxuICAgIChjbGljayk9XCJoYW5kbGVGbGFnQ2xpY2soKVwiXG4gICAgKm5nSWY9XCJzZWxlY3RlZEZsYWdcIlxuICAgIFtzdHlsZV09XCJ7Y3Vyc29yOiAhZGlzYWJsZWQgPyAncG9pbnRlcicgOiAnbm90LWFsbG93ZWQnfVwiXG4gICAgY2xhc3M9XCJmbGFnXCJcbiAgICBkYXRhLXRlc3RpZD1cImZsYWdcIj5cblxuICAgIDxkaXYgW3N0eWxlXT1cIntiYWNrZ3JvdW5kUG9zaXRpb246IHRoaXMuc2VsZWN0ZWRGbGFnPy5iYWNrZ3JvdW5kUG9zaXRpb259XCIgY2xhc3M9XCJmbGFnLWljb25cIj48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxhZy1hcnJvd1wiPjwvZGl2PlxuICA8L2Rpdj5cblxuXG4gIDxhc2staW5wdXRcbiAgICAoaW5wdXQpPVwib25DaGFuZ2VQaG9uZU51bWJlcigkZXZlbnQpXCJcbiAgICAqbmdJZj1cInNlbGVjdGVkRmxhZzsgZWxzZSBsb2FkaW5nUGhvbmVJbnB1dFwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbZXh0cmFQYWRkaW5nXT1cInRydWVcIlxuICAgIFtmb3JtQ29udHJvbF09XCJpbnB1dENvbnRyb2xcIlxuICAgIFtpc0Nsb3NlZF09XCJjbG9zZWRcIlxuICAgIFttYXNrXT1cInNlbGVjdGVkRmxhZy5tYXNrXCJcbiAgICBbcGxhY2Vob2xkZXJdPVwiJ1BIT05FX1BMQUNFSE9MREVSJyB8IHRyYW5zbGF0ZVwiXG4gICAgW3ZhbHVlUHJlZml4XT1cInNlbGVjdGVkRmxhZy5jb2RlICsgJyAnXCJcbiAgICBhc2tBdXRvZm9jdXNcbiAgICBjbGFzcz1cInBob25lXCJcbiAgLz5cblxuICA8bmctdGVtcGxhdGUgI2xvYWRpbmdQaG9uZUlucHV0PlxuICAgIDxkaXYgY2xhc3M9XCJza2VsZXRvblwiPlxuICAgICAgPGFzay1za2VsZXRvbiBbYmFyc0hlaWdodF09XCIyNFwiIFtyYWRpdXNdPVwiMTBcIiBzdHlsZT1cImhlaWdodDogMjRweDtcIi8+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI292ZXJsYXlDb250ZW50PlxuICA8ZGl2ICNtZW51Q29udGFpbmVyIGNsYXNzPVwibWVudS1jb250YWluZXJcIj5cbiAgICA8ZGl2IFtzdHlsZV09XCJ7cGFkZGluZzogJzhweCd9XCI+XG4gICAgICA8YXNrLWlucHV0XG4gICAgICAgIFtmb3JtQ29udHJvbF09XCJzZWFyY2hGaWVsZENvbnRyb2xcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0ZJTkRfRERJX09SX0NPVU5UUlknIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgW2F1dG9Gb2N1c109XCJ0cnVlXCJcbiAgICAgICAgY2xhc3M9XCJzZWFyY2hcIlxuICAgICAgLz5cbiAgICA8L2Rpdj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZmlsdGVyZWRPcHRpb25zLmxlbmd0aDsgZWxzZSBsaXN0XCI+XG4gICAgICA8c3BhbiBjbGFzcz1cImVtcHR5XCI+e3tcbiAgICAgICAgJ05PX09QVElPTlMnIHwgdHJhbnNsYXRlXG4gICAgICAgIH19PC9zcGFuPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLXRlbXBsYXRlICNsaXN0PlxuICAgICAgPGRpdiBbYXNrU2Nyb2xsVGhyZXNob2xkXT1cIjUwXCIgYXNrU2Nyb2xsIGNsYXNzPVwibGlzdFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb3VudHJ5SXRlbSBvZiBmaWx0ZXJlZE9wdGlvbnNcIj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlT3B0aW9uU2VsZWN0ZWQoY291bnRyeUl0ZW0pXCJcbiAgICAgICAgICAgIGNsYXNzPVwib3B0aW9uLWl0ZW1cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgW3N0eWxlXT1cIntiYWNrZ3JvdW5kUG9zaXRpb246IGNvdW50cnlJdGVtLmJhY2tncm91bmRQb3NpdGlvbn1cIiBjbGFzcz1cImNvdW50cnlcIj48L2Rpdj5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwidGV4dFwiPnt7IGRpc3BsYXkoY291bnRyeUl0ZW0pIH19PC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -21,6 +21,7 @@ export class RichtextToolboxDirective {
21
21
  this.inputChange = new EventEmitter();
22
22
  this.inputEnter = new EventEmitter();
23
23
  this.inputEscape = new EventEmitter();
24
+ this.inputFocus = new EventEmitter();
24
25
  this.toolChange = new EventEmitter();
25
26
  }
26
27
  ngOnChanges(sp) {
@@ -86,7 +87,10 @@ export class RichtextToolboxDirective {
86
87
  this.subscription.add(toolbox.richtextWrapper.listenTextChanges$
87
88
  .pipe(filter((v) => v !== this.text))
88
89
  .subscribe((v) => { this.update(v); }));
89
- this.subscription.add(toolbox.richtextWrapper.listenOnTouched$.subscribe(() => { this.onTouched(); }));
90
+ this.subscription.add(toolbox.richtextWrapper.listenOnTouched$.subscribe((touched) => {
91
+ this.onTouched();
92
+ this.inputFocus.emit(touched);
93
+ }));
90
94
  this.subscription.add(toolbox.richtextWrapper.listenEnter$.subscribe(() => { this.inputEnter.emit(); }));
91
95
  this.subscription.add(toolbox.richtextWrapper.listenEscape$.subscribe(() => { this.inputEscape.emit(); }));
92
96
  this.subscription.add(toolbox.richtextWrapper.state$
@@ -123,7 +127,7 @@ export class RichtextToolboxDirective {
123
127
  }
124
128
  }
125
129
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: RichtextToolboxDirective, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive }); }
126
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.6", type: RichtextToolboxDirective, selector: "[askRichtextToolbox]", inputs: { rtPlaceholder: "rtPlaceholder", rtTools: "rtTools", rtDisabledTools: "rtDisabledTools", rtType: "rtType", rtToolbarOnly: "rtToolbarOnly", maxlength: "maxlength", rtToolbarClass: "rtToolbarClass", rtEditorClass: "rtEditorClass", rtBreakOnEnter: "rtBreakOnEnter" }, outputs: { inputChange: "inputChange", inputEnter: "inputEnter", inputEscape: "inputEscape", toolChange: "toolChange" }, providers: [
130
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.6", type: RichtextToolboxDirective, selector: "[askRichtextToolbox]", inputs: { rtPlaceholder: "rtPlaceholder", rtTools: "rtTools", rtDisabledTools: "rtDisabledTools", rtType: "rtType", rtToolbarOnly: "rtToolbarOnly", maxlength: "maxlength", rtToolbarClass: "rtToolbarClass", rtEditorClass: "rtEditorClass", rtBreakOnEnter: "rtBreakOnEnter" }, outputs: { inputChange: "inputChange", inputEnter: "inputEnter", inputEscape: "inputEscape", inputFocus: "inputFocus", toolChange: "toolChange" }, providers: [
127
131
  {
128
132
  multi: true,
129
133
  provide: NG_VALUE_ACCESSOR,
@@ -167,7 +171,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
167
171
  type: Output
168
172
  }], inputEscape: [{
169
173
  type: Output
174
+ }], inputFocus: [{
175
+ type: Output
170
176
  }], toolChange: [{
171
177
  type: Output
172
178
  }] } });
173
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmljaHRleHQtdG9vbGJveC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc2tzdWl0ZS1jaXRydXMvc3JjL2xpYi9kaXJlY3RpdmVzL3JpY2h0ZXh0LXRvb2xib3gvcmljaHRleHQtdG9vbGJveC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBRVosS0FBSyxFQUVMLE1BQU0sRUFFTixVQUFVLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFNdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUV6RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7QUFZbEUsTUFBTSxPQUFPLHdCQUF3QjtJQXlCbkMsWUFBb0IsUUFBa0I7UUFBbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQWpCOUIsU0FBSSxHQUFHLEVBQUUsQ0FBQztRQUVULGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ25CLFlBQU8sR0FBYSxFQUFFLENBQUM7UUFDdkIsb0JBQWUsR0FBYSxFQUFFLENBQUM7UUFDL0IsV0FBTSxHQUFlLFFBQVEsQ0FBQztRQUM5QixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUN0QixjQUFTLEdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDdkIsbUJBQWMsR0FBRyxFQUFFLENBQUM7UUFDcEIsa0JBQWEsR0FBRyxFQUFFLENBQUM7UUFDbkIsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFFdEIsZ0JBQVcsR0FBRyxJQUFJLFlB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ICBEaXJlY3RpdmUsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5qZWN0b3IsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgZm9yd2FyZFJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBUb29sS2V5cyxcbiAgVG9vbExheW91dCxcbiAgVG9vbHNTdGF0ZSxcbn0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9yaWNodGV4dC10b29sYm94LmludGVyZmFjZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGFyZU9iamVjdHNFcXVhbCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvYXJlLW9iamVjdHMtZXF1YWwuaGVscGVyJztcbmltcG9ydCB7IFRvb2xib3ggfSBmcm9tICcuLi8uLi9jbGFzc2VzL3Rvb2xib3gnO1xuaW1wb3J0IHsgQnViYmxlVG9vbGJveFByb3h5IH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9idWJibGUtdG9vbGJveCc7XG5pbXBvcnQgeyBUb3BiYXJUb29sYm94UHJveHkgfSBmcm9tICcuLi8uLi9jbGFzc2VzL3RvcGJhci10b29sYm94JztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2Fza1JpY2h0ZXh0VG9vbGJveF0nLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUmljaHRleHRUb29sYm94RGlyZWN0aXZlKSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBSaWNodGV4dFRvb2xib3hEaXJlY3RpdmVcbiAgaW1wbGVtZW50cyBPbkNoYW5nZXMsIENvbnRyb2xWYWx1ZUFjY2Vzc29yXG57XG4gIHByaXZhdGUgdG9vbGJveD86IFRvb2xib3g7XG5cbiAgcHJpdmF0ZSBvbkNoYW5nZSE6ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkO1xuICBwcml2YXRlIG9uVG91Y2hlZCE6ICgpID0+IHZvaWQ7XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIHRleHQgPSAnJztcblxuICBASW5wdXQoKSBydFBsYWNlaG9sZGVyID0gJyc7XG4gIEBJbnB1dCgpIHJ0VG9vbHM6IFRvb2xLZXlzID0gW107XG4gIEBJbnB1dCgpIHJ0RGlzYWJsZWRUb29sczogVG9vbEtleXMgPSBbXTtcbiAgQElucHV0KCkgcnRUeXBlOiBUb29sTGF5b3V0ID0gJ3RvcGJhcic7XG4gIEBJbnB1dCgpIHJ0VG9vbGJhck9ubHkgPSBmYWxzZTtcbiAgQElucHV0KCkgbWF4bGVuZ3RoOiBudW1iZXIgPSAtMTtcbiAgQElucHV0KCkgcnRUb29sYmFyQ2xhc3MgPSAnJztcbiAgQElucHV0KCkgcnRFZGl0b3JDbGFzcyA9ICcnO1xuICBASW5wdXQoKSBydEJyZWFrT25FbnRlciA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKSBpbnB1dENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBAT3V0cHV0KCkgaW5wdXRFbnRlciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGlucHV0RXNjYXBlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgdG9vbENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VG9vbHNTdGF0ZT4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGluamVjdG9yOiBJbmplY3Rvcikge31cblxuICBuZ09uQ2hhbmdlcyhzcDogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChzcFsncnRUeXBlJ10pIHtcbiAgICAgIHRoaXMucHJlcGFyZVRvb2xiYXIoKTtcbiAgICB9XG5cbiAgICBpZiAoc3BbJ3J0UGxhY2Vob2xkZXInXSkge1xuICAgICAgdGhpcy50b29sYm94Py5yaWNodGV4dFdyYXBwZXIuc2V0UGxhY2Vob2xkZXIodGhpcy5ydFBsYWNlaG9sZGVyKTtcbiAgICB9XG4gICAgaWYgKHNwWydydFRvb2xiYXJPbmx5J10pIHtcbiAgICAgIHRoaXMudG9vbGJveD8udG9nZ2xlSW5wdXREaXNwbGF5KCF0aGlzLnJ0VG9vbGJhck9ubHkpXG4gICAgfVxuXG4gICAgaWYoc3BbJ21heGxlbmd0aCddKXtcbiAgICAgIHRoaXMudG9vbGJveD8ucmljaHRleHRXcmFwcGVyLnNldE1heExlbmd0aCh0aGlzLm1heGxlbmd0aCk7XG4gICAgfVxuXG4gICAgaWYgKHNwWydydERpc2FibGVkVG9vbHMnXSB8fCBzcFsncnRUb29scyddIHx8IHNwWydydFRvb2xiYXJDbGFzcyddKSB7XG4gICAgICB0aGlzLnRvb2xib3g/LnNldFRvb2xJbnB1dCh7XG4gICAgICAgIGF2YWlsYWJsZVRvb2xzOiB0aGlzLnJ0VG9vbHMsXG4gICAgICAgIGRpc2FibGVkVG9vbHM6IHRoaXMucnREaXNhYmxlZFRvb2xzLFxuICAgICAgICBjbGFzczogdGhpcy5ydFRvb2xiYXJDbGFzcyxcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgaWYoc3BbJ3J0RWRpdG9yQ2xhc3MnXSl7XG4gICAgICB0aGlzLnRvb2xib3g/LnJpY2h0ZXh0V3JhcHBlci5zZXRFZGl0b3JDbGFzcyh0aGlzLnJ0RWRpdG9yQ2xhc3MpO1xuICAgIH1cblxuICAgIGlmKHNwWydydEJyZWFrT25FbnRlciddKXtcbiAgICAgIHRoaXMudG9vbGJveD8ucmljaHRleHRXcmFwcGVyLnNldEJyZWFrT25FbnRlcih0aGlzLnJ0QnJlYWtPbkVudGVyKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3lBbGwoKTtcbiAgfVxuXG4gIGZvY3VzKCkge1xuICAgIHRoaXMudG9vbGJveD8ucmljaHRleHRXcmFwcGVyLmZvY3VzKCk7XG4gIH1cblxuICAvL0NWQVxuXG4gIHdyaXRlVmFsdWUodGV4dDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy50ZXh0ID0gdGV4dDtcbiAgICB0aGlzLnRvb2xib3g/LnJpY2h0ZXh0V3JhcHBlci5zZXRUZXh0KHRleHQpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAoaXNEaXNhYmxlZCkgdGhpcy50b29sYm94Py5yaWNodGV4dFdyYXBwZXIuZGlzYWJsZSgpO1xuICAgIGVsc2UgdGhpcy50b29sYm94Py5yaWNodGV4dFdyYXBwZXIuZW5hYmxlKCk7XG4gIH1cblxuXG4gIHByaXZhdGUgcHJlcGFyZVRvb2xiYXIoKXtcbiAgICBpZiAodGhpcy50b29sYm94KSB0aGlzLmRlc3Ryb3lBbGwoKTtcblxuICAgIHRoaXMudG9vbGJveCA9IHRoaXMuZ2VuZXJhdGVUb29sYm94TGF5b3V0KHRoaXMucnRUeXBlKTtcbiAgICB0aGlzLnByZXBhcmVMaXN0ZW5lcnModGhpcy50b29sYm94KTtcbiAgfVxuXG4gIHByaXZhdGUgcHJlcGFyZUxpc3RlbmVycyh0b29sYm94OiBUb29sYm94KSB7XG4gICAgaWYodGhpcy5zdWJzY3JpcHRpb24pIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKHRvb2xib3gucmljaHRleHRXcmFwcGVyLmxpc3RlblRleHRDaGFuZ2VzJFxuICAgIC5waXBlKGZpbHRlcigodik9PnYgIT09IHRoaXMudGV4dCkpXG4gICAgLnN1YnNjcmliZSgodik9Pnt0aGlzLnVwZGF0ZSh2KX0pKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQodG9vbGJveC5yaWNodGV4dFdyYXBwZXIubGlzdGVuT25Ub3VjaGVkJC5zdWJzY3JpYmUoKCk9Pnt0aGlzLm9uVG91Y2hlZCgpfSkpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZCh0b29sYm94LnJpY2h0ZXh0V3JhcHBlci5saXN0ZW5FbnRlciQuc3Vic2NyaWJlKCgpPT57dGhpcy5pbnB1dEVudGVyLmVtaXQoKX0pKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQodG9vbGJveC5yaWNodGV4dFdyYXBwZXIubGlzdGVuRXNjYXBlJC5zdWJzY3JpYmUoKCk9Pnt0aGlzLmlucHV0RXNjYXBlLmVtaXQoKX0pKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQodG9vbGJveC5yaWNodGV4dFdyYXBwZXIuc3RhdGUkXG4gICAgICAucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgoYSwgYikgPT4gYXJlT2JqZWN0c0VxdWFsKGEsIGIpKSlcbiAgICAgIC5zdWJzY3JpYmUoKHN0YXRlKT0+e3RoaXMudG9vbENoYW5nZS5lbWl0KHN0YXRlKX0pKVxuICBcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlKHZhbHVlOiBzdHJpbmcpe1xuICAgIHRoaXMuaW5wdXRDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIGRlc3Ryb3lBbGwoKSB7XG4gICAgdGhpcy50b29sYm94Py5kZXN0cm95QWxsKCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIGdlbmVyYXRlVG9vbGJveExheW91dCh0eXBlOiBUb29sTGF5b3V0KSB7XG4gICAgY29uc3QgdG9vbGJveCA9IHRoaXMuZ2V0VG9vbGJveCh0eXBlKTtcbiAgICB0b29sYm94LnJpY2h0ZXh0V3JhcHBlci5zZXRQbGFjZWhvbGRlcih0aGlzLnJ0UGxhY2Vob2xkZXIpO1xuICAgIHRvb2xib3guc2V0VG9vbElucHV0KHtcbiAgICAgIGF2YWlsYWJsZVRvb2xzOiB0aGlzLnJ0VG9vbHMsXG4gICAgICBkaXNhYmxlZFRvb2xzOiB0aGlzLnJ0RGlzYWJsZWRUb29scyxcbiAgICAgIGNsYXNzOiB0aGlzLnJ0VG9vbGJhckNsYXNzLFxuICAgIH0pXG4gICAgdG9vbGJveC50b2dnbGVJbnB1dERpc3BsYXkoIXRoaXMucnRUb29sYmFyT25seSlcbiAgICB0b29sYm94LnJpY2h0ZXh0V3JhcHBlci5zZXRNYXhMZW5ndGgodGhpcy5tYXhsZW5ndGgpO1xuICAgIHRvb2xib3gucmljaHRleHRXcmFwcGVyLnNldEVkaXRvckNsYXNzKHRoaXMucnRFZGl0b3JDbGFzcyk7XG4gICAgcmV0dXJuIHRvb2xib3g7XG4gIH1cblxuICBwcml2YXRlIGdldFRvb2xib3godHlwZTogVG9vbExheW91dCl7XG4gICAgc3dpdGNoKHR5cGUpe1xuICAgICAgY2FzZSAnYnViYmxlJzpcbiAgICAgICAgcmV0dXJuIG5ldyBCdWJibGVUb29sYm94UHJveHkuQnViYmxlVG9vbGJveCh0aGlzLmluamVjdG9yKTtcbiAgICAgIGNhc2UgJ3RvcGJhcic6XG4gICAgICAgIHJldHVybiBuZXcgVG9wYmFyVG9vbGJveFByb3h5LlRvcGJhclRvb2xib3godGhpcy5pbmplY3Rvcik7XG4gICAgfVxuICB9XG59XG4iXX0=
179
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmljaHRleHQtdG9vbGJveC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc2tzdWl0ZS1jaXRydXMvc3JjL2xpYi9kaXJlY3RpdmVzL3JpY2h0ZXh0LXRvb2xib3gvcmljaHRleHQtdG9vbGJveC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBRVosS0FBSyxFQUVMLE1BQU0sRUFFTixVQUFVLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFNdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUV6RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7QUFZbEUsTUFBTSxPQUFPLHdCQUF3QjtJQTBCbkMsWUFBb0IsUUFBa0I7UUFBbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQWxCOUIsU0FBSSxHQUFHLEVBQUUsQ0FBQztRQUVULGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ25CLFlBQU8sR0FBYSxFQUFFLENBQUM7UUFDdkIsb0JBQWUsR0FBYSxFQUFFLENBQUM7UUFDL0IsV0FBTSxHQUFlLFFBQVEsQ0FBQztRQUM5QixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUN0QixjQUFTLEdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDdkIsbUJBQWMsR0FBRyxFQUFFLENBQUM7UUFDcEIsa0JBQWEsR0FBRyxFQUFFLENBQUM7UUFDbkIsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFFdEIsZ0JBQVcsR0FBRyxJQUFJLFlB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QkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBFdmVudEVtaXR0ZXIsXG4gIEluamVjdG9yLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIGZvcndhcmRSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgVG9vbEtleXMsXG4gIFRvb2xMYXlvdXQsXG4gIFRvb2xzU3RhdGUsXG59IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvcmljaHRleHQtdG9vbGJveC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBhcmVPYmplY3RzRXF1YWwgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2FyZS1vYmplY3RzLWVxdWFsLmhlbHBlcic7XG5pbXBvcnQgeyBUb29sYm94IH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy90b29sYm94JztcbmltcG9ydCB7IEJ1YmJsZVRvb2xib3hQcm94eSB9IGZyb20gJy4uLy4uL2NsYXNzZXMvYnViYmxlLXRvb2xib3gnO1xuaW1wb3J0IHsgVG9wYmFyVG9vbGJveFByb3h5IH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy90b3BiYXItdG9vbGJveCc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1thc2tSaWNodGV4dFRvb2xib3hdJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgbXVsdGk6IHRydWUsXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFJpY2h0ZXh0VG9vbGJveERpcmVjdGl2ZSksXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgUmljaHRleHRUb29sYm94RGlyZWN0aXZlXG4gIGltcGxlbWVudHMgT25DaGFuZ2VzLCBDb250cm9sVmFsdWVBY2Nlc3Nvclxue1xuICBwcml2YXRlIHRvb2xib3g/OiBUb29sYm94O1xuXG4gIHByaXZhdGUgb25DaGFuZ2UhOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZDtcbiAgcHJpdmF0ZSBvblRvdWNoZWQhOiAoKSA9PiB2b2lkO1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSB0ZXh0ID0gJyc7XG5cbiAgQElucHV0KCkgcnRQbGFjZWhvbGRlciA9ICcnO1xuICBASW5wdXQoKSBydFRvb2xzOiBUb29sS2V5cyA9IFtdO1xuICBASW5wdXQoKSBydERpc2FibGVkVG9vbHM6IFRvb2xLZXlzID0gW107XG4gIEBJbnB1dCgpIHJ0VHlwZTogVG9vbExheW91dCA9ICd0b3BiYXInO1xuICBASW5wdXQoKSBydFRvb2xiYXJPbmx5ID0gZmFsc2U7XG4gIEBJbnB1dCgpIG1heGxlbmd0aDogbnVtYmVyID0gLTE7XG4gIEBJbnB1dCgpIHJ0VG9vbGJhckNsYXNzID0gJyc7XG4gIEBJbnB1dCgpIHJ0RWRpdG9yQ2xhc3MgPSAnJztcbiAgQElucHV0KCkgcnRCcmVha09uRW50ZXIgPSBmYWxzZTtcblxuICBAT3V0cHV0KCkgaW5wdXRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIGlucHV0RW50ZXIgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBpbnB1dEVzY2FwZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGlucHV0Rm9jdXMgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSB0b29sQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxUb29sc1N0YXRlPigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yKSB7fVxuXG4gIG5nT25DaGFuZ2VzKHNwOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKHNwWydydFR5cGUnXSkge1xuICAgICAgdGhpcy5wcmVwYXJlVG9vbGJhcigpO1xuICAgIH1cblxuICAgIGlmIChzcFsncnRQbGFjZWhvbGRlciddKSB7XG4gICAgICB0aGlzLnRvb2xib3g/LnJpY2h0ZXh0V3JhcHBlci5zZXRQbGFjZWhvbGRlcih0aGlzLnJ0UGxhY2Vob2xkZXIpO1xuICAgIH1cbiAgICBpZiAoc3BbJ3J0VG9vbGJhck9ubHknXSkge1xuICAgICAgdGhpcy50b29sYm94Py50b2dnbGVJbnB1dERpc3BsYXkoIXRoaXMucnRUb29sYmFyT25seSlcbiAgICB9XG5cbiAgICBpZihzcFsnbWF4bGVuZ3RoJ10pe1xuICAgICAgdGhpcy50b29sYm94Py5yaWNodGV4dFdyYXBwZXIuc2V0TWF4TGVuZ3RoKHRoaXMubWF4bGVuZ3RoKTtcbiAgICB9XG5cbiAgICBpZiAoc3BbJ3J0RGlzYWJsZWRUb29scyddIHx8IHNwWydydFRvb2xzJ10gfHwgc3BbJ3J0VG9vbGJhckNsYXNzJ10pIHtcbiAgICAgIHRoaXMudG9vbGJveD8uc2V0VG9vbElucHV0KHtcbiAgICAgICAgYXZhaWxhYmxlVG9vbHM6IHRoaXMucnRUb29scyxcbiAgICAgICAgZGlzYWJsZWRUb29sczogdGhpcy5ydERpc2FibGVkVG9vbHMsXG4gICAgICAgIGNsYXNzOiB0aGlzLnJ0VG9vbGJhckNsYXNzLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICBpZihzcFsncnRFZGl0b3JDbGFzcyddKXtcbiAgICAgIHRoaXMudG9vbGJveD8ucmljaHRleHRXcmFwcGVyLnNldEVkaXRvckNsYXNzKHRoaXMucnRFZGl0b3JDbGFzcyk7XG4gICAgfVxuXG4gICAgaWYoc3BbJ3J0QnJlYWtPbkVudGVyJ10pe1xuICAgICAgdGhpcy50b29sYm94Py5yaWNodGV4dFdyYXBwZXIuc2V0QnJlYWtPbkVudGVyKHRoaXMucnRCcmVha09uRW50ZXIpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZGVzdHJveUFsbCgpO1xuICB9XG5cbiAgZm9jdXMoKSB7XG4gICAgdGhpcy50b29sYm94Py5yaWNodGV4dFdyYXBwZXIuZm9jdXMoKTtcbiAgfVxuXG4gIC8vQ1ZBXG5cbiAgd3JpdGVWYWx1ZSh0ZXh0OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnRleHQgPSB0ZXh0O1xuICAgIHRoaXMudG9vbGJveD8ucmljaHRleHRXcmFwcGVyLnNldFRleHQodGV4dCk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmIChpc0Rpc2FibGVkKSB0aGlzLnRvb2xib3g/LnJpY2h0ZXh0V3JhcHBlci5kaXNhYmxlKCk7XG4gICAgZWxzZSB0aGlzLnRvb2xib3g/LnJpY2h0ZXh0V3JhcHBlci5lbmFibGUoKTtcbiAgfVxuXG5cbiAgcHJpdmF0ZSBwcmVwYXJlVG9vbGJhcigpe1xuICAgIGlmICh0aGlzLnRvb2xib3gpIHRoaXMuZGVzdHJveUFsbCgpO1xuXG4gICAgdGhpcy50b29sYm94ID0gdGhpcy5nZW5lcmF0ZVRvb2xib3hMYXlvdXQodGhpcy5ydFR5cGUpO1xuICAgIHRoaXMucHJlcGFyZUxpc3RlbmVycyh0aGlzLnRvb2xib3gpO1xuICB9XG5cbiAgcHJpdmF0ZSBwcmVwYXJlTGlzdGVuZXJzKHRvb2xib3g6IFRvb2xib3gpIHtcbiAgICBpZih0aGlzLnN1YnNjcmlwdGlvbikgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQodG9vbGJveC5yaWNodGV4dFdyYXBwZXIubGlzdGVuVGV4dENoYW5nZXMkXG4gICAgLnBpcGUoZmlsdGVyKCh2KT0+diAhPT0gdGhpcy50ZXh0KSlcbiAgICAuc3Vic2NyaWJlKCh2KT0+e3RoaXMudXBkYXRlKHYpfSkpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZCh0b29sYm94LnJpY2h0ZXh0V3JhcHBlci5saXN0ZW5PblRvdWNoZWQkLnN1YnNjcmliZSgodG91Y2hlZCk9PntcbiAgICAgIHRoaXMub25Ub3VjaGVkKClcbiAgICAgIHRoaXMuaW5wdXRGb2N1cy5lbWl0KHRvdWNoZWQpO1xuICAgIH0pKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQodG9vbGJveC5yaWNodGV4dFdyYXBwZXIubGlzdGVuRW50ZXIkLnN1YnNjcmliZSgoKT0+e3RoaXMuaW5wdXRFbnRlci5lbWl0KCl9KSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKHRvb2xib3gucmljaHRleHRXcmFwcGVyLmxpc3RlbkVzY2FwZSQuc3Vic2NyaWJlKCgpPT57dGhpcy5pbnB1dEVzY2FwZS5lbWl0KCl9KSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKHRvb2xib3gucmljaHRleHRXcmFwcGVyLnN0YXRlJFxuICAgICAgLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKGEsIGIpID0+IGFyZU9iamVjdHNFcXVhbChhLCBiKSkpXG4gICAgICAuc3Vic2NyaWJlKChzdGF0ZSk9Pnt0aGlzLnRvb2xDaGFuZ2UuZW1pdChzdGF0ZSl9KSlcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlKHZhbHVlOiBzdHJpbmcpe1xuICAgIHRoaXMuaW5wdXRDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIGRlc3Ryb3lBbGwoKSB7XG4gICAgdGhpcy50b29sYm94Py5kZXN0cm95QWxsKCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIGdlbmVyYXRlVG9vbGJveExheW91dCh0eXBlOiBUb29sTGF5b3V0KSB7XG4gICAgY29uc3QgdG9vbGJveCA9IHRoaXMuZ2V0VG9vbGJveCh0eXBlKTtcbiAgICB0b29sYm94LnJpY2h0ZXh0V3JhcHBlci5zZXRQbGFjZWhvbGRlcih0aGlzLnJ0UGxhY2Vob2xkZXIpO1xuICAgIHRvb2xib3guc2V0VG9vbElucHV0KHtcbiAgICAgIGF2YWlsYWJsZVRvb2xzOiB0aGlzLnJ0VG9vbHMsXG4gICAgICBkaXNhYmxlZFRvb2xzOiB0aGlzLnJ0RGlzYWJsZWRUb29scyxcbiAgICAgIGNsYXNzOiB0aGlzLnJ0VG9vbGJhckNsYXNzLFxuICAgIH0pXG4gICAgdG9vbGJveC50b2dnbGVJbnB1dERpc3BsYXkoIXRoaXMucnRUb29sYmFyT25seSlcbiAgICB0b29sYm94LnJpY2h0ZXh0V3JhcHBlci5zZXRNYXhMZW5ndGgodGhpcy5tYXhsZW5ndGgpO1xuICAgIHRvb2xib3gucmljaHRleHRXcmFwcGVyLnNldEVkaXRvckNsYXNzKHRoaXMucnRFZGl0b3JDbGFzcyk7XG4gICAgcmV0dXJuIHRvb2xib3g7XG4gIH1cblxuICBwcml2YXRlIGdldFRvb2xib3godHlwZTogVG9vbExheW91dCl7XG4gICAgc3dpdGNoKHR5cGUpe1xuICAgICAgY2FzZSAnYnViYmxlJzpcbiAgICAgICAgcmV0dXJuIG5ldyBCdWJibGVUb29sYm94UHJveHkuQnViYmxlVG9vbGJveCh0aGlzLmluamVjdG9yKTtcbiAgICAgIGNhc2UgJ3RvcGJhcic6XG4gICAgICAgIHJldHVybiBuZXcgVG9wYmFyVG9vbGJveFByb3h5LlRvcGJhclRvb2xib3godGhpcy5pbmplY3Rvcik7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -0,0 +1,16 @@
1
+ import { parsePhoneNumber } from "libphonenumber-js";
2
+ export function getCountryFromPhone(phone) {
3
+ if (!phone)
4
+ return;
5
+ const onlyNumbers = phone.replace(/[^\d+]/g, '').replace(/\D/g, '');
6
+ try {
7
+ const phoneLocation = parsePhoneNumber(`+${onlyNumbers}`);
8
+ if (phoneLocation && phoneLocation.country)
9
+ return phoneLocation.country;
10
+ }
11
+ catch (e) {
12
+ return 'BR';
13
+ }
14
+ return 'BR';
15
+ }
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXNrc3VpdGUtY2l0cnVzL3NyYy9saWIvaGVscGVycy9waG9uZS5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFFbkQsTUFBTSxVQUFVLG1CQUFtQixDQUFDLEtBQWE7SUFDL0MsSUFBSSxDQUFDLEtBQUs7UUFBRSxPQUFPO0lBQ25CLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFcEUsSUFBSTtRQUNGLE1BQU0sYUFBYSxHQUFHLGdCQUFnQixDQUFDLElBQUksV0FBVyxFQUFFLENBQUMsQ0FBQztRQUUxRCxJQUFJLGFBQWEsSUFBSSxhQUFhLENBQUMsT0FBTztZQUN4QyxPQUFPLGFBQWEsQ0FBQyxPQUFpQixDQUFDO0tBQzFDO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixPQUFPLElBQUksQ0FBQztLQUNiO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtwYXJzZVBob25lTnVtYmVyfSBmcm9tIFwibGlicGhvbmVudW1iZXItanNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldENvdW50cnlGcm9tUGhvbmUocGhvbmU6IHN0cmluZykge1xuICBpZiAoIXBob25lKSByZXR1cm47XG4gIGNvbnN0IG9ubHlOdW1iZXJzID0gcGhvbmUucmVwbGFjZSgvW15cXGQrXS9nLCAnJykucmVwbGFjZSgvXFxEL2csICcnKTtcblxuICB0cnkge1xuICAgIGNvbnN0IHBob25lTG9jYXRpb24gPSBwYXJzZVBob25lTnVtYmVyKGArJHtvbmx5TnVtYmVyc31gKTtcblxuICAgIGlmIChwaG9uZUxvY2F0aW9uICYmIHBob25lTG9jYXRpb24uY291bnRyeSlcbiAgICAgIHJldHVybiBwaG9uZUxvY2F0aW9uLmNvdW50cnkgYXMgc3RyaW5nO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuICdCUic7XG4gIH1cbiAgcmV0dXJuICdCUic7XG59XG4iXX0=
@@ -8,7 +8,7 @@ import * as i2 from '@angular/forms';
8
8
  import { NG_VALUE_ACCESSOR, FormControl, Validators, FormsModule, ReactiveFormsModule } from '@angular/forms';
9
9
  import * as i3 from 'ngx-mask';
10
10
  import { NgxMaskDirective, NgxMaskPipe, provideNgxMask } from 'ngx-mask';
11
- import { debounceTime, tap, map, fromEvent, BehaviorSubject, Subject, filter, delay, Subscription, distinctUntilChanged, of } from 'rxjs';
11
+ import { debounceTime, tap, map, fromEvent, filter, BehaviorSubject, Subject, delay, Subscription, distinctUntilChanged, of } from 'rxjs';
12
12
  import { TemplatePortal, ComponentPortal } from '@angular/cdk/portal';
13
13
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
14
14
  import * as i1$2 from '@angular/cdk/overlay';
@@ -21,6 +21,7 @@ import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader';
21
21
  import Quill from 'quill';
22
22
  import * as _ from 'lodash';
23
23
  import * as i1$4 from '@angular/common/http';
24
+ import { parsePhoneNumber } from 'libphonenumber-js';
24
25
  import * as i1$5 from '@angular/material/progress-bar';
25
26
  import { MatProgressBarModule } from '@angular/material/progress-bar';
26
27
 
@@ -1844,8 +1845,7 @@ class RichtextWrapper {
1844
1845
  .pipe(map(() => this.quill.root.innerHTML));
1845
1846
  }
1846
1847
  get listenOnTouched$() {
1847
- return fromEvent(this.quill, 'selection-change')
1848
- .pipe(map(() => !this.quill.getSelection(false)));
1848
+ return fromEvent(this.quill, 'selection-change').pipe(filter(() => Boolean(this.quill.getSelection(false))), map(() => null));
1849
1849
  }
1850
1850
  get listenEscape$() {
1851
1851
  return this.esc$.asObservable();
@@ -2525,6 +2525,7 @@ class RichtextToolboxDirective {
2525
2525
  this.inputChange = new EventEmitter();
2526
2526
  this.inputEnter = new EventEmitter();
2527
2527
  this.inputEscape = new EventEmitter();
2528
+ this.inputFocus = new EventEmitter();
2528
2529
  this.toolChange = new EventEmitter();
2529
2530
  }
2530
2531
  ngOnChanges(sp) {
@@ -2590,7 +2591,10 @@ class RichtextToolboxDirective {
2590
2591
  this.subscription.add(toolbox.richtextWrapper.listenTextChanges$
2591
2592
  .pipe(filter((v) => v !== this.text))
2592
2593
  .subscribe((v) => { this.update(v); }));
2593
- this.subscription.add(toolbox.richtextWrapper.listenOnTouched$.subscribe(() => { this.onTouched(); }));
2594
+ this.subscription.add(toolbox.richtextWrapper.listenOnTouched$.subscribe((touched) => {
2595
+ this.onTouched();
2596
+ this.inputFocus.emit(touched);
2597
+ }));
2594
2598
  this.subscription.add(toolbox.richtextWrapper.listenEnter$.subscribe(() => { this.inputEnter.emit(); }));
2595
2599
  this.subscription.add(toolbox.richtextWrapper.listenEscape$.subscribe(() => { this.inputEscape.emit(); }));
2596
2600
  this.subscription.add(toolbox.richtextWrapper.state$
@@ -2627,7 +2631,7 @@ class RichtextToolboxDirective {
2627
2631
  }
2628
2632
  }
2629
2633
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: RichtextToolboxDirective, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive }); }
2630
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.6", type: RichtextToolboxDirective, selector: "[askRichtextToolbox]", inputs: { rtPlaceholder: "rtPlaceholder", rtTools: "rtTools", rtDisabledTools: "rtDisabledTools", rtType: "rtType", rtToolbarOnly: "rtToolbarOnly", maxlength: "maxlength", rtToolbarClass: "rtToolbarClass", rtEditorClass: "rtEditorClass", rtBreakOnEnter: "rtBreakOnEnter" }, outputs: { inputChange: "inputChange", inputEnter: "inputEnter", inputEscape: "inputEscape", toolChange: "toolChange" }, providers: [
2634
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.6", type: RichtextToolboxDirective, selector: "[askRichtextToolbox]", inputs: { rtPlaceholder: "rtPlaceholder", rtTools: "rtTools", rtDisabledTools: "rtDisabledTools", rtType: "rtType", rtToolbarOnly: "rtToolbarOnly", maxlength: "maxlength", rtToolbarClass: "rtToolbarClass", rtEditorClass: "rtEditorClass", rtBreakOnEnter: "rtBreakOnEnter" }, outputs: { inputChange: "inputChange", inputEnter: "inputEnter", inputEscape: "inputEscape", inputFocus: "inputFocus", toolChange: "toolChange" }, providers: [
2631
2635
  {
2632
2636
  multi: true,
2633
2637
  provide: NG_VALUE_ACCESSOR,
@@ -2671,6 +2675,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
2671
2675
  type: Output
2672
2676
  }], inputEscape: [{
2673
2677
  type: Output
2678
+ }], inputFocus: [{
2679
+ type: Output
2674
2680
  }], toolChange: [{
2675
2681
  type: Output
2676
2682
  }] } });
@@ -3136,6 +3142,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
3136
3142
  const DIGIT_REGEX = /\d/g;
3137
3143
  const NON_DIGIT_REGEX = /\D+/g;
3138
3144
 
3145
+ function getCountryFromPhone(phone) {
3146
+ if (!phone)
3147
+ return;
3148
+ const onlyNumbers = phone.replace(/[^\d+]/g, '').replace(/\D/g, '');
3149
+ try {
3150
+ const phoneLocation = parsePhoneNumber(`+${onlyNumbers}`);
3151
+ if (phoneLocation && phoneLocation.country)
3152
+ return phoneLocation.country;
3153
+ }
3154
+ catch (e) {
3155
+ return 'BR';
3156
+ }
3157
+ return 'BR';
3158
+ }
3159
+
3139
3160
  const valueAccessor = {
3140
3161
  provide: NG_VALUE_ACCESSOR,
3141
3162
  multi: true,
@@ -3223,7 +3244,10 @@ class PhoneDdiComponent {
3223
3244
  writeValue(value) {
3224
3245
  this.value = value;
3225
3246
  this.inputControl.setValue(value);
3226
- this.valueChange.emit(this.value);
3247
+ const country = getCountryFromPhone(value);
3248
+ if (country) {
3249
+ this.selectedFlag = this.countryItems.find(item => item.countryCode === country);
3250
+ }
3227
3251
  }
3228
3252
  addAvailableFlags(data) {
3229
3253
  this.countryItems = data;