@flogeez/angular-tiptap-editor 3.4.7 → 3.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/README.md +36 -1
  3. package/THIRD_PARTY_LICENSES +220 -0
  4. package/esm2022/lib/ate-editor.provider.mjs +32 -1
  5. package/esm2022/lib/components/bubble-menus/color/ate-color-bubble-menu.component.mjs +7 -7
  6. package/esm2022/lib/components/bubble-menus/image/ate-image-bubble-menu.component.mjs +21 -21
  7. package/esm2022/lib/components/bubble-menus/link/ate-link-bubble-menu.component.mjs +12 -11
  8. package/esm2022/lib/components/bubble-menus/table/ate-cell-bubble-menu.component.mjs +5 -5
  9. package/esm2022/lib/components/bubble-menus/table/ate-table-bubble-menu.component.mjs +19 -19
  10. package/esm2022/lib/components/bubble-menus/text/ate-bubble-menu.component.mjs +9 -9
  11. package/esm2022/lib/components/color-picker/ate-color-picker.component.mjs +8 -7
  12. package/esm2022/lib/components/edit-toggle/ate-edit-toggle.component.mjs +3 -3
  13. package/esm2022/lib/components/editor/angular-tiptap-editor.component.mjs +4 -1
  14. package/esm2022/lib/components/editor/ate-block-controls.component.mjs +9 -8
  15. package/esm2022/lib/components/slash-commands/ate-slash-commands.component.mjs +7 -6
  16. package/esm2022/lib/components/toolbar/ate-toolbar.component.mjs +37 -37
  17. package/esm2022/lib/components/ui/ate-button.component.mjs +11 -14
  18. package/esm2022/lib/components/ui/ate-icon.component.mjs +31 -0
  19. package/esm2022/lib/config/ate-slash-commands.config.mjs +11 -11
  20. package/esm2022/lib/extensions/ate-upload-progress.extension.mjs +12 -4
  21. package/esm2022/lib/icons/ate-default-icons.mjs +117 -0
  22. package/esm2022/lib/icons/ate-stroke-icons.mjs +61 -0
  23. package/esm2022/lib/models/ate-bubble-menu.model.mjs +1 -1
  24. package/esm2022/lib/models/ate-slash-command.model.mjs +1 -1
  25. package/esm2022/lib/models/ate-toolbar.model.mjs +1 -1
  26. package/esm2022/lib/services/ate-icon-registry.service.mjs +63 -0
  27. package/esm2022/public-api.mjs +6 -1
  28. package/fesm2022/flogeez-angular-tiptap-editor.mjs +452 -150
  29. package/fesm2022/flogeez-angular-tiptap-editor.mjs.map +1 -1
  30. package/lib/ate-editor.provider.d.ts +29 -0
  31. package/lib/components/bubble-menus/image/ate-image-bubble-menu.component.d.ts +2 -2
  32. package/lib/components/bubble-menus/text/ate-bubble-menu.component.d.ts +1 -1
  33. package/lib/components/color-picker/ate-color-picker.component.d.ts +1 -1
  34. package/lib/components/editor/angular-tiptap-editor.component.d.ts +4 -3
  35. package/lib/components/ui/ate-button.component.d.ts +3 -2
  36. package/lib/components/ui/ate-icon.component.d.ts +17 -0
  37. package/lib/extensions/ate-upload-progress.extension.d.ts +2 -0
  38. package/lib/icons/ate-default-icons.d.ts +65 -0
  39. package/lib/icons/ate-stroke-icons.d.ts +2 -0
  40. package/lib/models/ate-bubble-menu.model.d.ts +2 -1
  41. package/lib/models/ate-slash-command.model.d.ts +2 -1
  42. package/lib/models/ate-toolbar.model.d.ts +2 -1
  43. package/lib/services/ate-icon-registry.service.d.ts +52 -0
  44. package/package.json +6 -1
  45. package/public-api.d.ts +4 -0
