asksuite-citrus 1.15.1 → 1.15.2

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.
@@ -43,6 +43,27 @@ export class RichtextWrapper {
43
43
  this.enter$ = new Subject();
44
44
  this.maxLength = -1;
45
45
  this.breakOnEnter = false;
46
+ this.quillFormats = [
47
+ 'background',
48
+ 'bold',
49
+ 'color',
50
+ 'font',
51
+ 'code',
52
+ 'italic',
53
+ 'link',
54
+ 'size',
55
+ 'strike',
56
+ 'script',
57
+ 'underline',
58
+ 'blockquote',
59
+ 'header',
60
+ 'indent',
61
+ 'list',
62
+ 'align',
63
+ 'direction',
64
+ 'code-block',
65
+ 'formula'
66
+ ];
46
67
  this.textChangeHandler = () => {
47
68
  this.update();
48
69
  };
@@ -94,6 +115,7 @@ export class RichtextWrapper {
94
115
  },
95
116
  keyboard: { bindings: this.bindings },
96
117
  },
118
+ formats: this.quillFormats
97
119
  });
98
120
  this.listenEditorChanges();
99
121
  }
@@ -303,4 +325,4 @@ export const QuillProxy = {
303
325
  export const RichtextWrapperProxy = {
304
326
  RichtextWrapper
305
327
  };
306
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmljaHRleHQtd3JhcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fza3N1aXRlLWNpdHJ1cy9zcmMvbGliL2NsYXNzZXMvcmljaHRleHQtd3JhcHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQXdGLE1BQU0sT0FBTyxDQUFDO0FBQzdHLE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFnQixNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQVF0RixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFNUQsTUFBTSxPQUFPLGVBQWU7SUF5RTFCLElBQVcsS0FBSztRQUNaLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUE7SUFDOUIsQ0FBQztJQUlELElBQVcsa0JBQWtCO1FBQzNCLE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsYUFBYSxDQUFDO2FBQ3hDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsSUFBVyxnQkFBZ0I7UUFDekIsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxrQkFBa0IsQ0FBQyxDQUFDLElBQUksQ0FDbkQsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQ3JELEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FDaEIsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFXLGFBQWE7UUFDdEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFBO0lBQ2pDLENBQUM7SUFFRCxJQUFX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IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIEVsZW1lbnRSZWYsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IFF1aWxsLCB7IEJvdW5kc1N0YXRpYywgUmFuZ2VTdGF0aWMsIFNlbGVjdGlvbkNoYW5nZUhhbmRsZXIsIFNvdXJjZXMsIFRleHRDaGFuZ2VIYW5kbGVyIH0gZnJvbSAncXVpbGwnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIGZpbHRlciwgZnJvbUV2ZW50LCBtYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIFJpY2hUZXh0RnVuY3Rpb25zLFxuICBSaWNodGV4dEZvcm1hdHMsXG4gIFRvb2wsXG4gIFRvb2xLZXlzLFxuICBUb29sc1N0YXRlLFxufSBmcm9tICcuLi9pbnRlcmZhY2VzL3JpY2h0ZXh0LXRvb2xib3guaW50ZXJmYWNlJztcbmltcG9ydCB7IFVSTF9SRUdFWCB9IGZyb20gJy4uL2NvbnN0YW50cy91cmwtcmVnZXguY29uc3RhbnQnO1xuXG5leHBvcnQgY2xhc3MgUmljaHRleHRXcmFwcGVyIGltcGxlbWVudHMgUmljaFRleHRGdW5jdGlvbnMge1xuICBwcml2YXRlIHF1aWxsITogUXVpbGw7XG4gIHByaXZhdGUgc3RhdGVTdWIgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRvb2xzU3RhdGU+KHtcbiAgICBoYXNTZWxlY3Rpb246IGZhbHNlLFxuICAgIGhhc0ZvY3VzOiBmYWxzZSxcbiAgICBmb3JtYXRzOiB7XG4gICAgICBpdGFsaWM6IGZhbHNlLFxuICAgICAgYm9sZDogZmFsc2UsXG4gICAgICB1bmRlcmxpbmU6IGZhbHNlLFxuICAgICAgc3RyaWtlOiBmYWxzZSxcbiAgICAgIGxpbms6ICcnLFxuICAgICAgbGlzdF9idWxsZXRlZDogZmFsc2UsXG4gICAgICBsaXN0X251bWJlcmVkOiBmYWxzZSxcbiAgICAgIGp1c3RpZnlfbGVmdDogZmFsc2UsXG4gICAgICBqdXN0aWZ5X2NlbnRlcjogZmFsc2UsXG4gICAgICBqdXN0aWZ5X3JpZ2h0OiBmYWxzZSxcbiAgICB9LFxuICAgIGRpc2FibGVkVG9vbHM6IFtdXG4gIH0pO1xuICBwcml2YXRlIGVzYyQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBwcml2YXRlIGVudGVyJCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIHByaXZhdGUgbWF4TGVuZ3RoID0gLTE7XG4gIHByaXZhdGUgYnJlYWtPbkVudGVyID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSB0ZXh0Q2hhbmdlSGFuZGxlcjogVGV4dENoYW5nZUhhbmRsZXIgPSAoKSA9PiB7XG4gICAgdGhpcy51cGRhdGUoKTtcbiAgfTtcblxuICBwcml2YXRlIHNlbGVjdGlvbkNoYW5nZUhhbmRsZXI6IFNlbGVjdGlvbkNoYW5nZUhhbmRsZXIgPSAoXG4gICAgdmFsdWU6IFJhbmdlU3RhdGljLFxuICAgIG9sZFJhbmdlOiBSYW5nZVN0YXRpYyxcbiAgICBzb3VyY2U6IFNvdXJjZXNcbiAgKSA9PiB7XG4gICAgdGhpcy51cGRhdGUoKTtcbiAgfTtcblxuICBwcml2YXRlIGJpbmRpbmdzID0ge1xuICAgIGJvbGQ6IHtcbiAgICAgIGhhbmRsZXI6ICgpID0+IHtcbiAgICAgICAgdGhpcy5zZXRCb2xkKCk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH0sXG4gICAgfSxcbiAgICBpdGFsaWM6IHtcbiAgICAgIGhhbmRsZXI6ICgpID0+IHtcbiAgICAgICAgdGhpcy5zZXRJdGFsaWMoKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfSxcbiAgICB9LFxuICAgIHVuZGVybGluZToge1xuICAgICAgaGFuZGxlcjogKCkgPT4ge1xuICAgICAgICB0aGlzLnNldFVuZGVybGluZSgpO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9LFxuICAgIH0sXG4gICAgZXNjYXBlOntcbiAgICAgIGtleTogJ2VzY2FwZScsXG4gICAgICBoYW5kbGVyOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuZXNjJC5uZXh0KHRydWUpO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfSxcbiAgICBlbnRlcjoge1xuICAgICAga2V5OiAnZW50ZXInLFxuICAgICAgaGFuZGxlcjogKCkgPT4ge1xuICAgICAgICB0aGlzLmVudGVyJC5uZXh0KHRydWUpO1xuICAgICAgICByZXR1cm4gdGhpcy5icmVha09uRW50ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gIH07XG4gIHByaXZhdGUgbWF4TGVuZ3RoU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuXG4gIHB1YmxpYyBnZXQgc3RhdGUoKXtcbiAgICAgIHJldHVybiB0aGlzLnN0YXRlU3ViLnZhbHVlXG4gIH1cbiAgXG4gIHB1YmxpYyBzdGF0ZSQgPSB0aGlzLnN0YXRlU3ViLmFzT2JzZXJ2YWJsZSgpO1xuICAgIFxuICBwdWJsaWMgZ2V0IGxpc3RlblRleHRDaGFuZ2VzJCgpe1xuICAgIHJldHVybiBmcm9tRXZlbnQodGhpcy5xdWlsbCwgJ3RleHQtY2hhbmdlJylcbiAgICAgIC5waXBlKG1hcCgoKSA9PiB0aGlzLnF1aWxsLnJvb3QuaW5uZXJIVE1MKSk7IFxuICB9XG5cbiAgcHVibGljIGdldCBsaXN0ZW5PblRvdWNoZWQkKCkge1xuICAgIHJldHVybiBmcm9tRXZlbnQodGhpcy5xdWlsbCwgJ3NlbGVjdGlvbi1jaGFuZ2UnKS5waXBlKFxuICAgICAgZmlsdGVyKCgpID0+IEJvb2xlYW4odGhpcy5xdWlsbC5nZXRTZWxlY3Rpb24oZmFsc2UpKSksXG4gICAgICBtYXAoKCkgPT4gbnVsbClcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCBsaXN0ZW5Fc2NhcGUkKCl7XG4gICAgcmV0dXJuIHRoaXMuZXNjJC5hc09ic2VydmFibGUoKVxuICB9XG5cbiAgcHVibGljIGdldCBsaXN0ZW5FbnRlciQoKXtcbiAgICByZXR1cm4gdGhpcy5lbnRlciQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxuICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICkge1xuICAgIGNvbnN0IGVkaXRvcklkID0gYGVkaXRvci0ke25ldyBEYXRlKCkuZ2V0VGltZSgpfWA7XG4gICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCdpZCcsIGVkaXRvcklkKTtcbiAgICB0aGlzLnF1aWxsID0gbmV3IFF1aWxsUHJveHkuUXVpbGwoYCMke2VkaXRvcklkfWAsIHtcbiAgICAgIHBsYWNlaG9sZGVyOiAnJyxcbiAgICAgIG1vZHVsZXM6IHtcbiAgICAgICAgY2xpcGJvYXJkOiB7XG4gICAgICAgICAgbWF0Y2hlcnM6IFtbTm9kZS5URVhUX05PREUsIHRoaXMudXJsTWF0Y2hlci5iaW5kKHRoaXMpXV0sXG4gICAgICAgIH0sXG4gICAgICAgIGtleWJvYXJkOiB7IGJpbmRpbmdzOiB0aGlzLmJpbmRpbmdzIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHRoaXMubGlzdGVuRWRpdG9yQ2hhbmdlcygpO1xuICB9XG5cbiAgcHVibGljIHNldEl0YWxpYygpIHtcbiAgICBpZih0aGlzLmlzVG9vbERpc2FibGVkKCdpdGFsaWMnKSkgcmV0dXJuO1xuICAgIHRoaXMucXVpbGwuZm9ybWF0KCdpdGFsaWMnLCAhdGhpcy5zdGF0ZS5mb3JtYXRzLml0YWxpYyk7XG4gICAgdGhpcy51cGRhdGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRCb2xkKCkge1xuICAgIGlmKHRoaXMuaXNUb29sRGlzYWJsZWQoJ2JvbGQnKSkgcmV0dXJuXG4gICAgdGhpcy5xdWlsbC5mb3JtYXQoJ2JvbGQnLCAhdGhpcy5zdGF0ZS5mb3JtYXRzLmJvbGQpO1xuICAgIHRoaXMudXBkYXRlKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0VW5kZXJsaW5lKCkge1xuICAgIGlmKHRoaXMuaXNUb29sRGlzYWJsZWQoJ3VuZGVybGluZScpKSByZXR1cm47XG4gICAgdGhpcy5xdWlsbC5mb3JtYXQoJ3VuZGVybGluZScsICF0aGlzLnN0YXRlLmZvcm1hdHMudW5kZXJsaW5lKTtcbiAgICB0aGlzLnVwZGF0ZSgpO1xuICB9XG5cbiAgcHVibGljIHNldFN0cmlrZSgpIHtcbiAgICBpZih0aGlzLmlzVG9vbERpc2FibGVkKCdzdHJpa2UnKSkgcmV0dXJuO1xuICAgIHRoaXMucXVpbGwuZm9ybWF0KCdzdHJpa2UnLCAhdGhpcy5zdGF0ZS5mb3JtYXRzLnN0cmlrZSk7XG4gICAgdGhpcy51cGRhdGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRMaXN0TnVtYmVyZWQoKSB7XG4gICAgaWYodGhpcy5pc1Rvb2xEaXNhYmxlZCgnbGlzdF9udW1iZXJlZCcpKSByZXR1cm47XG4gICAgaWYgKHRoaXMuc3RhdGUuZm9ybWF0cy5saXN0X251bWJlcmVkKVxuICAgICAgdGhpcy5xdWlsbC5mb3JtYXQoJ2xpc3QnLCBudWxsKTtcbiAgICBlbHNlICBcbiAgICAgIHRoaXMucXVpbGwuZm9ybWF0KCdsaXN0JywgJ29yZGVyZWQnKTtcbiAgICB0aGlzLnVwZGF0ZSgpO1xuICB9XG5cbiAgcHVibGljIHNldExpc3RCdWxsZXRlZCgpIHtcbiAgICBpZih0aGlzLmlzVG9vbERpc2FibGVkKCdsaXN0X2J1bGxldGVkJykpIHJldHVybjtcbiAgICBpZiAodGhpcy5zdGF0ZS5mb3JtYXRzLmxpc3RfYnVsbGV0ZWQpXG4gICAgICB0aGlzLnF1aWxsLmZvcm1hdCgnbGlzdCcsIG51bGwpO1xuICAgIGVsc2UgIFxuICAgICAgdGhpcy5xdWlsbC5mb3JtYXQoJ2xpc3QnLCAnYnVsbGV0ZWQnKTtcbiAgICB0aGlzLnVwZGF0ZSgpO1xuICB9XG5cbiAgcHVibGljIHNldExpbmsobGluazogc3RyaW5nKSB7XG4gICAgaWYodGhpcy5pc1Rvb2xEaXNhYmxlZCgnbGluaycpKSByZXR1cm47XG5cbiAgICBjb25zdCByYW5nZSA9IHRoaXMucXVpbGwuZ2V0U2VsZWN0aW9uKHRydWUpO1xuXG4gICAgaWYgKHJhbmdlICYmICFyYW5nZS5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IFt0ZXh0QmxvYXQsIG9mZnNldF0gPSB0aGlzLnF1aWxsLmdldExlYWYocmFuZ2UhLmluZGV4KTtcblxuICAgICAgY29uc3Qgc3RhcnQgPSByYW5nZSEuaW5kZXggLSBvZmZzZXQ7XG4gICAgICBjb25zdCBsZW5ndGggPSB0ZXh0QmxvYXQubGVuZ3RoKCk7XG5cbiAgICAgIHRoaXMucXVpbGwuZm9ybWF0VGV4dChzdGFydCwgbGVuZ3RoLCAnbGluaycsIGxpbmspO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnF1aWxsLmZvcm1hdCgnbGluaycsIGxpbmspO1xuICAgIH1cblxuICAgIHRoaXMudXBkYXRlKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0SnVzdGlmeUxlZnQoKSB7XG4gICAgaWYodGhpcy5pc1Rvb2xEaXNhYmxlZCgnanVzdGlmeV9sZWZ0JykpIHJldHVybjtcbiAgICB0aGlzLnF1aWxsLmZvcm1hdCgnYWxpZ24nLCBudWxsKTtcbiAgICB0aGlzLnVwZGF0ZSgpO1xuICB9XG5cbiAgcHVibGljIHNldEp1c3RpZnlDZW50ZXIoKSB7XG4gICAgaWYodGhpcy5pc1Rvb2xEaXNhYmxlZCgnanVzdGlmeV9jZW50ZXInKSkgcmV0dXJuO1xuICAgIHRoaXMucXVpbGwuZm9ybWF0KCdhbGlnbicsICdjZW50ZXInKTtcbiAgICB0aGlzLnVwZGF0ZSgpO1xuICB9XG5cbiAgcHVibGljIHNldEp1c3RpZnlSaWdodCgpIHtcbiAgICBpZih0aGlzLmlzVG9vbERpc2FibGVkKCdqdXN0aWZ5X3JpZ2h0JykpIHJldHVybjtcbiAgICB0aGlzLnF1aWxsLmZvcm1hdCgnYWxpZ24nLCAncmlnaHQnKTtcbiAgICB0aGlzLnVwZGF0ZSgpO1xuICB9XG5cbiAgcHVibGljIHNldFJlbW92ZSgpIHtcbiAgICBjb25zdCBzZWxlY3Rpb24gPSB0aGlzLnF1aWxsLmdldFNlbGVjdGlvbigpO1xuICAgIGlmIChzZWxlY3Rpb24pIHRoaXMucXVpbGwucmVtb3ZlRm9ybWF0KHNlbGVjdGlvbiEuaW5kZXgsIHNlbGVjdGlvbiEubGVuZ3RoKTtcbiAgICB0aGlzLnVwZGF0ZSgpO1xuICB9XG5cbiAgcHVibGljIHNldFBsYWNlaG9sZGVyKHBsYWNlaG9sZGVyOiBzdHJpbmcpe1xuICAgIHRoaXMucXVpbGwucm9vdC5kYXRhc2V0WydwbGFjZWhvbGRlciddID0gcGxhY2Vob2xkZXI7XG4gIH1cblxuICBwdWJsaWMgc2V0VGV4dCh0ZXh0OiBzdHJpbmcpe1xuICAgIHRoaXMucXVpbGwuc2V0Q29udGVudHModGhpcy5xdWlsbC5jbGlwYm9hcmQuY29udmVydCh0ZXh0KSwgJ3NpbGVudCcpO1xuICB9XG5cbiAgcHVibGljIHNldE1heExlbmd0aChsZW5ndGg6IG51bWJlcil7XG4gICAgdGhpcy5tYXhMZW5ndGggPSBsZW5ndGg7XG5cbiAgICB0aGlzLm1heExlbmd0aFN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICBpZih0aGlzLm1heExlbmd0aCA+IDApXG4gICAgICB0aGlzLm1heExlbmd0aFN1YnNjcmlwdGlvbiA9IFxuICAgICAgICBmcm9tRXZlbnQodGhpcy5xdWlsbCwgJ3RleHQtY2hhbmdlJylcbiAgICAgICAgLnBpcGUoZmlsdGVyKCgpID0+IHRoaXMucXVpbGwuZ2V0TGVuZ3RoKCkgPiB0aGlzLm1heExlbmd0aCkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMucXVpbGwuZGVsZXRlVGV4dCh0aGlzLm1heExlbmd0aCAtMSwgdGhpcy5xdWlsbC5nZXRMZW5ndGgoKSk7XG4gICAgICB9KVxuICB9XG5cbiAgcHVibGljIHNldERpc2FibGVkVG9vbHModG9vbHM6IFRvb2xLZXlzKXtcbiAgICBpZihKU09OLnN0cmluZ2lmeSh0b29scykgIT09IEpTT04uc3RyaW5naWZ5KHRoaXMuc3RhdGVTdWIudmFsdWUuZGlzYWJsZWRUb29scykpXG4gICAgICB0aGlzLnN0YXRlU3ViLm5leHQoey4uLnRoaXMuc3RhdGVTdWIudmFsdWUsIGRpc2FibGVkVG9vbHM6IHRvb2xzLCB9KVxuICB9XG5cbiAgcHVibGljIHNldEVkaXRvckNsYXNzKGNsYXNzTmFtZTogc3RyaW5nKXtcbiAgICBpZighY2xhc3NOYW1lKSByZXR1cm47XG4gICAgdGhpcy5xdWlsbC5yb290LmNsYXNzTGlzdC5hZGQoY2xhc3NOYW1lKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRFZGl0b3JFbGVtZW50KCl7XG4gICAgcmV0dXJuIHRoaXMucXVpbGwucm9vdDtcbiAgfVxuXG4gIHB1YmxpYyBnZXRUZXh0TGVuZ3RoKCl7XG4gICAgcmV0dXJuIHRoaXMucXVpbGwuZ2V0TGVuZ3RoKCk7XG4gIH1cblxuICBwdWJsaWMgZGlzYWJsZSgpe1xuICAgIHRoaXMucXVpbGwuZGlzYWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGVuYWJsZSgpe1xuICAgIHRoaXMucXVpbGwuZW5hYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZm9jdXMoKXtcbiAgICB0aGlzLnF1aWxsLmZvY3VzKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0QnJlYWtPbkVudGVyKGJyZWFrT25FbnRlcjogYm9vbGVhbil7XG4gICAgdGhpcy5icmVha09uRW50ZXIgPSBicmVha09uRW50ZXI7XG4gIH1cblxuICBwdWJsaWMgZGVzdHJveSgpIHtcbiAgICB0aGlzLnF1aWxsLm9mZignc2VsZWN0aW9uLWNoYW5nZScsIHRoaXMuc2VsZWN0aW9uQ2hhbmdlSGFuZGxlcik7XG4gICAgdGhpcy5xdWlsbC5vZmYoJ3RleHQtY2hhbmdlJywgdGhpcy50ZXh0Q2hhbmdlSGFuZGxlcik7XG4gICAgdGhpcy5lc2MkLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5lbnRlciQudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLnN0YXRlU3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5tYXhMZW5ndGhTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIGlzVG9vbERpc2FibGVkKHRvb2w6IFRvb2wpe1xuICAgIHJldHVybiB0aGlzLnN0YXRlU3ViLnZhbHVlLmRpc2FibGVkVG9vbHMuaW5jbHVkZXModG9vbClcbiAgfVxuXG4gIHByaXZhdGUgdXJsTWF0Y2hlcihub2RlOiBhbnksIGRlbHRhOiBhbnkpIHtcbiAgICBpZiAodHlwZW9mIG5vZGUuZGF0YSAhPT0gJ3N0cmluZycpIHJldHVybjtcbiAgICBjb25zdCBtYXRjaGVzID0gbm9kZS5kYXRhLm1hdGNoKFVSTF9SRUdFWCk7XG5cbiAgICBpZiAobWF0Y2hlcyAmJiBtYXRjaGVzLmxlbmd0aCA+IDApIHtcbiAgICAgIGxldCB0ZXh0ID0gJyc7XG4gICAgICBjb25zdCBzZWxlY3Rpb24gPSB0aGlzLnF1aWxsLmdldFNlbGVjdGlvbih0cnVlKTtcbiAgICAgIGlmIChzZWxlY3Rpb24ubGVuZ3RoKVxuICAgICAgICB0ZXh0ID0gdGhpcy5xdWlsbC5nZXRUZXh0KHNlbGVjdGlvbiEuaW5kZXgsIHNlbGVjdGlvbiEubGVuZ3RoKTtcblxuICAgICAgY29uc3Qgb3BzID0gW107XG4gICAgICBsZXQgc3RyID0gbm9kZS5kYXRhO1xuICAgICAgbWF0Y2hlcy5mb3JFYWNoKGZ1bmN0aW9uIChtYXRjaDogYW55KSB7XG4gICAgICAgIGNvbnN0IHNwbGl0ID0gc3RyLnNwbGl0KG1hdGNoKTtcbiAgICAgICAgY29uc3QgYmVmb3JlTGluayA9IHNwbGl0LnNoaWZ0KCk7XG4gICAgICAgIG9wcy5wdXNoKHsgaW5zZXJ0OiBiZWZvcmVMaW5rIH0pO1xuICAgICAgICBvcHMucHVzaCh7IGluc2VydDogdGV4dCB8fCBtYXRjaCwgYXR0cmlidXRlczogeyBsaW5rOiBtYXRjaCB9IH0pO1xuICAgICAgICBzdHIgPSBzcGxpdC5qb2luKG1hdGNoKTtcbiAgICAgIH0pO1xuICAgICAgb3BzLnB1c2goeyBpbnNlcnQ6IHN0ciB9KTtcbiAgICAgIGRlbHRhLm9wcyA9IG9wcztcbiAgICB9XG5cbiAgICByZXR1cm4gZGVsdGE7XG4gIH1cblxuICBwcml2YXRlIGxpc3RlbkVkaXRvckNoYW5nZXMoKSB7XG4gICAgdGhpcy5xdWlsbC5vbignc2VsZWN0aW9uLWNoYW5nZScsIHRoaXMuc2VsZWN0aW9uQ2hhbmdlSGFuZGxlcik7XG4gICAgdGhpcy5xdWlsbC5vbigndGV4dC1jaGFuZ2UnLCB0aGlzLnRleHRDaGFuZ2VIYW5kbGVyKTtcbiAgfVxuXG5cbiAgcHJpdmF0ZSB1cGRhdGUoKSB7XG4gICAgbGV0IGJvdW5kczogQm91bmRzU3RhdGljIHwgdW5kZWZpbmVkO1xuICAgIGxldCBmb3JtYXRzQXJyO1xuXG4gICAgY29uc3QgcmFuZ2UgPSB0aGlzLnF1aWxsLmdldFNlbGVjdGlvbihmYWxzZSk7XG4gICAgaWYgIChyYW5nZSl7IFxuICAgICAgYm91bmRzID0gdGhpcy5xdWlsbC5nZXRCb3VuZHMocmFuZ2UuaW5kZXgsIHJhbmdlLmxlbmd0aCk7XG4gICAgICBmb3JtYXRzQXJyID0gdGhpcy5xdWlsbC5nZXRGb3JtYXQocmFuZ2UpIGFzIGFueTtcbiAgICB9XG5cbiAgICBjb25zdCBmb3JtYXRzOiBSaWNodGV4dEZvcm1hdHMgPSB7XG4gICAgICBpdGFsaWM6IGZvcm1hdHNBcnI/Lml0YWxpYyB8fCBmYWxzZSxcbiAgICAgIGJvbGQ6IGZvcm1hdHNBcnI/LmJvbGQgfHwgZmFsc2UsXG4gICAgICB1bmRlcmxpbmU6IGZvcm1hdHNBcnI/LnVuZGVybGluZSB8fCBmYWxzZSxcbiAgICAgIHN0cmlrZTogZm9ybWF0c0Fycj8uc3RyaWtlIHx8IGZhbHNlLFxuICAgICAgbGluazogZm9ybWF0c0Fycj8ubGluayB8fCAnJyxcbiAgICAgIGxpc3RfYnVsbGV0ZWQ6IGZvcm1hdHNBcnI/Lmxpc3QgPT09ICdidWxsZXQnLFxuICAgICAgbGlzdF9udW1iZXJlZDogZm9ybWF0c0Fycj8ubGlzdCA9PT0gJ29yZGVyZWQnLFxuICAgICAganVzdGlmeV9sZWZ0OiBmb3JtYXRzQXJyPy5hbGlnbiA9PT0gJ2xlZnQnLFxuICAgICAganVzdGlmeV9jZW50ZXI6IGZvcm1hdHNBcnI/LmFsaWduID09PSAnY2VudGVyJyxcbiAgICAgIGp1c3RpZnlfcmlnaHQ6IGZvcm1hdHNBcnI/LmFsaWduID09PSAncmlnaHQnLFxuICAgIH07XG5cbiAgICBjb25zdCBoYXNTZWxlY3Rpb24gPSAhIXJhbmdlPy5sZW5ndGg7XG4gICAgY29uc3QgaGFzRm9jdXMgPSAhIXJhbmdlO1xuXG4gICAgY29uc3QgbmV3U3RhdGU6IFRvb2xzU3RhdGUgPSB7IFxuICAgICAgLi4udGhpcy5zdGF0ZVN1Yi52YWx1ZSwgXG4gICAgICBoYXNTZWxlY3Rpb24sIFxuICAgICAgZm9ybWF0cywgXG4gICAgICBib3VuZHMsIFxuICAgICAgaGFzRm9jdXMgXG4gICAgfTtcblxuICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICB0aGlzLnN0YXRlU3ViLm5leHQobmV3U3RhdGUpO1xuICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICB9KVxuICB9XG59XG5cbi8vdG8gd29yayBhcm91bmQgdGVzdGluZyBwcm9ibGVtcyBcbmV4cG9ydCBjb25zdCBRdWlsbFByb3h5ID17XG4gIFF1aWxsXG59XG5cbi8vdG8gd29yayBhcm91bmQgdGVzdGluZyBwcm9ibGVtcyBcbmV4cG9ydCBjb25zdCBSaWNodGV4dFdyYXBwZXJQcm94eSA9IHtcbiAgUmljaHRleHRXcmFwcGVyXG59Il19
328
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmljaHRleHQtd3JhcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fza3N1aXRlLWNpdHJ1cy9zcmMvbGliL2NsYXNzZXMvcmljaHRleHQtd3JhcHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQXdGLE1BQU0sT0FBTyxDQUFDO0FBQzdHLE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFnQixNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQVF0RixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFNUQsTUFBTSxPQUFPLGVBQWU7SUE4RjFCLElBQVcsS0FBSztRQUNaLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUE7SUFDOUIsQ0FBQztJQUlELElBQVcsa0JBQWtCO1FBQzNCLE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsYUFBYSxDQUFDO2FBQ3hDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsSUFBVyxnQkFBZ0I7UUFDekIsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxrQkFBa0IsQ0FBQyxDQUFDLElBQUksQ0FDbkQsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQ3JELEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FDaEIsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFXLGFBQWE7UUFDdEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFBO0lBQ2pDLENBQUM7SUFFRCxJQUFX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QUFRLENBQUMsQ0FBQztZQUM3QixJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztDQUNGO0FBRUQsa0NBQWtDO0FBQ2xDLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRTtJQUN2QixLQUFLO0NBQ04sQ0FBQTtBQUVELGtDQUFrQztBQUNsQyxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRztJQUNsQyxlQUFlO0NBQ2hCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgRWxlbWVudFJlZiwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgUXVpbGwsIHsgQm91bmRzU3RhdGljLCBSYW5nZVN0YXRpYywgU2VsZWN0aW9uQ2hhbmdlSGFuZGxlciwgU291cmNlcywgVGV4dENoYW5nZUhhbmRsZXIgfSBmcm9tICdxdWlsbCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiwgZmlsdGVyLCBmcm9tRXZlbnQsIG1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgUmljaFRleHRGdW5jdGlvbnMsXG4gIFJpY2h0ZXh0Rm9ybWF0cyxcbiAgVG9vbCxcbiAgVG9vbEtleXMsXG4gIFRvb2xzU3RhdGUsXG59IGZyb20gJy4uL2ludGVyZmFjZXMvcmljaHRleHQtdG9vbGJveC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVVJMX1JFR0VYIH0gZnJvbSAnLi4vY29uc3RhbnRzL3VybC1yZWdleC5jb25zdGFudCc7XG5cbmV4cG9ydCBjbGFzcyBSaWNodGV4dFdyYXBwZXIgaW1wbGVtZW50cyBSaWNoVGV4dEZ1bmN0aW9ucyB7XG4gIHByaXZhdGUgcXVpbGwhOiBRdWlsbDtcbiAgcHJpdmF0ZSBzdGF0ZVN1YiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VG9vbHNTdGF0ZT4oe1xuICAgIGhhc1NlbGVjdGlvbjogZmFsc2UsXG4gICAgaGFzRm9jdXM6IGZhbHNlLFxuICAgIGZvcm1hdHM6IHtcbiAgICAgIGl0YWxpYzogZmFsc2UsXG4gICAgICBib2xkOiBmYWxzZSxcbiAgICAgIHVuZGVybGluZTogZmFsc2UsXG4gICAgICBzdHJpa2U6IGZhbHNlLFxuICAgICAgbGluazogJycsXG4gICAgICBsaXN0X2J1bGxldGVkOiBmYWxzZSxcbiAgICAgIGxpc3RfbnVtYmVyZWQ6IGZhbHNlLFxuICAgICAganVzdGlmeV9sZWZ0OiBmYWxzZSxcbiAgICAgIGp1c3RpZnlfY2VudGVyOiBmYWxzZSxcbiAgICAgIGp1c3RpZnlfcmlnaHQ6IGZhbHNlLFxuICAgIH0sXG4gICAgZGlzYWJsZWRUb29sczogW11cbiAgfSk7XG4gIHByaXZhdGUgZXNjJCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIHByaXZhdGUgZW50ZXIkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgcHJpdmF0ZSBtYXhMZW5ndGggPSAtMTtcbiAgcHJpdmF0ZSBicmVha09uRW50ZXIgPSBmYWxzZTtcbiAgcHJpdmF0ZSBxdWlsbEZvcm1hdHMgPSBbXG4gICAgJ2JhY2tncm91bmQnLFxuICAgICdib2xkJyxcbiAgICAnY29sb3InLFxuICAgICdmb250JyxcbiAgICAnY29kZScsXG4gICAgJ2l0YWxpYycsXG4gICAgJ2xpbmsnLFxuICAgICdzaXplJyxcbiAgICAnc3RyaWtlJyxcbiAgICAnc2NyaXB0JyxcbiAgICAndW5kZXJsaW5lJyxcbiAgICAnYmxvY2txdW90ZScsXG4gICAgJ2hlYWRlcicsXG4gICAgJ2luZGVudCcsXG4gICAgJ2xpc3QnLFxuICAgICdhbGlnbicsXG4gICAgJ2RpcmVjdGlvbicsXG4gICAgJ2NvZGUtYmxvY2snLFxuICAgICdmb3JtdWxhJ1xuICBdXG5cbiAgcHJpdmF0ZSB0ZXh0Q2hhbmdlSGFuZGxlcjogVGV4dENoYW5nZUhhbmRsZXIgPSAoKSA9PiB7XG4gICAgdGhpcy51cGRhdGUoKTtcbiAgfTtcblxuICBwcml2YXRlIHNlbGVjdGlvbkNoYW5nZUhhbmRsZXI6IFNlbGVjdGlvbkNoYW5nZUhhbmRsZXIgPSAoXG4gICAgdmFsdWU6IFJhbmdlU3RhdGljLFxuICAgIG9sZFJhbmdlOiBSYW5nZVN0YXRpYyxcbiAgICBzb3VyY2U6IFNvdXJjZXNcbiAgKSA9PiB7XG4gICAgdGhpcy51cGRhdGUoKTtcbiAgfTtcblxuICBwcml2YXRlIGJpbmRpbmdzID0ge1xuICAgIGJvbGQ6IHtcbiAgICAgIGhhbmRsZXI6ICgpID0+IHtcbiAgICAgICAgdGhpcy5zZXRCb2xkKCk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH0sXG4gICAgfSxcbiAgICBpdGFsaWM6IHtcbiAgICAgIGhhbmRsZXI6ICgpID0+IHtcbiAgICAgICAgdGhpcy5zZXRJdGFsaWMoKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfSxcbiAgICB9LFxuICAgIHVuZGVybGluZToge1xuICAgICAgaGFuZGxlcjogKCkgPT4ge1xuICAgICAgICB0aGlzLnNldFVuZGVybGluZSgpO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9LFxuICAgIH0sXG4gICAgZXNjYXBlOntcbiAgICAgIGtleTogJ2VzY2FwZScsXG4gICAgICBoYW5kbGVyOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuZXNjJC5uZXh0KHRydWUpO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfSxcbiAgICBlbnRlcjoge1xuICAgICAga2V5OiAnZW50ZXInLFxuICAgICAgaGFuZGxlcjogKCkgPT4ge1xuICAgICAgICB0aGlzLmVudGVyJC5uZXh0KHRydWUpO1xuICAgICAgICByZXR1cm4gdGhpcy5icmVha09uRW50ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gIH07XG4gIHByaXZhdGUgbWF4TGVuZ3RoU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuXG4gIHB1YmxpYyBnZXQgc3RhdGUoKXtcbiAgICAgIHJldHVybiB0aGlzLnN0YXRlU3ViLnZhbHVlXG4gIH1cbiAgXG4gIHB1YmxpYyBzdGF0ZSQgPSB0aGlzLnN0YXRlU3ViLmFzT2JzZXJ2YWJsZSgpO1xuICAgIFxuICBwdWJsaWMgZ2V0IGxpc3RlblRleHRDaGFuZ2VzJCgpe1xuICAgIHJldHVybiBmcm9tRXZlbnQodGhpcy5xdWlsbCwgJ3RleHQtY2hhbmdlJylcbiAgICAgIC5waXBlKG1hcCgoKSA9PiB0aGlzLnF1aWxsLnJvb3QuaW5uZXJIVE1MKSk7IFxuICB9XG5cbiAgcHVibGljIGdldCBsaXN0ZW5PblRvdWNoZWQkKCkge1xuICAgIHJldHVybiBmcm9tRXZlbnQodGhpcy5xdWlsbCwgJ3NlbGVjdGlvbi1jaGFuZ2UnKS5waXBlKFxuICAgICAgZmlsdGVyKCgpID0+IEJvb2xlYW4odGhpcy5xdWlsbC5nZXRTZWxlY3Rpb24oZmFsc2UpKSksXG4gICAgICBtYXAoKCkgPT4gbnVsbClcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCBsaXN0ZW5Fc2NhcGUkKCl7XG4gICAgcmV0dXJuIHRoaXMuZXNjJC5hc09ic2VydmFibGUoKVxuICB9XG5cbiAgcHVibGljIGdldCBsaXN0ZW5FbnRlciQoKXtcbiAgICByZXR1cm4gdGhpcy5lbnRlciQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxuICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICkge1xuICAgIGNvbnN0IGVkaXRvcklkID0gYGVkaXRvci0ke25ldyBEYXRlKCkuZ2V0VGltZSgpfWA7XG4gICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCdpZCcsIGVkaXRvcklkKTtcbiAgICB0aGlzLnF1aWxsID0gbmV3IFF1aWxsUHJveHkuUXVpbGwoYCMke2VkaXRvcklkfWAsIHtcbiAgICAgIHBsYWNlaG9sZGVyOiAnJyxcbiAgICAgIG1vZHVsZXM6IHtcbiAgICAgICAgY2xpcGJvYXJkOiB7XG4gICAgICAgICAgbWF0Y2hlcnM6IFtbTm9kZS5URVhUX05PREUsIHRoaXMudXJsTWF0Y2hlci5iaW5kKHRoaXMpXV0sXG4gICAgICAgIH0sXG4gICAgICAgIGtleWJvYXJkOiB7IGJpbmRpbmdzOiB0aGlzLmJpbmRpbmdzIH0sXG4gICAgICB9LFxuICAgICAgZm9ybWF0czogdGhpcy5xdWlsbEZvcm1hdHNcbiAgICB9KTtcbiAgICB0aGlzLmxpc3RlbkVkaXRvckNoYW5nZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRJdGFsaWMoKSB7XG4gICAgaWYodGhpcy5pc1Rvb2xEaXNhYmxlZCgnaXRhbGljJykpIHJldHVybjtcbiAgICB0aGlzLnF1aWxsLmZvcm1hdCgnaXRhbGljJywgIXRoaXMuc3RhdGUuZm9ybWF0cy5pdGFsaWMpO1xuICAgIHRoaXMudXBkYXRlKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0Qm9sZCgpIHtcbiAgICBpZih0aGlzLmlzVG9vbERpc2FibGVkKCdib2xkJykpIHJldHVyblxuICAgIHRoaXMucXVpbGwuZm9ybWF0KCdib2xkJywgIXRoaXMuc3RhdGUuZm9ybWF0cy5ib2xkKTtcbiAgICB0aGlzLnVwZGF0ZSgpO1xuICB9XG5cbiAgcHVibGljIHNldFVuZGVybGluZSgpIHtcbiAgICBpZih0aGlzLmlzVG9vbERpc2FibGVkKCd1bmRlcmxpbmUnKSkgcmV0dXJuO1xuICAgIHRoaXMucXVpbGwuZm9ybWF0KCd1bmRlcmxpbmUnLCAhdGhpcy5zdGF0ZS5mb3JtYXRzLnVuZGVybGluZSk7XG4gICAgdGhpcy51cGRhdGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRTdHJpa2UoKSB7XG4gICAgaWYodGhpcy5pc1Rvb2xEaXNhYmxlZCgnc3RyaWtlJykpIHJldHVybjtcbiAgICB0aGlzLnF1aWxsLmZvcm1hdCgnc3RyaWtlJywgIXRoaXMuc3RhdGUuZm9ybWF0cy5zdHJpa2UpO1xuICAgIHRoaXMudXBkYXRlKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0TGlzdE51bWJlcmVkKCkge1xuICAgIGlmKHRoaXMuaXNUb29sRGlzYWJsZWQoJ2xpc3RfbnVtYmVyZWQnKSkgcmV0dXJuO1xuICAgIGlmICh0aGlzLnN0YXRlLmZvcm1hdHMubGlzdF9udW1iZXJlZClcbiAgICAgIHRoaXMucXVpbGwuZm9ybWF0KCdsaXN0JywgbnVsbCk7XG4gICAgZWxzZSAgXG4gICAgICB0aGlzLnF1aWxsLmZvcm1hdCgnbGlzdCcsICdvcmRlcmVkJyk7XG4gICAgdGhpcy51cGRhdGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRMaXN0QnVsbGV0ZWQoKSB7XG4gICAgaWYodGhpcy5pc1Rvb2xEaXNhYmxlZCgnbGlzdF9idWxsZXRlZCcpKSByZXR1cm47XG4gICAgaWYgKHRoaXMuc3RhdGUuZm9ybWF0cy5saXN0X2J1bGxldGVkKVxuICAgICAgdGhpcy5xdWlsbC5mb3JtYXQoJ2xpc3QnLCBudWxsKTtcbiAgICBlbHNlICBcbiAgICAgIHRoaXMucXVpbGwuZm9ybWF0KCdsaXN0JywgJ2J1bGxldGVkJyk7XG4gICAgdGhpcy51cGRhdGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRMaW5rKGxpbms6IHN0cmluZykge1xuICAgIGlmKHRoaXMuaXNUb29sRGlzYWJsZWQoJ2xpbmsnKSkgcmV0dXJuO1xuXG4gICAgY29uc3QgcmFuZ2UgPSB0aGlzLnF1aWxsLmdldFNlbGVjdGlvbih0cnVlKTtcblxuICAgIGlmIChyYW5nZSAmJiAhcmFuZ2UubGVuZ3RoKSB7XG4gICAgICBjb25zdCBbdGV4dEJsb2F0LCBvZmZzZXRdID0gdGhpcy5xdWlsbC5nZXRMZWFmKHJhbmdlIS5pbmRleCk7XG5cbiAgICAgIGNvbnN0IHN0YXJ0ID0gcmFuZ2UhLmluZGV4IC0gb2Zmc2V0O1xuICAgICAgY29uc3QgbGVuZ3RoID0gdGV4dEJsb2F0Lmxlbmd0aCgpO1xuXG4gICAgICB0aGlzLnF1aWxsLmZvcm1hdFRleHQoc3RhcnQsIGxlbmd0aCwgJ2xpbmsnLCBsaW5rKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5xdWlsbC5mb3JtYXQoJ2xpbmsnLCBsaW5rKTtcbiAgICB9XG5cbiAgICB0aGlzLnVwZGF0ZSgpO1xuICB9XG5cbiAgcHVibGljIHNldEp1c3RpZnlMZWZ0KCkge1xuICAgIGlmKHRoaXMuaXNUb29sRGlzYWJsZWQoJ2p1c3RpZnlfbGVmdCcpKSByZXR1cm47XG4gICAgdGhpcy5xdWlsbC5mb3JtYXQoJ2FsaWduJywgbnVsbCk7XG4gICAgdGhpcy51cGRhdGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRKdXN0aWZ5Q2VudGVyKCkge1xuICAgIGlmKHRoaXMuaXNUb29sRGlzYWJsZWQoJ2p1c3RpZnlfY2VudGVyJykpIHJldHVybjtcbiAgICB0aGlzLnF1aWxsLmZvcm1hdCgnYWxpZ24nLCAnY2VudGVyJyk7XG4gICAgdGhpcy51cGRhdGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRKdXN0aWZ5UmlnaHQoKSB7XG4gICAgaWYodGhpcy5pc1Rvb2xEaXNhYmxlZCgnanVzdGlmeV9yaWdodCcpKSByZXR1cm47XG4gICAgdGhpcy5xdWlsbC5mb3JtYXQoJ2FsaWduJywgJ3JpZ2h0Jyk7XG4gICAgdGhpcy51cGRhdGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRSZW1vdmUoKSB7XG4gICAgY29uc3Qgc2VsZWN0aW9uID0gdGhpcy5xdWlsbC5nZXRTZWxlY3Rpb24oKTtcbiAgICBpZiAoc2VsZWN0aW9uKSB0aGlzLnF1aWxsLnJlbW92ZUZvcm1hdChzZWxlY3Rpb24hLmluZGV4LCBzZWxlY3Rpb24hLmxlbmd0aCk7XG4gICAgdGhpcy51cGRhdGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRQbGFjZWhvbGRlcihwbGFjZWhvbGRlcjogc3RyaW5nKXtcbiAgICB0aGlzLnF1aWxsLnJvb3QuZGF0YXNldFsncGxhY2Vob2xkZXInXSA9IHBsYWNlaG9sZGVyO1xuICB9XG5cbiAgcHVibGljIHNldFRleHQodGV4dDogc3RyaW5nKXtcbiAgICB0aGlzLnF1aWxsLnNldENvbnRlbnRzKHRoaXMucXVpbGwuY2xpcGJvYXJkLmNvbnZlcnQodGV4dCksICdzaWxlbnQnKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRNYXhMZW5ndGgobGVuZ3RoOiBudW1iZXIpe1xuICAgIHRoaXMubWF4TGVuZ3RoID0gbGVuZ3RoO1xuXG4gICAgdGhpcy5tYXhMZW5ndGhTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgaWYodGhpcy5tYXhMZW5ndGggPiAwKVxuICAgICAgdGhpcy5tYXhMZW5ndGhTdWJzY3JpcHRpb24gPSBcbiAgICAgICAgZnJvbUV2ZW50KHRoaXMucXVpbGwsICd0ZXh0LWNoYW5nZScpXG4gICAgICAgIC5waXBlKGZpbHRlcigoKSA9PiB0aGlzLnF1aWxsLmdldExlbmd0aCgpID4gdGhpcy5tYXhMZW5ndGgpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLnF1aWxsLmRlbGV0ZVRleHQodGhpcy5tYXhMZW5ndGggLTEsIHRoaXMucXVpbGwuZ2V0TGVuZ3RoKCkpO1xuICAgICAgfSlcbiAgfVxuXG4gIHB1YmxpYyBzZXREaXNhYmxlZFRvb2xzKHRvb2xzOiBUb29sS2V5cyl7XG4gICAgaWYoSlNPTi5zdHJpbmdpZnkodG9vbHMpICE9PSBKU09OLnN0cmluZ2lmeSh0aGlzLnN0YXRlU3ViLnZhbHVlLmRpc2FibGVkVG9vbHMpKVxuICAgICAgdGhpcy5zdGF0ZVN1Yi5uZXh0KHsuLi50aGlzLnN0YXRlU3ViLnZhbHVlLCBkaXNhYmxlZFRvb2xzOiB0b29scywgfSlcbiAgfVxuXG4gIHB1YmxpYyBzZXRFZGl0b3JDbGFzcyhjbGFzc05hbWU6IHN0cmluZyl7XG4gICAgaWYoIWNsYXNzTmFtZSkgcmV0dXJuO1xuICAgIHRoaXMucXVpbGwucm9vdC5jbGFzc0xpc3QuYWRkKGNsYXNzTmFtZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0RWRpdG9yRWxlbWVudCgpe1xuICAgIHJldHVybiB0aGlzLnF1aWxsLnJvb3Q7XG4gIH1cblxuICBwdWJsaWMgZ2V0VGV4dExlbmd0aCgpe1xuICAgIHJldHVybiB0aGlzLnF1aWxsLmdldExlbmd0aCgpO1xuICB9XG5cbiAgcHVibGljIGRpc2FibGUoKXtcbiAgICB0aGlzLnF1aWxsLmRpc2FibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBlbmFibGUoKXtcbiAgICB0aGlzLnF1aWxsLmVuYWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGZvY3VzKCl7XG4gICAgdGhpcy5xdWlsbC5mb2N1cygpO1xuICB9XG5cbiAgcHVibGljIHNldEJyZWFrT25FbnRlcihicmVha09uRW50ZXI6IGJvb2xlYW4pe1xuICAgIHRoaXMuYnJlYWtPbkVudGVyID0gYnJlYWtPbkVudGVyO1xuICB9XG5cbiAgcHVibGljIGRlc3Ryb3koKSB7XG4gICAgdGhpcy5xdWlsbC5vZmYoJ3NlbGVjdGlvbi1jaGFuZ2UnLCB0aGlzLnNlbGVjdGlvbkNoYW5nZUhhbmRsZXIpO1xuICAgIHRoaXMucXVpbGwub2ZmKCd0ZXh0LWNoYW5nZScsIHRoaXMudGV4dENoYW5nZUhhbmRsZXIpO1xuICAgIHRoaXMuZXNjJC51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuZW50ZXIkLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5zdGF0ZVN1Yi51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMubWF4TGVuZ3RoU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1Rvb2xEaXNhYmxlZCh0b29sOiBUb29sKXtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZVN1Yi52YWx1ZS5kaXNhYmxlZFRvb2xzLmluY2x1ZGVzKHRvb2wpXG4gIH1cblxuICBwcml2YXRlIHVybE1hdGNoZXIobm9kZTogYW55LCBkZWx0YTogYW55KSB7XG4gICAgaWYgKHR5cGVvZiBub2RlLmRhdGEgIT09ICdzdHJpbmcnKSByZXR1cm47XG4gICAgY29uc3QgbWF0Y2hlcyA9IG5vZGUuZGF0YS5tYXRjaChVUkxfUkVHRVgpO1xuXG4gICAgaWYgKG1hdGNoZXMgJiYgbWF0Y2hlcy5sZW5ndGggPiAwKSB7XG4gICAgICBsZXQgdGV4dCA9ICcnO1xuICAgICAgY29uc3Qgc2VsZWN0aW9uID0gdGhpcy5xdWlsbC5nZXRTZWxlY3Rpb24odHJ1ZSk7XG4gICAgICBpZiAoc2VsZWN0aW9uLmxlbmd0aClcbiAgICAgICAgdGV4dCA9IHRoaXMucXVpbGwuZ2V0VGV4dChzZWxlY3Rpb24hLmluZGV4LCBzZWxlY3Rpb24hLmxlbmd0aCk7XG5cbiAgICAgIGNvbnN0IG9wcyA9IFtdO1xuICAgICAgbGV0IHN0ciA9IG5vZGUuZGF0YTtcbiAgICAgIG1hdGNoZXMuZm9yRWFjaChmdW5jdGlvbiAobWF0Y2g6IGFueSkge1xuICAgICAgICBjb25zdCBzcGxpdCA9IHN0ci5zcGxpdChtYXRjaCk7XG4gICAgICAgIGNvbnN0IGJlZm9yZUxpbmsgPSBzcGxpdC5zaGlmdCgpO1xuICAgICAgICBvcHMucHVzaCh7IGluc2VydDogYmVmb3JlTGluayB9KTtcbiAgICAgICAgb3BzLnB1c2goeyBpbnNlcnQ6IHRleHQgfHwgbWF0Y2gsIGF0dHJpYnV0ZXM6IHsgbGluazogbWF0Y2ggfSB9KTtcbiAgICAgICAgc3RyID0gc3BsaXQuam9pbihtYXRjaCk7XG4gICAgICB9KTtcbiAgICAgIG9wcy5wdXNoKHsgaW5zZXJ0OiBzdHIgfSk7XG4gICAgICBkZWx0YS5vcHMgPSBvcHM7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRlbHRhO1xuICB9XG5cbiAgcHJpdmF0ZSBsaXN0ZW5FZGl0b3JDaGFuZ2VzKCkge1xuICAgIHRoaXMucXVpbGwub24oJ3NlbGVjdGlvbi1jaGFuZ2UnLCB0aGlzLnNlbGVjdGlvbkNoYW5nZUhhbmRsZXIpO1xuICAgIHRoaXMucXVpbGwub24oJ3RleHQtY2hhbmdlJywgdGhpcy50ZXh0Q2hhbmdlSGFuZGxlcik7XG4gIH1cblxuXG4gIHByaXZhdGUgdXBkYXRlKCkge1xuICAgIGxldCBib3VuZHM6IEJvdW5kc1N0YXRpYyB8IHVuZGVmaW5lZDtcbiAgICBsZXQgZm9ybWF0c0FycjtcblxuICAgIGNvbnN0IHJhbmdlID0gdGhpcy5xdWlsbC5nZXRTZWxlY3Rpb24oZmFsc2UpO1xuICAgIGlmICAocmFuZ2UpeyBcbiAgICAgIGJvdW5kcyA9IHRoaXMucXVpbGwuZ2V0Qm91bmRzKHJhbmdlLmluZGV4LCByYW5nZS5sZW5ndGgpO1xuICAgICAgZm9ybWF0c0FyciA9IHRoaXMucXVpbGwuZ2V0Rm9ybWF0KHJhbmdlKSBhcyBhbnk7XG4gICAgfVxuXG4gICAgY29uc3QgZm9ybWF0czogUmljaHRleHRGb3JtYXRzID0ge1xuICAgICAgaXRhbGljOiBmb3JtYXRzQXJyPy5pdGFsaWMgfHwgZmFsc2UsXG4gICAgICBib2xkOiBmb3JtYXRzQXJyPy5ib2xkIHx8IGZhbHNlLFxuICAgICAgdW5kZXJsaW5lOiBmb3JtYXRzQXJyPy51bmRlcmxpbmUgfHwgZmFsc2UsXG4gICAgICBzdHJpa2U6IGZvcm1hdHNBcnI/LnN0cmlrZSB8fCBmYWxzZSxcbiAgICAgIGxpbms6IGZvcm1hdHNBcnI/LmxpbmsgfHwgJycsXG4gICAgICBsaXN0X2J1bGxldGVkOiBmb3JtYXRzQXJyPy5saXN0ID09PSAnYnVsbGV0JyxcbiAgICAgIGxpc3RfbnVtYmVyZWQ6IGZvcm1hdHNBcnI/Lmxpc3QgPT09ICdvcmRlcmVkJyxcbiAgICAgIGp1c3RpZnlfbGVmdDogZm9ybWF0c0Fycj8uYWxpZ24gPT09ICdsZWZ0JyxcbiAgICAgIGp1c3RpZnlfY2VudGVyOiBmb3JtYXRzQXJyPy5hbGlnbiA9PT0gJ2NlbnRlcicsXG4gICAgICBqdXN0aWZ5X3JpZ2h0OiBmb3JtYXRzQXJyPy5hbGlnbiA9PT0gJ3JpZ2h0JyxcbiAgICB9O1xuXG4gICAgY29uc3QgaGFzU2VsZWN0aW9uID0gISFyYW5nZT8ubGVuZ3RoO1xuICAgIGNvbnN0IGhhc0ZvY3VzID0gISFyYW5nZTtcblxuICAgIGNvbnN0IG5ld1N0YXRlOiBUb29sc1N0YXRlID0geyBcbiAgICAgIC4uLnRoaXMuc3RhdGVTdWIudmFsdWUsIFxuICAgICAgaGFzU2VsZWN0aW9uLCBcbiAgICAgIGZvcm1hdHMsIFxuICAgICAgYm91bmRzLCBcbiAgICAgIGhhc0ZvY3VzIFxuICAgIH07XG5cbiAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgdGhpcy5zdGF0ZVN1Yi5uZXh0KG5ld1N0YXRlKTtcbiAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gICAgfSlcbiAgfVxufVxuXG4vL3RvIHdvcmsgYXJvdW5kIHRlc3RpbmcgcHJvYmxlbXMgXG5leHBvcnQgY29uc3QgUXVpbGxQcm94eSA9e1xuICBRdWlsbFxufVxuXG4vL3RvIHdvcmsgYXJvdW5kIHRlc3RpbmcgcHJvYmxlbXMgXG5leHBvcnQgY29uc3QgUmljaHRleHRXcmFwcGVyUHJveHkgPSB7XG4gIFJpY2h0ZXh0V3JhcHBlclxufSJdfQ==
@@ -1933,6 +1933,27 @@ class RichtextWrapper {
1933
1933
  this.enter$ = new Subject();
1934
1934
  this.maxLength = -1;
1935
1935
  this.breakOnEnter = false;
1936
+ this.quillFormats = [
1937
+ 'background',
1938
+ 'bold',
1939
+ 'color',
1940
+ 'font',
1941
+ 'code',
1942
+ 'italic',
1943
+ 'link',
1944
+ 'size',
1945
+ 'strike',
1946
+ 'script',
1947
+ 'underline',
1948
+ 'blockquote',
1949
+ 'header',
1950
+ 'indent',
1951
+ 'list',
1952
+ 'align',
1953
+ 'direction',
1954
+ 'code-block',
1955
+ 'formula'
1956
+ ];
1936
1957
  this.textChangeHandler = () => {
1937
1958
  this.update();
1938
1959
  };
@@ -1984,6 +2005,7 @@ class RichtextWrapper {
1984
2005
  },
1985
2006
  keyboard: { bindings: this.bindings },
1986
2007
  },
2008
+ formats: this.quillFormats
1987
2009
  });
1988
2010
  this.listenEditorChanges();
1989
2011
  }