asksuite-citrus 1.7.4 → 1.7.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/assets/citrus-i18n/en.json +0 -2
  2. package/assets/citrus-i18n/es.json +0 -2
  3. package/assets/citrus-i18n/pt.json +0 -2
  4. package/esm2022/lib/asksuite-citrus.module.mjs +4 -14
  5. package/esm2022/lib/components/autocomplete/autocomplete.component.mjs +4 -4
  6. package/esm2022/lib/components/avatar/avatar.component.mjs +2 -2
  7. package/esm2022/lib/components/box/box.component.mjs +2 -2
  8. package/esm2022/lib/components/button/button.component.mjs +2 -2
  9. package/esm2022/lib/components/character-counter/character-counter.component.mjs +2 -2
  10. package/esm2022/lib/components/checkbox/checkbox.component.mjs +2 -2
  11. package/esm2022/lib/components/chips/chips.component.mjs +2 -2
  12. package/esm2022/lib/components/date-picker/date-picker-calendar/date-picker-calendar.component.mjs +2 -2
  13. package/esm2022/lib/components/date-picker/date-picker.component.mjs +2 -2
  14. package/esm2022/lib/components/dropdown-container/dropdown-container.component.mjs +2 -2
  15. package/esm2022/lib/components/input/input.component.mjs +2 -2
  16. package/esm2022/lib/components/modal/modal.component.mjs +2 -2
  17. package/esm2022/lib/components/pagination/pagination.component.mjs +2 -2
  18. package/esm2022/lib/components/select/select.component.mjs +2 -2
  19. package/esm2022/lib/components/table/table.component.mjs +2 -2
  20. package/esm2022/lib/components/toast/toast.component.mjs +3 -3
  21. package/esm2022/lib/directives/button/ask-button.directive.mjs +8 -3
  22. package/esm2022/lib/directives/index.mjs +1 -2
  23. package/esm2022/public-api.mjs +1 -3
  24. package/fesm2022/asksuite-citrus.mjs +61 -913
  25. package/fesm2022/asksuite-citrus.mjs.map +1 -1
  26. package/lib/asksuite-citrus.module.d.ts +7 -10
  27. package/lib/components/toast/toast.component.d.ts +2 -1
  28. package/lib/directives/button/ask-button.directive.d.ts +1 -1
  29. package/lib/directives/index.d.ts +0 -1
  30. package/package.json +2 -3
  31. package/public-api.d.ts +0 -1
  32. package/styles/font-weights.scss +0 -1
  33. package/styles/styles.scss +30 -2
  34. package/esm2022/lib/classes/richtext-wrapper.mjs +0 -298
  35. package/esm2022/lib/classes/toolbox-bubble.mjs +0 -46
  36. package/esm2022/lib/classes/toolbox-topbar.mjs +0 -34
  37. package/esm2022/lib/classes/toolbox.mjs +0 -109
  38. package/esm2022/lib/components/richtext-toolbox-core/richtext-toolbox-core.component.mjs +0 -82
  39. package/esm2022/lib/components/richtext-url-prompt/richtext-url-prompt-state.service.mjs +0 -16
  40. package/esm2022/lib/components/richtext-url-prompt/richtext-url-prompt.component.mjs +0 -66
  41. package/esm2022/lib/constants/richtext-toolbox.constants.mjs +0 -40
  42. package/esm2022/lib/constants/url-regex.constant.mjs +0 -2
  43. package/esm2022/lib/directives/richtext-toolbox/richtext-toolbox.directive.mjs +0 -169
  44. package/esm2022/lib/helpers/are-objects-equal.helper.mjs +0 -4
  45. package/esm2022/lib/interfaces/richtext-toolbox.interface.mjs +0 -2
  46. package/esm2022/lib/services/quill-builder.service.mjs +0 -18
  47. package/lib/classes/richtext-wrapper.d.ts +0 -52
  48. package/lib/classes/toolbox-bubble.d.ts +0 -12
  49. package/lib/classes/toolbox-topbar.d.ts +0 -8
  50. package/lib/classes/toolbox.d.ts +0 -31
  51. package/lib/components/richtext-toolbox-core/richtext-toolbox-core.component.d.ts +0 -25
  52. package/lib/components/richtext-url-prompt/richtext-url-prompt-state.service.d.ts +0 -6
  53. package/lib/components/richtext-url-prompt/richtext-url-prompt.component.d.ts +0 -19
  54. package/lib/constants/richtext-toolbox.constants.d.ts +0 -4
  55. package/lib/constants/url-regex.constant.d.ts +0 -1
  56. package/lib/directives/richtext-toolbox/richtext-toolbox.directive.d.ts +0 -40
  57. package/lib/helpers/are-objects-equal.helper.d.ts +0 -1
  58. package/lib/interfaces/richtext-toolbox.interface.d.ts +0 -54
  59. package/lib/services/quill-builder.service.d.ts +0 -8
  60. package/styles/ask-mixins.scss +0 -45
  61. package/styles/quill.scss +0 -18
@@ -30,17 +30,14 @@ import * as i28 from "./components/accordion/extendable-panel/extendable-panel.c
30
30
  import * as i29 from "./components/table/table.component";
31
31
  import * as i30 from "./components/pagination/pagination.component";
32
32
  import * as i31 from "./pipes/paginate/paginate.pipe";