@@ -130,13 +130,13 @@ export class AteImageBubbleMenuComponent extends AteBaseBubbleMenu {
130
130
  <div #menuRef class="bubble-menu" (mousedown)="$event.preventDefault()">
131
131
  @if (imageBubbleMenuConfig().changeImage && editor().isEditable) {
132
132
  <ate-button
133
- icon="drive_file_rename_outline"
133
+ icon="changeImage"
134
134
  [title]="t().changeImage"
135
135
  (buttonClick)="onCommand('changeImage', $event)"></ate-button>
136
136
  }
137
137
  @if (imageBubbleMenuConfig().downloadImage) {
138
138
  <ate-button
139
- icon="download"
139
+ icon="downloadImage"
140
140
  [title]="t().downloadImage"
141
141
  (buttonClick)="onCommand('downloadImage', $event)"></ate-button>
142
142
  }
@@ -145,28 +145,28 @@ export class AteImageBubbleMenuComponent extends AteBaseBubbleMenu {
145
145
  }
146
146
  @if (imageBubbleMenuConfig().resizeSmall && editor().isEditable) {
147
147
  <ate-button
148
- icon="crop_square"
148
+ icon="resizeSmall"
149
149
  iconSize="small"
150
150
  [title]="t().resizeSmall"
151
151
  (buttonClick)="onCommand('resizeSmall', $event)"></ate-button>
152
152
  }
153
153
  @if (imageBubbleMenuConfig().resizeMedium && editor().isEditable) {
154
154
  <ate-button
155
- icon="crop_square"
155
+ icon="resizeMedium"
156
156
  iconSize="medium"
157
157
  [title]="t().resizeMedium"
158
158
  (buttonClick)="onCommand('resizeMedium', $event)"></ate-button>
159
159
  }
160
160
  @if (imageBubbleMenuConfig().resizeLarge && editor().isEditable) {
161
161
  <ate-button
162
- icon="crop_square"
162
+ icon="resizeLarge"
163
163
  iconSize="large"
164
164
  [title]="t().resizeLarge"
165
165
  (buttonClick)="onCommand('resizeLarge', $event)"></ate-button>
166
166
  }
167
167
  @if (imageBubbleMenuConfig().resizeOriginal && editor().isEditable) {
168
168
  <ate-button
169
- icon="photo_size_select_actual"
169
+ icon="resizeOriginal"
170
170
  [title]="t().resizeOriginal"
171
171
  (buttonClick)="onCommand('resizeOriginal', $event)"></ate-button>
172
172
  }
@@ -175,21 +175,21 @@ export class AteImageBubbleMenuComponent extends AteBaseBubbleMenu {
175
175
  }
176
176
  @if (imageBubbleMenuConfig().alignLeft && editor().isEditable) {
177
177
  <ate-button
178
- icon="format_align_left"
178
+ icon="alignLeft"
179
179
  [title]="t().alignLeft"
180
180
  [active]="editor().isActive({ textAlign: 'left' })"
181
181
  (buttonClick)="onCommand('alignLeft', $event)"></ate-button>
182
182
  }
183
183
  @if (imageBubbleMenuConfig().alignCenter && editor().isEditable) {
184
184
  <ate-button
185
- icon="format_align_center"
185
+ icon="alignCenter"
186
186
  [title]="t().alignCenter"
187
187
  [active]="editor().isActive({ textAlign: 'center' })"
188
188
  (buttonClick)="onCommand('alignCenter', $event)"></ate-button>
189
189
  }
190
190
  @if (imageBubbleMenuConfig().alignRight && editor().isEditable) {
191
191
  <ate-button
192
- icon="format_align_right"
192
+ icon="alignRight"
193
193
  [title]="t().alignRight"
194
194
  [active]="editor().isActive({ textAlign: 'right' })"
195
195
  (buttonClick)="onCommand('alignRight', $event)"></ate-button>
@@ -204,7 +204,7 @@ export class AteImageBubbleMenuComponent extends AteBaseBubbleMenu {
204
204
  }
205
205
  @if (imageBubbleMenuConfig().deleteImage && editor().isEditable) {
206
206
  <ate-button
207
- icon="delete"
207
+ icon="deleteImage"
208
208
  [title]="t().deleteImage"
209
209
  variant="danger"
210
210
  (buttonClick)="onCommand('deleteImage', $event)"></ate-button>
@@ -223,13 +223,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
223
223
  <div #menuRef class="bubble-menu" (mousedown)="$event.preventDefault()">
224
224
  @if (imageBubbleMenuConfig().changeImage && editor().isEditable) {
225
225
  <ate-button
226
- icon="drive_file_rename_outline"
226
+ icon="changeImage"
227
227
  [title]="t().changeImage"
228
228
  (buttonClick)="onCommand('changeImage', $event)"></ate-button>
229
229
  }
230
230
  @if (imageBubbleMenuConfig().downloadImage) {
231
231
  <ate-button
232
- icon="download"
232
+ icon="downloadImage"
233
233
  [title]="t().downloadImage"
234
234
  (buttonClick)="onCommand('downloadImage', $event)"></ate-button>
235
235
  }
@@ -238,28 +238,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
238
238
  }
239
239
  @if (imageBubbleMenuConfig().resizeSmall && editor().isEditable) {
240
240
  <ate-button
241
- icon="crop_square"
241
+ icon="resizeSmall"
242
242
  iconSize="small"
243
243
  [title]="t().resizeSmall"
244
244
  (buttonClick)="onCommand('resizeSmall', $event)"></ate-button>
245
245
  }
246
246
  @if (imageBubbleMenuConfig().resizeMedium && editor().isEditable) {
247
247
  <ate-button
248
- icon="crop_square"
248
+ icon="resizeMedium"
249
249
  iconSize="medium"
250
250
  [title]="t().resizeMedium"
251
251
  (buttonClick)="onCommand('resizeMedium', $event)"></ate-button>
252
252
  }
253
253
  @if (imageBubbleMenuConfig().resizeLarge && editor().isEditable) {
254
254
  <ate-button
255
- icon="crop_square"
255
+ icon="resizeLarge"
256
256
  iconSize="large"
257
257
  [title]="t().resizeLarge"
258
258
  (buttonClick)="onCommand('resizeLarge', $event)"></ate-button>
259
259
  }
260
260
  @if (imageBubbleMenuConfig().resizeOriginal && editor().isEditable) {
261
261
  <ate-button
262
- icon="photo_size_select_actual"
262
+ icon="resizeOriginal"
263
263
  [title]="t().resizeOriginal"
264
264
  (buttonClick)="onCommand('resizeOriginal', $event)"></ate-button>
265
265
  }
@@ -268,21 +268,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
268
268
  }
269
269
  @if (imageBubbleMenuConfig().alignLeft && editor().isEditable) {
270
270
  <ate-button
271
- icon="format_align_left"
271
+ icon="alignLeft"
272
272
  [title]="t().alignLeft"
273
273
  [active]="editor().isActive({ textAlign: 'left' })"
274
274
  (buttonClick)="onCommand('alignLeft', $event)"></ate-button>
275
275
  }
276
276
  @if (imageBubbleMenuConfig().alignCenter && editor().isEditable) {
277
277
  <ate-button
278
- icon="format_align_center"
278
+ icon="alignCenter"
279
279
  [title]="t().alignCenter"
280
280
  [active]="editor().isActive({ textAlign: 'center' })"
281
281
  (buttonClick)="onCommand('alignCenter', $event)"></ate-button>
282
282
  }
283
283
  @if (imageBubbleMenuConfig().alignRight && editor().isEditable) {
284
284
  <ate-button
285
- icon="format_align_right"
285
+ icon="alignRight"
286
286
  [title]="t().alignRight"
287
287
  [active]="editor().isActive({ textAlign: 'right' })"
288
288
  (buttonClick)="onCommand('alignRight', $event)"></ate-button>
@@ -297,7 +297,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
297
297
  }
298
298
  @if (imageBubbleMenuConfig().deleteImage && editor().isEditable) {
299
299
  <ate-button
300
- icon="delete"
300
+ icon="deleteImage"
301
301
  [title]="t().deleteImage"
302
302
  variant="danger"
303
303
  (buttonClick)="onCommand('deleteImage', $event)"></ate-button>
@@ -306,4 +306,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
306
306
  `,
307
307
  }]
308
308
  }] });
309
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRlLWltYWdlLWJ1YmJsZS1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdGlwdGFwLWVkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvYnViYmxlLW1lbnVzL2ltYWdlL2F0ZS1pbWFnZS1idWJibGUtbWVudS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsdUJBQXVCLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU1RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUVMLDBCQUEwQixHQUMzQixNQUFNLHVDQUF1QyxDQUFDO0FBQy9DLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDOztBQThGakUsTUFBTSxPQUFPLDJCQUE0QixTQUFRLGlCQUFpQjtJQTNGbEU7O1FBNEZXLE1BQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQztRQUN6QixpQkFBWSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUV4RCxXQUFNLEdBQUcsS0FBSyxDQUEyQixvQ0FBb0MsQ0FBQyxDQUFDO1FBRS9FLGdCQUFXLEdBQUcsS0FBSyxDQUF3QixFQUFFLENBQUMsQ0FBQztRQUUvQywwQkFBcUIsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3BDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN4QixNQUFN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QUFDO29CQUNULFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsa0JBQWtCLEVBQUUscUJBQXFCLENBQUM7b0JBQ3BELFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0ZUO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbnB1dCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIGNvbXB1dGVkLCBpbmplY3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgdHlwZSBFZGl0b3IgfSBmcm9tIFwiQHRpcHRhcC9jb3JlXCI7XG5pbXBvcnQgeyBBdGVCdXR0b25Db21wb25lbnQgfSBmcm9tIFwiLi4vLi4vdWkvYXRlLWJ1dHRvbi5jb21wb25lbnRcIjtcbmltcG9ydCB7IEF0ZVNlcGFyYXRvckNvbXBvbmVudCB9IGZyb20gXCIuLi8uLi91aS9hdGUtc2VwYXJhdG9yLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgQXRlSW1hZ2VTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2VzL2F0ZS1pbWFnZS5zZXJ2aWNlXCI7XG5pbXBvcnQge1xuICBBdGVJbWFnZUJ1YmJsZU1lbnVDb25maWcsXG4gIEFURV9JTUFHRV9CVUJCTEVfTUVOVV9LRVlTLFxufSBmcm9tIFwiLi4vLi4vLi4vbW9kZWxzL2F0ZS1idWJibGUtbWVudS5tb2RlbFwiO1xuaW1wb3J0IHsgQVRFX0RFRkFVTFRfSU1BR0VfQlVCQkxFX01FTlVfQ09ORklHIH0gZnJvbSBcIi4uLy4uLy4uL2NvbmZpZy9hdGUtZWRpdG9yLmNvbmZpZ1wiO1xuaW1wb3J0IHsgQXRlQmFzZUJ1YmJsZU1lbnUgfSBmcm9tIFwiLi4vYmFzZS9hdGUtYmFzZS1idWJibGUtbWVudVwiO1xuaW1wb3J0IHsgQXRlSW1hZ2VVcGxvYWRPcHRpb25zIH0gZnJvbSBcIi4uLy4uLy4uL21vZGVscy9hdGUtaW1hZ2UubW9kZWxcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImF0ZS1pbWFnZS1idWJibGUtbWVudVwiLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW0F0ZUJ1dHRvbkNvbXBvbmVudCwgQXRlU2VwYXJhdG9yQ29tcG9uZW50XSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2ICNtZW51UmVmIGNsYXNzPVwiYnViYmxlLW1lbnVcIiAobW91c2Vkb3duKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCI+XG4gICAgICBAaWYgKGltYWdlQnViYmxlTWVudUNvbmZpZygpLmNoYW5nZUltYWdlICYmIGVkaXRvcigpLmlzRWRpdGFibGUpIHtcbiAgICAgICAgPGF0ZS1idXR0b25cbiAgICAgICAgICBpY29uPVwiZHJpdmVfZmlsZV9yZW5hbWVfb3V0bGluZVwiXG4gICAgICAgICAgW3RpdGxlXT1cInQoKS5jaGFuZ2VJbWFnZVwiXG4gICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cIm9uQ29tbWFuZCgnY2hhbmdlSW1hZ2UnLCAkZXZlbnQpXCI+PC9hdGUtYnV0dG9uPlxuICAgICAgfVxuICAgICAgQGlmIChpbWFnZUJ1YmJsZU1lbnVDb25maWcoKS5kb3dubG9hZEltYWdlKSB7XG4gICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgaWNvbj1cImRvd25sb2FkXCJcbiAgICAgICAgICBbdGl0bGVdPVwidCgpLmRvd25sb2FkSW1hZ2VcIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkNvbW1hbmQoJ2Rvd25sb2FkSW1hZ2UnLCAkZXZlbnQpXCI+PC9hdGUtYnV0dG9uPlxuICAgICAgfVxuICAgICAgQGlmIChpbWFnZUJ1YmJsZU1lbnVDb25maWcoKS5zZXBhcmF0b3IgJiYgaGFzUmVzaXplQnV0dG9ucygpICYmIGVkaXRvcigpLmlzRWRpdGFibGUpIHtcbiAgICAgICAgPGF0ZS1zZXBhcmF0b3IgLz5cbiAgICAgIH1cbiAgICAgIEBpZiAoaW1hZ2VCdWJibGVNZW51Q29uZmlnKCkucmVzaXplU21hbGwgJiYgZWRpdG9yKCkuaXNFZGl0YWJsZSkge1xuICAgICAgICA8YXRlLWJ1dHRvblxuICAgICAgICAgIGljb249XCJjcm9wX3NxdWFyZVwiXG4gICAgICAgICAgaWNvblNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgW3RpdGxlXT1cInQoKS5yZXNpemVTbWFsbFwiXG4gICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cIm9uQ29tbWFuZCgncmVzaXplU21hbGwnLCAkZXZlbnQpXCI+PC9hdGUtYnV0dG9uPlxuICAgICAgfVxuICAgICAgQGlmIChpbWFnZUJ1YmJsZU1lbnVDb25maWcoKS5yZXNpemVNZWRpdW0gJiYgZWRpdG9yKCkuaXNFZGl0YWJsZSkge1xuICAgICAgICA8YXRlLWJ1dHRvblxuICAgICAgICAgIGljb249XCJjcm9wX3NxdWFyZVwiXG4gICAgICAgICAgaWNvblNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgIFt0aXRsZV09XCJ0KCkucmVzaXplTWVkaXVtXCJcbiAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwib25Db21tYW5kKCdyZXNpemVNZWRpdW0nLCAkZXZlbnQpXCI+PC9hdGUtYnV0dG9uPlxuICAgICAgfVxuICAgICAgQGlmIChpbWFnZUJ1YmJsZU1lbnVDb25maWcoKS5yZXNpemVMYXJnZSAmJiBlZGl0b3IoKS5pc0VkaXRhYmxlKSB7XG4gICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgaWNvbj1cImNyb3Bfc3F1YXJlXCJcbiAgICAgICAgICBpY29uU2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICBbdGl0bGVdPVwidCgpLnJlc2l6ZUxhcmdlXCJcbiAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwib25Db21tYW5kKCdyZXNpemVMYXJnZScsICRldmVudClcIj48L2F0ZS1idXR0b24+XG4gICAgICB9XG4gICAgICBAaWYgKGltYWdlQnViYmxlTWVudUNvbmZpZygpLnJlc2l6ZU9yaWdpbmFsICYmIGVkaXRvcigpLmlzRWRpdGFibGUpIHtcbiAgICAgICAgPGF0ZS1idXR0b25cbiAgICAgICAgICBpY29uPVwicGhvdG9fc2l6ZV9zZWxlY3RfYWN0dWFsXCJcbiAgICAgICAgICBbdGl0bGVdPVwidCgpLnJlc2l6ZU9yaWdpbmFsXCJcbiAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwib25Db21tYW5kKCdyZXNpemVPcmlnaW5hbCcsICRldmVudClcIj48L2F0ZS1idXR0b24+XG4gICAgICB9XG4gICAgICBAaWYgKGltYWdlQnViYmxlTWVudUNvbmZpZygpLnNlcGFyYXRvciAmJiBoYXNBbGlnbm1lbnRCdXR0b25zKCkgJiYgZWRpdG9yKCkuaXNFZGl0YWJsZSkge1xuICAgICAgICA8YXRlLXNlcGFyYXRvciAvPlxuICAgICAgfVxuICAgICAgQGlmIChpbWFnZUJ1YmJsZU1lbnVDb25maWcoKS5hbGlnbkxlZnQgJiYgZWRpdG9yKCkuaXNFZGl0YWJsZSkge1xuICAgICAgICA8YXRlLWJ1dHRvblxuICAgICAgICAgIGljb249XCJmb3JtYXRfYWxpZ25fbGVmdFwiXG4gICAgICAgICAgW3RpdGxlXT1cInQoKS5hbGlnbkxlZnRcIlxuICAgICAgICAgIFthY3RpdmVdPVwiZWRpdG9yKCkuaXNBY3RpdmUoeyB0ZXh0QWxpZ246ICdsZWZ0JyB9KVwiXG4gICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cIm9uQ29tbWFuZCgnYWxpZ25MZWZ0JywgJGV2ZW50KVwiPjwvYXRlLWJ1dHRvbj5cbiAgICAgIH1cbiAgICAgIEBpZiAoaW1hZ2VCdWJibGVNZW51Q29uZmlnKCkuYWxpZ25DZW50ZXIgJiYgZWRpdG9yKCkuaXNFZGl0YWJsZSkge1xuICAgICAgICA8YXRlLWJ1dHRvblxuICAgICAgICAgIGljb249XCJmb3JtYXRfYWxpZ25fY2VudGVyXCJcbiAgICAgICAgICBbdGl0bGVdPVwidCgpLmFsaWduQ2VudGVyXCJcbiAgICAgICAgICBbYWN0aXZlXT1cImVkaXRvcigpLmlzQWN0aXZlKHsgdGV4dEFsaWduOiAnY2VudGVyJyB9KVwiXG4gICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cIm9uQ29tbWFuZCgnYWxpZ25DZW50ZXInLCAkZXZlbnQpXCI+PC9hdGUtYnV0dG9uPlxuICAgICAgfVxuICAgICAgQGlmIChpbWFnZUJ1YmJsZU1lbnVDb25maWcoKS5hbGlnblJpZ2h0ICYmIGVkaXRvcigpLmlzRWRpdGFibGUpIHtcbiAgICAgICAgPGF0ZS1idXR0b25cbiAgICAgICAgICBpY29uPVwiZm9ybWF0X2FsaWduX3JpZ2h0XCJcbiAgICAgICAgICBbdGl0bGVdPVwidCgpLmFsaWduUmlnaHRcIlxuICAgICAgICAgIFthY3RpdmVdPVwiZWRpdG9yKCkuaXNBY3RpdmUoeyB0ZXh0QWxpZ246ICdyaWdodCcgfSlcIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkNvbW1hbmQoJ2FsaWduUmlnaHQnLCAkZXZlbnQpXCI+PC9hdGUtYnV0dG9uPlxuICAgICAgfVxuXG4gICAgICBAaWYgKFxuICAgICAgICBpbWFnZUJ1YmJsZU1lbnVDb25maWcoKS5zZXBhcmF0b3IgJiZcbiAgICAgICAgaW1hZ2VCdWJibGVNZW51Q29uZmlnKCkuZGVsZXRlSW1hZ2UgJiZcbiAgICAgICAgZWRpdG9yKCkuaXNFZGl0YWJsZVxuICAgICAgKSB7XG4gICAgICAgIDxhdGUtc2VwYXJhdG9yIC8+XG4gICAgICB9XG4gICAgICBAaWYgKGltYWdlQnViYmxlTWVudUNvbmZpZygpLmRlbGV0ZUltYWdlICYmIGVkaXRvcigpLmlzRWRpdGFibGUpIHtcbiAgICAgICAgPGF0ZS1idXR0b25cbiAgICAgICAgICBpY29uPVwiZGVsZXRlXCJcbiAgICAgICAgICBbdGl0bGVdPVwidCgpLmRlbGV0ZUltYWdlXCJcbiAgICAgICAgICB2YXJpYW50PVwiZGFuZ2VyXCJcbiAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwib25Db21tYW5kKCdkZWxldGVJbWFnZScsICRldmVudClcIj48L2F0ZS1idXR0b24+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIEF0ZUltYWdlQnViYmxlTWVudUNvbXBvbmVudCBleHRlbmRzIEF0ZUJhc2VCdWJibGVNZW51IHtcbiAgcmVhZG9ubHkgdCA9IHRoaXMuaTE4blNlcnZpY2UuaW1hZ2VVcGxvYWQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgaW1hZ2VTZXJ2aWNlID0gaW5qZWN0KEF0ZUltYWdlU2VydmljZSk7XG5cbiAgY29uZmlnID0gaW5wdXQ8QXRlSW1hZ2VCdWJibGVNZW51Q29uZmlnPihBVEVfREVGQVVMVF9JTUFHRV9CVUJCTEVfTUVOVV9DT05GSUcpO1xuXG4gIGltYWdlVXBsb2FkID0gaW5wdXQ8QXRlSW1hZ2VVcGxvYWRPcHRpb25zPih7fSk7XG5cbiAgaW1hZ2VCdWJibGVNZW51Q29uZmlnID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGMgPSB0aGlzLmNvbmZpZygpO1xuICAgIGNvbnN0IHJlc3VsdDogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gPSB7fTtcbiAgICBBVEVfSU1BR0VfQlVCQkxFX01FTlVfS0VZUy5mb3JFYWNoKGtleSA9PiB7XG4gICAgICByZXN1bHRba2V5XSA9IGNba2V5XSA/PyB0cnVlO1xuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQgYXMgUmVxdWlyZWQ8QXRlSW1hZ2VCdWJibGVNZW51Q29uZmlnPjtcbiAgfSk7XG5cbiAgaGFzQWxpZ25tZW50QnV0dG9ucyA9IGNvbXB1dGVkKFxuICAgICgpID0+XG4gICAgICB0aGlzLmltYWdlQnViYmxlTWVudUNvbmZpZygpLmFsaWduTGVmdCB8fFxuICAgICAgdGhpcy5pbWFnZUJ1YmJsZU1lbnVDb25maWcoKS5hbGlnbkNlbnRlciB8fFxuICAgICAgdGhpcy5pbWFnZUJ1YmJsZU1lbnVDb25maWcoKS5hbGlnblJpZ2h0XG4gICk7XG5cbiAgaGFzUmVzaXplQnV0dG9ucyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBjID0gdGhpcy5pbWFnZUJ1YmJsZU1lbnVDb25maWcoKTtcbiAgICByZXR1cm4gYy5yZXNpemVTbWFsbCB8fCBjLnJlc2l6ZU1lZGl1bSB8fCBjLnJlc2l6ZUxhcmdlIHx8IGMucmVzaXplT3JpZ2luYWw7XG4gIH0pO1xuXG4gIG92ZXJyaWRlIHNob3VsZFNob3coKTogYm9vbGVhbiB7XG4gICAgY29uc3QgeyBub2RlcywgaXNFZGl0YWJsZSwgaXNGb2N1c2VkLCBzZWxlY3Rpb24gfSA9IHRoaXMuc3RhdGUoKTtcblxuICAgIGlmICh0aGlzLmVkaXRvckNvbW1hbmRzLmxpbmtFZGl0TW9kZSgpIHx8IHRoaXMuZWRpdG9yQ29tbWFuZHMuY29sb3JFZGl0TW9kZSgpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gSW4gcmVhZC1vbmx5IG1vZGUsIGZvY3VzIHJlcG9ydGluZyBjYW4gYmUgdW5yZWxpYWJsZSxcbiAgICAvLyBzbyB3ZSBzaG93IHRoZSBtZW51IGFzIGxvbmcgYXMgYW4gaW1hZ2UgaXMgc2VsZWN0ZWQuXG4gICAgaWYgKCFpc0VkaXRhYmxlKSB7XG4gICAgICByZXR1cm4gbm9kZXMuaXNJbWFnZSAmJiBzZWxlY3Rpb24udHlwZSA9PT0gXCJub2RlXCI7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5vZGVzLmlzSW1hZ2UgJiYgaXNGb2N1c2VkO1xuICB9XG5cbiAgb3ZlcnJpZGUgZ2V0U2VsZWN0aW9uUmVjdCgpOiBET01SZWN0IHtcbiAgICBjb25zdCBlZCA9IHRoaXMuZWRpdG9yKCk7XG4gICAgaWYgKCFlZCkge1xuICAgICAgcmV0dXJuIG5ldyBET01SZWN0KDAsIDAsIDAsIDApO1xuICAgIH1cblxuICAgIGNvbnN0IHsgZnJvbSB9ID0gZWQuc3RhdGUuc2VsZWN0aW9uO1xuXG4gICAgdHJ5IHtcbiAgICAgIC8vIDEuIERpcmVjdCBQcm9zZU1pcnJvciBhcHByb2FjaDogZ2V0IERPTSBub2RlIGF0IHBvc2l0aW9uXG4gICAgICBjb25zdCBkb20gPSBlZC52aWV3Lm5vZGVET00oZnJvbSk7XG4gICAgICBpZiAoZG9tIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgLy8gSWYgaXQncyBhIHJlc2l6YWJsZSBjb250YWluZXIsIGxvb2sgZm9yIHRoZSBpbWFnZSBpbnNpZGVcbiAgICAgICAgaWYgKGRvbS5jbGFzc0xpc3QuY29udGFpbnMoXCJyZXNpemFibGUtaW1hZ2UtY29udGFpbmVyXCIpKSB7XG4gICAgICAgICAgY29uc3QgaW1nID0gZG9tLnF1ZXJ5U2VsZWN0b3IoXCJpbWdcIik7XG4gICAgICAgICAgaWYgKGltZykge1xuICAgICAgICAgICAgcmV0dXJuIGltZy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRvbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChfZSkge1xuICAgICAgLy8gRmFsbGJhY2sgaWYgbm9kZURPTSBmYWlsc1xuICAgIH1cblxuICAgIC8vIDIuIFVsdGltYXRlIGZhbGxiYWNrOiBmaW5kIHNlbGVjdGVkIGltYWdlIGluIERPTVxuICAgIGNvbnN0IHNlbGVjdGVkSW1nID0gZWQudmlldy5kb20ucXVlcnlTZWxlY3RvcihcbiAgICAgIFwiaW1nLnNlbGVjdGVkLCAucmVzaXphYmxlLWltYWdlLWNvbnRhaW5lci5zZWxlY3RlZCBpbWdcIlxuICAgICk7XG4gICAgaWYgKHNlbGVjdGVkSW1nKSB7XG4gICAgICByZXR1cm4gc2VsZWN0ZWRJbWcuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgfVxuXG4gICAgLy8gSWYgbm90aGluZyBmb3VuZCBhdCBhbGxcbiAgICByZXR1cm4gbmV3IERPTVJlY3QoLTk5OTksIC05OTk5LCAwLCAwKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBleGVjdXRlQ29tbWFuZChlZGl0b3I6IEVkaXRvciwgY29tbWFuZDogc3RyaW5nLCAuLi5fYXJnczogdW5rbm93bltdKTogdm9pZCB7XG4gICAgc3dpdGNoIChjb21tYW5kKSB7XG4gICAgICBjYXNlIFwiY2hhbmdlSW1hZ2VcIjpcbiAgICAgICAgdGhpcy5jaGFuZ2VJbWFnZSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJkb3dubG9hZEltYWdlXCI6XG4gICAgICAgIHRoaXMuZWRpdG9yQ29tbWFuZHMuZG93bmxvYWRJbWFnZShlZGl0b3IpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJyZXNpemVTbWFsbFwiOlxuICAgICAgICB0aGlzLmltYWdlU2VydmljZS5yZXNpemVJbWFnZVRvU21hbGwoZWRpdG9yKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwicmVzaXplTWVkaXVtXCI6XG4gICAgICAgIHRoaXMuaW1hZ2VTZXJ2aWNlLnJlc2l6ZUltYWdlVG9NZWRpdW0oZWRpdG9yKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwicmVzaXplTGFyZ2VcIjpcbiAgICAgICAgdGhpcy5pbWFnZVNlcnZpY2UucmVzaXplSW1hZ2VUb0xhcmdlKGVkaXRvcik7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcInJlc2l6ZU9yaWdpbmFsXCI6XG4gICAgICAgIHRoaXMuaW1hZ2VTZXJ2aWNlLnJlc2l6ZUltYWdlVG9PcmlnaW5hbChlZGl0b3IpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJkZWxldGVJbWFnZVwiOlxuICAgICAgICB0aGlzLmRlbGV0ZUltYWdlKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcImFsaWduTGVmdFwiOlxuICAgICAgICBlZGl0b3IuY2hhaW4oKS5mb2N1cygpLnNldFRleHRBbGlnbihcImxlZnRcIikucnVuKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcImFsaWduQ2VudGVyXCI6XG4gICAgICAgIGVkaXRvci5jaGFpbigpLmZvY3VzKCkuc2V0VGV4dEFsaWduKFwiY2VudGVyXCIpLnJ1bigpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJhbGlnblJpZ2h0XCI6XG4gICAgICAgIGVkaXRvci5jaGFpbigpLmZvY3VzKCkuc2V0VGV4dEFsaWduKFwicmlnaHRcIikucnVuKCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY2hhbmdlSW1hZ2UoKSB7XG4gICAgY29uc3QgZWQgPSB0aGlzLmVkaXRvcigpO1xuICAgIGlmICghZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgLy8gVXNlIGRlZGljYXRlZCBtZXRob2QgdG8gcmVwbGFjZSBhbiBleGlzdGluZyBpbWFnZVxuICAgICAgYXdhaXQgdGhpcy5pbWFnZVNlcnZpY2Uuc2VsZWN0QW5kUmVwbGFjZUltYWdlKGVkLCB0aGlzLmltYWdlVXBsb2FkKCkpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKHRoaXMuaTE4blNlcnZpY2UuaW1hZ2VVcGxvYWQoKS51cGxvYWRFcnJvciwgZXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZGVsZXRlSW1hZ2UoKSB7XG4gICAgY29uc3QgZWQgPSB0aGlzLmVkaXRvcigpO1xuICAgIGlmIChlZCkge1xuICAgICAgZWQuY2hhaW4oKS5mb2N1cygpLmRlbGV0ZVNlbGVjdGlvbigpLnJ1bigpO1xuICAgIH1cbiAgfVxufVxuIl19
309
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRlLWltYWdlLWJ1YmJsZS1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdGlwdGFwLWVkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvYnViYmxlLW1lbnVzL2ltYWdlL2F0ZS1pbWFnZS1idWJibGUtbWVudS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsdUJBQXVCLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU1RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUVMLDBCQUEwQixHQUMzQixNQUFNLHVDQUF1QyxDQUFDO0FBQy9DLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDOztBQThGakUsTUFBTSxPQUFPLDJCQUE0QixTQUFRLGlCQUFpQjtJQTNGbEU7O1FBNEZXLE1BQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQztRQUN6QixpQkFBWSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUV4RCxXQUFNLEdBQUcsS0FBSyxDQUEyQixvQ0FBb0MsQ0FBQyxDQUFDO1FBRS9FLGdCQUFXLEdBQUcsS0FBSyxDQUF3QixFQUFFLENBQUMsQ0FBQztRQUUvQywwQkFBcUIsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3BDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN4QixNQUFN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QUFDO29CQUNULFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsa0JBQWtCLEVBQUUscUJBQXFCLENBQUM7b0JBQ3BELFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0ZUO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbnB1dCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIGNvbXB1dGVkLCBpbmplY3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgdHlwZSBFZGl0b3IgfSBmcm9tIFwiQHRpcHRhcC9jb3JlXCI7XG5pbXBvcnQgeyBBdGVCdXR0b25Db21wb25lbnQgfSBmcm9tIFwiLi4vLi4vdWkvYXRlLWJ1dHRvbi5jb21wb25lbnRcIjtcbmltcG9ydCB7IEF0ZVNlcGFyYXRvckNvbXBvbmVudCB9IGZyb20gXCIuLi8uLi91aS9hdGUtc2VwYXJhdG9yLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgQXRlSW1hZ2VTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2VzL2F0ZS1pbWFnZS5zZXJ2aWNlXCI7XG5pbXBvcnQge1xuICBBdGVJbWFnZUJ1YmJsZU1lbnVDb25maWcsXG4gIEFURV9JTUFHRV9CVUJCTEVfTUVOVV9LRVlTLFxufSBmcm9tIFwiLi4vLi4vLi4vbW9kZWxzL2F0ZS1idWJibGUtbWVudS5tb2RlbFwiO1xuaW1wb3J0IHsgQVRFX0RFRkFVTFRfSU1BR0VfQlVCQkxFX01FTlVfQ09ORklHIH0gZnJvbSBcIi4uLy4uLy4uL2NvbmZpZy9hdGUtZWRpdG9yLmNvbmZpZ1wiO1xuaW1wb3J0IHsgQXRlQmFzZUJ1YmJsZU1lbnUgfSBmcm9tIFwiLi4vYmFzZS9hdGUtYmFzZS1idWJibGUtbWVudVwiO1xuaW1wb3J0IHsgQXRlSW1hZ2VVcGxvYWRPcHRpb25zIH0gZnJvbSBcIi4uLy4uLy4uL21vZGVscy9hdGUtaW1hZ2UubW9kZWxcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImF0ZS1pbWFnZS1idWJibGUtbWVudVwiLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW0F0ZUJ1dHRvbkNvbXBvbmVudCwgQXRlU2VwYXJhdG9yQ29tcG9uZW50XSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2ICNtZW51UmVmIGNsYXNzPVwiYnViYmxlLW1lbnVcIiAobW91c2Vkb3duKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCI+XG4gICAgICBAaWYgKGltYWdlQnViYmxlTWVudUNvbmZpZygpLmNoYW5nZUltYWdlICYmIGVkaXRvcigpLmlzRWRpdGFibGUpIHtcbiAgICAgICAgPGF0ZS1idXR0b25cbiAgICAgICAgICBpY29uPVwiY2hhbmdlSW1hZ2VcIlxuICAgICAgICAgIFt0aXRsZV09XCJ0KCkuY2hhbmdlSW1hZ2VcIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkNvbW1hbmQoJ2NoYW5nZUltYWdlJywgJGV2ZW50KVwiPjwvYXRlLWJ1dHRvbj5cbiAgICAgIH1cbiAgICAgIEBpZiAoaW1hZ2VCdWJibGVNZW51Q29uZmlnKCkuZG93bmxvYWRJbWFnZSkge1xuICAgICAgICA8YXRlLWJ1dHRvblxuICAgICAgICAgIGljb249XCJkb3dubG9hZEltYWdlXCJcbiAgICAgICAgICBbdGl0bGVdPVwidCgpLmRvd25sb2FkSW1hZ2VcIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkNvbW1hbmQoJ2Rvd25sb2FkSW1hZ2UnLCAkZXZlbnQpXCI+PC9hdGUtYnV0dG9uPlxuICAgICAgfVxuICAgICAgQGlmIChpbWFnZUJ1YmJsZU1lbnVDb25maWcoKS5zZXBhcmF0b3IgJiYgaGFzUmVzaXplQnV0dG9ucygpICYmIGVkaXRvcigpLmlzRWRpdGFibGUpIHtcbiAgICAgICAgPGF0ZS1zZXBhcmF0b3IgLz5cbiAgICAgIH1cbiAgICAgIEBpZiAoaW1hZ2VCdWJibGVNZW51Q29uZmlnKCkucmVzaXplU21hbGwgJiYgZWRpdG9yKCkuaXNFZGl0YWJsZSkge1xuICAgICAgICA8YXRlLWJ1dHRvblxuICAgICAgICAgIGljb249XCJyZXNpemVTbWFsbFwiXG4gICAgICAgICAgaWNvblNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgW3RpdGxlXT1cInQoKS5yZXNpemVTbWFsbFwiXG4gICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cIm9uQ29tbWFuZCgncmVzaXplU21hbGwnLCAkZXZlbnQpXCI+PC9hdGUtYnV0dG9uPlxuICAgICAgfVxuICAgICAgQGlmIChpbWFnZUJ1YmJsZU1lbnVDb25maWcoKS5yZXNpemVNZWRpdW0gJiYgZWRpdG9yKCkuaXNFZGl0YWJsZSkge1xuICAgICAgICA8YXRlLWJ1dHRvblxuICAgICAgICAgIGljb249XCJyZXNpemVNZWRpdW1cIlxuICAgICAgICAgIGljb25TaXplPVwibWVkaXVtXCJcbiAgICAgICAgICBbdGl0bGVdPVwidCgpLnJlc2l6ZU1lZGl1bVwiXG4gICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cIm9uQ29tbWFuZCgncmVzaXplTWVkaXVtJywgJGV2ZW50KVwiPjwvYXRlLWJ1dHRvbj5cbiAgICAgIH1cbiAgICAgIEBpZiAoaW1hZ2VCdWJibGVNZW51Q29uZmlnKCkucmVzaXplTGFyZ2UgJiYgZWRpdG9yKCkuaXNFZGl0YWJsZSkge1xuICAgICAgICA8YXRlLWJ1dHRvblxuICAgICAgICAgIGljb249XCJyZXNpemVMYXJnZVwiXG4gICAgICAgICAgaWNvblNpemU9XCJsYXJnZVwiXG4gICAgICAgICAgW3RpdGxlXT1cInQoKS5yZXNpemVMYXJnZVwiXG4gICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cIm9uQ29tbWFuZCgncmVzaXplTGFyZ2UnLCAkZXZlbnQpXCI+PC9hdGUtYnV0dG9uPlxuICAgICAgfVxuICAgICAgQGlmIChpbWFnZUJ1YmJsZU1lbnVDb25maWcoKS5yZXNpemVPcmlnaW5hbCAmJiBlZGl0b3IoKS5pc0VkaXRhYmxlKSB7XG4gICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgaWNvbj1cInJlc2l6ZU9yaWdpbmFsXCJcbiAgICAgICAgICBbdGl0bGVdPVwidCgpLnJlc2l6ZU9yaWdpbmFsXCJcbiAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwib25Db21tYW5kKCdyZXNpemVPcmlnaW5hbCcsICRldmVudClcIj48L2F0ZS1idXR0b24+XG4gICAgICB9XG4gICAgICBAaWYgKGltYWdlQnViYmxlTWVudUNvbmZpZygpLnNlcGFyYXRvciAmJiBoYXNBbGlnbm1lbnRCdXR0b25zKCkgJiYgZWRpdG9yKCkuaXNFZGl0YWJsZSkge1xuICAgICAgICA8YXRlLXNlcGFyYXRvciAvPlxuICAgICAgfVxuICAgICAgQGlmIChpbWFnZUJ1YmJsZU1lbnVDb25maWcoKS5hbGlnbkxlZnQgJiYgZWRpdG9yKCkuaXNFZGl0YWJsZSkge1xuICAgICAgICA8YXRlLWJ1dHRvblxuICAgICAgICAgIGljb249XCJhbGlnbkxlZnRcIlxuICAgICAgICAgIFt0aXRsZV09XCJ0KCkuYWxpZ25MZWZ0XCJcbiAgICAgICAgICBbYWN0aXZlXT1cImVkaXRvcigpLmlzQWN0aXZlKHsgdGV4dEFsaWduOiAnbGVmdCcgfSlcIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkNvbW1hbmQoJ2FsaWduTGVmdCcsICRldmVudClcIj48L2F0ZS1idXR0b24+XG4gICAgICB9XG4gICAgICBAaWYgKGltYWdlQnViYmxlTWVudUNvbmZpZygpLmFsaWduQ2VudGVyICYmIGVkaXRvcigpLmlzRWRpdGFibGUpIHtcbiAgICAgICAgPGF0ZS1idXR0b25cbiAgICAgICAgICBpY29uPVwiYWxpZ25DZW50ZXJcIlxuICAgICAgICAgIFt0aXRsZV09XCJ0KCkuYWxpZ25DZW50ZXJcIlxuICAgICAgICAgIFthY3RpdmVdPVwiZWRpdG9yKCkuaXNBY3RpdmUoeyB0ZXh0QWxpZ246ICdjZW50ZXInIH0pXCJcbiAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwib25Db21tYW5kKCdhbGlnbkNlbnRlcicsICRldmVudClcIj48L2F0ZS1idXR0b24+XG4gICAgICB9XG4gICAgICBAaWYgKGltYWdlQnViYmxlTWVudUNvbmZpZygpLmFsaWduUmlnaHQgJiYgZWRpdG9yKCkuaXNFZGl0YWJsZSkge1xuICAgICAgICA8YXRlLWJ1dHRvblxuICAgICAgICAgIGljb249XCJhbGlnblJpZ2h0XCJcbiAgICAgICAgICBbdGl0bGVdPVwidCgpLmFsaWduUmlnaHRcIlxuICAgICAgICAgIFthY3RpdmVdPVwiZWRpdG9yKCkuaXNBY3RpdmUoeyB0ZXh0QWxpZ246ICdyaWdodCcgfSlcIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkNvbW1hbmQoJ2FsaWduUmlnaHQnLCAkZXZlbnQpXCI+PC9hdGUtYnV0dG9uPlxuICAgICAgfVxuXG4gICAgICBAaWYgKFxuICAgICAgICBpbWFnZUJ1YmJsZU1lbnVDb25maWcoKS5zZXBhcmF0b3IgJiZcbiAgICAgICAgaW1hZ2VCdWJibGVNZW51Q29uZmlnKCkuZGVsZXRlSW1hZ2UgJiZcbiAgICAgICAgZWRpdG9yKCkuaXNFZGl0YWJsZVxuICAgICAgKSB7XG4gICAgICAgIDxhdGUtc2VwYXJhdG9yIC8+XG4gICAgICB9XG4gICAgICBAaWYgKGltYWdlQnViYmxlTWVudUNvbmZpZygpLmRlbGV0ZUltYWdlICYmIGVkaXRvcigpLmlzRWRpdGFibGUpIHtcbiAgICAgICAgPGF0ZS1idXR0b25cbiAgICAgICAgICBpY29uPVwiZGVsZXRlSW1hZ2VcIlxuICAgICAgICAgIFt0aXRsZV09XCJ0KCkuZGVsZXRlSW1hZ2VcIlxuICAgICAgICAgIHZhcmlhbnQ9XCJkYW5nZXJcIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkNvbW1hbmQoJ2RlbGV0ZUltYWdlJywgJGV2ZW50KVwiPjwvYXRlLWJ1dHRvbj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgQXRlSW1hZ2VCdWJibGVNZW51Q29tcG9uZW50IGV4dGVuZHMgQXRlQmFzZUJ1YmJsZU1lbnUge1xuICByZWFkb25seSB0ID0gdGhpcy5pMThuU2VydmljZS5pbWFnZVVwbG9hZDtcbiAgcHJpdmF0ZSByZWFkb25seSBpbWFnZVNlcnZpY2UgPSBpbmplY3QoQXRlSW1hZ2VTZXJ2aWNlKTtcblxuICBjb25maWcgPSBpbnB1dDxBdGVJbWFnZUJ1YmJsZU1lbnVDb25maWc+KEFURV9ERUZBVUxUX0lNQUdFX0JVQkJMRV9NRU5VX0NPTkZJRyk7XG5cbiAgaW1hZ2VVcGxvYWQgPSBpbnB1dDxBdGVJbWFnZVVwbG9hZE9wdGlvbnM+KHt9KTtcblxuICBpbWFnZUJ1YmJsZU1lbnVDb25maWcgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgYyA9IHRoaXMuY29uZmlnKCk7XG4gICAgY29uc3QgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPiA9IHt9O1xuICAgIEFURV9JTUFHRV9CVUJCTEVfTUVOVV9LRVlTLmZvckVhY2goa2V5ID0+IHtcbiAgICAgIHJlc3VsdFtrZXldID0gY1trZXldID8/IHRydWU7XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdCBhcyBSZXF1aXJlZDxBdGVJbWFnZUJ1YmJsZU1lbnVDb25maWc+O1xuICB9KTtcblxuICBoYXNBbGlnbm1lbnRCdXR0b25zID0gY29tcHV0ZWQoXG4gICAgKCkgPT5cbiAgICAgIHRoaXMuaW1hZ2VCdWJibGVNZW51Q29uZmlnKCkuYWxpZ25MZWZ0IHx8XG4gICAgICB0aGlzLmltYWdlQnViYmxlTWVudUNvbmZpZygpLmFsaWduQ2VudGVyIHx8XG4gICAgICB0aGlzLmltYWdlQnViYmxlTWVudUNvbmZpZygpLmFsaWduUmlnaHRcbiAgKTtcblxuICBoYXNSZXNpemVCdXR0b25zID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGMgPSB0aGlzLmltYWdlQnViYmxlTWVudUNvbmZpZygpO1xuICAgIHJldHVybiBjLnJlc2l6ZVNtYWxsIHx8IGMucmVzaXplTWVkaXVtIHx8IGMucmVzaXplTGFyZ2UgfHwgYy5yZXNpemVPcmlnaW5hbDtcbiAgfSk7XG5cbiAgb3ZlcnJpZGUgc2hvdWxkU2hvdygpOiBib29sZWFuIHtcbiAgICBjb25zdCB7IG5vZGVzLCBpc0VkaXRhYmxlLCBpc0ZvY3VzZWQsIHNlbGVjdGlvbiB9ID0gdGhpcy5zdGF0ZSgpO1xuXG4gICAgaWYgKHRoaXMuZWRpdG9yQ29tbWFuZHMubGlua0VkaXRNb2RlKCkgfHwgdGhpcy5lZGl0b3JDb21tYW5kcy5jb2xvckVkaXRNb2RlKCkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBJbiByZWFkLW9ubHkgbW9kZSwgZm9jdXMgcmVwb3J0aW5nIGNhbiBiZSB1bnJlbGlhYmxlLFxuICAgIC8vIHNvIHdlIHNob3cgdGhlIG1lbnUgYXMgbG9uZyBhcyBhbiBpbWFnZSBpcyBzZWxlY3RlZC5cbiAgICBpZiAoIWlzRWRpdGFibGUpIHtcbiAgICAgIHJldHVybiBub2Rlcy5pc0ltYWdlICYmIHNlbGVjdGlvbi50eXBlID09PSBcIm5vZGVcIjtcbiAgICB9XG5cbiAgICByZXR1cm4gbm9kZXMuaXNJbWFnZSAmJiBpc0ZvY3VzZWQ7XG4gIH1cblxuICBvdmVycmlkZSBnZXRTZWxlY3Rpb25SZWN0KCk6IERPTVJlY3Qge1xuICAgIGNvbnN0IGVkID0gdGhpcy5lZGl0b3IoKTtcbiAgICBpZiAoIWVkKSB7XG4gICAgICByZXR1cm4gbmV3IERPTVJlY3QoMCwgMCwgMCwgMCk7XG4gICAgfVxuXG4gICAgY29uc3QgeyBmcm9tIH0gPSBlZC5zdGF0ZS5zZWxlY3Rpb247XG5cbiAgICB0cnkge1xuICAgICAgLy8gMS4gRGlyZWN0IFByb3NlTWlycm9yIGFwcHJvYWNoOiBnZXQgRE9NIG5vZGUgYXQgcG9zaXRpb25cbiAgICAgIGNvbnN0IGRvbSA9IGVkLnZpZXcubm9kZURPTShmcm9tKTtcbiAgICAgIGlmIChkb20gaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkge1xuICAgICAgICAvLyBJZiBpdCdzIGEgcmVzaXphYmxlIGNvbnRhaW5lciwgbG9vayBmb3IgdGhlIGltYWdlIGluc2lkZVxuICAgICAgICBpZiAoZG9tLmNsYXNzTGlzdC5jb250YWlucyhcInJlc2l6YWJsZS1pbWFnZS1jb250YWluZXJcIikpIHtcbiAgICAgICAgICBjb25zdCBpbWcgPSBkb20ucXVlcnlTZWxlY3RvcihcImltZ1wiKTtcbiAgICAgICAgICBpZiAoaW1nKSB7XG4gICAgICAgICAgICByZXR1cm4gaW1nLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZG9tLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKF9lKSB7XG4gICAgICAvLyBGYWxsYmFjayBpZiBub2RlRE9NIGZhaWxzXG4gICAgfVxuXG4gICAgLy8gMi4gVWx0aW1hdGUgZmFsbGJhY2s6IGZpbmQgc2VsZWN0ZWQgaW1hZ2UgaW4gRE9NXG4gICAgY29uc3Qgc2VsZWN0ZWRJbWcgPSBlZC52aWV3LmRvbS5xdWVyeVNlbGVjdG9yKFxuICAgICAgXCJpbWcuc2VsZWN0ZWQsIC5yZXNpemFibGUtaW1hZ2UtY29udGFpbmVyLnNlbGVjdGVkIGltZ1wiXG4gICAgKTtcbiAgICBpZiAoc2VsZWN0ZWRJbWcpIHtcbiAgICAgIHJldHVybiBzZWxlY3RlZEltZy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICB9XG5cbiAgICAvLyBJZiBub3RoaW5nIGZvdW5kIGF0IGFsbFxuICAgIHJldHVybiBuZXcgRE9NUmVjdCgtOTk5OSwgLTk5OTksIDAsIDApO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGV4ZWN1dGVDb21tYW5kKGVkaXRvcjogRWRpdG9yLCBjb21tYW5kOiBzdHJpbmcsIC4uLl9hcmdzOiB1bmtub3duW10pOiB2b2lkIHtcbiAgICBzd2l0Y2ggKGNvbW1hbmQpIHtcbiAgICAgIGNhc2UgXCJjaGFuZ2VJbWFnZVwiOlxuICAgICAgICB0aGlzLmNoYW5nZUltYWdlKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcImRvd25sb2FkSW1hZ2VcIjpcbiAgICAgICAgdGhpcy5lZGl0b3JDb21tYW5kcy5kb3dubG9hZEltYWdlKGVkaXRvcik7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcInJlc2l6ZVNtYWxsXCI6XG4gICAgICAgIHRoaXMuaW1hZ2VTZXJ2aWNlLnJlc2l6ZUltYWdlVG9TbWFsbChlZGl0b3IpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJyZXNpemVNZWRpdW1cIjpcbiAgICAgICAgdGhpcy5pbWFnZVNlcnZpY2UucmVzaXplSW1hZ2VUb01lZGl1bShlZGl0b3IpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJyZXNpemVMYXJnZVwiOlxuICAgICAgICB0aGlzLmltYWdlU2VydmljZS5yZXNpemVJbWFnZVRvTGFyZ2UoZWRpdG9yKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwicmVzaXplT3JpZ2luYWxcIjpcbiAgICAgICAgdGhpcy5pbWFnZVNlcnZpY2UucmVzaXplSW1hZ2VUb09yaWdpbmFsKGVkaXRvcik7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcImRlbGV0ZUltYWdlXCI6XG4gICAgICAgIHRoaXMuZGVsZXRlSW1hZ2UoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwiYWxpZ25MZWZ0XCI6XG4gICAgICAgIGVkaXRvci5jaGFpbigpLmZvY3VzKCkuc2V0VGV4dEFsaWduKFwibGVmdFwiKS5ydW4oKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwiYWxpZ25DZW50ZXJcIjpcbiAgICAgICAgZWRpdG9yLmNoYWluKCkuZm9jdXMoKS5zZXRUZXh0QWxpZ24oXCJjZW50ZXJcIikucnVuKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcImFsaWduUmlnaHRcIjpcbiAgICAgICAgZWRpdG9yLmNoYWluKCkuZm9jdXMoKS5zZXRUZXh0QWxpZ24oXCJyaWdodFwiKS5ydW4oKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjaGFuZ2VJbWFnZSgpIHtcbiAgICBjb25zdCBlZCA9IHRoaXMuZWRpdG9yKCk7XG4gICAgaWYgKCFlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICAvLyBVc2UgZGVkaWNhdGVkIG1ldGhvZCB0byByZXBsYWNlIGFuIGV4aXN0aW5nIGltYWdlXG4gICAgICBhd2FpdCB0aGlzLmltYWdlU2VydmljZS5zZWxlY3RBbmRSZXBsYWNlSW1hZ2UoZWQsIHRoaXMuaW1hZ2VVcGxvYWQoKSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IodGhpcy5pMThuU2VydmljZS5pbWFnZVVwbG9hZCgpLnVwbG9hZEVycm9yLCBlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBkZWxldGVJbWFnZSgpIHtcbiAgICBjb25zdCBlZCA9IHRoaXMuZWRpdG9yKCk7XG4gICAgaWYgKGVkKSB7XG4gICAgICBlZC5jaGFpbigpLmZvY3VzKCkuZGVsZXRlU2VsZWN0aW9uKCkucnVuKCk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -3,6 +3,7 @@ import { FormsModule } from "@angular/forms";
3
3
  import { AteButtonComponent } from "../../ui/ate-button.component";
4
4
  import { AteLinkService } from "../../../services/ate-link.service";
5
5
  import { AteSeparatorComponent } from "../../ui/ate-separator.component";
6
+ import { AteIconComponent } from "../../ui/ate-icon.component";
6
7
  import { AteBaseSubBubbleMenu } from "../base/ate-base-sub-bubble-menu";
7
8
  import * as i0 from "@angular/core";
8
9
  import * as i1 from "@angular/forms";
@@ -154,7 +155,7 @@ export class AteLinkBubbleMenuComponent extends AteBaseSubBubbleMenu {
154
155
  role="dialog">
155
156
  <div class="link-input-row">
156
157
  <div class="url-input-container">
157
- <span class="material-symbols-outlined icon-link">link</span>
158
+ <ate-icon class="icon-link" name="link" />
158
159
  <input
159
160
  #linkInput
160
161
  type="text"
@@ -170,19 +171,19 @@ export class AteLinkBubbleMenuComponent extends AteBaseSubBubbleMenu {
170
171
 
171
172
  <div class="action-buttons">
172
173
  <ate-button
173
- icon="check"
174
+ icon="apply"
174
175
  [title]="common().apply"
175
176
  color="var(--ate-primary)"
176
177
  [disabled]="!editUrl().trim()"
177
178
  (buttonClick)="onApply($event)"></ate-button>
178
179
  <ate-button
179
- icon="open_in_new"
180
+ icon="openLink"
180
181
  [title]="t().openLink"
181
182
  [disabled]="!currentUrl()"
182
183
  (buttonClick)="onOpenLink($event)"></ate-button>
183
184
  <ate-separator />
184
185
  <ate-button
185
- icon="link_off"
186
+ icon="unsetLink"
186
187
  [title]="t().removeLink"
187
188
  variant="danger"
188
189
  [disabled]="!currentUrl()"
@@ -190,11 +191,11 @@ export class AteLinkBubbleMenuComponent extends AteBaseSubBubbleMenu {
190
191
  </div>
191
192
  </div>
192
193
  </div>
193
- `, isInline: true, styles: [".link-input-row{display:flex;align-items:center;gap:6px}.url-input-container{flex:1;display:flex;align-items:center;background:var(--ate-surface-secondary, #f8fafc);border:1px solid var(--ate-border, #e2e8f0);border-radius:8px;padding:0 10px;height:32px;transition:all .15s ease}.url-input-container:focus-within{border-color:var(--ate-primary, #3b82f6);background:var(--ate-surface, #ffffff);box-shadow:0 0 0 2px var(--ate-primary-light, rgba(59, 130, 246, .1))}.icon-link{font-size:16px;color:var(--ate-text-muted, #94a3b8);margin-right:6px}.url-field{background:transparent;border:none;outline:none;color:var(--ate-text, #1e293b);font-size:13px;width:100%;font-family:inherit}.action-buttons{display:flex;align-items:center;gap:2px}\n"], dependencies: [{ kind: "component", type: AteButtonComponent, selector: "ate-button", inputs: ["icon", "title", "active", "disabled", "color", "backgroundColor", "variant", "size", "iconSize"], outputs: ["buttonClick"] }, { kind: "component", type: AteSeparatorComponent, selector: "ate-separator" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
194
+ `, isInline: true, styles: [".link-input-row{display:flex;align-items:center;gap:6px}.url-input-container{flex:1;display:flex;align-items:center;background:var(--ate-surface-secondary, #f8fafc);border:1px solid var(--ate-border, #e2e8f0);border-radius:8px;padding:0 10px;height:32px;transition:all .15s ease}.url-input-container:focus-within{border-color:var(--ate-primary, #3b82f6);background:var(--ate-surface, #ffffff);box-shadow:0 0 0 2px var(--ate-primary-light, rgba(59, 130, 246, .1))}.icon-link{font-size:16px;color:var(--ate-text-muted, #94a3b8);margin-right:6px}.url-field{background:transparent;border:none;outline:none;color:var(--ate-text, #1e293b);font-size:13px;width:100%;font-family:inherit}.action-buttons{display:flex;align-items:center;gap:2px}\n"], dependencies: [{ kind: "component", type: AteButtonComponent, selector: "ate-button", inputs: ["icon", "title", "active", "disabled", "color", "backgroundColor", "variant", "size", "iconSize"], outputs: ["buttonClick"] }, { kind: "component", type: AteSeparatorComponent, selector: "ate-separator" }, { kind: "component", type: AteIconComponent, selector: "ate-icon", inputs: ["name"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
194
195
  }
195
196
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AteLinkBubbleMenuComponent, decorators: [{
196
197
  type: Component,
197
- args: [{ selector: "ate-link-bubble-menu", standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [AteButtonComponent, AteSeparatorComponent, FormsModule], template: `
198
+ args: [{ selector: "ate-link-bubble-menu", standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [AteButtonComponent, AteSeparatorComponent, AteIconComponent, FormsModule], template: `
198
199
  <div
199
200
  #menuRef
200
201
  class="bubble-menu"
@@ -206,7 +207,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
206
207
  role="dialog">
207
208
  <div class="link-input-row">
208
209
  <div class="url-input-container">
209
- <span class="material-symbols-outlined icon-link">link</span>
210
+ <ate-icon class="icon-link" name="link" />
210
211
  <input
211
212
  #linkInput
212
213
  type="text"
@@ -222,19 +223,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
222
223
 
223
224
  <div class="action-buttons">
224
225
  <ate-button
225
- icon="check"
226
+ icon="apply"
226
227
  [title]="common().apply"
227
228
  color="var(--ate-primary)"
228
229
  [disabled]="!editUrl().trim()"
229
230
  (buttonClick)="onApply($event)"></ate-button>
230
231
  <ate-button
231
- icon="open_in_new"
232
+ icon="openLink"
232
233
  [title]="t().openLink"
233
234
  [disabled]="!currentUrl()"
234
235
  (buttonClick)="onOpenLink($event)"></ate-button>
235
236
  <ate-separator />
236
237
  <ate-button
237
- icon="link_off"
238
+ icon="unsetLink"
238
239
  [title]="t().removeLink"
239
240
  variant="danger"
240
241
  [disabled]="!currentUrl()"
@@ -244,4 +245,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
244
245
  </div>
245
246
  `, styles: [".link-input-row{display:flex;align-items:center;gap:6px}.url-input-container{flex:1;display:flex;align-items:center;background:var(--ate-surface-secondary, #f8fafc);border:1px solid var(--ate-border, #e2e8f0);border-radius:8px;padding:0 10px;height:32px;transition:all .15s ease}.url-input-container:focus-within{border-color:var(--ate-primary, #3b82f6);background:var(--ate-surface, #ffffff);box-shadow:0 0 0 2px var(--ate-primary-light, rgba(59, 130, 246, .1))}.icon-link{font-size:16px;color:var(--ate-text-muted, #94a3b8);margin-right:6px}.url-field{background:transparent;border:none;outline:none;color:var(--ate-text, #1e293b);font-size:13px;width:100%;font-family:inherit}.action-buttons{display:flex;align-items:center;gap:2px}\n"] }]
246
247
  }], ctorParameters: () => [] });
