@acorex/components 18.12.38 → 18.12.40

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) hide show
  1. package/common/lib/components/button-base-component.class.d.ts +10 -10
  2. package/common/lib/components/interactive-component.class.d.ts +11 -11
  3. package/common/lib/types/base/button.type.d.ts +8 -0
  4. package/common/lib/types/base/color.type.d.ts +7 -0
  5. package/common/lib/types/base/events.types.d.ts +1 -1
  6. package/common/lib/types/base/index.d.ts +5 -0
  7. package/common/lib/types/base/interactive.type.d.ts +13 -0
  8. package/common/lib/types/base/look.type.d.ts +7 -0
  9. package/common/lib/types/base/value.type.d.ts +9 -0
  10. package/esm2022/button-group/lib/button-group.component.mjs +2 -2
  11. package/esm2022/common/lib/components/base-component.class.mjs +1 -1
  12. package/esm2022/common/lib/components/button-base-component.class.mjs +11 -11
  13. package/esm2022/common/lib/components/interactive-component.class.mjs +12 -12
  14. package/esm2022/common/lib/components/selection-base.component.class.mjs +13 -5
  15. package/esm2022/common/lib/types/base/button.type.mjs +18 -0
  16. package/esm2022/common/lib/types/base/color.type.mjs +16 -0
  17. package/esm2022/common/lib/types/base/events.types.mjs +1 -1
  18. package/esm2022/common/lib/types/base/index.mjs +6 -1
  19. package/esm2022/common/lib/types/base/interactive.type.mjs +31 -0
  20. package/esm2022/common/lib/types/base/look.type.mjs +16 -0
  21. package/esm2022/common/lib/types/base/value.type.mjs +19 -0
  22. package/esm2022/form/lib/validation-rule.directive.mjs +1 -1
  23. package/esm2022/notification/lib/notification.component.mjs +4 -4
  24. package/esm2022/notification/lib/notification.service.mjs +53 -36
  25. package/esm2022/otp/lib/otp.component.mjs +2 -2
  26. package/esm2022/side-menu/lib/side-menu.component.mjs +2 -2
  27. package/esm2022/tabs/lib/tabs.component.mjs +2 -2
  28. package/esm2022/toast/lib/toast.component.mjs +2 -2
  29. package/esm2022/toast/lib/toast.config.mjs +2 -1
  30. package/esm2022/toast/lib/toast.service.mjs +130 -36
  31. package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-view/wysiwyg-view.component.mjs +2 -2
  32. package/fesm2022/acorex-components-button-group.mjs +2 -2
  33. package/fesm2022/acorex-components-button-group.mjs.map +1 -1
  34. package/fesm2022/acorex-components-common.mjs +124 -28
  35. package/fesm2022/acorex-components-common.mjs.map +1 -1
  36. package/fesm2022/acorex-components-form.mjs.map +1 -1
  37. package/fesm2022/acorex-components-notification.mjs +54 -37
  38. package/fesm2022/acorex-components-notification.mjs.map +1 -1
  39. package/fesm2022/acorex-components-otp.mjs +2 -2
  40. package/fesm2022/acorex-components-otp.mjs.map +1 -1
  41. package/fesm2022/acorex-components-side-menu.mjs +2 -2
  42. package/fesm2022/acorex-components-side-menu.mjs.map +1 -1
  43. package/fesm2022/acorex-components-tabs.mjs +2 -2
  44. package/fesm2022/acorex-components-tabs.mjs.map +1 -1
  45. package/fesm2022/acorex-components-toast.mjs +130 -35
  46. package/fesm2022/acorex-components-toast.mjs.map +1 -1
  47. package/fesm2022/acorex-components-wysiwyg.mjs +2 -2
  48. package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
  49. package/form/lib/validation-rule.directive.d.ts +1 -1
  50. package/notification/lib/notification.component.d.ts +3 -3
  51. package/notification/lib/notification.service.d.ts +2 -0
  52. package/package.json +1 -1
  53. package/toast/lib/toast.component.d.ts +1 -1
  54. package/toast/lib/toast.config.d.ts +1 -0
  55. package/toast/lib/toast.service.d.ts +9 -1
@@ -1,6 +1,6 @@
1
1
  import { Dialog } from '@angular/cdk/dialog';
2
2
  import { GlobalPositionStrategy, ScrollStrategyOptions } from '@angular/cdk/overlay';
3
- import { Injectable, inject } from '@angular/core';
3
+ import { Injectable, effect, inject, signal } from '@angular/core';
4
4
  import { AXToastComponent } from './toast.component';
5
5
  import { AX_TOAST_CONFIG } from './toast.config';
6
6
  import * as i0 from "@angular/core";
@@ -10,7 +10,36 @@ export class AXToastService {
10
10
  this.scrollStrategyOptions = scrollStrategyOptions;
11
11
  this.dialog = inject(Dialog);
12
12
  this.defaultConfig = inject(AX_TOAST_CONFIG);
13
+ this.activeToasts = signal([]);
14
+ this.reservedToasts = signal([]);
15
+ this.toastCounterElement = signal(null);
16
+ this.reserveCounter = signal(0);
17
+ this.moreToastsColor = signal('primary');
13
18
  this.scrollStrategy = this.scrollStrategyOptions.noop();
19
+ if (this.defaultConfig.limit) {
20
+ effect(() => {
21
+ if (this.activeToasts().length <= this.defaultConfig.limit - 1 && this.reservedToasts().length) {
22
+ this.show(this.reservedToasts()[0]);
23
+ this.reservedToasts.update((value) => {
24
+ const arr = [...value];
25
+ arr.shift();
26
+ return arr;
27
+ });
28
+ }
29
+ if (this.reservedToasts().length !== this.reserveCounter()) {
30
+ this.reserveCounter.set(this.reservedToasts().length);
31
+ if (this.toastCounterElement() !== null) {
32
+ this.toastCounterElement().close();
33
+ }
34
+ this.createReservedCounterToast();
35
+ }
36
+ if (this.reserveCounter() === 0) {
37
+ if (this.toastCounterElement() !== null) {
38
+ this.toastCounterElement().close();
39
+ }
40
+ }
41
+ }, { allowSignalWrites: true });
42
+ }
14
43
  }