33
- import * as i32 from "./directives/richtext-toolbox/richtext-toolbox.directive";
34
- import * as i33 from "./components/richtext-url-prompt/richtext-url-prompt.component";
35
- import * as i34 from "./components/richtext-toolbox-core/richtext-toolbox-core.component";
36
- import * as i35 from "@angular/common";
37
- import * as i36 from "@angular/forms";
38
- import * as i37 from "@angular/cdk/overlay";
39
- import * as i38 from "@ngx-translate/core";
40
- import * as i39 from "ngx-skeleton-loader";
41
- import * as i40 from "@angular/material/tooltip";
33
+ import * as i32 from "@angular/common";
34
+ import * as i33 from "@angular/forms";
35
+ import * as i34 from "@angular/cdk/overlay";
36
+ import * as i35 from "@ngx-translate/core";
37
+ import * as i36 from "ngx-skeleton-loader";
38
+ import * as i37 from "@angular/material/tooltip";
42
39
  export declare class AsksuiteCitrusModule {
43
40
  static ɵfac: i0.ɵɵFactoryDeclaration<AsksuiteCitrusModule, never>;
44
- static ɵmod: i0.ɵɵNgModuleDeclaration<AsksuiteCitrusModule, [typeof i1.ButtonComponent, typeof i2.InputComponent, typeof i3.SelectComponent, typeof i4.BoxComponent, typeof i5.AvatarComponent, typeof i6.DropdownContainerComponent, typeof i7.AskDropdownDirective, typeof i8.AutocompleteComponent, typeof i9.ChipsComponent, typeof i10.CheckboxComponent, typeof i11.DatePickerComponent, typeof i12.DatePickerCalendarComponent, typeof i13.SkeletonComponent, typeof i14.SpinnerComponent, typeof i15.SpinnerDirective, typeof i16.BadgeDirective, typeof i17.AutofocusDirective, typeof i18.ScrollDirective, typeof i19.AskTooltipDirective, typeof i20.ToastComponent, typeof i21.AskButtonDirective, typeof i22.ModalComponent, typeof i23.ModalBodyDirective, typeof i24.ModalHeaderDirective, typeof i25.ModalFooterDirective, typeof i26.CharacterCounterComponent, typeof i27.AccordionComponent, typeof i28.ExtendablePanelComponent, typeof i29.TableComponent, typeof i30.PaginationComponent, typeof i31.PaginatePipe, typeof i32.RichtextToolboxDirective, typeof i33.RichtextUrlPromptComponent, typeof i34.RichtextToolboxCoreComponent], [typeof i35.CommonModule, typeof i36.FormsModule, typeof i36.ReactiveFormsModule, typeof i37.CdkOverlayOrigin, typeof i37.CdkConnectedOverlay, typeof i37.OverlayModule, typeof i38.TranslateModule, typeof i39.NgxSkeletonLoaderModule, typeof i40.MatTooltipModule], [typeof i1.ButtonComponent, typeof i2.InputComponent, typeof i3.SelectComponent, typeof i4.BoxComponent, typeof i5.AvatarComponent, typeof i6.DropdownContainerComponent, typeof i7.AskDropdownDirective, typeof i8.AutocompleteComponent, typeof i9.ChipsComponent, typeof i10.CheckboxComponent, typeof i11.DatePickerComponent, typeof i12.DatePickerCalendarComponent, typeof i13.SkeletonComponent, typeof i15.SpinnerDirective, typeof i16.BadgeDirective, typeof i17.AutofocusDirective, typeof i18.ScrollDirective, typeof i19.AskTooltipDirective, typeof i21.AskButtonDirective, typeof i23.ModalBodyDirective, typeof i24.ModalHeaderDirective, typeof i25.ModalFooterDirective, typeof i26.CharacterCounterComponent, typeof i27.AccordionComponent, typeof i28.ExtendablePanelComponent, typeof i29.TableComponent, typeof i30.PaginationComponent, typeof i31.PaginatePipe, typeof i32.RichtextToolboxDirective]>;
41
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AsksuiteCitrusModule, [typeof i1.ButtonComponent, typeof i2.InputComponent, typeof i3.SelectComponent, typeof i4.BoxComponent, typeof i5.AvatarComponent, typeof i6.DropdownContainerComponent, typeof i7.AskDropdownDirective, typeof i8.AutocompleteComponent, typeof i9.ChipsComponent, typeof i10.CheckboxComponent, typeof i11.DatePickerComponent, typeof i12.DatePickerCalendarComponent, typeof i13.SkeletonComponent, typeof i14.SpinnerComponent, typeof i15.SpinnerDirective, typeof i16.BadgeDirective, typeof i17.AutofocusDirective, typeof i18.ScrollDirective, typeof i19.AskTooltipDirective, typeof i20.ToastComponent, typeof i21.AskButtonDirective, typeof i22.ModalComponent, typeof i23.ModalBodyDirective, typeof i24.ModalHeaderDirective, typeof i25.ModalFooterDirective, typeof i26.CharacterCounterComponent, typeof i27.AccordionComponent, typeof i28.ExtendablePanelComponent, typeof i29.TableComponent, typeof i30.PaginationComponent, typeof i31.PaginatePipe], [typeof i32.CommonModule, typeof i33.FormsModule, typeof i33.ReactiveFormsModule, typeof i34.CdkOverlayOrigin, typeof i34.CdkConnectedOverlay, typeof i34.OverlayModule, typeof i35.TranslateModule, typeof i36.NgxSkeletonLoaderModule, typeof i37.MatTooltipModule], [typeof i1.ButtonComponent, typeof i2.InputComponent, typeof i3.SelectComponent, typeof i4.BoxComponent, typeof i5.AvatarComponent, typeof i6.DropdownContainerComponent, typeof i7.AskDropdownDirective, typeof i8.AutocompleteComponent, typeof i9.ChipsComponent, typeof i10.CheckboxComponent, typeof i11.DatePickerComponent, typeof i12.DatePickerCalendarComponent, typeof i13.SkeletonComponent, typeof i15.SpinnerDirective, typeof i16.BadgeDirective, typeof i17.AutofocusDirective, typeof i18.ScrollDirective, typeof i19.AskTooltipDirective, typeof i21.AskButtonDirective, typeof i23.ModalBodyDirective, typeof i24.ModalHeaderDirective, typeof i25.ModalFooterDirective, typeof i26.CharacterCounterComponent, typeof i27.AccordionComponent, typeof i28.ExtendablePanelComponent, typeof i29.TableComponent, typeof i30.PaginationComponent, typeof i31.PaginatePipe]>;
45
42
  static ɵinj: i0.ɵɵInjectorDeclaration<AsksuiteCitrusModule>;
46
43
  }
@@ -1,3 +1,4 @@
1
+ /// <reference types="node" />
1
2
  import { OnDestroy, OnInit } from '@angular/core';
2
3
  import { ToastConfig, ToastData, ToastType } from '../../services/toast/toast.config';
3
4
  import { ToastRef } from "../../services/toast/toast-ref";
@@ -7,7 +8,7 @@ export declare class ToastComponent implements OnInit, OnDestroy {
7
8
  private ref;
8
9
  message: string;
9
10
  icon: string;
10
- timeoutRef: number;
11
+ timeoutRef: NodeJS.Timeout;
11
12
  config: ToastConfig;
12
13
  color: string;
13
14
  fontColor: string;
@@ -5,5 +5,5 @@ export declare class AskButtonDirective {
5
5
  set color(value: 'primary' | 'secondary' | '');
6
6
  constructor(el: ElementRef);
7
7
  static ɵfac: i0.ɵɵFactoryDeclaration<AskButtonDirective, never>;
8
- static ɵdir: i0.ɵɵDirectiveDeclaration<AskButtonDirective, "button[askButton]", never, { "color": { "alias": "color"; "required": false; }; }, {}, never, never, false, never>;
8
+ static ɵdir: i0.ɵɵDirectiveDeclaration<AskButtonDirective, "[askButton]", never, { "color": { "alias": "color"; "required": false; }; }, {}, never, never, false, never>;
9
9
  }
@@ -5,4 +5,3 @@ export * from './tooltip/ask-tooltip.directive';
5
5
  export * from './spinner/spinner.directive';
6
6
  export * from './ask-dropdown.directive';
7
7
  export * from './autofocus/autofocus.directive';
8
- export * from './richtext-toolbox/richtext-toolbox.directive';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "asksuite-citrus",
3
- "version": "1.7.4",
3
+ "version": "1.7.5",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^16.1.0",
6
6
  "@angular/core": "^16.1.0",
@@ -8,8 +8,7 @@
8
8
  "@ngx-translate/core": "^15.0.0",
9
9
  "@ngx-translate/http-loader": "^8.0.0",
10
10
  "moment": "^2.29.4",
11
- "ngx-skeleton-loader": "^8.0.0",
12
- "quill": "^1.3.7"
11
+ "ngx-skeleton-loader": "^8.0.0"
13
12
  },