247
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRlLWxpbmstYnViYmxlLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci10aXB0YXAtZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9idWJibGUtbWVudXMvbGluay9hdGUtbGluay1idWJibGUtbWVudS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULE1BQU0sRUFDTixNQUFNLEVBQ04sTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDcEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDekUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7OztBQTBHeEUsTUFBTSxPQUFPLDBCQUEyQixTQUFRLG9CQUFvQjtJQVVsRTtRQUNFLEtBQUssRUFBRSxDQUFDO1FBVk8sWUFBTyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUV6QyxNQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUM7UUFDaEMsV0FBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDO1FBRTFDLGNBQVMsR0FBRyxTQUFTLENBQStCLFdBQVcsQ0FBQyxDQUFDO1FBRWpFLFlBQU8sR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFLbkIsK0JBQStCO1FBQy9CLE1BQU0sQ0FDSixHQUFHLEVBQUU7WUFDSCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxF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RUFBRSxDQUFDLENBQUM7WUFDckIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbkMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ25CLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixDQUFDO0lBQ0gsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFZO1FBQ25CLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQzsrR0FoS1UsMEJBQTBCO21HQUExQiwwQkFBMEIsK05BbkczQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBZ0RULDJ5QkFqRFMsa0JBQWtCLDZMQUFFLHFCQUFxQix5REFBRSxXQUFXOzs0RkFvR3JELDBCQUEwQjtrQkF4R3RDLFNBQVM7K0JBQ0Usc0JBQXNCLGNBQ3BCLElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLGtCQUFrQixFQUFFLHFCQUFxQixFQUFFLFdBQVcsQ0FBQyxZQUN2RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBZ0RUIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgdmlld0NoaWxkLFxuICBFbGVtZW50UmVmLFxuICBzaWduYWwsXG4gIGVmZmVjdCxcbiAgaW5qZWN0LFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IEF0ZUJ1dHRvbkNvbXBvbmVudCB9IGZyb20gXCIuLi8uLi91aS9hdGUtYnV0dG9uLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgQXRlTGlua1NlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXMvYXRlLWxpbmsuc2VydmljZVwiO1xuaW1wb3J0IHsgQXRlU2VwYXJhdG9yQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL3VpL2F0ZS1zZXBhcmF0b3IuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBBdGVCYXNlU3ViQnViYmxlTWVudSB9IGZyb20gXCIuLi9iYXNlL2F0ZS1iYXNlLXN1Yi1idWJibGUtbWVudVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwiYXRlLWxpbmstYnViYmxlLW1lbnVcIixcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtBdGVCdXR0b25Db21wb25lbnQsIEF0ZVNlcGFyYXRvckNvbXBvbmVudCwgRm9ybXNNb2R1bGVdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXZcbiAgICAgICNtZW51UmVmXG4gICAgICBjbGFzcz1cImJ1YmJsZS1tZW51XCJcbiAgICAgIChtb3VzZWRvd24pPVwib25Nb3VzZURvd24oJGV2ZW50KVwiXG4gICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgIChrZXlkb3duKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAoa2V5ZG93bi5lc2NhcGUpPVwib25DYW5jZWwoJGV2ZW50KVwiXG4gICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgIHJvbGU9XCJkaWFsb2dcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJsaW5rLWlucHV0LXJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidXJsLWlucHV0LWNvbnRhaW5lclwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCBpY29uLWxpbmtcIj5saW5rPC9zcGFuPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgI2xpbmtJbnB1dFxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgY2xhc3M9XCJ1cmwtZmllbGRcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInQoKS5saW5rVXJsXCJcbiAgICAgICAgICAgIFtuZ01vZGVsXT1cImVkaXRVcmwoKVwiXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJlZGl0VXJsLnNldCgkZXZlbnQpXCJcbiAgICAgICAgICAgIChmb2N1cyk9XCJvbkZvY3VzKClcIlxuICAgICAgICAgICAgKGJsdXIpPVwib25CbHVyKClcIlxuICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwib25BcHBseSgkZXZlbnQpXCJcbiAgICAgICAgICAgIChrZXlkb3duLmVzY2FwZSk9XCJvbkNhbmNlbCgkZXZlbnQpXCIgLz5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFjdGlvbi1idXR0b25zXCI+XG4gICAgICAgICAgPGF0ZS1idXR0b25cbiAgICAgICAgICAgIGljb249XCJjaGVja1wiXG4gICAgICAgICAgICBbdGl0bGVdPVwiY29tbW9uKCkuYXBwbHlcIlxuICAgICAgICAgICAgY29sb3I9XCJ2YXIoLS1hdGUtcHJpbWFyeSlcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFlZGl0VXJsKCkudHJpbSgpXCJcbiAgICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkFwcGx5KCRldmVudClcIj48L2F0ZS1idXR0b24+XG4gICAgICAgICAgPGF0ZS1idXR0b25cbiAgICAgICAgICAgIGljb249XCJvcGVuX2luX25ld1wiXG4gICAgICAgICAgICBbdGl0bGVdPVwidCgpLm9wZW5MaW5rXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhY3VycmVudFVybCgpXCJcbiAgICAgICAgICAgIChidXR0b25DbGljayk9XCJvbk9wZW5MaW5rKCRldmVudClcIj48L2F0ZS1idXR0b24+XG4gICAgICAgICAgPGF0ZS1zZXBhcmF0b3IgLz5cbiAgICAgICAgICA8YXRlLWJ1dHRvblxuICAgICAgICAgICAgaWNvbj1cImxpbmtfb2ZmXCJcbiAgICAgICAgICAgIFt0aXRsZV09XCJ0KCkucmVtb3ZlTGlua1wiXG4gICAgICAgICAgICB2YXJpYW50PVwiZGFuZ2VyXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhY3VycmVudFVybCgpXCJcbiAgICAgICAgICAgIChidXR0b25DbGljayk9XCJvblJlbW92ZSgkZXZlbnQpXCI+PC9hdGUtYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICAubGluay1pbnB1dC1yb3cge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDZweDtcbiAgICAgIH1cblxuICAgICAgLnVybC1pbnB1dC1jb250YWluZXIge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1hdGUtc3VyZmFjZS1zZWNvbmRhcnksICNmOGZhZmMpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1hdGUtYm9yZGVyLCAjZTJlOGYwKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICBwYWRkaW5nOiAwIDEwcHg7XG4gICAgICAgIGhlaWdodDogMzJweDtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDE1MG1zIGVhc2U7XG4gICAgICB9XG5cbiAgICAgIC51cmwtaW5wdXQtY29udGFpbmVyOmZvY3VzLXdpdGhpbiB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYXRlLXByaW1hcnksICMzYjgyZjYpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1hdGUtc3VyZmFjZSwgI2ZmZmZmZik7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1hdGUtcHJpbWFyeS1saWdodCwgcmdiYSg1OSwgMTMwLCAyNDYsIDAuMSkpO1xuICAgICAgfVxuXG4gICAgICAuaWNvbi1saW5rIHtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICBjb2xvcjogdmFyKC0tYXRlLXRleHQtbXV0ZWQsICM5NGEzYjgpO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgICAgIH1cblxuICAgICAgLnVybC1maWVsZCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1hdGUtdGV4dCwgIzFlMjkzYik7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgICAgfVxuXG4gICAgICAuYWN0aW9uLWJ1dHRvbnMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDJweDtcbiAgICAgIH1cbiAgICBgLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBdGVMaW5rQnViYmxlTWVudUNvbXBvbmVudCBleHRlbmRzIEF0ZUJhc2VTdWJCdWJibGVNZW51IHtcbiAgcHJpdmF0ZSByZWFkb25seSBsaW5rU3ZjID0gaW5qZWN0KEF0ZUxpbmtTZXJ2aWNlKTtcblxuICByZWFkb25seSB0ID0gdGhpcy5pMThuU2VydmljZS5idWJibGVNZW51O1xuICByZWFkb25seSBjb21tb24gPSB0aGlzLmkxOG5TZXJ2aWNlLmNvbW1vbjtcblxuICBsaW5rSW5wdXQgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50Pj4oXCJsaW5rSW5wdXRcIik7XG5cbiAgZWRpdFVybCA9IHNpZ25hbChcIlwiKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgLy8gUmVhY3RpdmUgZWZmZWN0IGZvciBVUkwgc3luY1xuICAgIGVmZmVjdChcbiAgICAgICgpID0+IHtcbiAgICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlKCk7XG4gICAgICAgIGNvbnN0IGlzSW50ZXJhY3RpbmcgPSB0aGlzLmxpbmtTdmMuaXNJbnRlcmFjdGluZygpO1xuICAgICAgICBjb25zdCBjdXJyZW50TGlua0hyZWYgPSBzdGF0ZS5tYXJrcy5saW5rSHJlZiB8fCBcIlwiO1xuXG4gICAgICAgIC8vIFNZTkMgTE9HSUM6XG4gICAgICAgIC8vIElmIHdlIGFyZSBOT1QgY3VycmVudGx5IHR5cGluZyAoaW50ZXJhY3RpbmcpLFxuICAgICAgICAvLyBhbHdheXMga2VlcCB0aGUgaW5wdXQgaW4gc3luYyB3aXRoIHRoZSBjdXJyZW50IGVkaXRvciBzZWxlY3Rpb24uXG4gICAgICAgIGlmICghaXNJbnRlcmFjdGluZykge1xuICAgICAgICAgIHRoaXMuZWRpdFVybC5zZXQoY3VycmVudExpbmtIcmVmKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfVxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgb25TdGF0ZUNoYW5nZSgpIHtcbiAgICB0aGlzLmxpbmtTdmMuZWRpdE1vZGUoKTtcbiAgICB0aGlzLmxpbmtTdmMubWVudVRyaWdnZXIoKTtcbiAgICB0aGlzLmxpbmtTdmMuaXNJbnRlcmFjdGluZygpO1xuICB9XG5cbiAgb3ZlcnJpZGUgc2hvdWxkU2hvdygpOiBib29sZWFuIHtcbiAgICBjb25zdCB7IHNlbGVjdGlvbiwgbWFya3MsIGlzRWRpdGFibGUsIGlzRm9jdXNlZCB9ID0gdGhpcy5zdGF0ZSgpO1xuICAgIGlmICghaXNFZGl0YWJsZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIFNob3cgaWYgZXhwbGljaXRseSBpbiBlZGl0IG1vZGUgKGZyb20gdG9vbGJhci9idWJibGUgbWVudSkgb3IgaW50ZXJhY3Rpbmcgd2l0aCBpbnB1dFxuICAgIGlmICh0aGlzLmxpbmtTdmMuZWRpdE1vZGUoKSB8fCB0aGlzLmxpbmtTdmMuaXNJbnRlcmFjdGluZygpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvLyBTaG93IGlmIGN1cnNvciBpcyBvbiBhbiBleGlzdGluZyBsaW5rIChyZWFkL3ByZXZpZXcgbW9kZSlcbiAgICByZXR1cm4gaXNGb2N1c2VkICYmIG1hcmtzLmxpbmsgJiYgc2VsZWN0aW9uLmVtcHR5O1xuICB9XG5cbiAgb3ZlcnJpZGUgZ2V0U2VsZWN0aW9uUmVjdCgpOiBET01SZWN0IHtcbiAgICBjb25zdCB0cmlnZ2VyID0gdGhpcy5saW5rU3ZjLm1lbnVUcmlnZ2VyKCk7XG4gICAgY29uc3QgZWQgPSB0aGlzLmVkaXRvcigpO1xuICAgIGlmICghZWQpIHtcbiAgICAgIHJldHVybiBuZXcgRE9NUmVjdCgwLCAwLCAwLCAwKTtcbiAgICB9XG5cbiAgICAvLyAxLiBJZiB3ZSBoYXZlIGEgc3RhYmxlIHRyaWdnZXIgZnJvbSBzZXJ2aWNlICh0b29sYmFyIG9yIHBhcmVudCBtZW51KSwgYW5jaG9yIHRvIGl0XG4gICAgaWYgKHRyaWdnZXIpIHtcbiAgICAgIGNvbnN0IHJlY3QgPSB0cmlnZ2VyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgLy8gT25seSB1c2UgaWYgaXQncyBzdGlsbCB2aXNpYmxlL2luIERPTSAod2lkdGggPiAwKVxuICAgICAgaWYgKHJlY3Qud2lkdGggPiAwKSB7XG4gICAgICAgIHJldHVybiByZWN0O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIDIuIE90aGVyd2lzZSAoYnViYmxlIG1lbnUgLyByZWxheSksIGFuY2hvciB0byB0ZXh0IHNlbGVjdGlvblxuICAgIGNvbnN0IHsgZnJvbSB9ID0gZWQuc3RhdGUuc2VsZWN0aW9uO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHsgbm9kZSB9ID0gZWQudmlldy5kb21BdFBvcyhmcm9tKTtcbiAgICAgIGNvbnN0IGVsZW1lbnQgPSBub2RlIGluc3RhbmNlb2YgRWxlbWVudCA/IG5vZGUgOiBub2RlLnBhcmVudEVsZW1lbnQ7XG4gICAgICBjb25zdCBsaW5rRWxlbWVudCA9IChlbGVtZW50IGFzIEVsZW1lbnQpPy5jbG9zZXN0KFwiYVwiKTtcbiAgICAgIGlmIChsaW5rRWxlbWVudCkge1xuICAgICAgICByZXR1cm4gbGlua0VsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoX2UpIHtcbiAgICAgIC8qIGlnbm9yZSAqL1xuICAgIH1cblxuICAgIC8vIFVzZSBuYXRpdmUgc2VsZWN0aW9uIGZvciBtdWx0aS1saW5lIGFjY3VyYWN5XG4gICAgY29uc3Qgc2VsZWN0aW9uID0gdHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIiA/IHdpbmRvdy5nZXRTZWxlY3Rpb24oKSA6IG51bGw7XG4gICAgaWYgKHNlbGVjdGlvbiAmJiBzZWxlY3Rpb24ucmFuZ2VDb3VudCA+IDApIHtcbiAgICAgIGNvbnN0IHJhbmdlID0gc2VsZWN0aW9uLmdldFJhbmdlQXQoMCk7XG4gICAgICBjb25zdCByZWN0ID0gcmFuZ2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBpZiAocmVjdC53aWR0aCA+IDAgJiYgcmVjdC5oZWlnaHQgPiAwKSB7XG4gICAgICAgIHJldHVybiByZWN0O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEZpbmFsIGZhbGxiYWNrIHRvIGNvb3JkaW5hdGVzIGF0IGN1cnNvclxuICAgIGNvbnN0IHsgdG9wLCBib3R0b20sIGxlZnQsIHJpZ2h0IH0gPSBlZC52aWV3LmNvb3Jkc0F0UG9zKGZyb20pO1xuICAgIHJldHVybiBuZXcgRE9NUmVjdChsZWZ0LCB0b3AsIHJpZ2h0IC0gbGVmdCwgYm90dG9tIC0gdG9wKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBvblRpcHB5SGlkZSgpIHtcbiAgICAvLyBDbGVhciB0cmlnZ2VyIG9ubHkgQUZURVIgdGhlIG1lbnUgaXMgaGlkZGVuIHRvIG1haW50YWluIGFuY2hvciBzdGFiaWxpdHkgZHVyaW5nIGFuaW1hdGlvblxuICAgIHRoaXMubGlua1N2Yy5kb25lKCk7XG4gICAgdGhpcy5saW5rU3ZjLmNsb3NlKCk7XG4gIH1cblxuICBjdXJyZW50VXJsKCkge1xuICAgIHJldHVybiB0aGlzLnN0YXRlKCkubWFya3MubGlua0hyZWYgfHwgXCJcIjtcbiAgfVxuXG4gIG9uTW91c2VEb3duKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgIGlmICh0YXJnZXQudGFnTmFtZSAhPT0gXCJJTlBVVFwiKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgfVxuXG4gIG9uRm9jdXMoKSB7XG4gICAgdGhpcy5saW5rU3ZjLnNldEludGVyYWN0aW5nKHRydWUpO1xuICB9XG5cbiAgb25CbHVyKCkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5saW5rU3ZjLnNldEludGVyYWN0aW5nKGZhbHNlKTtcbiAgICAgIHRoaXMudXBkYXRlTWVudSgpO1xuICAgIH0sIDE1MCk7XG4gIH1cblxuICBvbk9wZW5MaW5rKGV2ZW50OiBFdmVudCkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgY29uc3QgdXJsID0gdGhpcy5jdXJyZW50VXJsKCk7XG4gICAgaWYgKHVybCkge1xuICAgICAgd2luZG93Lm9wZW4odXJsLCBcIl9ibGFua1wiLCBcIm5vb3BlbmVyLG5vcmVmZXJyZXJcIik7XG4gICAgfVxuICB9XG5cbiAgb25SZW1vdmUoZXZlbnQ6IEV2ZW50KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmxpbmtTdmMudW5zZXRMaW5rKHRoaXMuZWRpdG9yKCkpO1xuICB9XG5cbiAgb25BcHBseShldmVudDogRXZlbnQpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGNvbnN0IHVybCA9IHRoaXMuZWRpdFVybCgpLnRyaW0oKTtcbiAgICBpZiAodXJsKSB7XG4gICAgICB0aGlzLmxpbmtTdmMuc2V0TGluayh0aGlzLmVkaXRvcigpLCB1cmwpO1xuICAgICAgdGhpcy5lZGl0VXJsLnNldChcIlwiKTtcbiAgICAgIHRoaXMubGlua1N2Yy5zZXRJbnRlcmFjdGluZyhmYWxzZSk7XG4gICAgICB0aGlzLmhpZGVUaXBweSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9uUmVtb3ZlKGV2ZW50KTtcbiAgICB9XG4gIH1cblxuICBvbkNhbmNlbChldmVudDogRXZlbnQpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMubGlua1N2Yy5jbG9zZSgpO1xuICAgIHRoaXMuaGlkZVRpcHB5KCk7XG4gIH1cbn1cbiJdfQ==
248
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRlLWxpbmstYnViYmxlLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci10aXB0YXAtZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9idWJibGUtbWVudXMvbGluay9hdGUtbGluay1idWJibGUtbWVudS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULE1BQU0sRUFDTixNQUFNLEVBQ04sTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDcEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDekUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7OztBQTBHeEUsTUFBTSxPQUFPLDBCQUEyQixTQUFRLG9CQUFvQjtJQVVsRTtRQUNFLEtBQUssRUFBRSxDQUFDO1FBVk8sWUFBTyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUV6QyxNQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUM7UUFDaEMsV0FBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDO1FBRTFDLGNBQVMsR0FBRyxTQUFTLENBQStCLFdBQVcsQ0FBQyxDQUFDO1FBRWpFLFlBQU8sR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFLbkIsK0JBQStCO1FBQy9CLE1BQU0sQ0FDSixH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QUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDckIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbkMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ25CLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixDQUFDO0lBQ0gsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFZO1FBQ25CLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQzsrR0FoS1UsMEJBQTBCO21HQUExQiwwQkFBMEIsK05BbkczQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBZ0RULDJ5QkFqRFMsa0JBQWtCLDZMQUFFLHFCQUFxQiwwREFBRSxnQkFBZ0Isc0VBQUUsV0FBVzs7NEZBb0d2RSwwQkFBMEI7a0JBeEd0QyxTQUFTOytCQUNFLHNCQUFzQixjQUNwQixJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0sV0FDdEMsQ0FBQyxrQkFBa0IsRUFBRSxxQkFBcUIsRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLENBQUMsWUFDekU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWdEVCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIHZpZXdDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgc2lnbmFsLFxuICBlZmZlY3QsXG4gIGluamVjdCxcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBBdGVCdXR0b25Db21wb25lbnQgfSBmcm9tIFwiLi4vLi4vdWkvYXRlLWJ1dHRvbi5jb21wb25lbnRcIjtcbmltcG9ydCB7IEF0ZUxpbmtTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2VzL2F0ZS1saW5rLnNlcnZpY2VcIjtcbmltcG9ydCB7IEF0ZVNlcGFyYXRvckNvbXBvbmVudCB9IGZyb20gXCIuLi8uLi91aS9hdGUtc2VwYXJhdG9yLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgQXRlSWNvbkNvbXBvbmVudCB9IGZyb20gXCIuLi8uLi91aS9hdGUtaWNvbi5jb21wb25lbnRcIjtcbmltcG9ydCB7IEF0ZUJhc2VTdWJCdWJibGVNZW51IH0gZnJvbSBcIi4uL2Jhc2UvYXRlLWJhc2Utc3ViLWJ1YmJsZS1tZW51XCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJhdGUtbGluay1idWJibGUtbWVudVwiLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW0F0ZUJ1dHRvbkNvbXBvbmVudCwgQXRlU2VwYXJhdG9yQ29tcG9uZW50LCBBdGVJY29uQ29tcG9uZW50LCBGb3Jtc01vZHVsZV0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdlxuICAgICAgI21lbnVSZWZcbiAgICAgIGNsYXNzPVwiYnViYmxlLW1lbnVcIlxuICAgICAgKG1vdXNlZG93bik9XCJvbk1vdXNlRG93bigkZXZlbnQpXCJcbiAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgKGtleWRvd24pPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgIChrZXlkb3duLmVzY2FwZSk9XCJvbkNhbmNlbCgkZXZlbnQpXCJcbiAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgcm9sZT1cImRpYWxvZ1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImxpbmstaW5wdXQtcm93XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ1cmwtaW5wdXQtY29udGFpbmVyXCI+XG4gICAgICAgICAgPGF0ZS1pY29uIGNsYXNzPVwiaWNvbi1saW5rXCIgbmFtZT1cImxpbmtcIiAvPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgI2xpbmtJbnB1dFxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgY2xhc3M9XCJ1cmwtZmllbGRcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInQoKS5saW5rVXJsXCJcbiAgICAgICAgICAgIFtuZ01vZGVsXT1cImVkaXRVcmwoKVwiXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJlZGl0VXJsLnNldCgkZXZlbnQpXCJcbiAgICAgICAgICAgIChmb2N1cyk9XCJvbkZvY3VzKClcIlxuICAgICAgICAgICAgKGJsdXIpPVwib25CbHVyKClcIlxuICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwib25BcHBseSgkZXZlbnQpXCJcbiAgICAgICAgICAgIChrZXlkb3duLmVzY2FwZSk9XCJvbkNhbmNlbCgkZXZlbnQpXCIgLz5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFjdGlvbi1idXR0b25zXCI+XG4gICAgICAgICAgPGF0ZS1idXR0b25cbiAgICAgICAgICAgIGljb249XCJhcHBseVwiXG4gICAgICAgICAgICBbdGl0bGVdPVwiY29tbW9uKCkuYXBwbHlcIlxuICAgICAgICAgICAgY29sb3I9XCJ2YXIoLS1hdGUtcHJpbWFyeSlcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFlZGl0VXJsKCkudHJpbSgpXCJcbiAgICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkFwcGx5KCRldmVudClcIj48L2F0ZS1idXR0b24+XG4gICAgICAgICAgPGF0ZS1idXR0b25cbiAgICAgICAgICAgIGljb249XCJvcGVuTGlua1wiXG4gICAgICAgICAgICBbdGl0bGVdPVwidCgpLm9wZW5MaW5rXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhY3VycmVudFVybCgpXCJcbiAgICAgICAgICAgIChidXR0b25DbGljayk9XCJvbk9wZW5MaW5rKCRldmVudClcIj48L2F0ZS1idXR0b24+XG4gICAgICAgICAgPGF0ZS1zZXBhcmF0b3IgLz5cbiAgICAgICAgICA8YXRlLWJ1dHRvblxuICAgICAgICAgICAgaWNvbj1cInVuc2V0TGlua1wiXG4gICAgICAgICAgICBbdGl0bGVdPVwidCgpLnJlbW92ZUxpbmtcIlxuICAgICAgICAgICAgdmFyaWFudD1cImRhbmdlclwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWN1cnJlbnRVcmwoKVwiXG4gICAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwib25SZW1vdmUoJGV2ZW50KVwiPjwvYXRlLWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgLmxpbmstaW5wdXQtcm93IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA2cHg7XG4gICAgICB9XG5cbiAgICAgIC51cmwtaW5wdXQtY29udGFpbmVyIHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYXRlLXN1cmZhY2Utc2Vjb25kYXJ5LCAjZjhmYWZjKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYXRlLWJvcmRlciwgI2UyZThmMCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgcGFkZGluZzogMCAxMHB4O1xuICAgICAgICBoZWlnaHQ6IDMycHg7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAxNTBtcyBlYXNlO1xuICAgICAgfVxuXG4gICAgICAudXJsLWlucHV0LWNvbnRhaW5lcjpmb2N1cy13aXRoaW4ge1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWF0ZS1wcmltYXJ5LCAjM2I4MmY2KTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYXRlLXN1cmZhY2UsICNmZmZmZmYpO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tYXRlLXByaW1hcnktbGlnaHQsIHJnYmEoNTksIDEzMCwgMjQ2LCAwLjEpKTtcbiAgICAgIH1cblxuICAgICAgLmljb24tbGluayB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgY29sb3I6IHZhcigtLWF0ZS10ZXh0LW11dGVkLCAjOTRhM2I4KTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gICAgICB9XG5cbiAgICAgIC51cmwtZmllbGQge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBjb2xvcjogdmFyKC0tYXRlLXRleHQsICMxZTI5M2IpO1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICAgIH1cblxuICAgICAgLmFjdGlvbi1idXR0b25zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAycHg7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQXRlTGlua0J1YmJsZU1lbnVDb21wb25lbnQgZXh0ZW5kcyBBdGVCYXNlU3ViQnViYmxlTWVudSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgbGlua1N2YyA9IGluamVjdChBdGVMaW5rU2VydmljZSk7XG5cbiAgcmVhZG9ubHkgdCA9IHRoaXMuaTE4blNlcnZpY2UuYnViYmxlTWVudTtcbiAgcmVhZG9ubHkgY29tbW9uID0gdGhpcy5pMThuU2VydmljZS5jb21tb247XG5cbiAgbGlua0lucHV0ID0gdmlld0NoaWxkPEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4+KFwibGlua0lucHV0XCIpO1xuXG4gIGVkaXRVcmwgPSBzaWduYWwoXCJcIik7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIC8vIFJlYWN0aXZlIGVmZmVjdCBmb3IgVVJMIHN5bmNcbiAgICBlZmZlY3QoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHN0YXRlID0gdGhpcy5zdGF0ZSgpO1xuICAgICAgICBjb25zdCBpc0ludGVyYWN0aW5nID0gdGhpcy5saW5rU3ZjLmlzSW50ZXJhY3RpbmcoKTtcbiAgICAgICAgY29uc3QgY3VycmVudExpbmtIcmVmID0gc3RhdGUubWFya3MubGlua0hyZWYgfHwgXCJcIjtcblxuICAgICAgICAvLyBTWU5DIExPR0lDOlxuICAgICAgICAvLyBJZiB3ZSBhcmUgTk9UIGN1cnJlbnRseSB0eXBpbmcgKGludGVyYWN0aW5nKSxcbiAgICAgICAgLy8gYWx3YXlzIGtlZXAgdGhlIGlucHV0IGluIHN5bmMgd2l0aCB0aGUgY3VycmVudCBlZGl0b3Igc2VsZWN0aW9uLlxuICAgICAgICBpZiAoIWlzSW50ZXJhY3RpbmcpIHtcbiAgICAgICAgICB0aGlzLmVkaXRVcmwuc2V0KGN1cnJlbnRMaW5rSHJlZik7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH1cbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIG9uU3RhdGVDaGFuZ2UoKSB7XG4gICAgdGhpcy5saW5rU3ZjLmVkaXRNb2RlKCk7XG4gICAgdGhpcy5saW5rU3ZjLm1lbnVUcmlnZ2VyKCk7XG4gICAgdGhpcy5saW5rU3ZjLmlzSW50ZXJhY3RpbmcoKTtcbiAgfVxuXG4gIG92ZXJyaWRlIHNob3VsZFNob3coKTogYm9vbGVhbiB7XG4gICAgY29uc3QgeyBzZWxlY3Rpb24sIG1hcmtzLCBpc0VkaXRhYmxlLCBpc0ZvY3VzZWQgfSA9IHRoaXMuc3RhdGUoKTtcbiAgICBpZiAoIWlzRWRpdGFibGUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBTaG93IGlmIGV4cGxpY2l0bHkgaW4gZWRpdCBtb2RlIChmcm9tIHRvb2xiYXIvYnViYmxlIG1lbnUpIG9yIGludGVyYWN0aW5nIHdpdGggaW5wdXRcbiAgICBpZiAodGhpcy5saW5rU3ZjLmVkaXRNb2RlKCkgfHwgdGhpcy5saW5rU3ZjLmlzSW50ZXJhY3RpbmcoKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy8gU2hvdyBpZiBjdXJzb3IgaXMgb24gYW4gZXhpc3RpbmcgbGluayAocmVhZC9wcmV2aWV3IG1vZGUpXG4gICAgcmV0dXJuIGlzRm9jdXNlZCAmJiBtYXJrcy5saW5rICYmIHNlbGVjdGlvbi5lbXB0eTtcbiAgfVxuXG4gIG92ZXJyaWRlIGdldFNlbGVjdGlvblJlY3QoKTogRE9NUmVjdCB7XG4gICAgY29uc3QgdHJpZ2dlciA9IHRoaXMubGlua1N2Yy5tZW51VHJpZ2dlcigpO1xuICAgIGNvbnN0IGVkID0gdGhpcy5lZGl0b3IoKTtcbiAgICBpZiAoIWVkKSB7XG4gICAgICByZXR1cm4gbmV3IERPTVJlY3QoMCwgMCwgMCwgMCk7XG4gICAgfVxuXG4gICAgLy8gMS4gSWYgd2UgaGF2ZSBhIHN0YWJsZSB0cmlnZ2VyIGZyb20gc2VydmljZSAodG9vbGJhciBvciBwYXJlbnQgbWVudSksIGFuY2hvciB0byBpdFxuICAgIGlmICh0cmlnZ2VyKSB7XG4gICAgICBjb25zdCByZWN0ID0gdHJpZ2dlci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIC8vIE9ubHkgdXNlIGlmIGl0J3Mgc3RpbGwgdmlzaWJsZS9pbiBET00gKHdpZHRoID4gMClcbiAgICAgIGlmIChyZWN0LndpZHRoID4gMCkge1xuICAgICAgICByZXR1cm4gcmVjdDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAyLiBPdGhlcndpc2UgKGJ1YmJsZSBtZW51IC8gcmVsYXkpLCBhbmNob3IgdG8gdGV4dCBzZWxlY3Rpb25cbiAgICBjb25zdCB7IGZyb20gfSA9IGVkLnN0YXRlLnNlbGVjdGlvbjtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCB7IG5vZGUgfSA9IGVkLnZpZXcuZG9tQXRQb3MoZnJvbSk7XG4gICAgICBjb25zdCBlbGVtZW50ID0gbm9kZSBpbnN0YW5jZW9mIEVsZW1lbnQgPyBub2RlIDogbm9kZS5wYXJlbnRFbGVtZW50O1xuICAgICAgY29uc3QgbGlua0VsZW1lbnQgPSAoZWxlbWVudCBhcyBFbGVtZW50KT8uY2xvc2VzdChcImFcIik7XG4gICAgICBpZiAobGlua0VsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIGxpbmtFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKF9lKSB7XG4gICAgICAvKiBpZ25vcmUgKi9cbiAgICB9XG5cbiAgICAvLyBVc2UgbmF0aXZlIHNlbGVjdGlvbiBmb3IgbXVsdGktbGluZSBhY2N1cmFjeVxuICAgIGNvbnN0IHNlbGVjdGlvbiA9IHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgPyB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkgOiBudWxsO1xuICAgIGlmIChzZWxlY3Rpb24gJiYgc2VsZWN0aW9uLnJhbmdlQ291bnQgPiAwKSB7XG4gICAgICBjb25zdCByYW5nZSA9IHNlbGVjdGlvbi5nZXRSYW5nZUF0KDApO1xuICAgICAgY29uc3QgcmVjdCA9IHJhbmdlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgaWYgKHJlY3Qud2lkdGggPiAwICYmIHJlY3QuaGVpZ2h0ID4gMCkge1xuICAgICAgICByZXR1cm4gcmVjdDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBGaW5hbCBmYWxsYmFjayB0byBjb29yZGluYXRlcyBhdCBjdXJzb3JcbiAgICBjb25zdCB7IHRvcCwgYm90dG9tLCBsZWZ0LCByaWdodCB9ID0gZWQudmlldy5jb29yZHNBdFBvcyhmcm9tKTtcbiAgICByZXR1cm4gbmV3IERPTVJlY3QobGVmdCwgdG9wLCByaWdodCAtIGxlZnQsIGJvdHRvbSAtIHRvcCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgb25UaXBweUhpZGUoKSB7XG4gICAgLy8gQ2xlYXIgdHJpZ2dlciBvbmx5IEFGVEVSIHRoZSBtZW51IGlzIGhpZGRlbiB0byBtYWludGFpbiBhbmNob3Igc3RhYmlsaXR5IGR1cmluZyBhbmltYXRpb25cbiAgICB0aGlzLmxpbmtTdmMuZG9uZSgpO1xuICAgIHRoaXMubGlua1N2Yy5jbG9zZSgpO1xuICB9XG5cbiAgY3VycmVudFVybCgpIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZSgpLm1hcmtzLmxpbmtIcmVmIHx8IFwiXCI7XG4gIH1cblxuICBvbk1vdXNlRG93bihldmVudDogTW91c2VFdmVudCkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICBpZiAodGFyZ2V0LnRhZ05hbWUgIT09IFwiSU5QVVRcIikge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gIH1cblxuICBvbkZvY3VzKCkge1xuICAgIHRoaXMubGlua1N2Yy5zZXRJbnRlcmFjdGluZyh0cnVlKTtcbiAgfVxuXG4gIG9uQmx1cigpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMubGlua1N2Yy5zZXRJbnRlcmFjdGluZyhmYWxzZSk7XG4gICAgICB0aGlzLnVwZGF0ZU1lbnUoKTtcbiAgICB9LCAxNTApO1xuICB9XG5cbiAgb25PcGVuTGluayhldmVudDogRXZlbnQpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGNvbnN0IHVybCA9IHRoaXMuY3VycmVudFVybCgpO1xuICAgIGlmICh1cmwpIHtcbiAgICAgIHdpbmRvdy5vcGVuKHVybCwgXCJfYmxhbmtcIiwgXCJub29wZW5lcixub3JlZmVycmVyXCIpO1xuICAgIH1cbiAgfVxuXG4gIG9uUmVtb3ZlKGV2ZW50OiBFdmVudCkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5saW5rU3ZjLnVuc2V0TGluayh0aGlzLmVkaXRvcigpKTtcbiAgfVxuXG4gIG9uQXBwbHkoZXZlbnQ6IEV2ZW50KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBjb25zdCB1cmwgPSB0aGlzLmVkaXRVcmwoKS50cmltKCk7XG4gICAgaWYgKHVybCkge1xuICAgICAgdGhpcy5saW5rU3ZjLnNldExpbmsodGhpcy5lZGl0b3IoKSwgdXJsKTtcbiAgICAgIHRoaXMuZWRpdFVybC5zZXQoXCJcIik7XG4gICAgICB0aGlzLmxpbmtTdmMuc2V0SW50ZXJhY3RpbmcoZmFsc2UpO1xuICAgICAgdGhpcy5oaWRlVGlwcHkoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vblJlbW92ZShldmVudCk7XG4gICAgfVxuICB9XG5cbiAgb25DYW5jZWwoZXZlbnQ6IEV2ZW50KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmxpbmtTdmMuY2xvc2UoKTtcbiAgICB0aGlzLmhpZGVUaXBweSgpO1xuICB9XG59XG4iXX0=
@@ -80,14 +80,14 @@ export class AteCellBubbleMenuComponent extends AteBaseBubbleMenu {
80
80
  <!-- Cell specific actions -->
81
81
  @if (cellBubbleMenuConfig().mergeCells !== false && !state().selection.isSingleCell) {
82
82
  <ate-button
83
- icon="cell_merge"
83
+ icon="mergeCells"
84
84
  [title]="i18n().table().mergeCells"
85
85
  [disabled]="!state().can.mergeCells"
86
86
  (buttonClick)="onCommand('mergeCells', $event)"></ate-button>
87
87
  }
88
88
  @if (cellBubbleMenuConfig().splitCell !== false && state().selection.isSingleCell) {
89
89
  <ate-button
90
- icon="split_scene"
90
+ icon="splitCell"
91
91
  [title]="i18n().table().splitCell"
92
92
  [disabled]="!state().can.splitCell"
93
93
  (buttonClick)="onCommand('splitCell', $event)"></ate-button>
@@ -107,14 +107,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
107
107
  <!-- Cell specific actions -->
108
108
  @if (cellBubbleMenuConfig().mergeCells !== false && !state().selection.isSingleCell) {
109
109
  <ate-button
110
- icon="cell_merge"
110
+ icon="mergeCells"
111
111
  [title]="i18n().table().mergeCells"
112
112
  [disabled]="!state().can.mergeCells"
113
113
  (buttonClick)="onCommand('mergeCells', $event)"></ate-button>
114
114
  }
115
115
  @if (cellBubbleMenuConfig().splitCell !== false && state().selection.isSingleCell) {
116
116
  <ate-button
117
- icon="split_scene"
117
+ icon="splitCell"
118
118
  [title]="i18n().table().splitCell"
119
119
  [disabled]="!state().can.splitCell"
120
120
  (buttonClick)="onCommand('splitCell', $event)"></ate-button>
@@ -123,4 +123,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
123
123
  `,
124
124
  }]
125
125
  }] });
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRlLWNlbGwtYnViYmxlLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci10aXB0YXAtZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9idWJibGUtbWVudXMvdGFibGUvYXRlLWNlbGwtYnViYmxlLW1lbnUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLHVCQUF1QixFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFHakUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7O0FBMkJqRixNQUFNLE9BQU8sMEJBQTJCLFNBQVEsaUJBQWlCO0lBekJqRTs7UUEwQkUsU0FBUztRQUNULFdBQU0sR0FBRyxLQUFLLENBQTBCLDRCQUE0QixDQUFDLENBQUM7UUFFdEUseUJBQW9CLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDckMsVUFBVSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxVQUFVLElBQUksSUFBSTtZQUM1QyxTQUFTLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFNBQVMsSUFBSSxJQUFJO1NBQzNDLENBQUMsQ0FBQyxDQUFDO1FBRUosVUFBVTtRQUNELFNBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO0tBa0Z4QztJQWhGVSxVQUFVO1FBQ2pCLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFakUsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQztZQUM5RSxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFRCwrQ0FBK0M7UUFDL0MsT0FBTyxTQUFTLENBQUMsSUFBSSxLQUFLLE1BQU0sSUFBSSxLQUFLLENBQUMsV0FBVyxJQUFJLFVBQVUsSUFBSSxTQUFTLENBQUM7SUFDbkYsQ0FBQztJQUVRLGdCQUFnQjtRQUN2QixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ1IsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNqQyxDQUFDO1FBRUQsZ0JBQWdCO1FBQ2hCLE1BQU0sU0FBUyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsU0FHMUIsQ0FBQztRQUVGLDZCQUE2QjtRQUM3QixJQUFJLFNBQVMsQ0FBQyxXQUFXLElBQUksU0FBUyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2pELE1BQU0sS0FBSyxHQUFrQixFQUFFLENBQUM7WUFFaEMsc0NBQXNDO1lBQ3RDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRTtnQkFDekQsSUFBSSxFQUFFLFlBQVksV0FBVyxFQUFFLENBQUM7b0JBQzlCLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ2pCLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztZQUVILElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDckIsSUFBSSxHQUFHLEdBQUcsUUFBUSxFQUNoQixNQUFNLEdBQUcsQ0FBQyxRQUFRLEVBQ2xCLElBQUksR0FBRyxRQUFRLEVBQ2YsS0FBSyxHQUFHLENBQUMsUUFBUSxDQUFDO2dCQUVwQixLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO29CQUNuQixNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztvQkFDdkMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDM0IsTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDcEMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDOUIsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDbkMsQ0FBQyxDQUFDLENBQUM7Z0JBRUgsT0FBTyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssR0FBRyxJQUFJLEVBQUUsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1lBQzVELENBQUM7WUFFRCxxREFBcUQ7WUFDckQsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQWdCLENBQUM7WUFDekUsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQWdCLENBQUM7WUFFckUsSUFBSSxNQUFNLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ25CLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO2dCQUNsRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztnQkFFOUMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDbkQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDNUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDdEQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFFekQsT0FBTyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssR0FBRyxJQUFJLEVBQUUsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1lBQzVELENBQUM7UUFDSCxDQUFDO1FBRUQsNkNBQTZDO1FBQzdDLE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUM5RCxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2YsT0FBTyxVQUFVLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUM1QyxDQUFDO1FBRUQsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVrQixjQUFjLENBQUMsTUFBYyxFQUFFLE9BQWUsRUFBRSxHQUFHLElBQWU7UUFDbkYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQ3hELENBQUM7K0dBM0ZVLDBCQUEwQjttR0FBMUIsMEJBQTBCLDhPQXBCM0I7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCVCwyREFuQlMsWUFBWSwrQkFBRSxrQkFBa0I7OzRGQXFCL0IsMEJBQTBCO2tCQXpCdEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxrQkFBa0IsQ0FBQztvQkFDM0MsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQlQ7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGlucHV0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgY29tcHV0ZWQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHsgdHlwZSBFZGl0b3IgfSBmcm9tIFwiQHRpcHRhcC9jb3JlXCI7XG5pbXBvcnQgeyBBdGVCdXR0b25Db21wb25lbnQgfSBmcm9tIFwiLi4vLi4vdWkvYXRlLWJ1dHRvbi5jb21wb25lbnRcIjtcbmltcG9ydCB7IEF0ZUJhc2VCdWJibGVNZW51IH0gZnJvbSBcIi4uL2Jhc2UvYXRlLWJhc2UtYnViYmxlLW1lbnVcIjtcblxuaW1wb3J0IHsgQXRlQ2VsbEJ1YmJsZU1lbnVDb25maWcgfSBmcm9tIFwiLi4vLi4vLi4vbW9kZWxzL2F0ZS1idWJibGUtbWVudS5tb2RlbFwiO1xuaW1wb3J0IHsgQVRFX0RFRkFVTFRfQ0VMTF9NRU5VX0NPTkZJRyB9IGZyb20gXCIuLi8uLi8uLi9jb25maWcvYXRlLWVkaXRvci5jb25maWdcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImF0ZS1jZWxsLWJ1YmJsZS1tZW51XCIsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBBdGVCdXR0b25Db21wb25lbnRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgI21lbnVSZWYgY2xhc3M9XCJidWJibGUtbWVudVwiIChtb3VzZWRvd24pPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIj5cbiAgICAgIDwhLS0gQ2VsbCBzcGVjaWZpYyBhY3Rpb25zIC0tPlxuICAgICAgQGlmIChjZWxsQnViYmxlTWVudUNvbmZpZygpLm1lcmdlQ2VsbHMgIT09IGZhbHNlICYmICFzdGF0ZSgpLnNlbGVjdGlvbi5pc1NpbmdsZUNlbGwpIHtcbiAgICAgICAgPGF0ZS1idXR0b25cbiAgICAgICAgICBpY29uPVwiY2VsbF9tZXJnZVwiXG4gICAgICAgICAgW3RpdGxlXT1cImkxOG4oKS50YWJsZSgpLm1lcmdlQ2VsbHNcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4ubWVyZ2VDZWxsc1wiXG4gICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cIm9uQ29tbWFuZCgnbWVyZ2VDZWxscycsICRldmVudClcIj48L2F0ZS1idXR0b24+XG4gICAgICB9XG4gICAgICBAaWYgKGNlbGxCdWJibGVNZW51Q29uZmlnKCkuc3BsaXRDZWxsICE9PSBmYWxzZSAmJiBzdGF0ZSgpLnNlbGVjdGlvbi5pc1NpbmdsZUNlbGwpIHtcbiAgICAgICAgPGF0ZS1idXR0b25cbiAgICAgICAgICBpY29uPVwic3BsaXRfc2NlbmVcIlxuICAgICAgICAgIFt0aXRsZV09XCJpMThuKCkudGFibGUoKS5zcGxpdENlbGxcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4uc3BsaXRDZWxsXCJcbiAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwib25Db21tYW5kKCdzcGxpdENlbGwnLCAkZXZlbnQpXCI+PC9hdGUtYnV0dG9uPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBBdGVDZWxsQnViYmxlTWVudUNvbXBvbmVudCBleHRlbmRzIEF0ZUJhc2VCdWJibGVNZW51IHtcbiAgLy8gSW5wdXRzXG4gIGNvbmZpZyA9IGlucHV0PEF0ZUNlbGxCdWJibGVNZW51Q29uZmlnPihBVEVfREVGQVVMVF9DRUxMX01FTlVfQ09ORklHKTtcblxuICBjZWxsQnViYmxlTWVudUNvbmZpZyA9IGNvbXB1dGVkKCgpID0+ICh7XG4gICAgbWVyZ2VDZWxsczogdGhpcy5jb25maWcoKS5tZXJnZUNlbGxzID8/IHRydWUsXG4gICAgc3BsaXRDZWxsOiB0aGlzLmNvbmZpZygpLnNwbGl0Q2VsbCA/PyB0cnVlLFxuICB9KSk7XG5cbiAgLy8gU2lnbmFsc1xuICByZWFkb25seSBpMThuID0gKCkgPT4gdGhpcy5pMThuU2VydmljZTtcblxuICBvdmVycmlkZSBzaG91bGRTaG93KCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHsgc2VsZWN0aW9uLCBub2RlcywgaXNFZGl0YWJsZSwgaXNGb2N1c2VkIH0gPSB0aGlzLnN0YXRlKCk7XG5cbiAgICBpZiAodGhpcy5lZGl0b3JDb21tYW5kcy5saW5rRWRpdE1vZGUoKSB8fCB0aGlzLmVkaXRvckNvbW1hbmRzLmNvbG9yRWRpdE1vZGUoKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIE9ubHkgc2hvdyBjZWxsIGJ1YmJsZSBtZW51IGZvciBDZWxsU2VsZWN0aW9uXG4gICAgcmV0dXJuIHNlbGVjdGlvbi50eXBlID09PSBcImNlbGxcIiAmJiBub2Rlcy5pc1RhYmxlQ2VsbCAmJiBpc0VkaXRhYmxlICYmIGlzRm9jdXNlZDtcbiAgfVxuXG4gIG92ZXJyaWRlIGdldFNlbGVjdGlvblJlY3QoKTogRE9NUmVjdCB7XG4gICAgY29uc3QgZWQgPSB0aGlzLmVkaXRvcigpO1xuICAgIGlmICghZWQpIHtcbiAgICAgIHJldHVybiBuZXcgRE9NUmVjdCgwLCAwLCAwLCAwKTtcbiAgICB9XG5cbiAgICAvLyBDZWxsU2VsZWN0aW9uXG4gICAgY29uc3Qgc2VsZWN0aW9uID0gZWQuc3RhdGUuc2VsZWN0aW9uIGFzIHVua25vd24gYXMge1xuICAgICAgJGFuY2hvckNlbGw/OiB7IHBvczogbnVtYmVyIH07XG4gICAgICAkaGVhZENlbGw/OiB7IHBvczogbnVtYmVyIH07XG4gICAgfTtcblxuICAgIC8vIDEuIE11bHRpcGxlIGNlbGxzIHNlbGVjdGVkXG4gICAgaWYgKHNlbGVjdGlvbi4kYW5jaG9yQ2VsbCAmJiBzZWxlY3Rpb24uJGhlYWRDZWxsKSB7XG4gICAgICBjb25zdCBjZWxsczogSFRNTEVsZW1lbnRbXSA9IFtdO1xuXG4gICAgICAvLyBUcnkgdG8gZmluZCBhbGwgc2VsZWN0ZWQgY2VsbCBub2Rlc1xuICAgICAgZWQudmlldy5kb20ucXVlcnlTZWxlY3RvckFsbChcIi5zZWxlY3RlZENlbGxcIikuZm9yRWFjaChlbCA9PiB7XG4gICAgICAgIGlmIChlbCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG4gICAgICAgICAgY2VsbHMucHVzaChlbCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICBpZiAoY2VsbHMubGVuZ3RoID4gMCkge1xuICAgICAgICBsZXQgdG9wID0gSW5maW5pdHksXG4gICAgICAgICAgYm90dG9tID0gLUluZmluaXR5LFxuICAgICAgICAgIGxlZnQgPSBJbmZpbml0eSxcbiAgICAgICAgICByaWdodCA9IC1JbmZpbml0eTtcblxuICAgICAgICBjZWxscy5mb3JFYWNoKGNlbGwgPT4ge1xuICAgICAgICAgIGNvbnN0IHIgPSBjZWxsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgIHRvcCA9IE1hdGgubWluKHRvcCwgci50b3ApO1xuICAgICAgICAgIGJvdHRvbSA9IE1hdGgubWF4KGJvdHRvbSwgci5ib3R0b20pO1xuICAgICAgICAgIGxlZnQgPSBNYXRoLm1pbihsZWZ0LCByLmxlZnQpO1xuICAgICAgICAgIHJpZ2h0ID0gTWF0aC5tYXgocmlnaHQsIHIucmlnaHQpO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gbmV3IERPTVJlY3QobGVmdCwgdG9wLCByaWdodCAtIGxlZnQsIGJvdHRvbSAtIHRvcCk7XG4gICAgICB9XG5cbiAgICAgIC8vIEZhbGxiYWNrIHRvIGFuY2hvci9oZWFkIGlmIG5vIC5zZWxlY3RlZENlbGwgKHJhcmUpXG4gICAgICBjb25zdCBhbmNob3IgPSBlZC52aWV3Lm5vZGVET00oc2VsZWN0aW9uLiRhbmNob3JDZWxsLnBvcykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICBjb25zdCBoZWFkID0gZWQudmlldy5ub2RlRE9NKHNlbGVjdGlvbi4kaGVhZENlbGwucG9zKSBhcyBIVE1MRWxlbWVudDtcblxuICAgICAgaWYgKGFuY2hvciAmJiBoZWFkKSB7XG4gICAgICAgIGNvbnN0IGFuY2hvclJlY3QgPSBhbmNob3IuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGNvbnN0IGhlYWRSZWN0ID0gaGVhZC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgICBjb25zdCB0b3AgPSBNYXRoLm1pbihhbmNob3JSZWN0LnRvcCwgaGVhZFJlY3QudG9wKTtcbiAgICAgICAgY29uc3QgYm90dG9tID0gTWF0aC5tYXgoYW5jaG9yUmVjdC5ib3R0b20sIGhlYWRSZWN0LmJvdHRvbSk7XG4gICAgICAgIGNvbnN0IGxlZnQgPSBNYXRoLm1pbihhbmNob3JSZWN0LmxlZnQsIGhlYWRSZWN0LmxlZnQpO1xuICAgICAgICBjb25zdCByaWdodCA9IE1hdGgubWF4KGFuY2hvclJlY3QucmlnaHQsIGhlYWRSZWN0LnJpZ2h0KTtcblxuICAgICAgICByZXR1cm4gbmV3IERPTVJlY3QobGVmdCwgdG9wLCByaWdodCAtIGxlZnQsIGJvdHRvbSAtIHRvcCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gMi4gVWx0aW1hdGUgZmFsbGJhY2sgdmlhIFByb3NlTWlycm9yIGNsYXNzXG4gICAgY29uc3Qgc2luZ2xlQ2VsbCA9IGVkLnZpZXcuZG9tLnF1ZXJ5U2VsZWN0b3IoXCIuc2VsZWN0ZWRDZWxsXCIpO1xuICAgIGlmIChzaW5nbGVDZWxsKSB7XG4gICAgICByZXR1cm4gc2luZ2xlQ2VsbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IERPTVJlY3QoLTk5OTksIC05OTk5LCAwLCAwKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBleGVjdXRlQ29tbWFuZChlZGl0b3I6IEVkaXRvciwgY29tbWFuZDogc3RyaW5nLCAuLi5hcmdzOiB1bmtub3duW10pOiB2b2lkIHtcbiAgICB0aGlzLmVkaXRvckNvbW1hbmRzLmV4ZWN1dGUoZWRpdG9yLCBjb21tYW5kLCAuLi5hcmdzKTtcbiAgfVxufVxuIl19
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRlLWNlbGwtYnViYmxlLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci10aXB0YXAtZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9idWJibGUtbWVudXMvdGFibGUvYXRlLWNlbGwtYnViYmxlLW1lbnUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLHVCQUF1QixFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFHakUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7O0FBMkJqRixNQUFNLE9BQU8sMEJBQTJCLFNBQVEsaUJBQWlCO0lBekJqRTs7UUEwQkUsU0FBUztRQUNULFdBQU0sR0FBRyxLQUFLLENBQTBCLDRCQUE0QixDQUFDLENBQUM7UUFFdEUseUJBQW9CLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDckMsVUFBVSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxVQUFVLElBQUksSUFBSTtZQUM1QyxTQUFTLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFNBQVMsSUFBSSxJQUFJO1NBQzNDLENBQUMsQ0FBQyxDQUFDO1FBRUosVUFBVTtRQUNELFNBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO0tBa0Z4QztJQWhGVSxVQUFVO1FBQ2pCLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsR0FB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QXFCL0IsMEJBQTBCO2tCQXpCdEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxrQkFBa0IsQ0FBQztvQkFDM0MsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQlQ7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGlucHV0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgY29tcHV0ZWQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHsgdHlwZSBFZGl0b3IgfSBmcm9tIFwiQHRpcHRhcC9jb3JlXCI7XG5pbXBvcnQgeyBBdGVCdXR0b25Db21wb25lbnQgfSBmcm9tIFwiLi4vLi4vdWkvYXRlLWJ1dHRvbi5jb21wb25lbnRcIjtcbmltcG9ydCB7IEF0ZUJhc2VCdWJibGVNZW51IH0gZnJvbSBcIi4uL2Jhc2UvYXRlLWJhc2UtYnViYmxlLW1lbnVcIjtcblxuaW1wb3J0IHsgQXRlQ2VsbEJ1YmJsZU1lbnVDb25maWcgfSBmcm9tIFwiLi4vLi4vLi4vbW9kZWxzL2F0ZS1idWJibGUtbWVudS5tb2RlbFwiO1xuaW1wb3J0IHsgQVRFX0RFRkFVTFRfQ0VMTF9NRU5VX0NPTkZJRyB9IGZyb20gXCIuLi8uLi8uLi9jb25maWcvYXRlLWVkaXRvci5jb25maWdcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImF0ZS1jZWxsLWJ1YmJsZS1tZW51XCIsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBBdGVCdXR0b25Db21wb25lbnRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgI21lbnVSZWYgY2xhc3M9XCJidWJibGUtbWVudVwiIChtb3VzZWRvd24pPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIj5cbiAgICAgIDwhLS0gQ2VsbCBzcGVjaWZpYyBhY3Rpb25zIC0tPlxuICAgICAgQGlmIChjZWxsQnViYmxlTWVudUNvbmZpZygpLm1lcmdlQ2VsbHMgIT09IGZhbHNlICYmICFzdGF0ZSgpLnNlbGVjdGlvbi5pc1NpbmdsZUNlbGwpIHtcbiAgICAgICAgPGF0ZS1idXR0b25cbiAgICAgICAgICBpY29uPVwibWVyZ2VDZWxsc1wiXG4gICAgICAgICAgW3RpdGxlXT1cImkxOG4oKS50YWJsZSgpLm1lcmdlQ2VsbHNcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4ubWVyZ2VDZWxsc1wiXG4gICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cIm9uQ29tbWFuZCgnbWVyZ2VDZWxscycsICRldmVudClcIj48L2F0ZS1idXR0b24+XG4gICAgICB9XG4gICAgICBAaWYgKGNlbGxCdWJibGVNZW51Q29uZmlnKCkuc3BsaXRDZWxsICE9PSBmYWxzZSAmJiBzdGF0ZSgpLnNlbGVjdGlvbi5pc1NpbmdsZUNlbGwpIHtcbiAgICAgICAgPGF0ZS1idXR0b25cbiAgICAgICAgICBpY29uPVwic3BsaXRDZWxsXCJcbiAgICAgICAgICBbdGl0bGVdPVwiaTE4bigpLnRhYmxlKCkuc3BsaXRDZWxsXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIXN0YXRlKCkuY2FuLnNwbGl0Q2VsbFwiXG4gICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cIm9uQ29tbWFuZCgnc3BsaXRDZWxsJywgJGV2ZW50KVwiPjwvYXRlLWJ1dHRvbj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgQXRlQ2VsbEJ1YmJsZU1lbnVDb21wb25lbnQgZXh0ZW5kcyBBdGVCYXNlQnViYmxlTWVudSB7XG4gIC8vIElucHV0c1xuICBjb25maWcgPSBpbnB1dDxBdGVDZWxsQnViYmxlTWVudUNvbmZpZz4oQVRFX0RFRkFVTFRfQ0VMTF9NRU5VX0NPTkZJRyk7XG5cbiAgY2VsbEJ1YmJsZU1lbnVDb25maWcgPSBjb21wdXRlZCgoKSA9PiAoe1xuICAgIG1lcmdlQ2VsbHM6IHRoaXMuY29uZmlnKCkubWVyZ2VDZWxscyA/PyB0cnVlLFxuICAgIHNwbGl0Q2VsbDogdGhpcy5jb25maWcoKS5zcGxpdENlbGwgPz8gdHJ1ZSxcbiAgfSkpO1xuXG4gIC8vIFNpZ25hbHNcbiAgcmVhZG9ubHkgaTE4biA9ICgpID0+IHRoaXMuaTE4blNlcnZpY2U7XG5cbiAgb3ZlcnJpZGUgc2hvdWxkU2hvdygpOiBib29sZWFuIHtcbiAgICBjb25zdCB7IHNlbGVjdGlvbiwgbm9kZXMsIGlzRWRpdGFibGUsIGlzRm9jdXNlZCB9ID0gdGhpcy5zdGF0ZSgpO1xuXG4gICAgaWYgKHRoaXMuZWRpdG9yQ29tbWFuZHMubGlua0VkaXRNb2RlKCkgfHwgdGhpcy5lZGl0b3JDb21tYW5kcy5jb2xvckVkaXRNb2RlKCkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBPbmx5IHNob3cgY2VsbCBidWJibGUgbWVudSBmb3IgQ2VsbFNlbGVjdGlvblxuICAgIHJldHVybiBzZWxlY3Rpb24udHlwZSA9PT0gXCJjZWxsXCIgJiYgbm9kZXMuaXNUYWJsZUNlbGwgJiYgaXNFZGl0YWJsZSAmJiBpc0ZvY3VzZWQ7XG4gIH1cblxuICBvdmVycmlkZSBnZXRTZWxlY3Rpb25SZWN0KCk6IERPTVJlY3Qge1xuICAgIGNvbnN0IGVkID0gdGhpcy5lZGl0b3IoKTtcbiAgICBpZiAoIWVkKSB7XG4gICAgICByZXR1cm4gbmV3IERPTVJlY3QoMCwgMCwgMCwgMCk7XG4gICAgfVxuXG4gICAgLy8gQ2VsbFNlbGVjdGlvblxuICAgIGNvbnN0IHNlbGVjdGlvbiA9IGVkLnN0YXRlLnNlbGVjdGlvbiBhcyB1bmtub3duIGFzIHtcbiAgICAgICRhbmNob3JDZWxsPzogeyBwb3M6IG51bWJlciB9O1xuICAgICAgJGhlYWRDZWxsPzogeyBwb3M6IG51bWJlciB9O1xuICAgIH07XG5cbiAgICAvLyAxLiBNdWx0aXBsZSBjZWxscyBzZWxlY3RlZFxuICAgIGlmIChzZWxlY3Rpb24uJGFuY2hvckNlbGwgJiYgc2VsZWN0aW9uLiRoZWFkQ2VsbCkge1xuICAgICAgY29uc3QgY2VsbHM6IEhUTUxFbGVtZW50W10gPSBbXTtcblxuICAgICAgLy8gVHJ5IHRvIGZpbmQgYWxsIHNlbGVjdGVkIGNlbGwgbm9kZXNcbiAgICAgIGVkLnZpZXcuZG9tLnF1ZXJ5U2VsZWN0b3JBbGwoXCIuc2VsZWN0ZWRDZWxsXCIpLmZvckVhY2goZWwgPT4ge1xuICAgICAgICBpZiAoZWwgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkge1xuICAgICAgICAgIGNlbGxzLnB1c2goZWwpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgaWYgKGNlbGxzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgbGV0IHRvcCA9IEluZmluaXR5LFxuICAgICAgICAgIGJvdHRvbSA9IC1JbmZpbml0eSxcbiAgICAgICAgICBsZWZ0ID0gSW5maW5pdHksXG4gICAgICAgICAgcmlnaHQgPSAtSW5maW5pdHk7XG5cbiAgICAgICAgY2VsbHMuZm9yRWFjaChjZWxsID0+IHtcbiAgICAgICAgICBjb25zdCByID0gY2VsbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICB0b3AgPSBNYXRoLm1pbih0b3AsIHIudG9wKTtcbiAgICAgICAgICBib3R0b20gPSBNYXRoLm1heChib3R0b20sIHIuYm90dG9tKTtcbiAgICAgICAgICBsZWZ0ID0gTWF0aC5taW4obGVmdCwgci5sZWZ0KTtcbiAgICAgICAgICByaWdodCA9IE1hdGgubWF4KHJpZ2h0LCByLnJpZ2h0KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBET01SZWN0KGxlZnQsIHRvcCwgcmlnaHQgLSBsZWZ0LCBib3R0b20gLSB0b3ApO1xuICAgICAgfVxuXG4gICAgICAvLyBGYWxsYmFjayB0byBhbmNob3IvaGVhZCBpZiBubyAuc2VsZWN0ZWRDZWxsIChyYXJlKVxuICAgICAgY29uc3QgYW5jaG9yID0gZWQudmlldy5ub2RlRE9NKHNlbGVjdGlvbi4kYW5jaG9yQ2VsbC5wb3MpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgY29uc3QgaGVhZCA9IGVkLnZpZXcubm9kZURPTShzZWxlY3Rpb24uJGhlYWRDZWxsLnBvcykgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICAgIGlmIChhbmNob3IgJiYgaGVhZCkge1xuICAgICAgICBjb25zdCBhbmNob3JSZWN0ID0gYW5jaG9yLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICBjb25zdCBoZWFkUmVjdCA9IGhlYWQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICAgICAgY29uc3QgdG9wID0gTWF0aC5taW4oYW5jaG9yUmVjdC50b3AsIGhlYWRSZWN0LnRvcCk7XG4gICAgICAgIGNvbnN0IGJvdHRvbSA9IE1hdGgubWF4KGFuY2hvclJlY3QuYm90dG9tLCBoZWFkUmVjdC5ib3R0b20pO1xuICAgICAgICBjb25zdCBsZWZ0ID0gTWF0aC5taW4oYW5jaG9yUmVjdC5sZWZ0LCBoZWFkUmVjdC5sZWZ0KTtcbiAgICAgICAgY29uc3QgcmlnaHQgPSBNYXRoLm1heChhbmNob3JSZWN0LnJpZ2h0LCBoZWFkUmVjdC5yaWdodCk7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBET01SZWN0KGxlZnQsIHRvcCwgcmlnaHQgLSBsZWZ0LCBib3R0b20gLSB0b3ApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIDIuIFVsdGltYXRlIGZhbGxiYWNrIHZpYSBQcm9zZU1pcnJvciBjbGFzc1xuICAgIGNvbnN0IHNpbmdsZUNlbGwgPSBlZC52aWV3LmRvbS5xdWVyeVNlbGVjdG9yKFwiLnNlbGVjdGVkQ2VsbFwiKTtcbiAgICBpZiAoc2luZ2xlQ2VsbCkge1xuICAgICAgcmV0dXJuIHNpbmdsZUNlbGwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBET01SZWN0KC05OTk5LCAtOTk5OSwgMCwgMCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZXhlY3V0ZUNvbW1hbmQoZWRpdG9yOiBFZGl0b3IsIGNvbW1hbmQ6IHN0cmluZywgLi4uYXJnczogdW5rbm93bltdKTogdm9pZCB7XG4gICAgdGhpcy5lZGl0b3JDb21tYW5kcy5leGVjdXRlKGVkaXRvciwgY29tbWFuZCwgLi4uYXJncyk7XG4gIH1cbn1cbiJdfQ==