15
44
  primary(content) {
16
45
  this.show({
@@ -52,35 +81,18 @@ export class AXToastService {
52
81
  closeButton: true,
53
82
  location: this.defaultConfig.location ?? 'bottom-center',
54
83
  }, config);
84
+ this.moreToastsColor.set(opt.color);
85
+ if (this.defaultConfig.limit) {
86
+ if (this.activeToasts().length >= this.defaultConfig.limit) {
87
+ this.reservedToasts.update((value) => {
88
+ return [...value, opt];
89
+ });
90
+ return;
91
+ }
92
+ }
55
93
  const gap = this.defaultConfig.gap;
56
- let positionStrategy = new GlobalPositionStrategy();
57
94
  const pos = this.getPosition(opt.location) + gap + 'px';
58
- switch (opt.location) {
59
- case 'bottom-center':
60
- positionStrategy = positionStrategy.bottom(pos).centerHorizontally();
61
- break;
62
- case 'bottom-end':
63
- positionStrategy = positionStrategy.bottom(pos).right(gap + 'px');
64
- break;
65
- case 'bottom-start':
66
- positionStrategy = positionStrategy.bottom(pos).left(gap + 'px');
67
- break;
68
- case 'top-center':
69
- positionStrategy = positionStrategy.top(pos).centerHorizontally();
70
- break;
71
- case 'top-end':
72
- positionStrategy = positionStrategy.top(pos).right(gap + 'px');
73
- break;
74
- case 'top-start':
75
- positionStrategy = positionStrategy.top(pos).left(gap + 'px');
76
- break;
77
- case 'center-start':
78
- positionStrategy = positionStrategy.centerVertically().left(gap + 'px');
79
- break;
80
- case 'center-end':
81
- positionStrategy = positionStrategy.centerVertically().right(gap + 'px');
82
- break;
83
- }
95
+ const positionStrategy = this.getPositionStrategy(new GlobalPositionStrategy(), opt.location, pos, gap);
84
96
  const dialogRef = this.dialog.open(AXToastComponent, {
85
97
  data: opt,
86
98
  autoFocus: '__no_element__',
@@ -91,12 +103,20 @@ export class AXToastService {
91
103
  closeOnDestroy: true,
92
104
  hasBackdrop: false,
93
105
  panelClass: ['ax-animate-animated', 'ax-animate-fadeIn', 'ax-animate-faster'],
94
- positionStrategy: positionStrategy,
106
+ positionStrategy,
95
107
  scrollStrategy: this.scrollStrategy,
96
108
  });
109
+ this.activeToasts.update((value) => {
110
+ return [...value, dialogRef.id];
111
+ });
97
112
  const toastRef = dialogRef.componentInstance;
98
113
  dialogRef.closed.subscribe(() => {
99
- this.reposition();
114
+ this.activeToasts.update((value) => {
115
+ return [...value].filter((dialogID) => dialogID !== dialogRef.id);
116
+ });
117
+ setTimeout(() => {
118
+ this.reposition(opt.location, gap);
119
+ }, 0);
100
120
  });
101
121
  return {
102
122
  close: () => {
@@ -107,18 +127,92 @@ export class AXToastService {
107
127
  hideAll() {
108
128
  this.dialog.closeAll();
109
129
  }
110
- reposition() {
111
- //TODO: reposition vertically afer close toast
130
+ createReservedCounterToast() {
131
+ const opt = {
132
+ closeButton: false,
133
+ color: this.moreToastsColor(),
134
+ location: 'bottom-center',
135
+ title: `And ${this.reserveCounter()} more...`,
136
+ timeOutProgress: false,
137
+ };
138
+ const gap = this.defaultConfig.gap;
139
+ const pos = this.getPosition(opt.location) + gap + 'px';
140
+ const positionStrategy = this.getPositionStrategy(new GlobalPositionStrategy(), opt.location, pos, gap);
141
+ const dialogRef = this.dialog.open(AXToastComponent, {
142
+ data: opt,
143
+ autoFocus: '__no_element__',
144
+ restoreFocus: true,
145
+ role: 'dialog',
146
+ ariaModal: true,
147
+ closeOnNavigation: true,
148
+ closeOnDestroy: true,
149
+ hasBackdrop: false,
150
+ panelClass: ['ax-animate-animated', 'ax-animate-fadeIn', 'ax-animate-faster'],
151
+ positionStrategy,
152
+ scrollStrategy: this.scrollStrategy,
153
+ });
154
+ this.toastCounterElement.set(dialogRef.componentInstance);
155
+ }
156
+ reposition(toastLocation, gap) {
157
+ const list = this.dialog.openDialogs
158
+ .map((c) => c.componentInstance)
159
+ .filter((c) => c.config?.location == toastLocation);
160
+ list.forEach((element, index) => {
161
+ const pos = this.getRepositionPosition(index, gap, list, toastLocation);
162
+ console.log(index, element);
163
+ this.getPositionStrategy(element.dialogRef.config.positionStrategy, toastLocation, pos, gap).apply();
164
+ });
165
+ }
166
+ getRepositionPosition(index, gap, list, toastLocation) {
167
+ if (index === 0) {
168
+ return gap + 'px';
169
+ }
170
+ const previouseElement = list[index - 1];
171
+ if (toastLocation.split('-')[0] == 'bottom') {
172
+ return window.innerHeight - previouseElement.getHostElement().offsetTop + gap + 'px';
173
+ }
174
+ return (previouseElement.getHostElement().offsetTop +
175
+ previouseElement.getHostElement().offsetHeight +
176
+ gap +
177
+ 'px');
112
178
  }
113
179
  getPosition(location) {
114
- const list = this.dialog.openDialogs.map((c) => c.componentInstance).filter((c) => c.config?.location == location);
180
+ const list = this.dialog.openDialogs
181
+ .map((c) => c.componentInstance)
182
+ .filter((c) => c.config?.location == location);
115
183
  if (list.length == 0)
116
184
  return 0;
117
185
  if (location.split('-')[0] == 'bottom') {
118
186
  return window.innerHeight - list[list.length - 1].getHostElement().offsetTop;
119
187
  }
120
- else {
121
- return list[list.length - 1].getHostElement().offsetTop + list[list.length - 1].getHostElement().offsetHeight;
188
+ return (list[list.length - 1].getHostElement().offsetTop + list[list.length - 1].getHostElement().offsetHeight);
189
+ }
190
+ getPositionStrategy(positionStrategy, location, pos, gap) {
191
+ switch (location) {
192
+ case 'bottom-center':
193
+ return positionStrategy.bottom(pos).centerHorizontally();
194
+ break;
195
+ case 'bottom-end':
196
+ return positionStrategy.bottom(pos).right(gap + 'px');
197
+ break;
198
+ case 'bottom-start':
199
+ return positionStrategy.bottom(pos).left(gap + 'px');
200
+ break;
201
+ case 'top-center':
202
+ return positionStrategy.top(pos).centerHorizontally();
203
+ break;
204
+ case 'top-end':
205
+ return positionStrategy.top(pos).right(gap + 'px');
206
+ break;
207
+ case 'top-start':
208
+ return positionStrategy.top(pos).left(gap + 'px');
209
+ break;
210
+ case 'center-start':
211
+ return positionStrategy.centerVertically().left(gap + 'px');
212
+ break;
213
+ case 'center-end':
214
+ return positionStrategy.centerVertically().right(gap + 'px');
215
+ break;
122
216
  }
123
217
  }
124
218
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXToastService, deps: [{ token: i1.ScrollStrategyOptions }], target: i0.ɵɵFactoryTarget.Injectable }); }
@@ -127,4 +221,4 @@ export class AXToastService {
127
221
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXToastService, decorators: [{
128
222
  type: Injectable
129
223
  }], ctorParameters: () => [{ type: i1.ScrollStrategyOptions }] });
130
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90b2FzdC9zcmMvbGliL3RvYXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxzQkFBc0IsRUFBa0IscUJBQXFCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNyRCxPQUFPLEVBQWlCLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFHaEUsTUFBTSxPQUFPLGNBQWM7SUFNekIsWUFBNkIscUJBQTRDO1FBQTVDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFMakUsV0FBTSxHQUFXLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNoQyxrQkFBYSxHQUFrQixNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFLN0QsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDMUQsQ0FBQztJQUNELE9BQU8sQ0FBQyxPQUFlO1FBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDUixPQUFPLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPO1lBQ25DLEtBQUssRUFBRSxTQUFTO1lBQ2hCLE9BQU8sRUFBRSxPQUFPO1NBQ2pCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxTQUFTLENBQUMsT0FBZTtRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ1IsT0FBTyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTztZQUNuQyxLQUFLLEVBQUUsV0FBVztZQUNsQixPQUFP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TUFBTSxJQUFJLENBQUM7WUFBRSxPQUFPLENBQUMsQ0FBQztRQUMvQixJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksUUFBUSxFQUFFLENBQUM7WUFDdkMsT0FBTyxNQUFNLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDLFNBQVMsQ0FBQztRQUMvRSxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDLFlBQVksQ0FBQztRQUNoSCxDQUFDO0lBQ0gsQ0FBQzs4R0E5SFUsY0FBYztrSEFBZCxjQUFjOzsyRkFBZCxjQUFjO2tCQUQxQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RpYWxvZyc7XG5pbXBvcnQgeyBHbG9iYWxQb3NpdGlvblN0cmF0ZWd5LCBTY3JvbGxTdHJhdGVneSwgU2Nyb2xsU3RyYXRlZ3lPcHRpb25zIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFRvYXN0RGlzcGxheUNvbmZpZywgQVhUb2FzdFJlZiB9IGZyb20gJy4vdG9hc3QuY2xhc3MnO1xuaW1wb3J0IHsgQVhUb2FzdENvbXBvbmVudCB9IGZyb20gJy4vdG9hc3QuY29tcG9uZW50JztcbmltcG9ydCB7IEFYVG9hc3RDb25maWcsIEFYX1RPQVNUX0NPTkZJRyB9IGZyb20gJy4vdG9hc3QuY29uZmlnJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFYVG9hc3RTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBkaWFsb2c6IERpYWxvZyA9IGluamVjdChEaWFsb2cpO1xuICBwcml2YXRlIGRlZmF1bHRDb25maWc6IEFYVG9hc3RDb25maWcgPSBpbmplY3QoQVhfVE9BU1RfQ09ORklHKTtcblxuICBzY3JvbGxTdHJhdGVneTogU2Nyb2xsU3RyYXRlZ3k7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBzY3JvbGxTdHJhdGVneU9wdGlvbnM6IFNjcm9sbFN0cmF0ZWd5T3B0aW9ucykge1xuICAgIHRoaXMuc2Nyb2xsU3RyYXRlZ3kgPSB0aGlzLnNjcm9sbFN0cmF0ZWd5T3B0aW9ucy5ub29wKCk7XG4gIH1cbiAgcHJpbWFyeShjb250ZW50OiBzdHJpbmcpIHtcbiAgICB0aGlzLnNob3coe1xuICAgICAgdGltZU91dDogdGhpcy5kZWZhdWx0Q29uZmlnLnRpbWVPdXQsXG4gICAgICBjb2xvcjogJ3ByaW1hcnknLFxuICAgICAgY29udGVudDogY29udGVudCxcbiAgICB9KTtcbiAgfVxuICBzZWNvbmRhcnkoY29udGVudDogc3RyaW5nKSB7XG4gICAgdGhpcy5zaG93KHtcbiAgICAgIHRpbWVPdXQ6IHRoaXMuZGVmYXVsdENvbmZpZy50aW1lT3V0LFxuICAgICAgY29sb3I6ICdzZWNvbmRhcnknLFxuICAgICAgY29udGVudDogY29udGVudCxcbiAgICB9KTtcbiAgfVxuICBzdWNjZXNzKGNvbnRlbnQ6IHN0cmluZykge1xuICAgIHRoaXMuc2hvdyh7XG4gICAgICB0aW1lT3V0OiB0aGlzLmRlZmF1bHRDb25maWcudGltZU91dCxcbiAgICAgIGNvbG9yOiAnc3VjY2VzcycsXG4gICAgICBjb250ZW50OiBjb250ZW50LFxuICAgIH0pO1xuICB9XG5cbiAgd2FybmluZyhjb250ZW50OiBzdHJpbmcpIHtcbiAgICB0aGlzLnNob3coe1xuICAgICAgdGltZU91dDogdGhpcy5kZWZhdWx0Q29uZmlnLnRpbWVPdXQsXG4gICAgICBjb2xvcjogJ3dhcm5pbmcnLFxuICAgICAgY29udGVudDogY29udGVudCxcbiAgICB9KTtcbiAgfVxuICBkYW5nZXIoY29udGVudDogc3RyaW5nKSB7XG4gICAgdGhpcy5zaG93KHtcbiAgICAgIHRpbWVPdXQ6IHRoaXMuZGVmYXVsdENvbmZpZy50aW1lT3V0LFxuICAgICAgY29sb3I6ICdkYW5nZXInLFxuICAgICAgY29udGVudDogY29udGVudCxcbiAgICB9KTtcbiAgfVxuICBzaG93KGNvbmZpZzogQVhUb2FzdERpc3BsYXlDb25maWcpOiBBWFRvYXN0UmVmIHtcbiAgICBjb25zdCBvcHQgPSBPYmplY3QuYXNzaWduKFxuICAgICAge1xuICAgICAgICBjbG9zZUJ1dHRvbjogdHJ1ZSxcbiAgICAgICAgbG9jYXRpb246IHRoaXMuZGVmYXVsdENvbmZpZy5sb2NhdGlvbiA/PyAnYm90dG9tLWNlbnRlcicsXG4gICAgICB9LFxuICAgICAgY29uZmlnLFxuICAgICk7XG4gICAgY29uc3QgZ2FwID0gdGhpcy5kZWZhdWx0Q29uZmlnLmdhcDtcblxuICAgIGxldCBwb3NpdGlvblN0cmF0ZWd5ID0gbmV3IEdsb2JhbFBvc2l0aW9uU3RyYXRlZ3koKTtcbiAgICBjb25zdCBwb3MgPSB0aGlzLmdldFBvc2l0aW9uKG9wdC5sb2NhdGlvbikgKyBnYXAgKyAncHgnO1xuICAgIHN3aXRjaCAob3B0LmxvY2F0aW9uKSB7XG4gICAgICBjYXNlICdib3R0b20tY2VudGVyJzpcbiAgICAgICAgcG9zaXRpb25TdHJhdGVneSA9IHBvc2l0aW9uU3RyYXRlZ3kuYm90dG9tKHBvcykuY2VudGVySG9yaXpvbnRhbGx5KCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnYm90dG9tLWVuZCc6XG4gICAgICAgIHBvc2l0aW9uU3RyYXRlZ3kgPSBwb3NpdGlvblN0cmF0ZWd5LmJvdHRvbShwb3MpLnJpZ2h0KGdhcCArICdweCcpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2JvdHRvbS1zdGFydCc6XG4gICAgICAgIHBvc2l0aW9uU3RyYXRlZ3kgPSBwb3NpdGlvblN0cmF0ZWd5LmJvdHRvbShwb3MpLmxlZnQoZ2FwICsgJ3B4Jyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAndG9wLWNlbnRlcic6XG4gICAgICAgIHBvc2l0aW9uU3RyYXRlZ3kgPSBwb3NpdGlvblN0cmF0ZWd5LnRvcChwb3MpLmNlbnRlckhvcml6b250YWxseSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3RvcC1lbmQnOlxuICAgICAgICBwb3NpdGlvblN0cmF0ZWd5ID0gcG9zaXRpb25TdHJhdGVneS50b3AocG9zKS5yaWdodChnYXAgKyAncHgnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd0b3Atc3RhcnQnOlxuICAgICAgICBwb3NpdGlvblN0cmF0ZWd5ID0gcG9zaXRpb25TdHJhdGVneS50b3AocG9zKS5sZWZ0KGdhcCArICdweCcpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2NlbnRlci1zdGFydCc6XG4gICAgICAgIHBvc2l0aW9uU3RyYXRlZ3kgPSBwb3NpdGlvblN0cmF0ZWd5LmNlbnRlclZlcnRpY2FsbHkoKS5sZWZ0KGdhcCArICdweCcpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2NlbnRlci1lbmQnOlxuICAgICAgICBwb3NpdGlvblN0cmF0ZWd5ID0gcG9zaXRpb25TdHJhdGVneS5jZW50ZXJWZXJ0aWNhbGx5KCkucmlnaHQoZ2FwICsgJ3B4Jyk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oQVhUb2FzdENvbXBvbmVudCwge1xuICAgICAgZGF0YTogb3B0LFxuICAgICAgYXV0b0ZvY3VzOiAnX19ub19lbGVtZW50X18nLFxuICAgICAgcmVzdG9yZUZvY3VzOiB0cnVlLFxuICAgICAgcm9sZTogJ2RpYWxvZycsXG4gICAgICBhcmlhTW9kYWw6IHRydWUsXG4gICAgICBjbG9zZU9uTmF2aWdhdGlvbjogdHJ1ZSxcbiAgICAgIGNsb3NlT25EZXN0cm95OiB0cnVlLFxuICAgICAgaGFzQmFja2Ryb3A6IGZhbHNlLFxuICAgICAgcGFuZWxDbGFzczogWydheC1hbmltYXRlLWFuaW1hdGVkJywgJ2F4LWFuaW1hdGUtZmFkZUluJywgJ2F4LWFuaW1hdGUtZmFzdGVyJ10sXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5OiBwb3NpdGlvblN0cmF0ZWd5LFxuICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMuc2Nyb2xsU3RyYXRlZ3ksXG4gICAgfSk7XG5cbiAgICBjb25zdCB0b2FzdFJlZiA9IGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZSBhcyBBWFRvYXN0Q29tcG9uZW50O1xuICAgIGRpYWxvZ1JlZi5jbG9zZWQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMucmVwb3NpdGlvbigpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGNsb3NlOiAoKSA9PiB7XG4gICAgICAgIHRvYXN0UmVmLmNsb3NlKCk7XG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgaGlkZUFsbCgpIHtcbiAgICB0aGlzLmRpYWxvZy5jbG9zZUFsbCgpO1xuICB9XG5cbiAgcHJpdmF0ZSByZXBvc2l0aW9uKCk6IHZvaWQge1xuICAgIC8vVE9ETzogcmVwb3NpdGlvbiB2ZXJ0aWNhbGx5IGFmZXIgY2xvc2UgdG9hc3RcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UG9zaXRpb24obG9jYXRpb246IHN0cmluZykge1xuICAgIGNvbnN0IGxpc3QgPSB0aGlzLmRpYWxvZy5vcGVuRGlhbG9ncy5tYXAoKGMpID0+IGMuY29tcG9uZW50SW5zdGFuY2UgYXMgQVhUb2FzdENvbXBvbmVudCkuZmlsdGVyKChjKSA9PiBjLmNvbmZpZz8ubG9jYXRpb24gPT0gbG9jYXRpb24pO1xuICAgIGlmIChsaXN0Lmxlbmd0aCA9PSAwKSByZXR1cm4gMDtcbiAgICBpZiAobG9jYXRpb24uc3BsaXQoJy0nKVswXSA9PSAnYm90dG9tJykge1xuICAgICAgcmV0dXJuIHdpbmRvdy5pbm5lckhlaWdodCAtIGxpc3RbbGlzdC5sZW5ndGggLSAxXS5nZXRIb3N0RWxlbWVudCgpLm9mZnNldFRvcDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGxpc3RbbGlzdC5sZW5ndGggLSAxXS5nZXRIb3N0RWxlbWVudCgpLm9mZnNldFRvcCArIGxpc3RbbGlzdC5sZW5ndGggLSAxXS5nZXRIb3N0RWxlbWVudCgpLm9mZnNldEhlaWdodDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
224
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90b2FzdC9zcmMvbGliL3RvYXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxzQkFBc0IsRUFBa0IscUJBQXFCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRyxPQUFPLEVBQUUsVUFBVSxFQUFrQixNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNyRCxPQUFPLEVBQWlCLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFHaEUsTUFBTSxPQUFPLGNBQWM7SUFXekIsWUFBNkIscUJBQTRDO1FBQTVDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFWakUsV0FBTSxHQUFXLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNoQyxrQkFBYSxHQUFrQixNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDdkQsaUJBQVksR0FBNkIsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3BELG1CQUFjLEdBQTJDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNwRSx3QkFBbUIsR0FBNEMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVFLG1CQUFjLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNCLG9CQUFlLEdBQXFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUs1RSxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN4RCxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7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QUFPLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDO2dCQUN0RCxNQUFNO1lBQ1IsS0FBSyxjQUFjO2dCQUNqQixPQUFPLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDO2dCQUNyRCxNQUFNO1lBQ1IsS0FBSyxZQUFZO2dCQUNmLE9BQU8sZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLGtCQUFrQixFQUFFLENBQUM7Z0JBQ3RELE1BQU07WUFDUixLQUFLLFNBQVM7Z0JBQ1osT0FBTyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQztnQkFDbkQsTUFBTTtZQUNSLEtBQUssV0FBVztnQkFDZCxPQUFPLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDO2dCQUNsRCxNQUFNO1lBQ1IsS0FBSyxjQUFjO2dCQUNqQixPQUFPLGdCQUFnQixDQUFDLGdCQUFnQixFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQztnQkFDNUQsTUFBTTtZQUNSLEtBQUssWUFBWTtnQkFDZixPQUFPLGdCQUFnQixDQUFDLGdCQUFnQixFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQztnQkFDN0QsTUFBTTtRQUNWLENBQUM7SUFDSCxDQUFDOzhHQXJQVSxjQUFjO2tIQUFkLGNBQWM7OzJGQUFkLGNBQWM7a0JBRDFCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWExvY2F0aW9uLCBBWFN0eWxlQ29sb3JUeXBlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5pbXBvcnQgeyBEaWFsb2cgfSBmcm9tICdAYW5ndWxhci9jZGsvZGlhbG9nJztcbmltcG9ydCB7IEdsb2JhbFBvc2l0aW9uU3RyYXRlZ3ksIFNjcm9sbFN0cmF0ZWd5LCBTY3JvbGxTdHJhdGVneU9wdGlvbnMgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBXcml0YWJsZVNpZ25hbCwgZWZmZWN0LCBpbmplY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhUb2FzdERhdGEsIEFYVG9hc3REaXNwbGF5Q29uZmlnLCBBWFRvYXN0UmVmIH0gZnJvbSAnLi90b2FzdC5jbGFzcyc7XG5pbXBvcnQgeyBBWFRvYXN0Q29tcG9uZW50IH0gZnJvbSAnLi90b2FzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhUb2FzdENvbmZpZywgQVhfVE9BU1RfQ09ORklHIH0gZnJvbSAnLi90b2FzdC5jb25maWcnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQVhUb2FzdFNlcnZpY2Uge1xuICBwcml2YXRlIGRpYWxvZzogRGlhbG9nID0gaW5qZWN0KERpYWxvZyk7XG4gIHByaXZhdGUgZGVmYXVsdENvbmZpZzogQVhUb2FzdENvbmZpZyA9IGluamVjdChBWF9UT0FTVF9DT05GSUcpO1xuICBwcml2YXRlIGFjdGl2ZVRvYXN0czogV3JpdGFibGVTaWduYWw8c3RyaW5nW10+ID0gc2lnbmFsKFtdKTtcbiAgcHJpdmF0ZSByZXNlcnZlZFRvYXN0czogV3JpdGFibGVTaWduYWw8QVhUb2FzdERpc3BsYXlDb25maWdbXT4gPSBzaWduYWwoW10pO1xuICBwcml2YXRlIHRvYXN0Q291bnRlckVsZW1lbnQ6IFdyaXRhYmxlU2lnbmFsPEFYVG9hc3RDb21wb25lbnQgfCBudWxsPiA9IHNpZ25hbChudWxsKTtcbiAgcHJpdmF0ZSByZXNlcnZlQ291bnRlciA9IHNpZ25hbCgwKTtcbiAgcHJpdmF0ZSBtb3JlVG9hc3RzQ29sb3I6IFdyaXRhYmxlU2lnbmFsPEFYU3R5bGVDb2xvclR5cGU+ID0gc2lnbmFsKCdwcmltYXJ5Jyk7XG5cbiAgc2Nyb2xsU3RyYXRlZ3k6IFNjcm9sbFN0cmF0ZWd5O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgc2Nyb2xsU3RyYXRlZ3lPcHRpb25zOiBTY3JvbGxTdHJhdGVneU9wdGlvbnMpIHtcbiAgICB0aGlzLnNjcm9sbFN0cmF0ZWd5ID0gdGhpcy5zY3JvbGxTdHJhdGVneU9wdGlvbnMubm9vcCgpO1xuICAgIGlmICh0aGlzLmRlZmF1bHRDb25maWcubGltaXQpIHtcbiAgICAgIGVmZmVjdChcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLmFjdGl2ZVRvYXN0cygpLmxlbmd0aCA8PSB0aGlzLmRlZmF1bHRDb25maWcubGltaXQgLSAxICYmIHRoaXMucmVzZXJ2ZWRUb2FzdHMoKS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuc2hvdyh0aGlzLnJlc2VydmVkVG9hc3RzKClbMF0pO1xuICAgICAgICAgICAgdGhpcy5yZXNlcnZlZFRvYXN0cy51cGRhdGUoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGFyciA9IFsuLi52YWx1ZV07XG4gICAgICAgICAgICAgIGFyci5zaGlmdCgpO1xuICAgICAgICAgICAgICByZXR1cm4gYXJyO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh0aGlzLnJlc2VydmVkVG9hc3RzKCkubGVuZ3RoICE9PSB0aGlzLnJlc2VydmVDb3VudGVyKCkpIHtcbiAgICAgICAgICAgIHRoaXMucmVzZXJ2ZUNvdW50ZXIuc2V0KHRoaXMucmVzZXJ2ZWRUb2FzdHMoKS5sZW5ndGgpO1xuICAgICAgICAgICAgaWYgKHRoaXMudG9hc3RDb3VudGVyRWxlbWVudCgpICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgIHRoaXMudG9hc3RDb3VudGVyRWxlbWVudCgpLmNsb3NlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmNyZWF0ZVJlc2VydmVkQ291bnRlclRvYXN0KCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh0aGlzLnJlc2VydmVDb3VudGVyKCkgPT09IDApIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnRvYXN0Q291bnRlckVsZW1lbnQoKSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICB0aGlzLnRvYXN0Q291bnRlckVsZW1lbnQoKS5jbG9zZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9LFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcmltYXJ5KGNvbnRlbnQ6IHN0cmluZykge1xuICAgIHRoaXMuc2hvdyh7XG4gICAgICB0aW1lT3V0OiB0aGlzLmRlZmF1bHRDb25maWcudGltZU91dCxcbiAgICAgIGNvbG9yOiAncHJpbWFyeScsXG4gICAgICBjb250ZW50OiBjb250ZW50LFxuICAgIH0pO1xuICB9XG4gIHNlY29uZGFyeShjb250ZW50OiBzdHJpbmcpIHtcbiAgICB0aGlzLnNob3coe1xuICAgICAgdGltZU91dDogdGhpcy5kZWZhdWx0Q29uZmlnLnRpbWVPdXQsXG4gICAgICBjb2xvcjogJ3NlY29uZGFyeScsXG4gICAgICBjb250ZW50OiBjb250ZW50LFxuICAgIH0pO1xuICB9XG4gIHN1Y2Nlc3MoY29udGVudDogc3RyaW5nKSB7XG4gICAgdGhpcy5zaG93KHtcbiAgICAgIHRpbWVPdXQ6IHRoaXMuZGVmYXVsdENvbmZpZy50aW1lT3V0LFxuICAgICAgY29sb3I6ICdzdWNjZXNzJyxcbiAgICAgIGNvbnRlbnQ6IGNvbnRlbnQsXG4gICAgfSk7XG4gIH1cbiAgd2FybmluZyhjb250ZW50OiBzdHJpbmcpIHtcbiAgICB0aGlzLnNob3coe1xuICAgICAgdGltZU91dDogdGhpcy5kZWZhdWx0Q29uZmlnLnRpbWVPdXQsXG4gICAgICBjb2xvcjogJ3dhcm5pbmcnLFxuICAgICAgY29udGVudDogY29udGVudCxcbiAgICB9KTtcbiAgfVxuICBkYW5nZXIoY29udGVudDogc3RyaW5nKSB7XG4gICAgdGhpcy5zaG93KHtcbiAgICAgIHRpbWVPdXQ6IHRoaXMuZGVmYXVsdENvbmZpZy50aW1lT3V0LFxuICAgICAgY29sb3I6ICdkYW5nZXInLFxuICAgICAgY29udGVudDogY29udGVudCxcbiAgICB9KTtcbiAgfVxuXG4gIHNob3coY29uZmlnOiBBWFRvYXN0RGlzcGxheUNvbmZpZyk6IEFYVG9hc3RSZWYgfCB2b2lkIHtcbiAgICBjb25zdCBvcHQgPSBPYmplY3QuYXNzaWduKFxuICAgICAge1xuICAgICAgICBjbG9zZUJ1dHRvbjogdHJ1ZSxcbiAgICAgICAgbG9jYXRpb246IHRoaXMuZGVmYXVsdENvbmZpZy5sb2NhdGlvbiA/PyAnYm90dG9tLWNlbnRlcicsXG4gICAgICB9LFxuICAgICAgY29uZmlnLFxuICAgICk7XG4gICAgdGhpcy5tb3JlVG9hc3RzQ29sb3Iuc2V0KG9wdC5jb2xvcik7XG5cbiAgICBpZiAodGhpcy5kZWZhdWx0Q29uZmlnLmxpbWl0KSB7XG4gICAgICBpZiAodGhpcy5hY3RpdmVUb2FzdHMoKS5sZW5ndGggPj0gdGhpcy5kZWZhdWx0Q29uZmlnLmxpbWl0KSB7XG4gICAgICAgIHRoaXMucmVzZXJ2ZWRUb2FzdHMudXBkYXRlKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgIHJldHVybiBbLi4udmFsdWUsIG9wdF07XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZ2FwID0gdGhpcy5kZWZhdWx0Q29uZmlnLmdhcDtcbiAgICBjb25zdCBwb3MgPSB0aGlzLmdldFBvc2l0aW9uKG9wdC5sb2NhdGlvbikgKyBnYXAgKyAncHgnO1xuICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLmdldFBvc2l0aW9uU3RyYXRlZ3kobmV3IEdsb2JhbFBvc2l0aW9uU3RyYXRlZ3koKSwgb3B0LmxvY2F0aW9uLCBwb3MsIGdhcCk7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihBWFRvYXN0Q29tcG9uZW50LCB7XG4gICAgICBkYXRhOiBvcHQsXG4gICAgICBhdXRvRm9jdXM6ICdfX25vX2VsZW1lbnRfXycsXG4gICAgICByZXN0b3JlRm9jdXM6IHRydWUsXG4gICAgICByb2xlOiAnZGlhbG9nJyxcbiAgICAgIGFyaWFNb2RhbDogdHJ1ZSxcbiAgICAgIGNsb3NlT25OYXZpZ2F0aW9uOiB0cnVlLFxuICAgICAgY2xvc2VPbkRlc3Ryb3k6IHRydWUsXG4gICAgICBoYXNCYWNrZHJvcDogZmFsc2UsXG4gICAgICBwYW5lbENsYXNzOiBbJ2F4LWFuaW1hdGUtYW5pbWF0ZWQnLCAnYXgtYW5pbWF0ZS1mYWRlSW4nLCAnYXgtYW5pbWF0ZS1mYXN0ZXInXSxcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3ksXG4gICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5zY3JvbGxTdHJhdGVneSxcbiAgICB9KTtcblxuICAgIHRoaXMuYWN0aXZlVG9hc3RzLnVwZGF0ZSgodmFsdWUpID0+IHtcbiAgICAgIHJldHVybiBbLi4udmFsdWUsIGRpYWxvZ1JlZi5pZF07XG4gICAgfSk7XG5cbiAgICBjb25zdCB0b2FzdFJlZiA9IGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZSBhcyBBWFRvYXN0Q29tcG9uZW50O1xuICAgIGRpYWxvZ1JlZi5jbG9zZWQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuYWN0aXZlVG9hc3RzLnVwZGF0ZSgodmFsdWUpID0+IHtcbiAgICAgICAgcmV0dXJuIFsuLi52YWx1ZV0uZmlsdGVyKChkaWFsb2dJRCkgPT4gZGlhbG9nSUQgIT09IGRpYWxvZ1JlZi5pZCk7XG4gICAgICB9KTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnJlcG9zaXRpb24ob3B0LmxvY2F0aW9uLCBnYXApO1xuICAgICAgfSwgMCk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgY2xvc2U6ICgpID0+IHtcbiAgICAgICAgdG9hc3RSZWYuY2xvc2UoKTtcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBoaWRlQWxsKCkge1xuICAgIHRoaXMuZGlhbG9nLmNsb3NlQWxsKCk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVJlc2VydmVkQ291bnRlclRvYXN0KCkge1xuICAgIGNvbnN0IG9wdDogQVhUb2FzdERhdGEgPSB7XG4gICAgICBjbG9zZUJ1dHRvbjogZmFsc2UsXG4gICAgICBjb2xvcjogdGhpcy5tb3JlVG9hc3RzQ29sb3IoKSxcbiAgICAgIGxvY2F0aW9uOiAnYm90dG9tLWNlbnRlcicsXG4gICAgICB0aXRsZTogYEFuZCAke3RoaXMucmVzZXJ2ZUNvdW50ZXIoKX0gbW9yZS4uLmAsXG4gICAgICB0aW1lT3V0UHJvZ3Jlc3M6IGZhbHNlLFxuICAgIH07XG4gICAgY29uc3QgZ2FwID0gdGhpcy5kZWZhdWx0Q29uZmlnLmdhcDtcbiAgICBjb25zdCBwb3MgPSB0aGlzLmdldFBvc2l0aW9uKG9wdC5sb2NhdGlvbikgKyBnYXAgKyAncHgnO1xuICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLmdldFBvc2l0aW9uU3RyYXRlZ3kobmV3IEdsb2JhbFBvc2l0aW9uU3RyYXRlZ3koKSwgb3B0LmxvY2F0aW9uLCBwb3MsIGdhcCk7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihBWFRvYXN0Q29tcG9uZW50LCB7XG4gICAgICBkYXRhOiBvcHQsXG4gICAgICBhdXRvRm9jdXM6ICdfX25vX2VsZW1lbnRfXycsXG4gICAgICByZXN0b3JlRm9jdXM6IHRydWUsXG4gICAgICByb2xlOiAnZGlhbG9nJyxcbiAgICAgIGFyaWFNb2RhbDogdHJ1ZSxcbiAgICAgIGNsb3NlT25OYXZpZ2F0aW9uOiB0cnVlLFxuICAgICAgY2xvc2VPbkRlc3Ryb3k6IHRydWUsXG4gICAgICBoYXNCYWNrZHJvcDogZmFsc2UsXG4gICAgICBwYW5lbENsYXNzOiBbJ2F4LWFuaW1hdGUtYW5pbWF0ZWQnLCAnYXgtYW5pbWF0ZS1mYWRlSW4nLCAnYXgtYW5pbWF0ZS1mYXN0ZXInXSxcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3ksXG4gICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5zY3JvbGxTdHJhdGVneSxcbiAgICB9KTtcbiAgICB0aGlzLnRvYXN0Q291bnRlckVsZW1lbnQuc2V0KGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZSBhcyBBWFRvYXN0Q29tcG9uZW50KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVwb3NpdGlvbih0b2FzdExvY2F0aW9uOiBBWExvY2F0aW9uLCBnYXA6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IGxpc3QgPSB0aGlzLmRpYWxvZy5vcGVuRGlhbG9nc1xuICAgICAgLm1hcCgoYykgPT4gYy5jb21wb25lbnRJbnN0YW5jZSBhcyBBWFRvYXN0Q29tcG9uZW50KVxuICAgICAgLmZpbHRlcigoYykgPT4gYy5jb25maWc/LmxvY2F0aW9uID09IHRvYXN0TG9jYXRpb24pO1xuXG4gICAgbGlzdC5mb3JFYWNoKChlbGVtZW50LCBpbmRleCkgPT4ge1xuICAgICAgY29uc3QgcG9zID0gdGhpcy5nZXRSZXBvc2l0aW9uUG9zaXRpb24oaW5kZXgsIGdhcCwgbGlzdCwgdG9hc3RMb2NhdGlvbik7XG4gICAgICBjb25zb2xlLmxvZyhpbmRleCwgZWxlbWVudCk7XG5cbiAgICAgIHRoaXMuZ2V0UG9zaXRpb25TdHJhdGVneShcbiAgICAgICAgZWxlbWVudC5kaWFsb2dSZWYuY29uZmlnLnBvc2l0aW9uU3RyYXRlZ3kgYXMgR2xvYmFsUG9zaXRpb25TdHJhdGVneSxcbiAgICAgICAgdG9hc3RMb2NhdGlvbixcbiAgICAgICAgcG9zLFxuICAgICAgICBnYXAsXG4gICAgICApLmFwcGx5KCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldFJlcG9zaXRpb25Qb3NpdGlvbihpbmRleDogbnVtYmVyLCBnYXA6IG51bWJlciwgbGlzdDogQVhUb2FzdENvbXBvbmVudFtdLCB0b2FzdExvY2F0aW9uOiBzdHJpbmcpIHtcbiAgICBpZiAoaW5kZXggPT09IDApIHtcbiAgICAgIHJldHVybiBnYXAgKyAncHgnO1xuICAgIH1cbiAgICBjb25zdCBwcmV2aW91c2VFbGVtZW50ID0gbGlzdFtpbmRleCAtIDFdO1xuICAgIGlmICh0b2FzdExvY2F0aW9uLnNwbGl0KCctJylbMF0gPT0gJ2JvdHRvbScpIHtcbiAgICAgIHJldHVybiB3aW5kb3cuaW5uZXJIZWlnaHQgLSBwcmV2aW91c2VFbGVtZW50LmdldEhvc3RFbGVtZW50KCkub2Zmc2V0VG9wICsgZ2FwICsgJ3B4JztcbiAgICB9XG4gICAgcmV0dXJuIChcbiAgICAgIHByZXZpb3VzZUVsZW1lbnQuZ2V0SG9zdEVsZW1lbnQoKS5vZmZzZXRUb3AgK1xuICAgICAgcHJldmlvdXNlRWxlbWVudC5nZXRIb3N0RWxlbWVudCgpLm9mZnNldEhlaWdodCArXG4gICAgICBnYXAgK1xuICAgICAgJ3B4J1xuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGdldFBvc2l0aW9uKGxvY2F0aW9uOiBzdHJpbmcpIHtcbiAgICBjb25zdCBsaXN0ID0gdGhpcy5kaWFsb2cub3BlbkRpYWxvZ3NcbiAgICAgIC5tYXAoKGMpID0+IGMuY29tcG9uZW50SW5zdGFuY2UgYXMgQVhUb2FzdENvbXBvbmVudClcbiAgICAgIC5maWx0ZXIoKGMpID0+IGMuY29uZmlnPy5sb2NhdGlvbiA9PSBsb2NhdGlvbik7XG4gICAgaWYgKGxpc3QubGVuZ3RoID09IDApIHJldHVybiAwO1xuICAgIGlmIChsb2NhdGlvbi5zcGxpdCgnLScpWzBdID09ICdib3R0b20nKSB7XG4gICAgICByZXR1cm4gd2luZG93LmlubmVySGVpZ2h0IC0gbGlzdFtsaXN0Lmxlbmd0aCAtIDFdLmdldEhvc3RFbGVtZW50KCkub2Zmc2V0VG9wO1xuICAgIH1cbiAgICByZXR1cm4gKFxuICAgICAgbGlzdFtsaXN0Lmxlbmd0aCAtIDFdLmdldEhvc3RFbGVtZW50KCkub2Zmc2V0VG9wICsgbGlzdFtsaXN0Lmxlbmd0aCAtIDFdLmdldEhvc3RFbGVtZW50KCkub2Zmc2V0SGVpZ2h0XG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UG9zaXRpb25TdHJhdGVneShcbiAgICBwb3NpdGlvblN0cmF0ZWd5OiBHbG9iYWxQb3NpdGlvblN0cmF0ZWd5LFxuICAgIGxvY2F0aW9uOiBBWExvY2F0aW9uLFxuICAgIHBvczogc3RyaW5nLFxuICAgIGdhcDogbnVtYmVyLFxuICApIHtcbiAgICBzd2l0Y2ggKGxvY2F0aW9uKSB7XG4gICAgICBjYXNlICdib3R0b20tY2VudGVyJzpcbiAgICAgICAgcmV0dXJuIHBvc2l0aW9uU3RyYXRlZ3kuYm90dG9tKHBvcykuY2VudGVySG9yaXpvbnRhbGx5KCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnYm90dG9tLWVuZCc6XG4gICAgICAgIHJldHVybiBwb3NpdGlvblN0cmF0ZWd5LmJvdHRvbShwb3MpLnJpZ2h0KGdhcCArICdweCcpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2JvdHRvbS1zdGFydCc6XG4gICAgICAgIHJldHVybiBwb3NpdGlvblN0cmF0ZWd5LmJvdHRvbShwb3MpLmxlZnQoZ2FwICsgJ3B4Jyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAndG9wLWNlbnRlcic6XG4gICAgICAgIHJldHVybiBwb3NpdGlvblN0cmF0ZWd5LnRvcChwb3MpLmNlbnRlckhvcml6b250YWxseSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3RvcC1lbmQnOlxuICAgICAgICByZXR1cm4gcG9zaXRpb25TdHJhdGVneS50b3AocG9zKS5yaWdodChnYXAgKyAncHgnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd0b3Atc3RhcnQnOlxuICAgICAgICByZXR1cm4gcG9zaXRpb25TdHJhdGVneS50b3AocG9zKS5sZWZ0KGdhcCArICdweCcpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2NlbnRlci1zdGFydCc6XG4gICAgICAgIHJldHVybiBwb3NpdGlvblN0cmF0ZWd5LmNlbnRlclZlcnRpY2FsbHkoKS5sZWZ0KGdhcCArICdweCcpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2NlbnRlci1lbmQnOlxuICAgICAgICByZXR1cm4gcG9zaXRpb25TdHJhdGVneS5jZW50ZXJWZXJ0aWNhbGx5KCkucmlnaHQoZ2FwICsgJ3B4Jyk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -31,11 +31,11 @@ export class AXWysiwygViewComponent {
31
31
  ]);
32
32
  }
33
33
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXWysiwygViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
34
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.0", type: AXWysiwygViewComponent, selector: "ax-wysiwyg-view", inputs: { classes: { classPropertyName: "classes", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "keydown.Backspace": "onKeydownHandler($event)", "click": "editorStateHandler($event)" }, properties: { "class": "this.__hostClass" } }, ngImport: i0, template: "\n", styles: ["ax-wysiwyg-view{display:flex;flex-direction:column;width:100%;border-bottom:1px solid rgb(var(--ax-color-border-default))}.ql-container{flex-grow:1;height:0;font-family:inherit}.ql-editor.ql-blank:before{color:rgb(var(--ax-color-neutral-400));font-weight:600;font-style:normal}\n"], encapsulation: i0.ViewEncapsulation.None }); }
34
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.0", type: AXWysiwygViewComponent, selector: "ax-wysiwyg-view", inputs: { classes: { classPropertyName: "classes", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "keydown.Backspace": "onKeydownHandler($event)", "click": "editorStateHandler($event)" }, properties: { "class": "this.__hostClass" } }, ngImport: i0, template: "\n", styles: ["ax-wysiwyg-view{display:flex;flex-direction:column;width:100%;border-bottom:1px solid rgb(var(--ax-color-input-border))}.ql-container{flex-grow:1;height:0;font-family:inherit}.ql-editor.ql-blank:before{color:rgb(var(--ax-color-neutral-400));font-weight:600;font-style:normal}\n"], encapsulation: i0.ViewEncapsulation.None }); }
35
35
  }
36
36
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXWysiwygViewComponent, decorators: [{
37
37
  type: Component,
38
- args: [{ selector: 'ax-wysiwyg-view', encapsulation: ViewEncapsulation.None, template: "\n", styles: ["ax-wysiwyg-view{display:flex;flex-direction:column;width:100%;border-bottom:1px solid rgb(var(--ax-color-border-default))}.ql-container{flex-grow:1;height:0;font-family:inherit}.ql-editor.ql-blank:before{color:rgb(var(--ax-color-neutral-400));font-weight:600;font-style:normal}\n"] }]
38
+ args: [{ selector: 'ax-wysiwyg-view', encapsulation: ViewEncapsulation.None, template: "\n", styles: ["ax-wysiwyg-view{display:flex;flex-direction:column;width:100%;border-bottom:1px solid rgb(var(--ax-color-input-border))}.ql-container{flex-grow:1;height:0;font-family:inherit}.ql-editor.ql-blank:before{color:rgb(var(--ax-color-neutral-400));font-weight:600;font-style:normal}\n"] }]
39
39
  }], propDecorators: { __hostClass: [{
40
40
  type: HostBinding,
41
41
  args: ['class']