14
13
  "dependencies": {
15
14
  "tslib": "^2.3.0"
package/public-api.d.ts CHANGED
@@ -23,4 +23,3 @@ export * from './lib/services/modal';
23
23
  export * from './lib/pipes/paginate/paginate.pipe';
24
24
  export * from './lib/services/toast/toast.config';
25
25
  export * from './lib/pipes/paginate/paginate.helper';
26
- export * from './lib/interfaces/richtext-toolbox.interface';
@@ -1,6 +1,5 @@
1
1
  $font-weight-regular: 400;
2
2
  $font-weight-medium: 500;
3
- $font-weight-bolder: 700;
4
3
 
5
4
  :root {
6
5
  --font-weight-regular: $font-weight-regular;
@@ -5,8 +5,36 @@
5
5
 
6
6
  @import './button';
7
7
  @import './modal';
8
- @import './ask-mixins';
9
- @import './quill';
8
+ /*
9
+ * Mixins
10
+ */
11
+ @mixin default-input() {
12
+ position: relative;
13
+ display: flex;
14
+ align-items: center;
15
+ border-radius: $radii-xs;
16
+ border: 1px solid $grey-200;
17
+ padding: 16px;
18
+ outline: none;
19
+ gap: 8px;
20
+ line-height: 14px;
21
+ color: $grey-700;
22
+ height: 48px;
23
+ font-size: $font-sm;
24
+ font-weight: $font-weight-regular;
25
+ transition: border .2s;
26
+
27
+ &:focus {
28
+ border-color: $asksuite-orange;
29
+ }
30
+
31
+ .material-icons {
32
+ display: flex;
33
+ align-items: center;
34
+ justify-content: center;
35
+ height: 14px;
36
+ }
37
+ }
10
38
 
11
39
  /*
12
40
  * Material Icons
@@ -1,298 +0,0 @@
1
- import { BehaviorSubject, Subject, filter, fromEvent, map } from 'rxjs';
2
- import { URL_REGEX } from '../constants/url-regex.constant';
3
- export class RichtextWrapper {
4
- get state() {
5
- return this.stateSub.value;
6
- }
7
- get listenTextChanges$() {
8
- return fromEvent(this.quill, 'text-change')
9
- .pipe(map(() => this.quill.root.innerHTML));
10
- }
11
- get listenOnTouched$() {
12
- return fromEvent(this.quill, 'selection-change')
13
- .pipe(map(() => !this.quill.getSelection(false)));
14
- }
15
- get listenEscape$() {
16
- return this.esc$.asObservable();
17
- }
18
- get listenEnter$() {
19
- return this.enter$.asObservable();
20
- }
21
- constructor(ngZone, cd, quillBuilder, elementRef) {
22
- this.ngZone = ngZone;
23
- this.cd = cd;
24
- this.quillBuilder = quillBuilder;
25
- this.elementRef = elementRef;
26
- this.stateSub = new BehaviorSubject({
27
- hasSelection: false,
28
- hasFocus: false,
29
- formats: {
30
- italic: false,
31
- bold: false,
32
- underline: false,
33
- strike: false,
34
- link: '',
35
- list_bulleted: false,
36
- list_numbered: false,
37
- justify_left: false,
38
- justify_center: false,
39
- justify_right: false,
40
- },
41
- disabledTools: []
42
- });
43
- this.esc$ = new Subject();
44
- this.enter$ = new Subject();
45
- this.maxLength = -1;
46
- this.breakOnEnter = false;
47
- this.textChangeHandler = () => {
48
- this.update();
49
- };
50
- this.selectionChangeHandler = (value, oldRange, source) => {
51
- this.update();
52
- };
53
- this.bindings = {
54
- bold: {
55
- handler: () => {
56
- this.setBold();
57
- return false;
58
- },
59
- },
60
- italic: {
61
- handler: () => {
62
- this.setItalic();
63
- return false;
64
- },
65
- },
66
- underline: {
67
- handler: () => {
68
- this.setUnderline();
69
- return false;
70
- },
71
- },
72
- escape: {
73
- key: 'escape',
74
- handler: () => {
75
- this.esc$.next(true);
76
- return false;
77
- }
78
- },
79
- enter: {
80
- key: 'enter',
81
- handler: () => {
82
- this.enter$.next(true);
83
- return this.breakOnEnter;
84
- }
85
- }
86
- };
87
- this.state$ = this.stateSub.asObservable();
88
- const Quill = this.quillBuilder.getQuill();
89
- const editorId = `editor-${new Date().getTime()}`;
90
- this.elementRef.nativeElement.setAttribute('id', editorId);
91
- this.quill = new Quill(`#${editorId}`, {
92
- placeholder: '',
93
- modules: {
94
- clipboard: {
95
- matchers: [[Node.TEXT_NODE, this.urlMatcher.bind(this)]],
96
- },
97
- keyboard: { bindings: this.bindings },
98
- },
99
- });
100
- this.quill.root.setAttribute('spellcheck', 'false');
101
- this.listenEditorChanges();
102
- }
103
- setItalic() {
104
- if (this.isToolDisabled('italic'))
105
- return;
106
- this.quill.format('italic', !this.state.formats.italic);
107
- this.update();
108
- }
109
- setBold() {
110
- if (this.isToolDisabled('bold'))
111
- return;
112
- this.quill.format('bold', !this.state.formats.bold);
113
- this.update();
114
- }
115
- setUnderline() {
116
- if (this.isToolDisabled('underline'))
117
- return;
118
- this.quill.format('underline', !this.state.formats.underline);
119
- this.update();
120
- }
121
- setStrike() {
122
- if (this.isToolDisabled('strike'))
123
- return;
124
- this.quill.format('strike', !this.state.formats.strike);
125
- this.update();
126
- }
127
- setListNumbered() {
128
- if (this.isToolDisabled('list_numbered'))
129
- return;
130
- if (this.state.formats.list_numbered)
131
- this.quill.format('list', null);
132
- else
133
- this.quill.format('list', 'ordered');
134
- this.update();
135
- }
136
- setListBulleted() {
137
- if (this.isToolDisabled('list_bulleted'))
138
- return;
139
- if (this.state.formats.list_bulleted)
140
- this.quill.format('list', null);
141
- else
142
- this.quill.format('list', 'bulleted');
143
- this.update();
144
- }
145
- setLink(link) {
146
- if (this.isToolDisabled('link'))
147
- return;
148
- const range = this.quill.getSelection(true);
149
- if (range && !range.length) {
150
- const [textBloat, offset] = this.quill.getLeaf(range.index);
151
- const start = range.index - offset;
152
- const length = textBloat.length();
153
- this.quill.formatText(start, length, 'link', link);
154
- }
155
- else {
156
- this.quill.format('link', link);
157
- }
158
- this.update();
159
- }
160
- setJustifyLeft() {
161
- if (this.isToolDisabled('justify_left'))
162
- return;
163
- this.quill.format('align', null);
164
- this.update();
165
- }
166
- setJustifyCenter() {
167
- if (this.isToolDisabled('justify_center'))
168
- return;
169
- this.quill.format('align', 'center');
170
- this.update();
171
- }
172
- setJustifyRight() {
173
- if (this.isToolDisabled('justify_right'))
174
- return;
175
- this.quill.format('align', 'right');
176
- this.update();
177
- }
178
- setRemove() {
179
- const selection = this.quill.getSelection();
180
- if (selection)
181
- this.quill.removeFormat(selection.index, selection.length);
182
- this.update();
183
- }
184
- setPlaceholder(placeholder) {
185
- this.quill.root.dataset['placeholder'] = placeholder;
186
- }
187
- setText(text) {
188
- this.quill.setContents(this.quill.clipboard.convert(text));
189
- }
190
- setMaxLength(length) {
191
- this.maxLength = length;
192
- this.maxLengthSubscription?.unsubscribe();
193
- if (this.maxLength > 0)
194
- this.maxLengthSubscription =
195
- fromEvent(this.quill, 'text-change')
196
- .pipe(filter(() => this.quill.getLength() > this.maxLength))
197
- .subscribe(() => {
198
- this.quill.deleteText(this.maxLength, this.quill.getLength());
199
- });
200
- }
201
- setDisabledTools(tools) {
202
- if (JSON.stringify(tools) !== JSON.stringify(this.stateSub.value.disabledTools))
203
- this.stateSub.next({ ...this.stateSub.value, disabledTools: tools, });
204
- }
205
- setEditorClass(className) {
206
- if (!className)
207
- return;
208
- this.quill.root.classList.add(className);
209
- }
210
- getEditorElement() {
211
- return this.quill.root;
212
- }
213
- disable() {
214
- this.quill.disable();
215
- }
216
- enable() {
217
- this.quill.enable();
218
- }
219
- focus() {
220
- this.quill.focus();
221
- }
222
- setBreakOnEnter(breakOnEnter) {
223
- this.breakOnEnter = breakOnEnter;
224
- }
225
- destroy() {
226
- this.quill.off('selection-change', this.selectionChangeHandler);
227
- this.quill.off('text-change', this.textChangeHandler);
228
- this.esc$.unsubscribe();
229
- this.enter$.unsubscribe();
230
- this.stateSub.unsubscribe();
231
- this.maxLengthSubscription?.unsubscribe();
232
- }
233
- isToolDisabled(tool) {
234
- return this.stateSub.value.disabledTools.includes(tool);
235
- }
236
- urlMatcher(node, delta) {
237
- if (typeof node.data !== 'string')
238
- return;
239
- var matches = node.data.match(URL_REGEX);
240
- if (matches && matches.length > 0) {
241
- let text = '';
242
- const selection = this.quill.getSelection(true);
243
- if (selection.length)
244
- text = this.quill.getText(selection.index, selection.length);
245
- var ops = [];
246
- var str = node.data;
247
- matches.forEach(function (match) {
248
- var split = str.split(match);
249
- var beforeLink = split.shift();
250
- ops.push({ insert: beforeLink });
251
- ops.push({ insert: text || match, attributes: { link: match } });
252
- str = split.join(match);
253
- });
254
- ops.push({ insert: str });
255
- delta.ops = ops;
256
- }
257
- return delta;
258
- }
259
- listenEditorChanges() {
260
- this.quill.on('selection-change', this.selectionChangeHandler);
261
- this.quill.on('text-change', this.textChangeHandler);
262
- }
263
- update() {
264
- let bounds;
265
- let formatsArr;
266
- const range = this.quill.getSelection(false);
267
- if (range) {
268
- bounds = this.quill.getBounds(range.index, range.length);
269
- formatsArr = this.quill.getFormat(range);
270
- }
271
- const formats = {
272
- italic: formatsArr?.italic || false,
273
- bold: formatsArr?.bold || false,
274
- underline: formatsArr?.underline || false,
275
- strike: formatsArr?.strike || false,
276
- link: formatsArr?.link || '',
277
- list_bulleted: formatsArr?.list === 'bullet',
278
- list_numbered: formatsArr?.list === 'ordered',
279
- justify_left: formatsArr?.align === 'left',
280
- justify_center: formatsArr?.align === 'center',
281
- justify_right: formatsArr?.align === 'right',
282
- };
283
- const hasSelection = !!range?.length;
284
- const hasFocus = !!range;
285
- const newState = {
286
- ...this.stateSub.value,
287
- hasSelection,
288
- formats,
289
- bounds,
290
- hasFocus
291
- };
292
- this.ngZone.run(() => {
293
- this.stateSub.next(newState);
294
- this.cd.markForCheck();
295
- });
296
- }
297
- }
298
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmljaHRleHQtd3JhcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fza3N1aXRlLWNpdHJ1cy9zcmMvbGliL2NsYXNzZXMvcmljaHRleHQtd3JhcHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBZ0IsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFRdEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRzVELE1BQU0sT0FBTyxlQUFlO0lBeUUxQixJQUFXLEtBQUs7UUFDWixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFBO0lBQzlCLENBQUM7SUFJRCxJQUFXLGtCQUFrQjtRQUMzQixPQUFPLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLGFBQWEsQ0FBQzthQUN4QyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELElBQVcsZ0JBQWdCO1FBQ3pCLE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsa0JBQWtCLENBQUM7YUFDN0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsSUFBVyxhQUFhO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQTtJQUNqQyxDQUFDO0lBRUQsSUFBVyxZQUFZO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRUQsWUFDVSxNQUFjLEVBQ2Qs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QUFFLElBQUksSUFBSSxLQUFLO1lBQy9CLFNBQVMsRUFBRSxVQUFVLEVBQUUsU0FBUyxJQUFJLEtBQUs7WUFDekMsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLElBQUksS0FBSztZQUNuQyxJQUFJLEVBQUUsVUFBVSxFQUFFLElBQUksSUFBSSxFQUFFO1lBQzVCLGFBQWEsRUFBRSxVQUFVLEVBQUUsSUFBSSxLQUFLLFFBQVE7WUFDNUMsYUFBYSxFQUFFLFVBQVUsRUFBRSxJQUFJLEtBQUssU0FBUztZQUM3QyxZQUFZLEVBQUUsVUFBVSxFQUFFLEtBQUssS0FBSyxNQUFNO1lBQzFDLGNBQWMsRUFBRSxVQUFVLEVBQUUsS0FBSyxLQUFLLFFBQVE7WUFDOUMsYUFBYSxFQUFFLFVBQVUsRUFBRSxLQUFLLEtBQUssT0FBTztTQUM3QyxDQUFDO1FBRUYsTUFBTSxZQUFZLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUM7UUFDckMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUV6QixNQUFNLFFBQVEsR0FBZTtZQUMzQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSztZQUN0QixZQUFZO1lBQ1osT0FBTztZQUNQLE1BQU07WUFDTixRQUFRO1NBQ1QsQ0FBQztRQUVGLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNuQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM3QixJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIEVsZW1lbnRSZWYsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IFF1aWxsLCB7IEJvdW5kc1N0YXRpYywgUmFuZ2VTdGF0aWMsIFNlbGVjdGlvbkNoYW5nZUhhbmRsZXIsIFNvdXJjZXMsIFRleHRDaGFuZ2VIYW5kbGVyIH0gZnJvbSAncXVpbGwnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIGZpbHRlciwgZnJvbUV2ZW50LCBtYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIFJpY2hUZXh0RnVuY3Rpb25zLFxuICBSaWNodGV4dEZvcm1hdHMsXG4gIFRvb2wsXG4gIFRvb2xLZXlzLFxuICBUb29sc1N0YXRlLFxufSBmcm9tICcuLi9pbnRlcmZhY2VzL3JpY2h0ZXh0LXRvb2xib3guaW50ZXJmYWNlJztcbmltcG9ydCB7IFVSTF9SRUdFWCB9IGZyb20gJy4uL2NvbnN0YW50cy91cmwtcmVnZXguY29uc3RhbnQnO1xuaW1wb3J0IHsgUXVpbGxCdWlsZGVyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3F1aWxsLWJ1aWxkZXIuc2VydmljZSc7XG5cbmV4cG9ydCBjbGFzcyBSaWNodGV4dFdyYXBwZXIgaW1wbGVtZW50cyBSaWNoVGV4dEZ1bmN0aW9ucyB7XG4gIHByaXZhdGUgcXVpbGwhOiBRdWlsbDtcbiAgcHJpdmF0ZSBzdGF0ZVN1YiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VG9vbHNTdGF0ZT4oe1xuICAgIGhhc1NlbGVjdGlvbjogZmFsc2UsXG4gICAgaGFzRm9jdXM6IGZhbHNlLFxuICAgIGZvcm1hdHM6IHtcbiAgICAgIGl0YWxpYzogZmFsc2UsXG4gICAgICBib2xkOiBmYWxzZSxcbiAgICAgIHVuZGVybGluZTogZmFsc2UsXG4gICAgICBzdHJpa2U6IGZhbHNlLFxuICAgICAgbGluazogJycsXG4gICAgICBsaXN0X2J1bGxldGVkOiBmYWxzZSxcbiAgICAgIGxpc3RfbnVtYmVyZWQ6IGZhbHNlLFxuICAgICAganVzdGlmeV9sZWZ0OiBmYWxzZSxcbiAgICAgIGp1c3RpZnlfY2VudGVyOiBmYWxzZSxcbiAgICAgIGp1c3RpZnlfcmlnaHQ6IGZhbHNlLFxuICAgIH0sXG4gICAgZGlzYWJsZWRUb29sczogW11cbiAgfSk7XG4gIHByaXZhdGUgZXNjJCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIHByaXZhdGUgZW50ZXIkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgcHJpdmF0ZSBtYXhMZW5ndGggPSAtMTtcbiAgcHJpdmF0ZSBicmVha09uRW50ZXIgPSBmYWxzZTtcblxuICBwcml2YXRlIHRleHRDaGFuZ2VIYW5kbGVyOiBUZXh0Q2hhbmdlSGFuZGxlciA9ICgpID0+IHtcbiAgICB0aGlzLnVwZGF0ZSgpO1xuICB9O1xuXG4gIHByaXZhdGUgc2VsZWN0aW9uQ2hhbmdlSGFuZGxlcjogU2VsZWN0aW9uQ2hhbmdlSGFuZGxlciA9IChcbiAgICB2YWx1ZTogUmFuZ2VTdGF0aWMsXG4gICAgb2xkUmFuZ2U6IFJhbmdlU3RhdGljLFxuICAgIHNvdXJjZTogU291cmNlc1xuICApID0+IHtcbiAgICB0aGlzLnVwZGF0ZSgpO1xuICB9O1xuXG4gIHByaXZhdGUgYmluZGluZ3MgPSB7XG4gICAgYm9sZDoge1xuICAgICAgaGFuZGxlcjogKCkgPT4ge1xuICAgICAgICB0aGlzLnNldEJvbGQoKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfSxcbiAgICB9LFxuICAgIGl0YWxpYzoge1xuICAgICAgaGFuZGxlcjogKCkgPT4ge1xuICAgICAgICB0aGlzLnNldEl0YWxpYygpO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9LFxuICAgIH0sXG4gICAgdW5kZXJsaW5lOiB7XG4gICAgICBoYW5kbGVyOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuc2V0VW5kZXJsaW5lKCk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH0sXG4gICAgfSxcbiAgICBlc2NhcGU6e1xuICAgICAga2V5OiAnZXNjYXBlJyxcbiAgICAgIGhhbmRsZXI6ICgpID0+IHtcbiAgICAgICAgdGhpcy5lc2MkLm5leHQodHJ1ZSk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9LFxuICAgIGVudGVyOiB7XG4gICAgICBrZXk6ICdlbnRlcicsXG4gICAgICBoYW5kbGVyOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuZW50ZXIkLm5leHQodHJ1ZSk7XG4gICAgICAgIHJldHVybiB0aGlzLmJyZWFrT25FbnRlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgfTtcbiAgcHJpdmF0ZSBtYXhMZW5ndGhTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG5cbiAgcHVibGljIGdldCBzdGF0ZSgpe1xuICAgICAgcmV0dXJuIHRoaXMuc3RhdGVTdWIudmFsdWVcbiAgfVxuICBcbiAgcHVibGljIHN0YXRlJCA9IHRoaXMuc3RhdGVTdWIuYXNPYnNlcnZhYmxlKCk7XG4gICAgXG4gIHB1YmxpYyBnZXQgbGlzdGVuVGV4dENoYW5nZXMkKCl7XG4gICAgcmV0dXJuIGZyb21FdmVudCh0aGlzLnF1aWxsLCAndGV4dC1jaGFuZ2UnKVxuICAgICAgLnBpcGUobWFwKCgpID0+IHRoaXMucXVpbGwucm9vdC5pbm5lckhUTUwpKTsgXG4gIH1cblxuICBwdWJsaWMgZ2V0IGxpc3Rlbk9uVG91Y2hlZCQoKXtcbiAgICByZXR1cm4gZnJvbUV2ZW50KHRoaXMucXVpbGwsICdzZWxlY3Rpb24tY2hhbmdlJylcbiAgICAgIC5waXBlKG1hcCgoKSA9PiAhdGhpcy5xdWlsbC5nZXRTZWxlY3Rpb24oZmFsc2UpKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGxpc3RlbkVzY2FwZSQoKXtcbiAgICByZXR1cm4gdGhpcy5lc2MkLmFzT2JzZXJ2YWJsZSgpXG4gIH1cblxuICBwdWJsaWMgZ2V0IGxpc3RlbkVudGVyJCgpe1xuICAgIHJldHVybiB0aGlzLmVudGVyJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXG4gICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBxdWlsbEJ1aWxkZXI6IFF1aWxsQnVpbGRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgKSB7XG4gICAgY29uc3QgUXVpbGwgPSB0aGlzLnF1aWxsQnVpbGRlci5nZXRRdWlsbCgpO1xuICAgIGNvbnN0IGVkaXRvcklkID0gYGVkaXRvci0ke25ldyBEYXRlKCkuZ2V0VGltZSgpfWA7XG4gICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCdpZCcsIGVkaXRvcklkKTtcbiAgICB0aGlzLnF1aWxsID0gbmV3IFF1aWxsKGAjJHtlZGl0b3JJZH1gLCB7XG4gICAgICBwbGFjZWhvbGRlcjogJycsXG4gICAgICBtb2R1bGVzOiB7XG4gICAgICAgIGNsaXBib2FyZDoge1xuICAgICAgICAgIG1hdGNoZXJzOiBbW05vZGUuVEVYVF9OT0RFLCB0aGlzLnVybE1hdGNoZXIuYmluZCh0aGlzKV1dLFxuICAgICAgICB9LFxuICAgICAgICBrZXlib2FyZDogeyBiaW5kaW5nczogdGhpcy5iaW5kaW5ncyB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgICB0aGlzLnF1aWxsLnJvb3Quc2V0QXR0cmlidXRlKCdzcGVsbGNoZWNrJywgJ2ZhbHNlJylcbiAgICB0aGlzLmxpc3RlbkVkaXRvckNoYW5nZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRJdGFsaWMoKSB7XG4gICAgaWYodGhpcy5pc1Rvb2xEaXNhYmxlZCgnaXRhbGljJykpIHJldHVybjtcbiAgICB0aGlzLnF1aWxsLmZvcm1hdCgnaXRhbGljJywgIXRoaXMuc3RhdGUuZm9ybWF0cy5pdGFsaWMpO1xuICAgIHRoaXMudXBkYXRlKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0Qm9sZCgpIHtcbiAgICBpZih0aGlzLmlzVG9vbERpc2FibGVkKCdib2xkJykpIHJldHVyblxuICAgIHRoaXMucXVpbGwuZm9ybWF0KCdib2xkJywgIXRoaXMuc3RhdGUuZm9ybWF0cy5ib2xkKTtcbiAgICB0aGlzLnVwZGF0ZSgpO1xuICB9XG5cbiAgcHVibGljIHNldFVuZGVybGluZSgpIHtcbiAgICBpZih0aGlzLmlzVG9vbERpc2FibGVkKCd1bmRlcmxpbmUnKSkgcmV0dXJuO1xuICAgIHRoaXMucXVpbGwuZm9ybWF0KCd1bmRlcmxpbmUnLCAhdGhpcy5zdGF0ZS5mb3JtYXRzLnVuZGVybGluZSk7XG4gICAgdGhpcy51cGRhdGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRTdHJpa2UoKSB7XG4gICAgaWYodGhpcy5pc1Rvb2xEaXNhYmxlZCgnc3RyaWtlJykpIHJldHVybjtcbiAgICB0aGlzLnF1aWxsLmZvcm1hdCgnc3RyaWtlJywgIXRoaXMuc3RhdGUuZm9ybWF0cy5zdHJpa2UpO1xuICAgIHRoaXMudXBkYXRlKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0TGlzdE51bWJlcmVkKCkge1xuICAgIGlmKHRoaXMuaXNUb29sRGlzYWJsZWQoJ2xpc3RfbnVtYmVyZWQnKSkgcmV0dXJuO1xuICAgIGlmICh0aGlzLnN0YXRlLmZvcm1hdHMubGlzdF9udW1iZXJlZClcbiAgICAgIHRoaXMucXVpbGwuZm9ybWF0KCdsaXN0JywgbnVsbCk7XG4gICAgZWxzZSAgXG4gICAgICB0aGlzLnF1aWxsLmZvcm1hdCgnbGlzdCcsICdvcmRlcmVkJyk7XG4gICAgdGhpcy51cGRhdGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRMaXN0QnVsbGV0ZWQoKSB7XG4gICAgaWYodGhpcy5pc1Rvb2xEaXNhYmxlZCgnbGlzdF9idWxsZXRlZCcpKSByZXR1cm47XG4gICAgaWYgKHRoaXMuc3RhdGUuZm9ybWF0cy5saXN0X2J1bGxldGVkKVxuICAgICAgdGhpcy5xdWlsbC5mb3JtYXQoJ2xpc3QnLCBudWxsKTtcbiAgICBlbHNlICBcbiAgICAgIHRoaXMucXVpbGwuZm9ybWF0KCdsaXN0JywgJ2J1bGxldGVkJyk7XG4gICAgdGhpcy51cGRhdGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRMaW5rKGxpbms6IHN0cmluZykge1xuICAgIGlmKHRoaXMuaXNUb29sRGlzYWJsZWQoJ2xpbmsnKSkgcmV0dXJuO1xuXG4gICAgY29uc3QgcmFuZ2UgPSB0aGlzLnF1aWxsLmdldFNlbGVjdGlvbih0cnVlKTtcblxuICAgIGlmIChyYW5nZSAmJiAhcmFuZ2UubGVuZ3RoKSB7XG4gICAgICBjb25zdCBbdGV4dEJsb2F0LCBvZmZzZXRdID0gdGhpcy5xdWlsbC5nZXRMZWFmKHJhbmdlIS5pbmRleCk7XG5cbiAgICAgIGNvbnN0IHN0YXJ0ID0gcmFuZ2UhLmluZGV4IC0gb2Zmc2V0O1xuICAgICAgY29uc3QgbGVuZ3RoID0gdGV4dEJsb2F0Lmxlbmd0aCgpO1xuXG4gICAgICB0aGlzLnF1aWxsLmZvcm1hdFRleHQoc3RhcnQsIGxlbmd0aCwgJ2xpbmsnLCBsaW5rKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5xdWlsbC5mb3JtYXQoJ2xpbmsnLCBsaW5rKTtcbiAgICB9XG5cbiAgICB0aGlzLnVwZGF0ZSgpO1xuICB9XG5cbiAgcHVibGljIHNldEp1c3RpZnlMZWZ0KCkge1xuICAgIGlmKHRoaXMuaXNUb29sRGlzYWJsZWQoJ2p1c3RpZnlfbGVmdCcpKSByZXR1cm47XG4gICAgdGhpcy5xdWlsbC5mb3JtYXQoJ2FsaWduJywgbnVsbCk7XG4gICAgdGhpcy51cGRhdGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRKdXN0aWZ5Q2VudGVyKCkge1xuICAgIGlmKHRoaXMuaXNUb29sRGlzYWJsZWQoJ2p1c3RpZnlfY2VudGVyJykpIHJldHVybjtcbiAgICB0aGlzLnF1aWxsLmZvcm1hdCgnYWxpZ24nLCAnY2VudGVyJyk7XG4gICAgdGhpcy51cGRhdGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRKdXN0aWZ5UmlnaHQoKSB7XG4gICAgaWYodGhpcy5pc1Rvb2xEaXNhYmxlZCgnanVzdGlmeV9yaWdodCcpKSByZXR1cm47XG4gICAgdGhpcy5xdWlsbC5mb3JtYXQoJ2FsaWduJywgJ3JpZ2h0Jyk7XG4gICAgdGhpcy51cGRhdGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRSZW1vdmUoKSB7XG4gICAgY29uc3Qgc2VsZWN0aW9uID0gdGhpcy5xdWlsbC5nZXRTZWxlY3Rpb24oKTtcbiAgICBpZiAoc2VsZWN0aW9uKSB0aGlzLnF1aWxsLnJlbW92ZUZvcm1hdChzZWxlY3Rpb24hLmluZGV4LCBzZWxlY3Rpb24hLmxlbmd0aCk7XG4gICAgdGhpcy51cGRhdGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRQbGFjZWhvbGRlcihwbGFjZWhvbGRlcjogc3RyaW5nKXtcbiAgICB0aGlzLnF1aWxsLnJvb3QuZGF0YXNldFsncGxhY2Vob2xkZXInXSA9IHBsYWNlaG9sZGVyO1xuICB9XG5cbiAgcHVibGljIHNldFRleHQodGV4dDogc3RyaW5nKXtcbiAgICB0aGlzLnF1aWxsLnNldENvbnRlbnRzKHRoaXMucXVpbGwuY2xpcGJvYXJkLmNvbnZlcnQodGV4dCkpO1xuICB9XG5cbiAgcHVibGljIHNldE1heExlbmd0aChsZW5ndGg6IG51bWJlcil7XG4gICAgdGhpcy5tYXhMZW5ndGggPSBsZW5ndGg7XG5cbiAgICB0aGlzLm1heExlbmd0aFN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICBpZih0aGlzLm1heExlbmd0aCA+IDApXG4gICAgICB0aGlzLm1heExlbmd0aFN1YnNjcmlwdGlvbiA9IFxuICAgICAgICBmcm9tRXZlbnQodGhpcy5xdWlsbCwgJ3RleHQtY2hhbmdlJylcbiAgICAgICAgLnBpcGUoZmlsdGVyKCgpID0+IHRoaXMucXVpbGwuZ2V0TGVuZ3RoKCkgPiB0aGlzLm1heExlbmd0aCkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMucXVpbGwuZGVsZXRlVGV4dCh0aGlzLm1heExlbmd0aCwgdGhpcy5xdWlsbC5nZXRMZW5ndGgoKSk7XG4gICAgICB9KVxuICB9XG5cbiAgcHVibGljIHNldERpc2FibGVkVG9vbHModG9vbHM6IFRvb2xLZXlzKXtcbiAgICBpZihKU09OLnN0cmluZ2lmeSh0b29scykgIT09IEpTT04uc3RyaW5naWZ5KHRoaXMuc3RhdGVTdWIudmFsdWUuZGlzYWJsZWRUb29scykpXG4gICAgICB0aGlzLnN0YXRlU3ViLm5leHQoey4uLnRoaXMuc3RhdGVTdWIudmFsdWUsIGRpc2FibGVkVG9vbHM6IHRvb2xzLCB9KVxuICB9XG5cbiAgcHVibGljIHNldEVkaXRvckNsYXNzKGNsYXNzTmFtZTogc3RyaW5nKXtcbiAgICBpZighY2xhc3NOYW1lKSByZXR1cm47XG4gICAgdGhpcy5xdWlsbC5yb290LmNsYXNzTGlzdC5hZGQoY2xhc3NOYW1lKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRFZGl0b3JFbGVtZW50KCl7XG4gICAgcmV0dXJuIHRoaXMucXVpbGwucm9vdDtcbiAgfVxuXG4gIHB1YmxpYyBkaXNhYmxlKCl7XG4gICAgdGhpcy5xdWlsbC5kaXNhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZW5hYmxlKCl7XG4gICAgdGhpcy5xdWlsbC5lbmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBmb2N1cygpe1xuICAgIHRoaXMucXVpbGwuZm9jdXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRCcmVha09uRW50ZXIoYnJlYWtPbkVudGVyOiBib29sZWFuKXtcbiAgICB0aGlzLmJyZWFrT25FbnRlciA9IGJyZWFrT25FbnRlcjtcbiAgfVxuXG4gIHB1YmxpYyBkZXN0cm95KCkge1xuICAgIHRoaXMucXVpbGwub2ZmKCdzZWxlY3Rpb24tY2hhbmdlJywgdGhpcy5zZWxlY3Rpb25DaGFuZ2VIYW5kbGVyKTtcbiAgICB0aGlzLnF1aWxsLm9mZigndGV4dC1jaGFuZ2UnLCB0aGlzLnRleHRDaGFuZ2VIYW5kbGVyKTtcbiAgICB0aGlzLmVzYyQudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmVudGVyJC51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuc3RhdGVTdWIudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLm1heExlbmd0aFN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNUb29sRGlzYWJsZWQodG9vbDogVG9vbCl7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGVTdWIudmFsdWUuZGlzYWJsZWRUb29scy5pbmNsdWRlcyh0b29sKVxuICB9XG5cbiAgcHJpdmF0ZSB1cmxNYXRjaGVyKG5vZGU6IGFueSwgZGVsdGE6IGFueSkge1xuICAgIGlmICh0eXBlb2Ygbm9kZS5kYXRhICE9PSAnc3RyaW5nJykgcmV0dXJuO1xuICAgIHZhciBtYXRjaGVzID0gbm9kZS5kYXRhLm1hdGNoKFVSTF9SRUdFWCk7XG5cbiAgICBpZiAobWF0Y2hlcyAmJiBtYXRjaGVzLmxlbmd0aCA+IDApIHtcbiAgICAgIGxldCB0ZXh0ID0gJyc7XG4gICAgICBjb25zdCBzZWxlY3Rpb24gPSB0aGlzLnF1aWxsLmdldFNlbGVjdGlvbih0cnVlKTtcbiAgICAgIGlmIChzZWxlY3Rpb24ubGVuZ3RoKVxuICAgICAgICB0ZXh0ID0gdGhpcy5xdWlsbC5nZXRUZXh0KHNlbGVjdGlvbiEuaW5kZXgsIHNlbGVjdGlvbiEubGVuZ3RoKTtcblxuICAgICAgdmFyIG9wcyA9IFtdO1xuICAgICAgdmFyIHN0ciA9IG5vZGUuZGF0YTtcbiAgICAgIG1hdGNoZXMuZm9yRWFjaChmdW5jdGlvbiAobWF0Y2g6IGFueSkge1xuICAgICAgICB2YXIgc3BsaXQgPSBzdHIuc3BsaXQobWF0Y2gpO1xuICAgICAgICB2YXIgYmVmb3JlTGluayA9IHNwbGl0LnNoaWZ0KCk7XG4gICAgICAgIG9wcy5wdXNoKHsgaW5zZXJ0OiBiZWZvcmVMaW5rIH0pO1xuICAgICAgICBvcHMucHVzaCh7IGluc2VydDogdGV4dCB8fCBtYXRjaCwgYXR0cmlidXRlczogeyBsaW5rOiBtYXRjaCB9IH0pO1xuICAgICAgICBzdHIgPSBzcGxpdC5qb2luKG1hdGNoKTtcbiAgICAgIH0pO1xuICAgICAgb3BzLnB1c2goeyBpbnNlcnQ6IHN0ciB9KTtcbiAgICAgIGRlbHRhLm9wcyA9IG9wcztcbiAgICB9XG5cbiAgICByZXR1cm4gZGVsdGE7XG4gIH1cblxuICBwcml2YXRlIGxpc3RlbkVkaXRvckNoYW5nZXMoKSB7XG4gICAgdGhpcy5xdWlsbC5vbignc2VsZWN0aW9uLWNoYW5nZScsIHRoaXMuc2VsZWN0aW9uQ2hhbmdlSGFuZGxlcik7XG4gICAgdGhpcy5xdWlsbC5vbigndGV4dC1jaGFuZ2UnLCB0aGlzLnRleHRDaGFuZ2VIYW5kbGVyKTtcbiAgfVxuXG5cbiAgcHJpdmF0ZSB1cGRhdGUoKSB7XG4gICAgbGV0IGJvdW5kczogQm91bmRzU3RhdGljIHwgdW5kZWZpbmVkO1xuICAgIGxldCBmb3JtYXRzQXJyO1xuXG4gICAgY29uc3QgcmFuZ2UgPSB0aGlzLnF1aWxsLmdldFNlbGVjdGlvbihmYWxzZSk7XG4gICAgaWYgIChyYW5nZSl7IFxuICAgICAgYm91bmRzID0gdGhpcy5xdWlsbC5nZXRCb3VuZHMocmFuZ2UuaW5kZXgsIHJhbmdlLmxlbmd0aCk7XG4gICAgICBmb3JtYXRzQXJyID0gdGhpcy5xdWlsbC5nZXRGb3JtYXQocmFuZ2UpIGFzIGFueTtcbiAgICB9XG5cbiAgICBjb25zdCBmb3JtYXRzOiBSaWNodGV4dEZvcm1hdHMgPSB7XG4gICAgICBpdGFsaWM6IGZvcm1hdHNBcnI/Lml0YWxpYyB8fCBmYWxzZSxcbiAgICAgIGJvbGQ6IGZvcm1hdHNBcnI/LmJvbGQgfHwgZmFsc2UsXG4gICAgICB1bmRlcmxpbmU6IGZvcm1hdHNBcnI/LnVuZGVybGluZSB8fCBmYWxzZSxcbiAgICAgIHN0cmlrZTogZm9ybWF0c0Fycj8uc3RyaWtlIHx8IGZhbHNlLFxuICAgICAgbGluazogZm9ybWF0c0Fycj8ubGluayB8fCAnJyxcbiAgICAgIGxpc3RfYnVsbGV0ZWQ6IGZvcm1hdHNBcnI/Lmxpc3QgPT09ICdidWxsZXQnLFxuICAgICAgbGlzdF9udW1iZXJlZDogZm9ybWF0c0Fycj8ubGlzdCA9PT0gJ29yZGVyZWQnLFxuICAgICAganVzdGlmeV9sZWZ0OiBmb3JtYXRzQXJyPy5hbGlnbiA9PT0gJ2xlZnQnLFxuICAgICAganVzdGlmeV9jZW50ZXI6IGZvcm1hdHNBcnI/LmFsaWduID09PSAnY2VudGVyJyxcbiAgICAgIGp1c3RpZnlfcmlnaHQ6IGZvcm1hdHNBcnI/LmFsaWduID09PSAncmlnaHQnLFxuICAgIH07XG5cbiAgICBjb25zdCBoYXNTZWxlY3Rpb24gPSAhIXJhbmdlPy5sZW5ndGg7XG4gICAgY29uc3QgaGFzRm9jdXMgPSAhIXJhbmdlO1xuXG4gICAgY29uc3QgbmV3U3RhdGU6IFRvb2xzU3RhdGUgPSB7IFxuICAgICAgLi4udGhpcy5zdGF0ZVN1Yi52YWx1ZSwgXG4gICAgICBoYXNTZWxlY3Rpb24sIFxuICAgICAgZm9ybWF0cywgXG4gICAgICBib3VuZHMsIFxuICAgICAgaGFzRm9jdXMgXG4gICAgfTtcblxuICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICB0aGlzLnN0YXRlU3ViLm5leHQobmV3U3RhdGUpO1xuICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICB9KVxuICB9XG59XG4iXX0=
@@ -1,46 +0,0 @@
1
- import { Toolbox } from "./toolbox";
2
- const TOOLBOX_HEIGHT = 40;
3
- const MARGIN = 8;
4
- const MOUSE_EVENT = 'mouseup';
5
- export class BubbleStrategy extends Toolbox {
6
- constructor(injector) {
7
- super(injector);
8
- this.listenOutsideClicks();
9
- }
10
- move(bounds) {
11
- this.renderer2.setStyle(this.componentEl, 'top', `${bounds.top - (TOOLBOX_HEIGHT + MARGIN)}px`);
12
- this.renderer2.setStyle(this.componentEl, 'left', `${bounds.left}px`);
13
- }
14
- listenOutsideClicks() {
15
- this.clickListener = (event) => {
16
- if (!this.componentEl?.contains(event.target)
17
- && this.isVisible()) {
18
- this.destroyComponent();
19
- }
20
- };
21
- document.body.addEventListener(MOUSE_EVENT, this.clickListener);
22
- }
23
- onToolsChanged(state) {
24
- super.onToolsChanged(state);
25
- const { hasSelection, hasFocus, bounds } = state;
26
- if (hasSelection && bounds) {
27
- if (!this.isVisible())
28
- this.displayComponent();
29
- this.move(bounds);
30
- }
31
- else {
32
- if (this.isVisible() && hasFocus)
33
- this.destroyComponent();
34
- }
35
- }
36
- displayComponent() {
37
- super.displayComponent();
38
- this.renderer2.appendChild(this.hostEl?.nativeElement, this.componentEl);
39
- this.componentRef.setInput('type', 'bubble');
40
- }
41
- destroyAll() {
42
- document.body.removeEventListener(MOUSE_EVENT, this.clickListener);
43
- super.destroyAll();
44
- }
45
- }
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJveC1idWJibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc2tzdWl0ZS1jaXRydXMvc3JjL2xpYi9jbGFzc2VzL3Rvb2xib3gtYnViYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFHcEMsTUFBTSxjQUFjLEdBQUcsRUFBRSxDQUFDO0FBQzFCLE1BQU0sTUFBTSxHQUFHLENBQUMsQ0FBQztBQUNqQixNQUFNLFdBQVcsR0FBRyxTQUFTLENBQUE7QUFFN0IsTUFBTSxPQUFPLGNBQWUsU0FBUSxPQUFPO0lBR3ZDLFlBQVksUUFBa0I7UUFDNUIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2hCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFTyxJQUFJLENBQUMsTUFBb0I7UUFDL0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBQyxLQUFLLEVBQUMsR0FBRyxNQUFNLENBQUMsR0FBRyxHQUFHLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5RixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFDLE1BQU0sRUFBQyxHQUFHLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFTyxtQkFBbUI7UUFDekIsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQzdCLElBQ0UsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBYyxDQUFDO21CQUM5QyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQ3BCO2dCQUNDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO2FBQ3pCO1FBQ0gsQ0FBQyxDQUFBO1FBQ0QsUUFBUSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFUSxjQUFjLENBQUMsS0FBaUI7UUFDdkMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUMzQixNQUFNLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFDakQsSUFBSSxZQUFZLElBQUksTUFBTSxFQUFFO1lBQzFCLElBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUNsQixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ25CO2FBQU07WUFDTCxJQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxRQUFRO2dCQUM3QixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztTQUMzQjtJQUNILENBQUM7SUFFUSxnQkFBZ0I7UUFDdkIsS0FBSyxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxhQUFhLEVBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxZQUFhLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBQyxRQUFRLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRVEsVUFBVTtRQUNqQixRQUFRLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsYUFBYyxDQUFDLENBQUM7UUFDcEUsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3JCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdG9yIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEJvdW5kc1N0YXRpYyB9IGZyb20gXCJxdWlsbFwiO1xuaW1wb3J0IHsgVG9vbGJveCB9IGZyb20gXCIuL3Rvb2xib3hcIjtcbmltcG9ydCB7IFRvb2xzU3RhdGUgfSBmcm9tIFwiLi4vaW50ZXJmYWNlcy9yaWNodGV4dC10b29sYm94LmludGVyZmFjZVwiO1xuXG5jb25zdCBUT09MQk9YX0hFSUdIVCA9IDQwO1xuY29uc3QgTUFSR0lOID0gODtcbmNvbnN0IE1PVVNFX0VWRU5UID0gJ21vdXNldXAnXG5cbmV4cG9ydCBjbGFzcyBCdWJibGVTdHJhdGVneSBleHRlbmRzIFRvb2xib3gge1xuICAgIHByaXZhdGUgY2xpY2tMaXN0ZW5lcj86IChldmVudDogTW91c2VFdmVudCkgPT4gdm9pZDtcbiAgXG4gICAgY29uc3RydWN0b3IoaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgICBzdXBlcihpbmplY3Rvcik7XG4gICAgICB0aGlzLmxpc3Rlbk91dHNpZGVDbGlja3MoKTtcbiAgICB9XG4gIFxuICAgIHByaXZhdGUgbW92ZShib3VuZHM6IEJvdW5kc1N0YXRpYykge1xuICAgICAgdGhpcy5yZW5kZXJlcjIuc2V0U3R5bGUodGhpcy5jb21wb25lbnRFbCwndG9wJyxgJHtib3VuZHMudG9wIC0gKFRPT0xCT1hfSEVJR0hUICsgTUFSR0lOKX1weGApO1xuICAgICAgdGhpcy5yZW5kZXJlcjIuc2V0U3R5bGUodGhpcy5jb21wb25lbnRFbCwnbGVmdCcsYCR7Ym91bmRzLmxlZnR9cHhgKTtcbiAgICB9XG4gIFxuICAgIHByaXZhdGUgbGlzdGVuT3V0c2lkZUNsaWNrcygpe1xuICAgICAgdGhpcy5jbGlja0xpc3RlbmVyID0gKGV2ZW50KSA9PiB7XG4gICAgICAgIGlmKFxuICAgICAgICAgICF0aGlzLmNvbXBvbmVudEVsPy5jb250YWlucyhldmVudC50YXJnZXQgYXMgTm9kZSkgXG4gICAgICAgICAgJiYgdGhpcy5pc1Zpc2libGUoKVxuICAgICAgICApe1xuICAgICAgICAgIHRoaXMuZGVzdHJveUNvbXBvbmVudCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoTU9VU0VfRVZFTlQsIHRoaXMuY2xpY2tMaXN0ZW5lcik7XG4gICAgfVxuICAgIFxuICAgIG92ZXJyaWRlIG9uVG9vbHNDaGFuZ2VkKHN0YXRlOiBUb29sc1N0YXRlKTogdm9pZCB7XG4gICAgICBzdXBlci5vblRvb2xzQ2hhbmdlZChzdGF0ZSlcbiAgICAgIGNvbnN0IHsgaGFzU2VsZWN0aW9uLCBoYXNGb2N1cywgYm91bmRzIH0gPSBzdGF0ZTtcbiAgICAgIGlmIChoYXNTZWxlY3Rpb24gJiYgYm91bmRzKSB7XG4gICAgICAgIGlmKCF0aGlzLmlzVmlzaWJsZSgpKVxuICAgICAgICAgIHRoaXMuZGlzcGxheUNvbXBvbmVudCgpO1xuICAgICAgICB0aGlzLm1vdmUoYm91bmRzKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmKHRoaXMuaXNWaXNpYmxlKCkgJiYgaGFzRm9jdXMpXG4gICAgICAgICAgdGhpcy5kZXN0cm95Q29tcG9uZW50KCk7XG4gICAgICB9XG4gICAgfVxuICBcbiAgICBvdmVycmlkZSBkaXNwbGF5Q29tcG9uZW50KCkge1xuICAgICAgc3VwZXIuZGlzcGxheUNvbXBvbmVudCgpO1xuICAgICAgdGhpcy5yZW5kZXJlcjIuYXBwZW5kQ2hpbGQodGhpcy5ob3N0RWw/Lm5hdGl2ZUVsZW1lbnQsdGhpcy5jb21wb25lbnRFbCk7XG4gICAgICB0aGlzLmNvbXBvbmVudFJlZiEuc2V0SW5wdXQoJ3R5cGUnLCdidWJibGUnKTtcbiAgICB9XG4gICAgXG4gICAgb3ZlcnJpZGUgZGVzdHJveUFsbCgpOiB2b2lkIHtcbiAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlRXZlbnRMaXN0ZW5lcihNT1VTRV9FVkVOVCwgdGhpcy5jbGlja0xpc3RlbmVyISk7XG4gICAgICBzdXBlci5kZXN0cm95QWxsKCk7XG4gICAgfVxuICB9Il19
@@ -1,34 +0,0 @@
1
- import { Toolbox } from "./toolbox";
2
- export class TopbarStrategy extends Toolbox {
3
- constructor(injector) {
4
- super(injector);
5
- this.displayComponent();
6
- }
7
- displayComponent() {
8
- super.displayComponent();
9
- const parentElement = this.renderer2.parentNode(this.hostEl?.nativeElement);
10
- this.renderer2.appendChild(parentElement, this.componentEl);
11
- this.renderer2.appendChild(parentElement, this.hostEl?.nativeElement);
12
- this.componentRef.setInput('type', 'topbar');
13
- }
14
- prepareUpdatedTools(toolState) {
15
- const toolbarItems = super.prepareUpdatedTools(toolState);
16
- const { formats, hasSelection, hasFocus } = toolState;
17
- toolbarItems.forEach(tool => {
18
- if (!hasFocus) {
19
- tool.disabled = true;
20
- return;
21
- }
22
- if (tool.tool === 'clear') {
23
- tool.disabled = !hasSelection;
24
- }
25
- else if (tool.tool === 'link') {
26
- tool.selected = !!formats.link;
27
- tool.disabled = !hasSelection && !formats.link;
28
- tool.value = formats?.link;
29
- }
30
- });
31
- return toolbarItems;
32
- }
33
- }
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJveC10b3BiYXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc2tzdWl0ZS1jaXRydXMvc3JjL2xpYi9jbGFzc2VzL3Rvb2xib3gtdG9wYmFyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFHcEMsTUFBTSxPQUFPLGNBQWUsU0FBUSxPQUFPO0lBRXZDLFlBQVksUUFBa0I7UUFDNUIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2hCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFHUSxnQkFBZ0I7UUFDdkIsS0FBSyxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDekIsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsQ0FBQztRQUM1RSxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxZQUFhLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBQyxRQUFRLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRVEsbUJBQW1CLENBQUMsU0FBcUI7UUFDaEQsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzFELE1BQU0sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxHQUFHLFNBQVMsQ0FBQztRQUV0RCxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzFCLElBQUcsQ0FBQyxRQUFRLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUE7Z0JBQ3BCLE9BQU87YUFDUjtZQUVELElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxPQUFPLEVBQUU7Z0JBQ3pCLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxZQUFZLENBQUM7YUFDL0I7aUJBQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRTtnQkFDL0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztnQkFDL0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLFlBQVksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7Z0JBQy9DLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxFQUFFLElBQUksQ0FBQzthQUM1QjtRQUNILENBQUMsQ0FBQyxDQUFBO1FBQ0osT0FBTyxZQUFZLENBQUE7SUFDbkIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgVG9vbGJveCB9IGZyb20gXCIuL3Rvb2xib3hcIjtcbmltcG9ydCB7IFRvb2xiYXJJdGVtLCBUb29sc1N0YXRlIH0gZnJvbSBcIi4uL2ludGVyZmFjZXMvcmljaHRleHQtdG9vbGJveC5pbnRlcmZhY2VcIjtcblxuZXhwb3J0IGNsYXNzIFRvcGJhclN0cmF0ZWd5IGV4dGVuZHMgVG9vbGJveCB7XG5cbiAgICBjb25zdHJ1Y3RvcihpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICAgIHN1cGVyKGluamVjdG9yKTtcbiAgICAgIHRoaXMuZGlzcGxheUNvbXBvbmVudCgpO1xuICAgIH1cbiAgXG4gIFxuICAgIG92ZXJyaWRlIGRpc3BsYXlDb21wb25lbnQoKTogdm9pZCB7XG4gICAgICBzdXBlci5kaXNwbGF5Q29tcG9uZW50KCk7XG4gICAgICBjb25zdCBwYXJlbnRFbGVtZW50ID0gdGhpcy5yZW5kZXJlcjIucGFyZW50Tm9kZSh0aGlzLmhvc3RFbD8ubmF0aXZlRWxlbWVudCk7XG4gICAgICB0aGlzLnJlbmRlcmVyMi5hcHBlbmRDaGlsZChwYXJlbnRFbGVtZW50LHRoaXMuY29tcG9uZW50RWwpO1xuICAgICAgdGhpcy5yZW5kZXJlcjIuYXBwZW5kQ2hpbGQocGFyZW50RWxlbWVudCwgdGhpcy5ob3N0RWw/Lm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgdGhpcy5jb21wb25lbnRSZWYhLnNldElucHV0KCd0eXBlJywndG9wYmFyJyk7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgcHJlcGFyZVVwZGF0ZWRUb29scyh0b29sU3RhdGU6IFRvb2xzU3RhdGUpOiBUb29sYmFySXRlbVtde1xuICAgICAgY29uc3QgdG9vbGJhckl0ZW1zID0gc3VwZXIucHJlcGFyZVVwZGF0ZWRUb29scyh0b29sU3RhdGUpO1xuICAgICAgY29uc3QgeyBmb3JtYXRzLCBoYXNTZWxlY3Rpb24sIGhhc0ZvY3VzIH0gPSB0b29sU3RhdGU7XG5cbiAgICAgIHRvb2xiYXJJdGVtcy5mb3JFYWNoKHRvb2wgPT4ge1xuICAgICAgICBpZighaGFzRm9jdXMpIHtcbiAgICAgICAgICB0b29sLmRpc2FibGVkID0gdHJ1ZVxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0b29sLnRvb2wgPT09ICdjbGVhcicpIHtcbiAgICAgICAgICB0b29sLmRpc2FibGVkID0gIWhhc1NlbGVjdGlvbjtcbiAgICAgICAgfSBlbHNlIGlmICh0b29sLnRvb2wgPT09ICdsaW5rJykge1xuICAgICAgICAgIHRvb2wuc2VsZWN0ZWQgPSAhIWZvcm1hdHMubGluaztcbiAgICAgICAgICB0b29sLmRpc2FibGVkID0gIWhhc1NlbGVjdGlvbiAmJiAhZm9ybWF0cy5saW5rO1xuICAgICAgICAgIHRvb2wudmFsdWUgPSBmb3JtYXRzPy5saW5rO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgIHJldHVybiB0b29sYmFySXRlbXNcbiAgICB9XG4gIH1cbiAgIl19