@vendure/admin-ui 3.1.0-next.1 → 3.1.0-next.3

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 (117) hide show
  1. package/catalog/components/collection-data-table/collection-data-table.component.d.ts +3 -5
  2. package/catalog/components/collection-list/collection-list.component.d.ts +1 -0
  3. package/catalog/components/facet-list/facet-list.component.d.ts +1 -0
  4. package/catalog/components/product-list/product-list.component.d.ts +2 -0
  5. package/core/common/base-list.component.d.ts +13 -0
  6. package/core/common/version.d.ts +1 -1
  7. package/core/data/providers/base-data.service.d.ts +19 -2
  8. package/core/data/providers/collection-data.service.d.ts +2 -2
  9. package/core/data/providers/data.service.d.ts +3 -3
  10. package/core/data/query-result.d.ts +60 -4
  11. package/core/data/utils/add-custom-fields.d.ts +1 -1
  12. package/core/providers/alerts/alerts.service.d.ts +3 -0
  13. package/core/providers/auth/auth.service.d.ts +3 -1
  14. package/core/providers/data-table/data-table-config.service.d.ts +12 -0
  15. package/core/public_api.d.ts +1 -0
  16. package/core/shared/components/asset-preview-links/asset-preview-links.component.d.ts +1 -0
  17. package/core/shared/components/assets/assets.component.d.ts +2 -1
  18. package/core/shared/components/data-table-2/data-table2.component.d.ts +5 -5
  19. package/core/shared/components/data-table-filter-presets/filter-preset.service.d.ts +3 -4
  20. package/core/shared/components/rich-text-editor/external-image-dialog/external-image-dialog.component.d.ts +21 -2
  21. package/core/shared/components/rich-text-editor/prosemirror/plugins/image-plugin.d.ts +2 -1
  22. package/customer/components/customer-group-list/customer-group-list.component.d.ts +2 -0
  23. package/customer/components/customer-list/customer-list.component.d.ts +1 -0
  24. package/esm2022/catalog/components/collection-contents/collection-contents.component.mjs +1 -1
  25. package/esm2022/catalog/components/collection-data-table/collection-data-table.component.mjs +10 -12
  26. package/esm2022/catalog/components/collection-detail/collection-detail.component.mjs +1 -1
  27. package/esm2022/catalog/components/collection-list/collection-list.component.mjs +4 -3
  28. package/esm2022/catalog/components/facet-list/facet-list.component.mjs +14 -13
  29. package/esm2022/catalog/components/product-detail/product-detail.component.mjs +1 -1
  30. package/esm2022/catalog/components/product-list/product-list.component.mjs +5 -3
  31. package/esm2022/catalog/components/product-options-editor/product-options-editor.component.mjs +1 -1
  32. package/esm2022/catalog/components/product-variant-detail/product-variant-detail.component.mjs +1 -1
  33. package/esm2022/catalog/components/product-variant-list/product-variant-list.component.mjs +1 -1
  34. package/esm2022/catalog/components/product-variants-editor/product-variants-editor.component.mjs +1 -1
  35. package/esm2022/core/common/base-list.component.mjs +20 -4
  36. package/esm2022/core/common/version.mjs +2 -2
  37. package/esm2022/core/components/app-shell/app-shell.component.mjs +3 -3
  38. package/esm2022/core/data/data.module.mjs +3 -3
  39. package/esm2022/core/data/providers/base-data.service.mjs +7 -8
  40. package/esm2022/core/data/providers/collection-data.service.mjs +3 -3
  41. package/esm2022/core/data/providers/data.service.mjs +5 -5
  42. package/esm2022/core/data/providers/product-data.service.mjs +4 -2
  43. package/esm2022/core/data/query-result.mjs +96 -10
  44. package/esm2022/core/data/utils/add-custom-fields.mjs +48 -30
  45. package/esm2022/core/providers/alerts/alerts.service.mjs +13 -3
  46. package/esm2022/core/providers/auth/auth.service.mjs +11 -7
  47. package/esm2022/core/providers/data-table/data-table-config.service.mjs +43 -0
  48. package/esm2022/core/public_api.mjs +2 -1
  49. package/esm2022/core/shared/components/asset-picker-dialog/asset-picker-dialog.component.mjs +1 -1
  50. package/esm2022/core/shared/components/asset-preview-links/asset-preview-links.component.mjs +3 -2
  51. package/esm2022/core/shared/components/assets/assets.component.mjs +10 -4
  52. package/esm2022/core/shared/components/data-table-2/data-table-custom-field-column.component.mjs +3 -3
  53. package/esm2022/core/shared/components/data-table-2/data-table2.component.mjs +44 -52
  54. package/esm2022/core/shared/components/data-table-filter-presets/filter-preset.service.mjs +23 -35
  55. package/esm2022/core/shared/components/rich-text-editor/external-image-dialog/external-image-dialog.component.mjs +78 -13
  56. package/esm2022/core/shared/components/rich-text-editor/prosemirror/plugins/image-plugin.mjs +33 -1
  57. package/esm2022/core/shared/components/rich-text-editor/prosemirror/prosemirror.service.mjs +3 -2
  58. package/esm2022/core/shared/pipes/locale-base.pipe.mjs +2 -2
  59. package/esm2022/customer/components/customer-detail/customer-detail.component.mjs +1 -1
  60. package/esm2022/customer/components/customer-group-list/customer-group-list.component.mjs +15 -13
  61. package/esm2022/customer/components/customer-group-member-list/customer-group-member-list.component.mjs +1 -1
  62. package/esm2022/customer/components/customer-list/customer-list.component.mjs +27 -26
  63. package/esm2022/dashboard/widgets/latest-orders-widget/latest-orders-widget.component.mjs +1 -1
  64. package/esm2022/marketing/components/promotion-list/promotion-list.component.mjs +14 -13
  65. package/esm2022/order/components/order-data-table/order-data-table.component.mjs +1 -14
  66. package/esm2022/order/components/order-detail/order-detail.component.mjs +3 -3
  67. package/esm2022/order/components/order-editor/order-editor.component.mjs +1 -1
  68. package/esm2022/order/components/order-list/order-list.component.mjs +4 -3
  69. package/esm2022/order/components/refund-order-dialog/refund-order-dialog.component.mjs +1 -1
  70. package/esm2022/settings/components/administrator-list/administrator-list.component.mjs +33 -32
  71. package/esm2022/settings/components/channel-list/channel-list.component.mjs +14 -13
  72. package/esm2022/settings/components/country-list/country-list.component.mjs +22 -21
  73. package/esm2022/settings/components/payment-method-list/payment-method-list.component.mjs +22 -21
  74. package/esm2022/settings/components/role-list/role-list.component.mjs +14 -13
  75. package/esm2022/settings/components/seller-list/seller-list.component.mjs +19 -18
  76. package/esm2022/settings/components/shipping-method-list/shipping-method-list.component.mjs +22 -21
  77. package/esm2022/settings/components/stock-location-list/stock-location-list.component.mjs +20 -19
  78. package/esm2022/settings/components/tax-category-list/tax-category-list.component.mjs +14 -13
  79. package/esm2022/settings/components/tax-rate-list/tax-rate-list.component.mjs +14 -13
  80. package/esm2022/settings/components/zone-list/zone-list.component.mjs +19 -18
  81. package/esm2022/settings/components/zone-member-list/zone-member-list.component.mjs +1 -1
  82. package/esm2022/system/components/job-list/job-list.component.mjs +1 -1
  83. package/fesm2022/vendure-admin-ui-catalog.mjs +35 -33
  84. package/fesm2022/vendure-admin-ui-catalog.mjs.map +1 -1
  85. package/fesm2022/vendure-admin-ui-core.mjs +536 -288
  86. package/fesm2022/vendure-admin-ui-core.mjs.map +1 -1
  87. package/fesm2022/vendure-admin-ui-customer.mjs +42 -39
  88. package/fesm2022/vendure-admin-ui-customer.mjs.map +1 -1
  89. package/fesm2022/vendure-admin-ui-dashboard.mjs +1 -1
  90. package/fesm2022/vendure-admin-ui-dashboard.mjs.map +1 -1
  91. package/fesm2022/vendure-admin-ui-marketing.mjs +13 -12
  92. package/fesm2022/vendure-admin-ui-marketing.mjs.map +1 -1
  93. package/fesm2022/vendure-admin-ui-order.mjs +7 -19
  94. package/fesm2022/vendure-admin-ui-order.mjs.map +1 -1
  95. package/fesm2022/vendure-admin-ui-react.mjs.map +1 -1
  96. package/fesm2022/vendure-admin-ui-settings.mjs +203 -192
  97. package/fesm2022/vendure-admin-ui-settings.mjs.map +1 -1
  98. package/fesm2022/vendure-admin-ui-system.mjs +1 -1
  99. package/fesm2022/vendure-admin-ui-system.mjs.map +1 -1
  100. package/marketing/components/promotion-list/promotion-list.component.d.ts +1 -0
  101. package/order/components/order-data-table/order-data-table.component.d.ts +2 -3
  102. package/order/components/order-list/order-list.component.d.ts +1 -0
  103. package/package.json +14 -14
  104. package/settings/components/administrator-list/administrator-list.component.d.ts +1 -0
  105. package/settings/components/channel-list/channel-list.component.d.ts +1 -0
  106. package/settings/components/country-list/country-list.component.d.ts +1 -0
  107. package/settings/components/payment-method-list/payment-method-list.component.d.ts +1 -0
  108. package/settings/components/role-list/role-list.component.d.ts +1 -0
  109. package/settings/components/seller-list/seller-list.component.d.ts +1 -0
  110. package/settings/components/shipping-method-list/shipping-method-list.component.d.ts +1 -0
  111. package/settings/components/stock-location-list/stock-location-list.component.d.ts +1 -0
  112. package/settings/components/tax-category-list/tax-category-list.component.d.ts +1 -0
  113. package/settings/components/tax-rate-list/tax-rate-list.component.d.ts +1 -0
  114. package/settings/components/zone-list/zone-list.component.d.ts +1 -0
  115. package/static/i18n-messages/en.json +6 -2
  116. package/static/i18n-messages/pt_PT.json +1 -0
  117. package/static/styles/component/prosemirror.scss +2 -0
@@ -2,32 +2,20 @@ import { moveItemInArray } from '@angular/cdk/drag-drop';
2
2
  import { Injectable } from '@angular/core';
3
3
  import { Subject } from 'rxjs';
4
4
  import * as i0 from "@angular/core";
5
- import * as i1 from "../../../providers/local-storage/local-storage.service";
5
+ import * as i1 from "../../../providers/data-table/data-table-config.service";
6
6
  export class FilterPresetService {
7
- constructor(localStorageService) {
8
- this.localStorageService = localStorageService;
7
+ constructor(dataTableConfigService) {
8
+ this.dataTableConfigService = dataTableConfigService;
9
9
  this._presetChanges = new Subject();
10
10
  this.presetChanges$ = this._presetChanges.asObservable();
11
11
  }
12
- getDataTableConfig(dataTableId) {
13
- const dataTableConfig = this.localStorageService.get('dataTableConfig') ?? {};
14
- if (!dataTableConfig[dataTableId]) {
15
- dataTableConfig[dataTableId] = {
16
- visibility: [],
17
- order: {},
18
- showSearchFilterRow: false,
19
- filterPresets: [],
20
- };
21
- }
22
- return dataTableConfig;
23
- }
24
12
  getFilterPresets(dataTableId) {
25
- const dataTableConfig = this.getDataTableConfig(dataTableId);
26
- return dataTableConfig[dataTableId].filterPresets ?? [];
13
+ const dataTableConfig = this.dataTableConfigService.getConfig(dataTableId);
14
+ return dataTableConfig.filterPresets ?? [];
27
15
  }
28
16
  saveFilterPreset(config) {
29
- const dataTableConfig = this.getDataTableConfig(config.dataTableId);
30
- const filterPresets = dataTableConfig[config.dataTableId].filterPresets ?? [];
17
+ const dataTableConfig = this.dataTableConfigService.getConfig(config.dataTableId);
18
+ const filterPresets = dataTableConfig.filterPresets ?? [];
31
19
  const existingName = filterPresets.find(p => p.name === config.name);
32
20
  if (existingName) {
33
21
  existingName.value = config.value;
@@ -38,36 +26,36 @@ export class FilterPresetService {
38
26
  value: config.value,
39
27
  });
40
28
  }
41
- dataTableConfig[config.dataTableId].filterPresets = filterPresets;
42
- this.localStorageService.set('dataTableConfig', dataTableConfig);
29
+ dataTableConfig.filterPresets = filterPresets;
30
+ this.dataTableConfigService.setConfig(config.dataTableId, dataTableConfig);
43
31
  this._presetChanges.next(filterPresets);
44
32
  }
45
33
  deleteFilterPreset(config) {
46
- const dataTableConfig = this.getDataTableConfig(config.dataTableId);
47
- dataTableConfig[config.dataTableId].filterPresets = dataTableConfig[config.dataTableId].filterPresets.filter(p => p.name !== config.name);
48
- this.localStorageService.set('dataTableConfig', dataTableConfig);
49
- this._presetChanges.next(dataTableConfig[config.dataTableId].filterPresets);
34
+ const dataTableConfig = this.dataTableConfigService.getConfig(config.dataTableId);
35
+ dataTableConfig.filterPresets = dataTableConfig.filterPresets.filter(p => p.name !== config.name);
36
+ this.dataTableConfigService.setConfig(config.dataTableId, dataTableConfig);
37
+ this._presetChanges.next(dataTableConfig.filterPresets);
50
38
  }
51
39
  reorderPresets(dataTableId, fromIndex, toIndex) {
52
40
  const presets = this.getFilterPresets(dataTableId);
53
41
  moveItemInArray(presets, fromIndex, toIndex);
54
- const dataTableConfig = this.getDataTableConfig(dataTableId);
55
- dataTableConfig[dataTableId].filterPresets = presets;
56
- this.localStorageService.set('dataTableConfig', dataTableConfig);
42
+ const dataTableConfig = this.dataTableConfigService.getConfig(dataTableId);
43
+ dataTableConfig.filterPresets = presets;
44
+ this.dataTableConfigService.setConfig(dataTableId, dataTableConfig);
57
45
  this._presetChanges.next(presets);
58
46
  }
59
47
  renameFilterPreset(config) {
60
- const dataTableConfig = this.getDataTableConfig(config.dataTableId);
61
- const filterPresets = dataTableConfig[config.dataTableId].filterPresets ?? [];
48
+ const dataTableConfig = this.dataTableConfigService.getConfig(config.dataTableId);
49
+ const filterPresets = dataTableConfig.filterPresets ?? [];
62
50
  const existingName = filterPresets.find(p => p.name === config.oldName);
63
51
  if (existingName) {
64
52
  existingName.name = config.newName;
65
- dataTableConfig[config.dataTableId].filterPresets = filterPresets;
66
- this.localStorageService.set('dataTableConfig', dataTableConfig);
53
+ dataTableConfig.filterPresets = filterPresets;
54
+ this.dataTableConfigService.setConfig(config.dataTableId, dataTableConfig);
67
55
  this._presetChanges.next(filterPresets);
68
56
  }
69
57
  }
70
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: FilterPresetService, deps: [{ token: i1.LocalStorageService }], target: i0.ɵɵFactoryTarget.Injectable }); }
58
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: FilterPresetService, deps: [{ token: i1.DataTableConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
71
59
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: FilterPresetService, providedIn: 'root' }); }
72
60
  }
73
61
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: FilterPresetService, decorators: [{
@@ -75,5 +63,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
75
63
  args: [{
76
64
  providedIn: 'root',
77
65
  }]
78
- }], ctorParameters: () => [{ type: i1.LocalStorageService }] });
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXByZXNldC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9zaGFyZWQvY29tcG9uZW50cy9kYXRhLXRhYmxlLWZpbHRlci1wcmVzZXRzL2ZpbHRlci1wcmVzZXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7QUFNM0MsTUFBTSxPQUFPLG1CQUFtQjtJQUk1QixZQUFvQixtQkFBd0M7UUFBeEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUZwRCxtQkFBYyxHQUFHLElBQUksT0FBTyxFQUEwQyxDQUFDO1FBRzNFLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM3RCxDQUFDO0lBRVMsa0JBQWtCLENBQUMsV0FBbUI7UUFDNUMsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM5RSxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDaEMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxHQUFHO2dCQUMzQixVQUFVLEVBQUUsRUFBRTtnQkFDZCxLQUFLLEVBQUUsRUFBRTtnQkFDVCxtQkFBbUIsRUFBRSxLQUFLO2dCQUMxQixhQUFhLEVBQUUsRUFBRTthQUNwQixDQUFDO1FBQ04sQ0FBQztRQUNELE9BQU8sZUFBZSxDQUFDO0lBQzNCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxXQUFtQjtRQUNoQyxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMs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QUFJLEtBQUssTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hFLElBQUksWUFBWSxFQUFFLENBQUM7WUFDZixZQUFZLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7WUFDbkMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1lBQ2xFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEVBQUUsZUFBZSxDQUFDLENBQUM7WUFDakUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDNUMsQ0FBQztJQUNMLENBQUM7OEdBdkVRLG1CQUFtQjtrSEFBbkIsbUJBQW1CLGNBRmhCLE1BQU07OzJGQUVULG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtb3ZlSXRlbUluQXJyYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IERhdGFUYWJsZUNvbmZpZywgTG9jYWxTdG9yYWdlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3ZpZGVycy9sb2NhbC1zdG9yYWdlL2xvY2FsLXN0b3JhZ2Uuc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGaWx0ZXJQcmVzZXRTZXJ2aWNlIHtcclxuICAgIHByZXNldENoYW5nZXMkOiBPYnNlcnZhYmxlPEFycmF5PHsgbmFtZTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH0+PjtcclxuICAgIHByaXZhdGUgX3ByZXNldENoYW5nZXMgPSBuZXcgU3ViamVjdDxBcnJheTx7IG5hbWU6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9Pj4oKTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGxvY2FsU3RvcmFnZVNlcnZpY2U6IExvY2FsU3RvcmFnZVNlcnZpY2UpIHtcclxuICAgICAgICB0aGlzLnByZXNldENoYW5nZXMkID0gdGhpcy5fcHJlc2V0Q2hhbmdlcy5hc09ic2VydmFibGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgZ2V0RGF0YVRhYmxlQ29uZmlnKGRhdGFUYWJsZUlkOiBzdHJpbmcpOiBEYXRhVGFibGVDb25maWcge1xyXG4gICAgICAgIGNvbnN0IGRhdGFUYWJsZUNvbmZpZyA9IHRoaXMubG9jYWxTdG9yYWdlU2VydmljZS5nZXQoJ2RhdGFUYWJsZUNvbmZpZycpID8/IHt9O1xyXG4gICAgICAgIGlmICghZGF0YVRhYmxlQ29uZmlnW2RhdGFUYWJsZUlkXSkge1xyXG4gICAgICAgICAgICBkYXRhVGFibGVDb25maWdbZGF0YVRhYmxlSWRdID0ge1xyXG4gICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogW10sXHJcbiAgICAgICAgICAgICAgICBvcmRlcjoge30sXHJcbiAgICAgICAgICAgICAgICBzaG93U2VhcmNoRmlsdGVyUm93OiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIGZpbHRlclByZXNldHM6IFtdLFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZGF0YVRhYmxlQ29uZmlnO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEZpbHRlclByZXNldHMoZGF0YVRhYmxlSWQ6IHN0cmluZyk6IEFycmF5PHsgbmFtZTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH0+IHtcclxuICAgICAgICBjb25zdCBkYXRhVGFibGVDb25maWcgPSB0aGlzLmdldERhdGFUYWJsZUNvbmZpZyhkYXRhVGFibGVJZCk7XHJcbiAgICAgICAgcmV0dXJuIGRhdGFUYWJsZUNvbmZpZ1tkYXRhVGFibGVJZF0uZmlsdGVyUHJlc2V0cyA/PyBbXTtcclxuICAgIH1cclxuXHJcbiAgICBzYXZlRmlsdGVyUHJlc2V0KGNvbmZpZzogeyBkYXRhVGFibGVJZDogc3RyaW5nOyBuYW1lOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfSkge1xyXG4gICAgICAgIGNvbnN0IGRhdGFUYWJsZUNvbmZpZyA9IHRoaXMuZ2V0RGF0YVRhYmxlQ29uZmlnKGNvbmZpZy5kYXRhVGFibGVJZCk7XHJcbiAgICAgICAgY29uc3QgZmlsdGVyUHJlc2V0cyA9IGRhdGFUYWJsZUNvbmZpZ1tjb25maWcuZGF0YVRhYmxlSWRdLmZpbHRlclByZXNldHMgPz8gW107XHJcbiAgICAgICAgY29uc3QgZXhpc3RpbmdOYW1lID0gZmlsdGVyUHJlc2V0cy5maW5kKHAgPT4gcC5uYW1lID09PSBjb25maWcubmFtZSk7XHJcbiAgICAgICAgaWYgKGV4aXN0aW5nTmFtZSkge1xyXG4gICAgICAgICAgICBleGlzdGluZ05hbWUudmFsdWUgPSBjb25maWcudmFsdWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZmlsdGVyUHJlc2V0cy5wdXNoKHtcclxuICAgICAgICAgICAgICAgIG5hbWU6IGNvbmZpZy5uYW1lLFxyXG4gICAgICAgICAgICAgICAgdmFsdWU6IGNvbmZpZy52YWx1ZSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGRhdGFUYWJsZUNvbmZpZ1tjb25maWcuZGF0YVRhYmxlSWRdLmZpbHRlclByZXNldHMgPSBmaWx0ZXJQcmVzZXRzO1xyXG4gICAgICAgIHRoaXMubG9jYWxTdG9yYWdlU2VydmljZS5zZXQoJ2RhdGFUYWJsZUNvbmZpZycsIGRhdGFUYWJsZUNvbmZpZyk7XHJcbiAgICAgICAgdGhpcy5fcHJlc2V0Q2hhbmdlcy5uZXh0KGZpbHRlclByZXNldHMpO1xyXG4gICAgfVxyXG5cclxuICAgIGRlbGV0ZUZpbHRlclByZXNldChjb25maWc6IHsgZGF0YVRhYmxlSWQ6IHN0cmluZzsgbmFtZTogc3RyaW5nIH0pIHtcclxuICAgICAgICBjb25zdCBkYXRhVGFibGVDb25maWcgPSB0aGlzLmdldERhdGFUYWJsZUNvbmZpZyhjb25maWcuZGF0YVRhYmxlSWQpO1xyXG4gICAgICAgIGRhdGFUYWJsZUNvbmZpZ1tjb25maWcuZGF0YVRhYmxlSWRdLmZpbHRlclByZXNldHMgPSBkYXRhVGFibGVDb25maWdbXHJcbiAgICAgICAgICAgIGNvbmZpZy5kYXRhVGFibGVJZFxyXG4gICAgICAgIF0uZmlsdGVyUHJlc2V0cy5maWx0ZXIocCA9PiBwLm5hbWUgIT09IGNvbmZpZy5uYW1lKTtcclxuICAgICAgICB0aGlzLmxvY2FsU3RvcmFnZVNlcnZpY2Uuc2V0KCdkYXRhVGFibGVDb25maWcnLCBkYXRhVGFibGVDb25maWcpO1xyXG4gICAgICAgIHRoaXMuX3ByZXNldENoYW5nZXMubmV4dChkYXRhVGFibGVDb25maWdbY29uZmlnLmRhdGFUYWJsZUlkXS5maWx0ZXJQcmVzZXRzKTtcclxuICAgIH1cclxuXHJcbiAgICByZW9yZGVyUHJlc2V0cyhkYXRhVGFibGVJZDogc3RyaW5nLCBmcm9tSW5kZXg6IG51bWJlciwgdG9JbmRleDogbnVtYmVyKSB7XHJcbiAgICAgICAgY29uc3QgcHJlc2V0cyA9IHRoaXMuZ2V0RmlsdGVyUHJlc2V0cyhkYXRhVGFibGVJZCk7XHJcbiAgICAgICAgbW92ZUl0ZW1JbkFycmF5KHByZXNldHMsIGZyb21JbmRleCwgdG9JbmRleCk7XHJcbiAgICAgICAgY29uc3QgZGF0YVRhYmxlQ29uZmlnID0gdGhpcy5nZXREYXRhVGFibGVDb25maWcoZGF0YVRhYmxlSWQpO1xyXG4gICAgICAgIGRhdGFUYWJsZUNvbmZpZ1tkYXRhVGFibGVJZF0uZmlsdGVyUHJlc2V0cyA9IHByZXNldHM7XHJcbiAgICAgICAgdGhpcy5sb2NhbFN0b3JhZ2VTZXJ2aWNlLnNldCgnZGF0YVRhYmxlQ29uZmlnJywgZGF0YVRhYmxlQ29uZmlnKTtcclxuICAgICAgICB0aGlzLl9wcmVzZXRDaGFuZ2VzLm5leHQocHJlc2V0cyk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVuYW1lRmlsdGVyUHJlc2V0KGNvbmZpZzogeyBkYXRhVGFibGVJZDogc3RyaW5nOyBvbGROYW1lOiBzdHJpbmc7IG5ld05hbWU6IHN0cmluZyB9KSB7XHJcbiAgICAgICAgY29uc3QgZGF0YVRhYmxlQ29uZmlnID0gdGhpcy5nZXREYXRhVGFibGVDb25maWcoY29uZmlnLmRhdGFUYWJsZUlkKTtcclxuICAgICAgICBjb25zdCBmaWx0ZXJQcmVzZXRzID0gZGF0YVRhYmxlQ29uZmlnW2NvbmZpZy5kYXRhVGFibGVJZF0uZmlsdGVyUHJlc2V0cyA/PyBbXTtcclxuICAgICAgICBjb25zdCBleGlzdGluZ05hbWUgPSBmaWx0ZXJQcmVzZXRzLmZpbmQocCA9PiBwLm5hbWUgPT09IGNvbmZpZy5vbGROYW1lKTtcclxuICAgICAgICBpZiAoZXhpc3RpbmdOYW1lKSB7XHJcbiAgICAgICAgICAgIGV4aXN0aW5nTmFtZS5uYW1lID0gY29uZmlnLm5ld05hbWU7XHJcbiAgICAgICAgICAgIGRhdGFUYWJsZUNvbmZpZ1tjb25maWcuZGF0YVRhYmxlSWRdLmZpbHRlclByZXNldHMgPSBmaWx0ZXJQcmVzZXRzO1xyXG4gICAgICAgICAgICB0aGlzLmxvY2FsU3RvcmFnZVNlcnZpY2Uuc2V0KCdkYXRhVGFibGVDb25maWcnLCBkYXRhVGFibGVDb25maWcpO1xyXG4gICAgICAgICAgICB0aGlzLl9wcmVzZXRDaGFuZ2VzLm5leHQoZmlsdGVyUHJlc2V0cyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==
66
+ }], ctorParameters: () => [{ type: i1.DataTableConfigService }] });
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXByZXNldC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9zaGFyZWQvY29tcG9uZW50cy9kYXRhLXRhYmxlLWZpbHRlci1wcmVzZXRzL2ZpbHRlci1wcmVzZXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7QUFNM0MsTUFBTSxPQUFPLG1CQUFtQjtJQUk1QixZQUFvQixzQkFBOEM7UUFBOUMsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUYxRCxtQkFBYyxHQUFHLElBQUksT0FBTyxFQUEwQyxDQUFDO1FBRzNFLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM3RCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsV0FBbUI7UUFDaEMsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMzRSxPQUFPLGVBQWUsQ0FBQyxhQUFhLElBQUksRUFBRSxDQUFDO0lBQy9DLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxNQUE0RDtRQUN6RSxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNsRixNQUFNLGFBQWEsR0FBRyxlQUFlLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQztRQUMxRCxNQUFNLFlBQVksR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckUsSUFBSSxZQUFZLEVBQUUsQ0FBQztZQUNmLFlBQVksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUN0QyxDQUFDO2FBQU0sQ0FBQztZQUNKLGFBQWEsQ0FBQyxJQUFJLENBQUM7Z0JBQ2YsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJO2dCQUNqQixLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUs7YUFDdEIsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztRQUNELGVBQWUsQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1FBQzlDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxlQUFlLENBQUMsQ0FBQztRQUMzRSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsa0JBQWtCLENBQUMsTUFBNkM7UUFDNUQsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbEYsZUFBZSxDQUFDLGFBQWEsR0FBRyxlQUFlLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxlQUFlLENBQUMsQ0FBQztRQUMzRSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELGNBQWMsQ0FBQyxXQUFtQixFQUFFLFNBQWlCLEVBQUUsT0FBZTtRQUNsRSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkQsZUFBZSxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDN0MsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMzRSxlQUFlLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQztRQUN4QyxJQUFJLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxlQUFlLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsa0JBQWtCLENBQUMsTUFBaUU7UUFDaEYsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbEYsTUFBTSxhQUFhLEdBQUcsZUFBZSxDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUM7UUFDMUQsTUFBTSxZQUFZLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hFLElBQUksWUFBWSxFQUFFLENBQUM7WUFDZixZQUFZLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7WUFDbkMsZUFBZSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7WUFDOUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLGVBQWUsQ0FBQyxDQUFDO1lBQzNFLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzVDLENBQUM7SUFDTCxDQUFDOzhHQXhEUSxtQkFBbUI7a0hBQW5CLG1CQUFtQixjQUZoQixNQUFNOzsyRkFFVCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEYXRhVGFibGVDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJvdmlkZXJzL2RhdGEtdGFibGUvZGF0YS10YWJsZS1jb25maWcuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEZpbHRlclByZXNldFNlcnZpY2Uge1xuICAgIHByZXNldENoYW5nZXMkOiBPYnNlcnZhYmxlPEFycmF5PHsgbmFtZTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH0+PjtcbiAgICBwcml2YXRlIF9wcmVzZXRDaGFuZ2VzID0gbmV3IFN1YmplY3Q8QXJyYXk8eyBuYW1lOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfT4+KCk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRhdGFUYWJsZUNvbmZpZ1NlcnZpY2U6IERhdGFUYWJsZUNvbmZpZ1NlcnZpY2UpIHtcbiAgICAgICAgdGhpcy5wcmVzZXRDaGFuZ2VzJCA9IHRoaXMuX3ByZXNldENoYW5nZXMuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgZ2V0RmlsdGVyUHJlc2V0cyhkYXRhVGFibGVJZDogc3RyaW5nKTogQXJyYXk8eyBuYW1lOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfT4ge1xuICAgICAgICBjb25zdCBkYXRhVGFibGVDb25maWcgPSB0aGlzLmRhdGFUYWJsZUNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKGRhdGFUYWJsZUlkKTtcbiAgICAgICAgcmV0dXJuIGRhdGFUYWJsZUNvbmZpZy5maWx0ZXJQcmVzZXRzID8/IFtdO1xuICAgIH1cblxuICAgIHNhdmVGaWx0ZXJQcmVzZXQoY29uZmlnOiB7IGRhdGFUYWJsZUlkOiBzdHJpbmc7IG5hbWU6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9KSB7XG4gICAgICAgIGNvbnN0IGRhdGFUYWJsZUNvbmZpZyA9IHRoaXMuZGF0YVRhYmxlQ29uZmlnU2VydmljZS5nZXRDb25maWcoY29uZmlnLmRhdGFUYWJsZUlkKTtcbiAgICAgICAgY29uc3QgZmlsdGVyUHJlc2V0cyA9IGRhdGFUYWJsZUNvbmZpZy5maWx0ZXJQcmVzZXRzID8/IFtdO1xuICAgICAgICBjb25zdCBleGlzdGluZ05hbWUgPSBmaWx0ZXJQcmVzZXRzLmZpbmQocCA9PiBwLm5hbWUgPT09IGNvbmZpZy5uYW1lKTtcbiAgICAgICAgaWYgKGV4aXN0aW5nTmFtZSkge1xuICAgICAgICAgICAgZXhpc3RpbmdOYW1lLnZhbHVlID0gY29uZmlnLnZhbHVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZmlsdGVyUHJlc2V0cy5wdXNoKHtcbiAgICAgICAgICAgICAgICBuYW1lOiBjb25maWcubmFtZSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogY29uZmlnLnZhbHVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZGF0YVRhYmxlQ29uZmlnLmZpbHRlclByZXNldHMgPSBmaWx0ZXJQcmVzZXRzO1xuICAgICAgICB0aGlzLmRhdGFUYWJsZUNvbmZpZ1NlcnZpY2Uuc2V0Q29uZmlnKGNvbmZpZy5kYXRhVGFibGVJZCwgZGF0YVRhYmxlQ29uZmlnKTtcbiAgICAgICAgdGhpcy5fcHJlc2V0Q2hhbmdlcy5uZXh0KGZpbHRlclByZXNldHMpO1xuICAgIH1cblxuICAgIGRlbGV0ZUZpbHRlclByZXNldChjb25maWc6IHsgZGF0YVRhYmxlSWQ6IHN0cmluZzsgbmFtZTogc3RyaW5nIH0pIHtcbiAgICAgICAgY29uc3QgZGF0YVRhYmxlQ29uZmlnID0gdGhpcy5kYXRhVGFibGVDb25maWdTZXJ2aWNlLmdldENvbmZpZyhjb25maWcuZGF0YVRhYmxlSWQpO1xuICAgICAgICBkYXRhVGFibGVDb25maWcuZmlsdGVyUHJlc2V0cyA9IGRhdGFUYWJsZUNvbmZpZy5maWx0ZXJQcmVzZXRzLmZpbHRlcihwID0+IHAubmFtZSAhPT0gY29uZmlnLm5hbWUpO1xuICAgICAgICB0aGlzLmRhdGFUYWJsZUNvbmZpZ1NlcnZpY2Uuc2V0Q29uZmlnKGNvbmZpZy5kYXRhVGFibGVJZCwgZGF0YVRhYmxlQ29uZmlnKTtcbiAgICAgICAgdGhpcy5fcHJlc2V0Q2hhbmdlcy5uZXh0KGRhdGFUYWJsZUNvbmZpZy5maWx0ZXJQcmVzZXRzKTtcbiAgICB9XG5cbiAgICByZW9yZGVyUHJlc2V0cyhkYXRhVGFibGVJZDogc3RyaW5nLCBmcm9tSW5kZXg6IG51bWJlciwgdG9JbmRleDogbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IHByZXNldHMgPSB0aGlzLmdldEZpbHRlclByZXNldHMoZGF0YVRhYmxlSWQpO1xuICAgICAgICBtb3ZlSXRlbUluQXJyYXkocHJlc2V0cywgZnJvbUluZGV4LCB0b0luZGV4KTtcbiAgICAgICAgY29uc3QgZGF0YVRhYmxlQ29uZmlnID0gdGhpcy5kYXRhVGFibGVDb25maWdTZXJ2aWNlLmdldENvbmZpZyhkYXRhVGFibGVJZCk7XG4gICAgICAgIGRhdGFUYWJsZUNvbmZpZy5maWx0ZXJQcmVzZXRzID0gcHJlc2V0cztcbiAgICAgICAgdGhpcy5kYXRhVGFibGVDb25maWdTZXJ2aWNlLnNldENvbmZpZyhkYXRhVGFibGVJZCwgZGF0YVRhYmxlQ29uZmlnKTtcbiAgICAgICAgdGhpcy5fcHJlc2V0Q2hhbmdlcy5uZXh0KHByZXNldHMpO1xuICAgIH1cblxuICAgIHJlbmFtZUZpbHRlclByZXNldChjb25maWc6IHsgZGF0YVRhYmxlSWQ6IHN0cmluZzsgb2xkTmFtZTogc3RyaW5nOyBuZXdOYW1lOiBzdHJpbmcgfSkge1xuICAgICAgICBjb25zdCBkYXRhVGFibGVDb25maWcgPSB0aGlzLmRhdGFUYWJsZUNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKGNvbmZpZy5kYXRhVGFibGVJZCk7XG4gICAgICAgIGNvbnN0IGZpbHRlclByZXNldHMgPSBkYXRhVGFibGVDb25maWcuZmlsdGVyUHJlc2V0cyA/PyBbXTtcbiAgICAgICAgY29uc3QgZXhpc3RpbmdOYW1lID0gZmlsdGVyUHJlc2V0cy5maW5kKHAgPT4gcC5uYW1lID09PSBjb25maWcub2xkTmFtZSk7XG4gICAgICAgIGlmIChleGlzdGluZ05hbWUpIHtcbiAgICAgICAgICAgIGV4aXN0aW5nTmFtZS5uYW1lID0gY29uZmlnLm5ld05hbWU7XG4gICAgICAgICAgICBkYXRhVGFibGVDb25maWcuZmlsdGVyUHJlc2V0cyA9IGZpbHRlclByZXNldHM7XG4gICAgICAgICAgICB0aGlzLmRhdGFUYWJsZUNvbmZpZ1NlcnZpY2Uuc2V0Q29uZmlnKGNvbmZpZy5kYXRhVGFibGVJZCwgZGF0YVRhYmxlQ29uZmlnKTtcbiAgICAgICAgICAgIHRoaXMuX3ByZXNldENoYW5nZXMubmV4dChmaWx0ZXJQcmVzZXRzKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -1,21 +1,44 @@
1
- import { ChangeDetectionStrategy, Component } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, Output, } from '@angular/core';
2
2
  import { UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';
3
+ import { unique } from '@vendure/common/lib/unique';
4
+ import { AssetPickerDialogComponent } from '../../asset-picker-dialog/asset-picker-dialog.component';
5
+ import { ASSET_SIZES } from '../../asset-preview-links/asset-preview-links.component';
3
6
  import * as i0 from "@angular/core";
4
- import * as i1 from "@clr/angular";
5
- import * as i2 from "@angular/common";
6
- import * as i3 from "@angular/forms";
7
- import * as i4 from "../../form-field/form-field-control.directive";
8
- import * as i5 from "../../modal-dialog/dialog-buttons.directive";
9
- import * as i6 from "@ngx-translate/core";
7
+ import * as i1 from "../../../../providers/modal/modal.service";
8
+ import * as i2 from "@clr/angular";
9
+ import * as i3 from "@angular/common";
10
+ import * as i4 from "@angular/forms";
11
+ import * as i5 from "../../form-field/form-field-control.directive";
12
+ import * as i6 from "../../modal-dialog/dialog-buttons.directive";
13
+ import * as i7 from "../../dropdown/dropdown.component";
14
+ import * as i8 from "../../dropdown/dropdown-menu.component";
15
+ import * as i9 from "../../dropdown/dropdown-trigger.directive";
16
+ import * as i10 from "../../dropdown/dropdown-item.directive";
17
+ import * as i11 from "@ngx-translate/core";
10
18
  export class ExternalImageDialogComponent {
11
- constructor() {
19
+ constructor(modalService, changeDetector) {
20
+ this.modalService = modalService;
21
+ this.changeDetector = changeDetector;
22
+ this.assets = [];
23
+ // eslint-disable-next-line @angular-eslint/no-output-native
24
+ this.change = new EventEmitter();
12
25
  this.previewLoaded = false;
26
+ this.sizes = ASSET_SIZES;
27
+ this.preset = '';
13
28
  }
14
29
  ngOnInit() {
30
+ const initialSrc = this.existing?.src ? this.existing.src : '';
31
+ if (initialSrc) {
32
+ const url = new URL(initialSrc);
33
+ this.preset = url.searchParams.get('preset') || '';
34
+ }
15
35
  this.form = new UntypedFormGroup({
16
36
  src: new UntypedFormControl(this.existing ? this.existing.src : '', Validators.required),
17
37
  title: new UntypedFormControl(this.existing ? this.existing.title : ''),
18
38
  alt: new UntypedFormControl(this.existing ? this.existing.alt : ''),
39
+ width: new UntypedFormControl(this.existing ? this.existing.width : ''),
40
+ height: new UntypedFormControl(this.existing ? this.existing.height : ''),
41
+ dataExternal: new UntypedFormControl(this.existing ? this.existing.dataExternal : true),
19
42
  });
20
43
  }
21
44
  select() {
@@ -27,11 +50,53 @@ export class ExternalImageDialogComponent {
27
50
  onImageError(event) {
28
51
  this.previewLoaded = false;
29
52
  }
30
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: ExternalImageDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
31
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: ExternalImageDialogComponent, selector: "vdr-external-image-dialog", ngImport: i0, template: "<div class=\"flex\">\r\n <form [formGroup]=\"form\" class=\"flex-spacer\" clrForm clrLayout=\"vertical\">\r\n <clr-input-container class=\"expand\">\r\n <label>{{ 'editor.image-src' | translate }}</label>\r\n <input clrInput type=\"text\" formControlName=\"src\" />\r\n </clr-input-container>\r\n <clr-input-container class=\"expand\">\r\n <label>{{ 'editor.image-title' | translate }}</label>\r\n <input clrInput type=\"text\" formControlName=\"title\" />\r\n </clr-input-container>\r\n <clr-input-container class=\"expand\">\r\n <label>{{ 'editor.image-alt' | translate }}</label>\r\n <input clrInput type=\"text\" formControlName=\"alt\" />\r\n </clr-input-container>\r\n </form>\r\n <div class=\"preview\">\r\n <img\r\n [src]=\"form.get('src')?.value\"\r\n [class.visible]=\"previewLoaded\"\r\n (load)=\"onImageLoad($event)\"\r\n (error)=\"onImageError($event)\"\r\n />\r\n <div class=\"placeholder\" *ngIf=\"!previewLoaded\">\r\n <clr-icon shape=\"image\" size=\"128\"></clr-icon>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template vdrDialogButtons>\r\n <button type=\"submit\" (click)=\"select()\" class=\"btn btn-primary\" [disabled]=\"form.invalid || !previewLoaded\">\r\n <ng-container *ngIf=\"existing; else doesNotExist\">{{ 'common.update' | translate }}</ng-container>\r\n <ng-template #doesNotExist>{{ 'editor.insert-image' | translate }}</ng-template>\r\n </button>\r\n</ng-template>\r\n", styles: [".preview{display:flex;align-items:center;justify-content:center;max-width:150px;margin-inline-start:12px}.preview img{max-width:100%;display:none}.preview img.visible{display:block}.preview .placeholder{color:var(--color-grey-300)}\n"], dependencies: [{ kind: "directive", type: i1.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i1.ClrLabel, selector: "label", inputs: ["for"] }, { kind: "directive", type: i1.ClrForm, selector: "[clrForm]", inputs: ["clrLabelSize"] }, { kind: "directive", type: i1.ClrLayout, selector: "[clrForm][clrLayout]", inputs: ["clrLayout"] }, { kind: "directive", type: i1.ClrInput, selector: "[clrInput]" }, { kind: "component", type: i1.ClrInputContainer, selector: "clr-input-container" }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i4.FormFieldControlDirective, selector: "input, textarea, select, vdr-currency-input" }, { kind: "directive", type: i5.DialogButtonsDirective, selector: "[vdrDialogButtons]" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
53
+ selectAssets() {
54
+ this.modalService
55
+ .fromComponent(AssetPickerDialogComponent, {
56
+ size: 'xl',
57
+ locals: {
58
+ multiSelect: false,
59
+ },
60
+ })
61
+ .subscribe(result => {
62
+ if (result && result.length) {
63
+ this.assets = unique(this.assets.concat(result), 'id');
64
+ this.form.patchValue({
65
+ src: result[0].source,
66
+ dataExternal: false,
67
+ });
68
+ this.form.get('src')?.disable();
69
+ this.emitChangeEvent(this.assets);
70
+ this.changeDetector.markForCheck();
71
+ }
72
+ });
73
+ }
74
+ emitChangeEvent(assets) {
75
+ this.change.emit({
76
+ assets,
77
+ });
78
+ }
79
+ onSizeSelect(size) {
80
+ const url = this.form.get('src')?.value.split('?')[0];
81
+ const src = `${url}?preset=${size}`;
82
+ this.form.patchValue({
83
+ src,
84
+ width: this.form.get('width')?.value,
85
+ height: this.form.get('height')?.value,
86
+ });
87
+ }
88
+ removeImage() {
89
+ this.form.get('src')?.setValue('');
90
+ this.form.get('src')?.enable();
91
+ this.form.get('dataExternal')?.setValue(true);
92
+ }
93
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: ExternalImageDialogComponent, deps: [{ token: i1.ModalService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
94
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: ExternalImageDialogComponent, selector: "vdr-external-image-dialog", outputs: { change: "change" }, ngImport: i0, template: "<div class=\"clr-row\">\r\n <div class=\"clr-col-md-5 clr-row clr-justify-content-center\">\r\n <div class=\"preview text-center clr-col-12 mt-10\">\r\n <vdr-dropdown>\r\n <img\r\n [src]=\"form.get('src')?.value\"\r\n [class.visible]=\"previewLoaded\"\r\n vdrDropdownTrigger\r\n (load)=\"onImageLoad($event)\"\r\n (error)=\"onImageError($event)\"\r\n class=\"img-responsive\"\r\n />\r\n\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <button\r\n vdrDropdownItem\r\n [title]=\"'asset.remove-asset' | translate\"\r\n (click)=\"removeImage()\"\r\n >\r\n <clr-icon shape=\"times\"></clr-icon>\r\n {{ 'asset.remove-asset' | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n\r\n <div class=\"placeholder\" *ngIf=\"!previewLoaded\">\r\n <clr-icon shape=\"image\" size=\"128\"></clr-icon>\r\n </div>\r\n </div>\r\n <div class=\"text-center clr-col-12\">\r\n <div *ngIf=\"previewLoaded && !form.get('dataExternal')?.value\">\r\n <select name=\"options\" (change)=\"onSizeSelect($event.target.value)\" [(ngModel)]=\"preset\">\r\n <option value=\"\" selected>{{ 'asset.size' | translate }}</option>\r\n <option *ngFor=\"let size of sizes\" [value]=\"size\">{{ size }}</option>\r\n </select>\r\n </div>\r\n\r\n <button\r\n class=\"btn btn-icon btn-sm btn-block mt-2\"\r\n [title]=\"(!previewLoaded ? 'asset.add-asset' : 'asset.change-asset') | translate\"\r\n (click)=\"selectAssets()\"\r\n >\r\n <clr-icon shape=\"attachment\"></clr-icon>\r\n {{ (!previewLoaded ? 'asset.add-asset' : 'asset.change-asset') | translate }}\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"clr-col\">\r\n <form [formGroup]=\"form\" class=\"flex-spacer\" clrForm clrLayout=\"vertical\">\r\n <clr-input-container class=\"expand\">\r\n <label>{{ 'editor.image-src' | translate }}</label>\r\n <input clrInput type=\"text\" formControlName=\"src\" />\r\n </clr-input-container>\r\n <clr-input-container class=\"expand mt-2\">\r\n <label>{{ 'editor.image-title' | translate }}</label>\r\n <input clrInput type=\"text\" formControlName=\"title\" />\r\n </clr-input-container>\r\n <clr-input-container class=\"expand mt-2\">\r\n <label>{{ 'editor.image-alt' | translate }}</label>\r\n <input clrInput type=\"text\" formControlName=\"alt\" />\r\n </clr-input-container>\r\n <clr-input-container class=\"expand mt-2\">\r\n <label>{{ 'editor.width' | translate }}</label>\r\n <input clrInput type=\"text\" formControlName=\"width\" />\r\n </clr-input-container>\r\n <clr-input-container class=\"expand mt-2\">\r\n <label>{{ 'editor.height' | translate }}</label>\r\n <input clrInput type=\"text\" formControlName=\"height\" />\r\n </clr-input-container>\r\n </form>\r\n </div>\r\n</div>\r\n\r\n<ng-template vdrDialogButtons>\r\n <button\r\n type=\"submit\"\r\n (click)=\"select()\"\r\n class=\"btn btn-primary\"\r\n [disabled]=\"form.invalid || !previewLoaded\"\r\n >\r\n <ng-container *ngIf=\"existing; else doesNotExist\">{{ 'common.update' | translate }}</ng-container>\r\n <ng-template #doesNotExist>{{ 'editor.insert-image' | translate }}</ng-template>\r\n </button>\r\n</ng-template>\r\n", styles: [".preview{display:flex;align-items:center;justify-content:center;max-width:150px;height:150px}.preview img{max-width:100%;display:none}.preview img.visible{display:block}.preview .placeholder{color:var(--color-grey-300)}\n"], dependencies: [{ kind: "directive", type: i2.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i2.ClrLabel, selector: "label", inputs: ["for"] }, { kind: "directive", type: i2.ClrForm, selector: "[clrForm]", inputs: ["clrLabelSize"] }, { kind: "directive", type: i2.ClrLayout, selector: "[clrForm][clrLayout]", inputs: ["clrLayout"] }, { kind: "directive", type: i2.ClrInput, selector: "[clrInput]" }, { kind: "component", type: i2.ClrInputContainer, selector: "clr-input-container" }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.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: i4.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i5.FormFieldControlDirective, selector: "input, textarea, select, vdr-currency-input" }, { kind: "directive", type: i6.DialogButtonsDirective, selector: "[vdrDialogButtons]" }, { kind: "component", type: i7.DropdownComponent, selector: "vdr-dropdown", inputs: ["manualToggle"] }, { kind: "component", type: i8.DropdownMenuComponent, selector: "vdr-dropdown-menu", inputs: ["vdrPosition", "customClasses"] }, { kind: "directive", type: i9.DropdownTriggerDirective, selector: "[vdrDropdownTrigger]" }, { kind: "directive", type: i10.DropdownItemDirective, selector: "[vdrDropdownItem]" }, { kind: "pipe", type: i11.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
32
95
  }
33
96
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: ExternalImageDialogComponent, decorators: [{
34
97
  type: Component,
35
- args: [{ selector: 'vdr-external-image-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"flex\">\r\n <form [formGroup]=\"form\" class=\"flex-spacer\" clrForm clrLayout=\"vertical\">\r\n <clr-input-container class=\"expand\">\r\n <label>{{ 'editor.image-src' | translate }}</label>\r\n <input clrInput type=\"text\" formControlName=\"src\" />\r\n </clr-input-container>\r\n <clr-input-container class=\"expand\">\r\n <label>{{ 'editor.image-title' | translate }}</label>\r\n <input clrInput type=\"text\" formControlName=\"title\" />\r\n </clr-input-container>\r\n <clr-input-container class=\"expand\">\r\n <label>{{ 'editor.image-alt' | translate }}</label>\r\n <input clrInput type=\"text\" formControlName=\"alt\" />\r\n </clr-input-container>\r\n </form>\r\n <div class=\"preview\">\r\n <img\r\n [src]=\"form.get('src')?.value\"\r\n [class.visible]=\"previewLoaded\"\r\n (load)=\"onImageLoad($event)\"\r\n (error)=\"onImageError($event)\"\r\n />\r\n <div class=\"placeholder\" *ngIf=\"!previewLoaded\">\r\n <clr-icon shape=\"image\" size=\"128\"></clr-icon>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template vdrDialogButtons>\r\n <button type=\"submit\" (click)=\"select()\" class=\"btn btn-primary\" [disabled]=\"form.invalid || !previewLoaded\">\r\n <ng-container *ngIf=\"existing; else doesNotExist\">{{ 'common.update' | translate }}</ng-container>\r\n <ng-template #doesNotExist>{{ 'editor.insert-image' | translate }}</ng-template>\r\n </button>\r\n</ng-template>\r\n", styles: [".preview{display:flex;align-items:center;justify-content:center;max-width:150px;margin-inline-start:12px}.preview img{max-width:100%;display:none}.preview img.visible{display:block}.preview .placeholder{color:var(--color-grey-300)}\n"] }]
36
- }] });
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZXJuYWwtaW1hZ2UtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvc2hhcmVkL2NvbXBvbmVudHMvcmljaC10ZXh0LWVkaXRvci9leHRlcm5hbC1pbWFnZS1kaWFsb2cvZXh0ZXJuYWwtaW1hZ2UtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvc2hhcmVkL2NvbXBvbmVudHMvcmljaC10ZXh0LWVkaXRvci9leHRlcm5hbC1pbWFnZS1kaWFsb2cvZXh0ZXJuYWwtaW1hZ2UtZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7OztBQWdCbEYsTUFBTSxPQUFPLDRCQUE0QjtJQU56QztRQVVJLGtCQUFhLEdBQUcsS0FBSyxDQUFDO0tBc0J6QjtJQW5CRyxRQUFRO1FBQ0osSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLGdCQUFnQixDQUFDO1lBQzdCLEdBQUcsRUFBRSxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUN4RixLQUFLLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3ZFLEdBQUcsRUFBRSxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7U0FDdEUsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELE1BQU07UUFDRixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFZO1FBQ3BCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO0lBQzlCLENBQUM7SUFFRCxZQUFZLENBQUMsS0FBWTtRQUNyQixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztJQUMvQixDQUFDOzhHQXpCUSw0QkFBNEI7a0dBQTVCLDRCQUE0QixpRUNqQnpDLDRsREFrQ0E7OzJGRGpCYSw0QkFBNEI7a0JBTnhDLFNBQVM7K0JBQ0ksMkJBQTJCLG1CQUdwQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFVudHlwZWRGb3JtQ29udHJvbCwgVW50eXBlZEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7IERpYWxvZyB9IGZyb20gJy4uLy4uLy4uLy4uL3Byb3ZpZGVycy9tb2RhbC9tb2RhbC50eXBlcyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEV4dGVybmFsSW1hZ2VBdHRycyB7XHJcbiAgICBzcmM6IHN0cmluZztcclxuICAgIHRpdGxlOiBzdHJpbmc7XHJcbiAgICBhbHQ6IHN0cmluZztcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3Zkci1leHRlcm5hbC1pbWFnZS1kaWFsb2cnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2V4dGVybmFsLWltYWdlLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9leHRlcm5hbC1pbWFnZS1kaWFsb2cuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRXh0ZXJuYWxJbWFnZURpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgRGlhbG9nPEV4dGVybmFsSW1hZ2VBdHRycz4ge1xyXG4gICAgZm9ybTogVW50eXBlZEZvcm1Hcm91cDtcclxuXHJcbiAgICByZXNvbHZlV2l0aDogKHJlc3VsdD86IEV4dGVybmFsSW1hZ2VBdHRycykgPT4gdm9pZDtcclxuICAgIHByZXZpZXdMb2FkZWQgPSBmYWxzZTtcclxuICAgIGV4aXN0aW5nPzogRXh0ZXJuYWxJbWFnZUF0dHJzO1xyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZm9ybSA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHtcclxuICAgICAgICAgICAgc3JjOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKHRoaXMuZXhpc3RpbmcgPyB0aGlzLmV4aXN0aW5nLnNyYyA6ICcnLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcclxuICAgICAgICAgICAgdGl0bGU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wodGhpcy5leGlzdGluZyA/IHRoaXMuZXhpc3RpbmcudGl0bGUgOiAnJyksXHJcbiAgICAgICAgICAgIGFsdDogbmV3IFVudHlwZWRGb3JtQ29udHJvbCh0aGlzLmV4aXN0aW5nID8gdGhpcy5leGlzdGluZy5hbHQgOiAnJyksXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2VsZWN0KCkge1xyXG4gICAgICAgIHRoaXMucmVzb2x2ZVdpdGgodGhpcy5mb3JtLnZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkltYWdlTG9hZChldmVudDogRXZlbnQpIHtcclxuICAgICAgICB0aGlzLnByZXZpZXdMb2FkZWQgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIG9uSW1hZ2VFcnJvcihldmVudDogRXZlbnQpIHtcclxuICAgICAgICB0aGlzLnByZXZpZXdMb2FkZWQgPSBmYWxzZTtcclxuICAgIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZmxleFwiPlxyXG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCIgY2xhc3M9XCJmbGV4LXNwYWNlclwiIGNsckZvcm0gY2xyTGF5b3V0PVwidmVydGljYWxcIj5cclxuICAgICAgICA8Y2xyLWlucHV0LWNvbnRhaW5lciBjbGFzcz1cImV4cGFuZFwiPlxyXG4gICAgICAgICAgICA8bGFiZWw+e3sgJ2VkaXRvci5pbWFnZS1zcmMnIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cclxuICAgICAgICAgICAgPGlucHV0IGNscklucHV0IHR5cGU9XCJ0ZXh0XCIgZm9ybUNvbnRyb2xOYW1lPVwic3JjXCIgLz5cclxuICAgICAgICA8L2Nsci1pbnB1dC1jb250YWluZXI+XHJcbiAgICAgICAgPGNsci1pbnB1dC1jb250YWluZXIgY2xhc3M9XCJleHBhbmRcIj5cclxuICAgICAgICAgICAgPGxhYmVsPnt7ICdlZGl0b3IuaW1hZ2UtdGl0bGUnIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cclxuICAgICAgICAgICAgPGlucHV0IGNscklucHV0IHR5cGU9XCJ0ZXh0XCIgZm9ybUNvbnRyb2xOYW1lPVwidGl0bGVcIiAvPlxyXG4gICAgICAgIDwvY2xyLWlucHV0LWNvbnRhaW5lcj5cclxuICAgICAgICA8Y2xyLWlucHV0LWNvbnRhaW5lciBjbGFzcz1cImV4cGFuZFwiPlxyXG4gICAgICAgICAgICA8bGFiZWw+e3sgJ2VkaXRvci5pbWFnZS1hbHQnIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cclxuICAgICAgICAgICAgPGlucHV0IGNscklucHV0IHR5cGU9XCJ0ZXh0XCIgZm9ybUNvbnRyb2xOYW1lPVwiYWx0XCIgLz5cclxuICAgICAgICA8L2Nsci1pbnB1dC1jb250YWluZXI+XHJcbiAgICA8L2Zvcm0+XHJcbiAgICA8ZGl2IGNsYXNzPVwicHJldmlld1wiPlxyXG4gICAgICAgIDxpbWdcclxuICAgICAgICAgICAgW3NyY109XCJmb3JtLmdldCgnc3JjJyk/LnZhbHVlXCJcclxuICAgICAgICAgICAgW2NsYXNzLnZpc2libGVdPVwicHJldmlld0xvYWRlZFwiXHJcbiAgICAgICAgICAgIChsb2FkKT1cIm9uSW1hZ2VMb2FkKCRldmVudClcIlxyXG4gICAgICAgICAgICAoZXJyb3IpPVwib25JbWFnZUVycm9yKCRldmVudClcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInBsYWNlaG9sZGVyXCIgKm5nSWY9XCIhcHJldmlld0xvYWRlZFwiPlxyXG4gICAgICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJpbWFnZVwiIHNpemU9XCIxMjhcIj48L2Nsci1pY29uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlIHZkckRpYWxvZ0J1dHRvbnM+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiAoY2xpY2spPVwic2VsZWN0KClcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiIFtkaXNhYmxlZF09XCJmb3JtLmludmFsaWQgfHwgIXByZXZpZXdMb2FkZWRcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZXhpc3Rpbmc7IGVsc2UgZG9lc05vdEV4aXN0XCI+e3sgJ2NvbW1vbi51cGRhdGUnIHwgdHJhbnNsYXRlIH19PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNkb2VzTm90RXhpc3Q+e3sgJ2VkaXRvci5pbnNlcnQtaW1hZ2UnIHwgdHJhbnNsYXRlIH19PC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvYnV0dG9uPlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
98
+ args: [{ selector: 'vdr-external-image-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"clr-row\">\r\n <div class=\"clr-col-md-5 clr-row clr-justify-content-center\">\r\n <div class=\"preview text-center clr-col-12 mt-10\">\r\n <vdr-dropdown>\r\n <img\r\n [src]=\"form.get('src')?.value\"\r\n [class.visible]=\"previewLoaded\"\r\n vdrDropdownTrigger\r\n (load)=\"onImageLoad($event)\"\r\n (error)=\"onImageError($event)\"\r\n class=\"img-responsive\"\r\n />\r\n\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <button\r\n vdrDropdownItem\r\n [title]=\"'asset.remove-asset' | translate\"\r\n (click)=\"removeImage()\"\r\n >\r\n <clr-icon shape=\"times\"></clr-icon>\r\n {{ 'asset.remove-asset' | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n\r\n <div class=\"placeholder\" *ngIf=\"!previewLoaded\">\r\n <clr-icon shape=\"image\" size=\"128\"></clr-icon>\r\n </div>\r\n </div>\r\n <div class=\"text-center clr-col-12\">\r\n <div *ngIf=\"previewLoaded && !form.get('dataExternal')?.value\">\r\n <select name=\"options\" (change)=\"onSizeSelect($event.target.value)\" [(ngModel)]=\"preset\">\r\n <option value=\"\" selected>{{ 'asset.size' | translate }}</option>\r\n <option *ngFor=\"let size of sizes\" [value]=\"size\">{{ size }}</option>\r\n </select>\r\n </div>\r\n\r\n <button\r\n class=\"btn btn-icon btn-sm btn-block mt-2\"\r\n [title]=\"(!previewLoaded ? 'asset.add-asset' : 'asset.change-asset') | translate\"\r\n (click)=\"selectAssets()\"\r\n >\r\n <clr-icon shape=\"attachment\"></clr-icon>\r\n {{ (!previewLoaded ? 'asset.add-asset' : 'asset.change-asset') | translate }}\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"clr-col\">\r\n <form [formGroup]=\"form\" class=\"flex-spacer\" clrForm clrLayout=\"vertical\">\r\n <clr-input-container class=\"expand\">\r\n <label>{{ 'editor.image-src' | translate }}</label>\r\n <input clrInput type=\"text\" formControlName=\"src\" />\r\n </clr-input-container>\r\n <clr-input-container class=\"expand mt-2\">\r\n <label>{{ 'editor.image-title' | translate }}</label>\r\n <input clrInput type=\"text\" formControlName=\"title\" />\r\n </clr-input-container>\r\n <clr-input-container class=\"expand mt-2\">\r\n <label>{{ 'editor.image-alt' | translate }}</label>\r\n <input clrInput type=\"text\" formControlName=\"alt\" />\r\n </clr-input-container>\r\n <clr-input-container class=\"expand mt-2\">\r\n <label>{{ 'editor.width' | translate }}</label>\r\n <input clrInput type=\"text\" formControlName=\"width\" />\r\n </clr-input-container>\r\n <clr-input-container class=\"expand mt-2\">\r\n <label>{{ 'editor.height' | translate }}</label>\r\n <input clrInput type=\"text\" formControlName=\"height\" />\r\n </clr-input-container>\r\n </form>\r\n </div>\r\n</div>\r\n\r\n<ng-template vdrDialogButtons>\r\n <button\r\n type=\"submit\"\r\n (click)=\"select()\"\r\n class=\"btn btn-primary\"\r\n [disabled]=\"form.invalid || !previewLoaded\"\r\n >\r\n <ng-container *ngIf=\"existing; else doesNotExist\">{{ 'common.update' | translate }}</ng-container>\r\n <ng-template #doesNotExist>{{ 'editor.insert-image' | translate }}</ng-template>\r\n </button>\r\n</ng-template>\r\n", styles: [".preview{display:flex;align-items:center;justify-content:center;max-width:150px;height:150px}.preview img{max-width:100%;display:none}.preview img.visible{display:block}.preview .placeholder{color:var(--color-grey-300)}\n"] }]
99
+ }], ctorParameters: () => [{ type: i1.ModalService }, { type: i0.ChangeDetectorRef }], propDecorators: { change: [{
100
+ type: Output
101
+ }] } });
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZXJuYWwtaW1hZ2UtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvc2hhcmVkL2NvbXBvbmVudHMvcmljaC10ZXh0LWVkaXRvci9leHRlcm5hbC1pbWFnZS1kaWFsb2cvZXh0ZXJuYWwtaW1hZ2UtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvc2hhcmVkL2NvbXBvbmVudHMvcmljaC10ZXh0LWVkaXRvci9leHRlcm5hbC1pbWFnZS1kaWFsb2cvZXh0ZXJuYWwtaW1hZ2UtZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFlBQVksRUFFWixNQUFNLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUlwRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUNyRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seURBQXlELENBQUM7Ozs7Ozs7Ozs7Ozs7QUFxQnRGLE1BQU0sT0FBTyw0QkFBNEI7SUFZckMsWUFDWSxZQUEwQixFQUMxQixjQUFpQztRQURqQyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFadEMsV0FBTSxHQUFZLEVBQUUsQ0FBQztRQUM1Qiw0REFBNEQ7UUFDbEQsV0FBTSxHQUFHLElBQUksWUFBWSxFQUF1QixDQUFDO1FBRzNELGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBRXRCLFVBQUssR0FBRyxXQUFXLENBQUM7UUFDcEIsV0FBTSxHQUFHLEVBQUUsQ0FBQztJQUtULENBQUM7SUFFSixRQUFRO1FBQ0osTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFL0QsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNiLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3ZELENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksZ0JBQWdCLENBQUM7WUFDN0IsR0FBRyxFQUFFLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ3hGLEtBQUssRUFBRSxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDdkUsR0FBRyxFQUFFLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNuRSxLQUFLLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3ZFLE1BQU0sRUFBRSxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDekUsWUFBWSxFQUFFLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztTQUMxRixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsTUFBTTtRQUNGLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQVk7UUFDcEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7SUFDOUIsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFZO1FBQ3JCLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQy9CLENBQUM7SUFFRCxZQUFZO1FBQ1IsSUFBSSxDQUFDLFlBQVk7YUFDWixhQUFhLENBQUMsMEJBQTBCLEVBQUU7WUFDdkMsSUFBSSxFQUFFLElBQUk7WUFDVixNQUFNLEVBQUU7Z0JBQ0osV0FBVyxFQUFFLEtBQUs7YUFDckI7U0FDSixDQUFDO2FBQ0QsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2hCLElBQUksTUFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDMUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBRXZELElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO29CQUNqQixHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU07b0JBQ3JCLFlBQVksRUFBRSxLQUFLO2lCQUN0QixDQUFDLENBQUM7Z0JBRUgsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUM7Z0JBRWhDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUNsQyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3ZDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFTyxlQUFlLENBQUMsTUFBZTtRQUNuQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztZQUNiLE1BQU07U0FDVCxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsWUFBWSxDQUFDLElBQVk7UUFDckIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0RCxNQUFNLEdBQUcsR0FBRyxHQUFHLEdBQUcsV0FBVyxJQUFJLEVBQUUsQ0FBQztRQUVwQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUNqQixHQUFHO1lBQ0gsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUs7WUFDcEMsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUs7U0FDekMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xELENBQUM7OEdBN0ZRLDRCQUE0QjtrR0FBNUIsNEJBQTRCLGdHQ25DekMsaStIQXFGQTs7MkZEbERhLDRCQUE0QjtrQkFOeEMsU0FBUzsrQkFDSSwyQkFBMkIsbUJBR3BCLHVCQUF1QixDQUFDLE1BQU07aUhBTXJDLE1BQU07c0JBQWYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICAgIENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgRXZlbnRFbWl0dGVyLFxyXG4gICAgT25Jbml0LFxyXG4gICAgT3V0cHV0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBVbnR5cGVkRm9ybUNvbnRyb2wsIFVudHlwZWRGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IHVuaXF1ZSB9IGZyb20gJ0B2ZW5kdXJlL2NvbW1vbi9saWIvdW5pcXVlJztcclxuaW1wb3J0IHsgQXNzZXQgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vZ2VuZXJhdGVkLXR5cGVzJztcclxuaW1wb3J0IHsgTW9kYWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vcHJvdmlkZXJzL21vZGFsL21vZGFsLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEaWFsb2cgfSBmcm9tICcuLi8uLi8uLi8uLi9wcm92aWRlcnMvbW9kYWwvbW9kYWwudHlwZXMnO1xyXG5pbXBvcnQgeyBBc3NldFBpY2tlckRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Fzc2V0LXBpY2tlci1kaWFsb2cvYXNzZXQtcGlja2VyLWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBU1NFVF9TSVpFUyB9IGZyb20gJy4uLy4uL2Fzc2V0LXByZXZpZXctbGlua3MvYXNzZXQtcHJldmlldy1saW5rcy5jb21wb25lbnQnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBFeHRlcm5hbEltYWdlQXR0cnMge1xyXG4gICAgc3JjOiBzdHJpbmc7XHJcbiAgICB0aXRsZTogc3RyaW5nO1xyXG4gICAgYWx0OiBzdHJpbmc7XHJcbiAgICB3aWR0aDogc3RyaW5nO1xyXG4gICAgaGVpZ2h0OiBzdHJpbmc7XHJcbiAgICBkYXRhRXh0ZXJuYWw6IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRXh0ZXJuYWxBc3NldENoYW5nZSB7XHJcbiAgICBhc3NldHM6IEFzc2V0W107XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICd2ZHItZXh0ZXJuYWwtaW1hZ2UtZGlhbG9nJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9leHRlcm5hbC1pbWFnZS1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vZXh0ZXJuYWwtaW1hZ2UtZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIEV4dGVybmFsSW1hZ2VEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIERpYWxvZzxFeHRlcm5hbEltYWdlQXR0cnM+IHtcclxuICAgIGZvcm06IFVudHlwZWRGb3JtR3JvdXA7XHJcbiAgICBwdWJsaWMgYXNzZXRzOiBBc3NldFtdID0gW107XHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1uYXRpdmVcclxuICAgIEBPdXRwdXQoKSBjaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEV4dGVybmFsQXNzZXRDaGFuZ2U+KCk7XHJcblxyXG4gICAgcmVzb2x2ZVdpdGg6IChyZXN1bHQ/OiBFeHRlcm5hbEltYWdlQXR0cnMpID0+IHZvaWQ7XHJcbiAgICBwcmV2aWV3TG9hZGVkID0gZmFsc2U7XHJcbiAgICBleGlzdGluZz86IEV4dGVybmFsSW1hZ2VBdHRycztcclxuICAgIHNpemVzID0gQVNTRVRfU0laRVM7XHJcbiAgICBwcmVzZXQgPSAnJztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIG1vZGFsU2VydmljZTogTW9kYWxTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgKSB7fVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGluaXRpYWxTcmMgPSB0aGlzLmV4aXN0aW5nPy5zcmMgPyB0aGlzLmV4aXN0aW5nLnNyYyA6ICcnO1xyXG5cclxuICAgICAgICBpZiAoaW5pdGlhbFNyYykge1xyXG4gICAgICAgICAgICBjb25zdCB1cmwgPSBuZXcgVVJMKGluaXRpYWxTcmMpO1xyXG4gICAgICAgICAgICB0aGlzLnByZXNldCA9IHVybC5zZWFyY2hQYXJhbXMuZ2V0KCdwcmVzZXQnKSB8fCAnJztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuZm9ybSA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHtcclxuICAgICAgICAgICAgc3JjOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKHRoaXMuZXhpc3RpbmcgPyB0aGlzLmV4aXN0aW5nLnNyYyA6ICcnLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcclxuICAgICAgICAgICAgdGl0bGU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wodGhpcy5leGlzdGluZyA/IHRoaXMuZXhpc3RpbmcudGl0bGUgOiAnJyksXHJcbiAgICAgICAgICAgIGFsdDogbmV3IFVudHlwZWRGb3JtQ29udHJvbCh0aGlzLmV4aXN0aW5nID8gdGhpcy5leGlzdGluZy5hbHQgOiAnJyksXHJcbiAgICAgICAgICAgIHdpZHRoOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKHRoaXMuZXhpc3RpbmcgPyB0aGlzLmV4aXN0aW5nLndpZHRoIDogJycpLFxyXG4gICAgICAgICAgICBoZWlnaHQ6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wodGhpcy5leGlzdGluZyA/IHRoaXMuZXhpc3RpbmcuaGVpZ2h0IDogJycpLFxyXG4gICAgICAgICAgICBkYXRhRXh0ZXJuYWw6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wodGhpcy5leGlzdGluZyA/IHRoaXMuZXhpc3RpbmcuZGF0YUV4dGVybmFsIDogdHJ1ZSksXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2VsZWN0KCkge1xyXG4gICAgICAgIHRoaXMucmVzb2x2ZVdpdGgodGhpcy5mb3JtLnZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkltYWdlTG9hZChldmVudDogRXZlbnQpIHtcclxuICAgICAgICB0aGlzLnByZXZpZXdMb2FkZWQgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIG9uSW1hZ2VFcnJvcihldmVudDogRXZlbnQpIHtcclxuICAgICAgICB0aGlzLnByZXZpZXdMb2FkZWQgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBzZWxlY3RBc3NldHMoKSB7XHJcbiAgICAgICAgdGhpcy5tb2RhbFNlcnZpY2VcclxuICAgICAgICAgICAgLmZyb21Db21wb25lbnQoQXNzZXRQaWNrZXJEaWFsb2dDb21wb25lbnQsIHtcclxuICAgICAgICAgICAgICAgIHNpemU6ICd4bCcsXHJcbiAgICAgICAgICAgICAgICBsb2NhbHM6IHtcclxuICAgICAgICAgICAgICAgICAgICBtdWx0aVNlbGVjdDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0ICYmIHJlc3VsdC5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFzc2V0cyA9IHVuaXF1ZSh0aGlzLmFzc2V0cy5jb25jYXQocmVzdWx0KSwgJ2lkJyk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3JjOiByZXN1bHRbMF0uc291cmNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhRXh0ZXJuYWw6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0uZ2V0KCdzcmMnKT8uZGlzYWJsZSgpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVtaXRDaGFuZ2VFdmVudCh0aGlzLmFzc2V0cyk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBlbWl0Q2hhbmdlRXZlbnQoYXNzZXRzOiBBc3NldFtdKSB7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2UuZW1pdCh7XHJcbiAgICAgICAgICAgIGFzc2V0cyxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBvblNpemVTZWxlY3Qoc2l6ZTogc3RyaW5nKSB7XHJcbiAgICAgICAgY29uc3QgdXJsID0gdGhpcy5mb3JtLmdldCgnc3JjJyk/LnZhbHVlLnNwbGl0KCc/JylbMF07XHJcbiAgICAgICAgY29uc3Qgc3JjID0gYCR7dXJsfT9wcmVzZXQ9JHtzaXplfWA7XHJcblxyXG4gICAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHtcclxuICAgICAgICAgICAgc3JjLFxyXG4gICAgICAgICAgICB3aWR0aDogdGhpcy5mb3JtLmdldCgnd2lkdGgnKT8udmFsdWUsXHJcbiAgICAgICAgICAgIGhlaWdodDogdGhpcy5mb3JtLmdldCgnaGVpZ2h0Jyk/LnZhbHVlLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZUltYWdlKCkge1xyXG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ3NyYycpPy5zZXRWYWx1ZSgnJyk7XHJcbiAgICAgICAgdGhpcy5mb3JtLmdldCgnc3JjJyk/LmVuYWJsZSgpO1xyXG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ2RhdGFFeHRlcm5hbCcpPy5zZXRWYWx1ZSh0cnVlKTtcclxuICAgIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY2xyLXJvd1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNsci1jb2wtbWQtNSBjbHItcm93IGNsci1qdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInByZXZpZXcgdGV4dC1jZW50ZXIgY2xyLWNvbC0xMiBtdC0xMFwiPlxyXG4gICAgICAgICAgICA8dmRyLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiZm9ybS5nZXQoJ3NyYycpPy52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLnZpc2libGVdPVwicHJldmlld0xvYWRlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmRyRHJvcGRvd25UcmlnZ2VyXHJcbiAgICAgICAgICAgICAgICAgICAgKGxvYWQpPVwib25JbWFnZUxvYWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGVycm9yKT1cIm9uSW1hZ2VFcnJvcigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImltZy1yZXNwb25zaXZlXCJcclxuICAgICAgICAgICAgICAgIC8+XHJcblxyXG4gICAgICAgICAgICAgICAgPHZkci1kcm9wZG93bi1tZW51IHZkclBvc2l0aW9uPVwiYm90dG9tLXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2ZHJEcm9wZG93bkl0ZW1cclxuICAgICAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidhc3NldC5yZW1vdmUtYXNzZXQnIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZUltYWdlKClcIlxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGNsci1pY29uIHNoYXBlPVwidGltZXNcIj48L2Nsci1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyAnYXNzZXQucmVtb3ZlLWFzc2V0JyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC92ZHItZHJvcGRvd24tbWVudT5cclxuICAgICAgICAgICAgPC92ZHItZHJvcGRvd24+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGxhY2Vob2xkZXJcIiAqbmdJZj1cIiFwcmV2aWV3TG9hZGVkXCI+XHJcbiAgICAgICAgICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJpbWFnZVwiIHNpemU9XCIxMjhcIj48L2Nsci1pY29uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgY2xyLWNvbC0xMlwiPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicHJldmlld0xvYWRlZCAmJiAhZm9ybS5nZXQoJ2RhdGFFeHRlcm5hbCcpPy52YWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgPHNlbGVjdCBuYW1lPVwib3B0aW9uc1wiIChjaGFuZ2UpPVwib25TaXplU2VsZWN0KCRldmVudC50YXJnZXQudmFsdWUpXCIgWyhuZ01vZGVsKV09XCJwcmVzZXRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiXCIgc2VsZWN0ZWQ+e3sgJ2Fzc2V0LnNpemUnIHwgdHJhbnNsYXRlIH19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgc2l6ZSBvZiBzaXplc1wiIFt2YWx1ZV09XCJzaXplXCI+e3sgc2l6ZSB9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWljb24gYnRuLXNtIGJ0bi1ibG9jayBtdC0yXCJcclxuICAgICAgICAgICAgICAgIFt0aXRsZV09XCIoIXByZXZpZXdMb2FkZWQgPyAnYXNzZXQuYWRkLWFzc2V0JyA6ICdhc3NldC5jaGFuZ2UtYXNzZXQnKSB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0QXNzZXRzKClcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJhdHRhY2htZW50XCI+PC9jbHItaWNvbj5cclxuICAgICAgICAgICAgICAgIHt7ICghcHJldmlld0xvYWRlZCA/ICdhc3NldC5hZGQtYXNzZXQnIDogJ2Fzc2V0LmNoYW5nZS1hc3NldCcpIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImNsci1jb2xcIj5cclxuICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIiBjbGFzcz1cImZsZXgtc3BhY2VyXCIgY2xyRm9ybSBjbHJMYXlvdXQ9XCJ2ZXJ0aWNhbFwiPlxyXG4gICAgICAgICAgICA8Y2xyLWlucHV0LWNvbnRhaW5lciBjbGFzcz1cImV4cGFuZFwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsPnt7ICdlZGl0b3IuaW1hZ2Utc3JjJyB8IHRyYW5zbGF0ZSB9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgY2xySW5wdXQgdHlwZT1cInRleHRcIiBmb3JtQ29udHJvbE5hbWU9XCJzcmNcIiAvPlxyXG4gICAgICAgICAgICA8L2Nsci1pbnB1dC1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDxjbHItaW5wdXQtY29udGFpbmVyIGNsYXNzPVwiZXhwYW5kIG10LTJcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbD57eyAnZWRpdG9yLmltYWdlLXRpdGxlJyB8IHRyYW5zbGF0ZSB9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgY2xySW5wdXQgdHlwZT1cInRleHRcIiBmb3JtQ29udHJvbE5hbWU9XCJ0aXRsZVwiIC8+XHJcbiAgICAgICAgICAgIDwvY2xyLWlucHV0LWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPGNsci1pbnB1dC1jb250YWluZXIgY2xhc3M9XCJleHBhbmQgbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsPnt7ICdlZGl0b3IuaW1hZ2UtYWx0JyB8IHRyYW5zbGF0ZSB9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgY2xySW5wdXQgdHlwZT1cInRleHRcIiBmb3JtQ29udHJvbE5hbWU9XCJhbHRcIiAvPlxyXG4gICAgICAgICAgICA8L2Nsci1pbnB1dC1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDxjbHItaW5wdXQtY29udGFpbmVyIGNsYXNzPVwiZXhwYW5kIG10LTJcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbD57eyAnZWRpdG9yLndpZHRoJyB8IHRyYW5zbGF0ZSB9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgY2xySW5wdXQgdHlwZT1cInRleHRcIiBmb3JtQ29udHJvbE5hbWU9XCJ3aWR0aFwiIC8+XHJcbiAgICAgICAgICAgIDwvY2xyLWlucHV0LWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPGNsci1pbnB1dC1jb250YWluZXIgY2xhc3M9XCJleHBhbmQgbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsPnt7ICdlZGl0b3IuaGVpZ2h0JyB8IHRyYW5zbGF0ZSB9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgY2xySW5wdXQgdHlwZT1cInRleHRcIiBmb3JtQ29udHJvbE5hbWU9XCJoZWlnaHRcIiAvPlxyXG4gICAgICAgICAgICA8L2Nsci1pbnB1dC1jb250YWluZXI+XHJcbiAgICAgICAgPC9mb3JtPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlIHZkckRpYWxvZ0J1dHRvbnM+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgICAgdHlwZT1cInN1Ym1pdFwiXHJcbiAgICAgICAgKGNsaWNrKT1cInNlbGVjdCgpXCJcclxuICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImZvcm0uaW52YWxpZCB8fCAhcHJldmlld0xvYWRlZFwiXHJcbiAgICA+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImV4aXN0aW5nOyBlbHNlIGRvZXNOb3RFeGlzdFwiPnt7ICdjb21tb24udXBkYXRlJyB8IHRyYW5zbGF0ZSB9fTwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZG9lc05vdEV4aXN0Pnt7ICdlZGl0b3IuaW5zZXJ0LWltYWdlJyB8IHRyYW5zbGF0ZSB9fTwvbmctdGVtcGxhdGU+XHJcbiAgICA8L2J1dHRvbj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
@@ -2,6 +2,38 @@ import { MenuItem } from 'prosemirror-menu';
2
2
  import { NodeSelection, Plugin } from 'prosemirror-state';
3
3
  import { ExternalImageDialogComponent, } from '../../external-image-dialog/external-image-dialog.component';
4
4
  import { canInsert, renderClarityIcon } from '../menu/menu-common';
5
+ export const imageNode = {
6
+ inline: true,
7
+ attrs: {
8
+ src: {},
9
+ alt: { default: null },
10
+ title: { default: null },
11
+ width: { default: null },
12
+ height: { default: null },
13
+ dataExternal: { default: true },
14
+ },
15
+ group: 'inline',
16
+ draggable: true,
17
+ parseDOM: [
18
+ {
19
+ tag: 'img[src]',
20
+ getAttrs(dom) {
21
+ return {
22
+ src: dom.getAttribute('src'),
23
+ title: dom.getAttribute('title'),
24
+ alt: dom.getAttribute('alt'),
25
+ width: dom.getAttribute('width'),
26
+ height: dom.getAttribute('height'),
27
+ dataExternal: dom.hasAttribute('data-external'),
28
+ };
29
+ },
30
+ },
31
+ ],
32
+ toDOM(node) {
33
+ const { src, alt, title, width, height, dataExternal } = node.attrs;
34
+ return ['img', { src, alt, title, width, height, 'data-external': dataExternal }];
35
+ },
36
+ };
5
37
  export function insertImageItem(nodeType, modalService) {
6
38
  return new MenuItem({
7
39
  title: 'Insert image',
@@ -95,4 +127,4 @@ export const imageContextMenuPlugin = (contextMenuService, modalService) => new
95
127
  },
96
128
  }),
97
129
  });
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtcGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9zaGFyZWQvY29tcG9uZW50cy9yaWNoLXRleHQtZWRpdG9yL3Byb3NlbWlycm9yL3BsdWdpbnMvaW1hZ2UtcGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUU1QyxPQUFPLEVBQWUsYUFBYSxFQUFFLE1BQU0sRUFBZSxNQUFNLG1CQUFtQixDQUFDO0FBaUJwRixPQUFPLEVBRUgsNEJBQTRCLEdBQy9CLE1BQU0sNkRBQTZELENBQUM7QUFHckUsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRW5FLE1BQU0sVUFBVSxlQUFlLENBQUMsUUFBa0IsRUFBRSxZQUEwQjtJQUMxRSxPQUFPLElBQUksUUFBUSxDQUFDO1FBQ2hCLEtBQUssRUFBRSxjQUFjO1FBQ3JCLEtBQUssRUFBRSxPQUFPO1FBQ2QsTUFBTSxFQUFFLGlCQUFpQixDQUFDLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDN0QsS0FBSyxFQUFFLEVBQUU7UUFDVCxHQUFHLEVBQUUsRUFBRTtRQUNQLE1BQU0sQ0FBQyxLQUFrQjtZQUNyQixPQUFPLFNBQVMsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDdEMsQ0FBQztRQUNELEdBQUcsQ0FBQyxLQUFrQixFQUFFLENBQUMsRUFBRSxJQUFnQjtZQUN2QyxJQUFJLEtBQXFDLENBQUM7WUFDMUMsSUFBSSxLQUFLLENBQUMsU0FBUyxZQUFZLGFBQWEsSUFBSSxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQ3JGLEtBQUssR0FBRyxLQUFLLENBQUMsU0FBUyxD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Q0FBRSxDQUN6QyxDQUNKLENBQUM7d0NBQ04sQ0FBQzt3Q0FDRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7b0NBQ2pCLENBQUMsQ0FBQyxDQUFDO2dDQUNYLENBQUM7NkJBQ0o7eUJBQ0o7cUJBQ0osQ0FBQyxDQUFDO2dCQUNQLENBQUM7WUFDTCxDQUFDO2lCQUFNLENBQUM7Z0JBQ0osa0JBQWtCLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUMxQyxDQUFDO1FBQ0wsQ0FBQztLQUNKLENBQUM7Q0FDTCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNZW51SXRlbSB9IGZyb20gJ3Byb3NlbWlycm9yLW1lbnUnO1xyXG5pbXBvcnQgeyBOb2RlLCBOb2RlVHlwZSB9IGZyb20gJ3Byb3NlbWlycm9yLW1vZGVsJztcclxuaW1wb3J0IHsgRWRpdG9yU3RhdGUsIE5vZGVTZWxlY3Rpb24sIFBsdWdpbiwgVHJhbnNhY3Rpb24gfSBmcm9tICdwcm9zZW1pcnJvci1zdGF0ZSc7XHJcbmltcG9ydCB7XHJcbiAgICBhZGRDb2x1bW5BZnRlcixcclxuICAgIGFkZENvbHVtbkJlZm9yZSxcclxuICAgIGFkZFJvd0FmdGVyLFxyXG4gICAgYWRkUm93QmVmb3JlLFxyXG4gICAgZGVsZXRlQ29sdW1uLFxyXG4gICAgZGVsZXRlUm93LFxyXG4gICAgZGVsZXRlVGFibGUsXHJcbiAgICBtZXJnZUNlbGxzLFxyXG4gICAgc3BsaXRDZWxsLFxyXG4gICAgdG9nZ2xlSGVhZGVyQ29sdW1uLFxyXG4gICAgdG9nZ2xlSGVhZGVyUm93LFxyXG59IGZyb20gJ3Byb3NlbWlycm9yLXRhYmxlcyc7XHJcbmltcG9ydCB7IEVkaXRvclZpZXcgfSBmcm9tICdwcm9zZW1pcnJvci12aWV3JztcclxuXHJcbmltcG9ydCB7IE1vZGFsU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3Byb3ZpZGVycy9tb2RhbC9tb2RhbC5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICAgIEV4dGVybmFsSW1hZ2VBdHRycyxcclxuICAgIEV4dGVybmFsSW1hZ2VEaWFsb2dDb21wb25lbnQsXHJcbn0gZnJvbSAnLi4vLi4vZXh0ZXJuYWwtaW1hZ2UtZGlhbG9nL2V4dGVybmFsLWltYWdlLWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBSYXdIdG1sRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vcmF3LWh0bWwtZGlhbG9nL3Jhdy1odG1sLWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb250ZXh0TWVudUl0ZW0sIENvbnRleHRNZW51U2VydmljZSB9IGZyb20gJy4uL2NvbnRleHQtbWVudS9jb250ZXh0LW1lbnUuc2VydmljZSc7XHJcbmltcG9ydCB7IGNhbkluc2VydCwgcmVuZGVyQ2xhcml0eUljb24gfSBmcm9tICcuLi9tZW51L21lbnUtY29tbW9uJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBpbnNlcnRJbWFnZUl0ZW0obm9kZVR5cGU6IE5vZGVUeXBlLCBtb2RhbFNlcnZpY2U6IE1vZGFsU2VydmljZSkge1xyXG4gICAgcmV0dXJuIG5ldyBNZW51SXRlbSh7XHJcbiAgICAgICAgdGl0bGU6ICdJbnNlcnQgaW1hZ2UnLFxyXG4gICAgICAgIGxhYmVsOiAnSW1hZ2UnLFxyXG4gICAgICAgIHJlbmRlcjogcmVuZGVyQ2xhcml0eUljb24oeyBzaGFwZTogJ2ltYWdlJywgbGFiZWw6ICdJbWFnZScgfSksXHJcbiAgICAgICAgY2xhc3M6ICcnLFxyXG4gICAgICAgIGNzczogJycsXHJcbiAgICAgICAgZW5hYmxlKHN0YXRlOiBFZGl0b3JTdGF0ZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gY2FuSW5zZXJ0KHN0YXRlLCBub2RlVHlwZSk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBydW4oc3RhdGU6IEVkaXRvclN0YXRlLCBfLCB2aWV3OiBFZGl0b3JWaWV3KSB7XHJcbiAgICAgICAgICAgIGxldCBhdHRyczogRXh0ZXJuYWxJbWFnZUF0dHJzIHwgdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICBpZiAoc3RhdGUuc2VsZWN0aW9uIGluc3RhbmNlb2YgTm9kZVNlbGVjdGlvbiAmJiBzdGF0ZS5zZWxlY3Rpb24ubm9kZS50eXBlID09PSBub2RlVHlwZSkge1xyXG4gICAgICAgICAgICAgICAgYXR0cnMgPSBzdGF0ZS5zZWxlY3Rpb24ubm9kZS5hdHRycyBhcyBFeHRlcm5hbEltYWdlQXR0cnM7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbW9kYWxTZXJ2aWNlXHJcbiAgICAgICAgICAgICAgICAuZnJvbUNvbXBvbmVudChFeHRlcm5hbEltYWdlRGlhbG9nQ29tcG9uZW50LCB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2xvc2FibGU6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgbG9jYWxzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4aXN0aW5nOiBhdHRycyxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzdWx0ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpZXcuZGlzcGF0Y2godmlldy5zdGF0ZS50ci5yZXBsYWNlU2VsZWN0aW9uV2l0aChub2RlVHlwZS5jcmVhdGVBbmRGaWxsKHJlc3VsdCkhKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHZpZXcuZm9jdXMoKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0sXHJcbiAgICB9KTtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IGltYWdlQ29udGV4dE1lbnVQbHVnaW4gPSAoY29udGV4dE1lbnVTZXJ2aWNlOiBDb250ZXh0TWVudVNlcnZpY2UsIG1vZGFsU2VydmljZTogTW9kYWxTZXJ2aWNlKSA9PlxyXG4gICAgbmV3IFBsdWdpbih7XHJcbiAgICAgICAgdmlldzogKCkgPT4gKHtcclxuICAgICAgICAgICAgdXBkYXRlOiB2aWV3ID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICghdmlldy5oYXNGb2N1cygpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY29uc3QgeyBkb2MsIHNlbGVjdGlvbiB9ID0gdmlldy5zdGF0ZTtcclxuICAgICAgICAgICAgICAgIGxldCBpbWFnZU5vZGU6IE5vZGUgfCB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgICAgICBsZXQgaW1hZ2VOb2RlUG9zID0gMDtcclxuICAgICAgICAgICAgICAgIGRvYy5ub2Rlc0JldHdlZW4oc2VsZWN0aW9uLmZyb20sIHNlbGVjdGlvbi50bywgKG4sIHBvcywgcGFyZW50KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKG4udHlwZS5uYW1lID09PSAnaW1hZ2UnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlTm9kZSA9IG47XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlTm9kZVBvcyA9IHBvcztcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgaWYgKGltYWdlTm9kZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5vZGUgPSB2aWV3Lm5vZGVET00oaW1hZ2VOb2RlUG9zKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAobm9kZSBpbnN0YW5jZW9mIEhUTUxJbWFnZUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dE1lbnVTZXJ2aWNlLnNldENvbnRleHRNZW51KHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZjogc2VsZWN0aW9uLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICdJbWFnZScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uU2hhcGU6ICdpbWFnZScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50OiBub2RlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29vcmRzOiB2aWV3LmNvb3Jkc0F0UG9zKGltYWdlTm9kZVBvcyksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtczogW1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5hYmxlZDogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvblNoYXBlOiAnaW1hZ2UnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ0ltYWdlIHByb3BlcnRpZXMnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0TWVudVNlcnZpY2UuY2xlYXJDb250ZXh0TWVudSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kYWxTZXJ2aWNlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmZyb21Db21wb25lbnQoRXh0ZXJuYWxJbWFnZURpYWxvZ0NvbXBvbmVudCwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zYWJsZTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhpc3Rpbmc6IGltYWdlTm9kZSEuYXR0cnMgYXMgRXh0ZXJuYWxJbWFnZUF0dHJzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZShyZXN1bHQgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlldy5kaXNwYXRjaChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3LnN0YXRlLnRyLnJlcGxhY2VTZWxlY3Rpb25XaXRoKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbWFnZU5vZGUhLnR5cGUuY3JlYXRlQW5kRmlsbChyZXN1bHQpISxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3LmZvY3VzKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dE1lbnVTZXJ2aWNlLmNsZWFyQ29udGV4dE1lbnUoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICB9KSxcclxuICAgIH0pO1xyXG4iXX0=
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtcGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9zaGFyZWQvY29tcG9uZW50cy9yaWNoLXRleHQtZWRpdG9yL3Byb3NlbWlycm9yL3BsdWdpbnMvaW1hZ2UtcGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUU1QyxPQUFPLEVBQWUsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBSXZFLE9BQU8sRUFFSCw0QkFBNEIsR0FDL0IsTUFBTSw2REFBNkQsQ0FBQztBQUVyRSxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFbkUsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFhO0lBQy9CLE1BQU0sRUFBRSxJQUFJO0lBQ1osS0FBSyxFQUFFO1FBQ0gsR0FBRyxFQUFFLEVBQUU7UUFDUCxHQUFHLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFO1FBQ3RCLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUU7UUFDeEIsS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRTtRQUN4QixNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFO1FBQ3pCLFlBQVksRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUU7S0FDbEM7SUFDRCxLQUFLLEVBQUUsUUFBUTtJQUNmLFNBQVMsRUFBRSxJQUFJO0lBQ2YsUUFBUSxFQUFFO1FBQ047WUFDSSxHQUFHLEVBQUUsVUFBVTtZQUNmLFFBQVEsQ0FBQyxHQUFHO2dCQUNSLE9BQU87b0JBQ0gsR0FBRyxFQUFHLEdBQXdCLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQztvQkFDbEQsS0FBSyxFQUFHLEdBQXdCLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FB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QUFDLEVBQUUsQ0FBQyxvQkFBb0I7NENBQzlCLG9FQUFvRTs0Q0FDcEUsU0FBVSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFFLENBQ3pDLENBQ0osQ0FBQzt3Q0FDTixDQUFDO3dDQUNELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQ0FDakIsQ0FBQyxDQUFDLENBQUM7Z0NBQ1gsQ0FBQzs2QkFDSjt5QkFDSjtxQkFDSixDQUFDLENBQUM7Z0JBQ1AsQ0FBQztZQUNMLENBQUM7aUJBQU0sQ0FBQztnQkFDSixrQkFBa0IsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzFDLENBQUM7UUFDTCxDQUFDO0tBQ0osQ0FBQztDQUNMLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1lbnVJdGVtIH0gZnJvbSAncHJvc2VtaXJyb3ItbWVudSc7XHJcbmltcG9ydCB7IE5vZGUsIE5vZGVTcGVjLCBOb2RlVHlwZSB9IGZyb20gJ3Byb3NlbWlycm9yLW1vZGVsJztcclxuaW1wb3J0IHsgRWRpdG9yU3RhdGUsIE5vZGVTZWxlY3Rpb24sIFBsdWdpbiB9IGZyb20gJ3Byb3NlbWlycm9yLXN0YXRlJztcclxuaW1wb3J0IHsgRWRpdG9yVmlldyB9IGZyb20gJ3Byb3NlbWlycm9yLXZpZXcnO1xyXG5cclxuaW1wb3J0IHsgTW9kYWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vcHJvdmlkZXJzL21vZGFsL21vZGFsLnNlcnZpY2UnO1xyXG5pbXBvcnQge1xyXG4gICAgRXh0ZXJuYWxJbWFnZUF0dHJzLFxyXG4gICAgRXh0ZXJuYWxJbWFnZURpYWxvZ0NvbXBvbmVudCxcclxufSBmcm9tICcuLi8uLi9leHRlcm5hbC1pbWFnZS1kaWFsb2cvZXh0ZXJuYWwtaW1hZ2UtZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbnRleHRNZW51U2VydmljZSB9IGZyb20gJy4uL2NvbnRleHQtbWVudS9jb250ZXh0LW1lbnUuc2VydmljZSc7XHJcbmltcG9ydCB7IGNhbkluc2VydCwgcmVuZGVyQ2xhcml0eUljb24gfSBmcm9tICcuLi9tZW51L21lbnUtY29tbW9uJztcclxuXHJcbmV4cG9ydCBjb25zdCBpbWFnZU5vZGU6IE5vZGVTcGVjID0ge1xyXG4gICAgaW5saW5lOiB0cnVlLFxyXG4gICAgYXR0cnM6IHtcclxuICAgICAgICBzcmM6IHt9LFxyXG4gICAgICAgIGFsdDogeyBkZWZhdWx0OiBudWxsIH0sXHJcbiAgICAgICAgdGl0bGU6IHsgZGVmYXVsdDogbnVsbCB9LFxyXG4gICAgICAgIHdpZHRoOiB7IGRlZmF1bHQ6IG51bGwgfSxcclxuICAgICAgICBoZWlnaHQ6IHsgZGVmYXVsdDogbnVsbCB9LFxyXG4gICAgICAgIGRhdGFFeHRlcm5hbDogeyBkZWZhdWx0OiB0cnVlIH0sXHJcbiAgICB9LFxyXG4gICAgZ3JvdXA6ICdpbmxpbmUnLFxyXG4gICAgZHJhZ2dhYmxlOiB0cnVlLFxyXG4gICAgcGFyc2VET006IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRhZzogJ2ltZ1tzcmNdJyxcclxuICAgICAgICAgICAgZ2V0QXR0cnMoZG9tKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHNyYzogKGRvbSBhcyBIVE1MSW1hZ2VFbGVtZW50KS5nZXRBdHRyaWJ1dGUoJ3NyYycpLFxyXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiAoZG9tIGFzIEhUTUxJbWFnZUVsZW1lbnQpLmdldEF0dHJpYnV0ZSgndGl0bGUnKSxcclxuICAgICAgICAgICAgICAgICAgICBhbHQ6IChkb20gYXMgSFRNTEltYWdlRWxlbWVudCkuZ2V0QXR0cmlidXRlKCdhbHQnKSxcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogKGRvbSBhcyBIVE1MSW1hZ2VFbGVtZW50KS5nZXRBdHRyaWJ1dGUoJ3dpZHRoJyksXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAoZG9tIGFzIEhUTUxJbWFnZUVsZW1lbnQpLmdldEF0dHJpYnV0ZSgnaGVpZ2h0JyksXHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YUV4dGVybmFsOiAoZG9tIGFzIEhUTUxJbWFnZUVsZW1lbnQpLmhhc0F0dHJpYnV0ZSgnZGF0YS1leHRlcm5hbCcpLFxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICB9LFxyXG4gICAgXSxcclxuICAgIHRvRE9NKG5vZGUpIHtcclxuICAgICAgICBjb25zdCB7IHNyYywgYWx0LCB0aXRsZSwgd2lkdGgsIGhlaWdodCwgZGF0YUV4dGVybmFsIH0gPSBub2RlLmF0dHJzO1xyXG4gICAgICAgIHJldHVybiBbJ2ltZycsIHsgc3JjLCBhbHQsIHRpdGxlLCB3aWR0aCwgaGVpZ2h0LCAnZGF0YS1leHRlcm5hbCc6IGRhdGFFeHRlcm5hbCB9XTtcclxuICAgIH0sXHJcbn07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaW5zZXJ0SW1hZ2VJdGVtKG5vZGVUeXBlOiBOb2RlVHlwZSwgbW9kYWxTZXJ2aWNlOiBNb2RhbFNlcnZpY2UpIHtcclxuICAgIHJldHVybiBuZXcgTWVudUl0ZW0oe1xyXG4gICAgICAgIHRpdGxlOiAnSW5zZXJ0IGltYWdlJyxcclxuICAgICAgICBsYWJlbDogJ0ltYWdlJyxcclxuICAgICAgICByZW5kZXI6IHJlbmRlckNsYXJpdHlJY29uKHsgc2hhcGU6ICdpbWFnZScsIGxhYmVsOiAnSW1hZ2UnIH0pLFxyXG4gICAgICAgIGNsYXNzOiAnJyxcclxuICAgICAgICBjc3M6ICcnLFxyXG5cclxuICAgICAgICBlbmFibGUoc3RhdGU6IEVkaXRvclN0YXRlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBjYW5JbnNlcnQoc3RhdGUsIG5vZGVUeXBlKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIHJ1bihzdGF0ZTogRWRpdG9yU3RhdGUsIF8sIHZpZXc6IEVkaXRvclZpZXcpIHtcclxuICAgICAgICAgICAgbGV0IGF0dHJzOiBFeHRlcm5hbEltYWdlQXR0cnMgfCB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgIGlmIChzdGF0ZS5zZWxlY3Rpb24gaW5zdGFuY2VvZiBOb2RlU2VsZWN0aW9uICYmIHN0YXRlLnNlbGVjdGlvbi5ub2RlLnR5cGUgPT09IG5vZGVUeXBlKSB7XHJcbiAgICAgICAgICAgICAgICBhdHRycyA9IHN0YXRlLnNlbGVjdGlvbi5ub2RlLmF0dHJzIGFzIEV4dGVybmFsSW1hZ2VBdHRycztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBtb2RhbFNlcnZpY2VcclxuICAgICAgICAgICAgICAgIC5mcm9tQ29tcG9uZW50KEV4dGVybmFsSW1hZ2VEaWFsb2dDb21wb25lbnQsIHtcclxuICAgICAgICAgICAgICAgICAgICBjbG9zYWJsZTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICBsb2NhbHM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZXhpc3Rpbmc6IGF0dHJzLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZShyZXN1bHQgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgdmlldy5kaXNwYXRjaCh2aWV3LnN0YXRlLnRyLnJlcGxhY2VTZWxlY3Rpb25XaXRoKG5vZGVUeXBlLmNyZWF0ZUFuZEZpbGwocmVzdWx0KSEpKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgdmlldy5mb2N1cygpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSxcclxuICAgIH0pO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgaW1hZ2VDb250ZXh0TWVudVBsdWdpbiA9IChjb250ZXh0TWVudVNlcnZpY2U6IENvbnRleHRNZW51U2VydmljZSwgbW9kYWxTZXJ2aWNlOiBNb2RhbFNlcnZpY2UpID0+XHJcbiAgICBuZXcgUGx1Z2luKHtcclxuICAgICAgICB2aWV3OiAoKSA9PiAoe1xyXG4gICAgICAgICAgICB1cGRhdGU6IHZpZXcgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKCF2aWV3Lmhhc0ZvY3VzKCkpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjb25zdCB7IGRvYywgc2VsZWN0aW9uIH0gPSB2aWV3LnN0YXRlO1xyXG4gICAgICAgICAgICAgICAgbGV0IGltYWdlTm9kZTogTm9kZSB8IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgICAgIGxldCBpbWFnZU5vZGVQb3MgPSAwO1xyXG4gICAgICAgICAgICAgICAgZG9jLm5vZGVzQmV0d2VlbihzZWxlY3Rpb24uZnJvbSwgc2VsZWN0aW9uLnRvLCAobiwgcG9zLCBwYXJlbnQpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAobi50eXBlLm5hbWUgPT09ICdpbWFnZScpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2VOb2RlID0gbjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2VOb2RlUG9zID0gcG9zO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoaW1hZ2VOb2RlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgbm9kZSA9IHZpZXcubm9kZURPTShpbWFnZU5vZGVQb3MpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChub2RlIGluc3RhbmNlb2YgSFRNTEltYWdlRWxlbWVudCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0TWVudVNlcnZpY2Uuc2V0Q29udGV4dE1lbnUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmOiBzZWxlY3Rpb24sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ0ltYWdlJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb25TaGFwZTogJ2ltYWdlJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQ6IG5vZGUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb29yZHM6IHZpZXcuY29vcmRzQXRQb3MoaW1hZ2VOb2RlUG9zKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zOiBbXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmFibGVkOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uU2hhcGU6ICdpbWFnZScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnSW1hZ2UgcHJvcGVydGllcycsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHRNZW51U2VydmljZS5jbGVhckNvbnRleHRNZW51KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RhbFNlcnZpY2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZnJvbUNvbXBvbmVudChFeHRlcm5hbEltYWdlRGlhbG9nQ29tcG9uZW50LCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NhYmxlOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhbHM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGlzdGluZzogaW1hZ2VOb2RlIS5hdHRycyBhcyBFeHRlcm5hbEltYWdlQXR0cnMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3LmRpc3BhdGNoKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXcuc3RhdGUudHIucmVwbGFjZVNlbGVjdGlvbldpdGgoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlTm9kZSEudHlwZS5jcmVhdGVBbmRGaWxsKHJlc3VsdCkhLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXcuZm9jdXMoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBjb250ZXh0TWVudVNlcnZpY2UuY2xlYXJDb250ZXh0TWVudSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH0pLFxyXG4gICAgfSk7XHJcbiJdfQ==
@@ -15,7 +15,7 @@ import { iframeNode, iframeNodeView, linkMark } from './custom-nodes';
15
15
  import { buildInputRules } from './inputrules';
16
16
  import { buildKeymap } from './keymap';
17
17
  import { customMenuPlugin } from './menu/menu-plugin';
18
- import { imageContextMenuPlugin } from './plugins/image-plugin';
18
+ import { imageContextMenuPlugin, imageNode } from './plugins/image-plugin';
19
19
  import { linkSelectPlugin } from './plugins/link-select-plugin';
20
20
  import { rawEditorPlugin } from './plugins/raw-editor-plugin';
21
21
  import { getTableNodes, tableContextMenuPlugin } from './plugins/tables-plugin';
@@ -30,6 +30,7 @@ export class ProsemirrorService {
30
30
  this.mySchema = new Schema({
31
31
  nodes: addListNodes(schema.spec.nodes, 'paragraph block*', 'block')
32
32
  .append(getTableNodes())
33
+ .update('image', imageNode)
33
34
  .addToEnd('iframe', iframeNode),
34
35
  marks: schema.spec.marks.update('link', linkMark),
35
36
  });
@@ -152,4 +153,4 @@ export class ProsemirrorService {
152
153
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: ProsemirrorService, decorators: [{
153
154
  type: Injectable
154
155
  }], ctorParameters: () => [{ type: i0.Injector }, { type: i1.ContextMenuService }] });
155
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvc2VtaXJyb3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvc2hhcmVkL2NvbXBvbmVudHMvcmljaC10ZXh0LWVkaXRvci9wcm9zZW1pcnJvci9wcm9zZW1pcnJvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDN0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRzlDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUd6RSxPQUFPLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFF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QUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ2hGLGVBQWUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDekUsZ0JBQWdCLENBQUM7Z0JBQ2IsWUFBWSxFQUFFLE9BQU8sQ0FBQyxZQUFZO2dCQUNsQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7Z0JBQ3ZCLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTthQUN6QixDQUFDO1NBQ0wsQ0FBQztRQUNGLElBQUksT0FBTyxDQUFDLE9BQU8sS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUM1QixPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDNUIsQ0FBQztRQUVELE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FDakIsSUFBSSxNQUFNLENBQUM7WUFDUCxLQUFLLEVBQUU7Z0JBQ0gsVUFBVSxFQUFFLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFO2FBQzNDO1NBQ0osQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDO0lBRU8sY0FBYztRQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQ3BFLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDNUIsQ0FBQzs4R0EzSVEsa0JBQWtCO2tIQUFsQixrQkFBa0I7OzJGQUFsQixrQkFBa0I7a0JBRDlCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBiYXNlS2V5bWFwIH0gZnJvbSAncHJvc2VtaXJyb3ItY29tbWFuZHMnO1xyXG5pbXBvcnQgeyBkcm9wQ3Vyc29yIH0gZnJvbSAncHJvc2VtaXJyb3ItZHJvcGN1cnNvcic7XHJcbmltcG9ydCB7IGdhcEN1cnNvciB9IGZyb20gJ3Byb3NlbWlycm9yLWdhcGN1cnNvcic7XHJcbmltcG9ydCB7IGhpc3RvcnkgfSBmcm9tICdwcm9zZW1pcnJvci1oaXN0b3J5JztcclxuaW1wb3J0IHsga2V5bWFwIH0gZnJvbSAncHJvc2VtaXJyb3Ita2V5bWFwJztcclxuaW1wb3J0IHsgRE9NUGFyc2VyLCBET01TZXJpYWxpemVyLCBTY2hlbWEgfSBmcm9tICdwcm9zZW1pcnJvci1tb2RlbCc7XHJcbmltcG9ydCB7IHNjaGVtYSB9IGZyb20gJ3Byb3NlbWlycm9yLXNjaGVtYS1iYXNpYyc7XHJcbmltcG9ydCB7IGFkZExpc3ROb2RlcyB9IGZyb20gJ3Byb3NlbWlycm9yLXNjaGVtYS1saXN0JztcclxuaW1wb3J0IHsgRWRpdG9yU3RhdGUsIFBsdWdpbiB9IGZyb20gJ3Byb3NlbWlycm9yLXN0YXRlJztcclxuaW1wb3J0IHsgY29sdW1uUmVzaXppbmcsIGZpeFRhYmxlcywgdGFibGVFZGl0aW5nIH0gZnJvbSAncHJvc2VtaXJyb3ItdGFibGVzJztcclxuaW1wb3J0IHsgRWRpdG9yVmlldyB9IGZyb20gJ3Byb3NlbWlycm9yLXZpZXcnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBNb2RhbFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9wcm92aWRlcnMvbW9kYWwvbW9kYWwuc2VydmljZSc7XHJcblxyXG5pbXBvcnQgeyBDb250ZXh0TWVudVNlcnZpY2UgfSBmcm9tICcuL2NvbnRleHQtbWVudS9jb250ZXh0LW1lbnUuc2VydmljZSc7XHJcbmltcG9ydCB7IGlmcmFtZU5vZGUsIGlmcmFtZU5vZGVWaWV3LCBsaW5rTWFyayB9IGZyb20gJy4vY3VzdG9tLW5vZGVzJztcclxuaW1wb3J0IHsgYnVpbGRJbnB1dFJ1bGVzIH0gZnJvbSAnLi9pbnB1dHJ1bGVzJztcclxuaW1wb3J0IHsgYnVpbGRLZXltYXAgfSBmcm9tICcuL2tleW1hcCc7XHJcbmltcG9ydCB7IGN1c3RvbU1lbnVQbHVnaW4gfSBmcm9tICcuL21lbnUvbWVudS1wbHVnaW4nO1xyXG5pbXBvcnQgeyBpbWFnZUNvbnRleHRNZW51UGx1Z2luIH0gZnJvbSAnLi9wbHVnaW5zL2ltYWdlLXBsdWdpbic7XHJcbmltcG9ydCB7IGxpbmtTZWxlY3RQbHVnaW4gfSBmcm9tICcuL3BsdWdpbnMvbGluay1zZWxlY3QtcGx1Z2luJztcclxuaW1wb3J0IHsgcmF3RWRpdG9yUGx1Z2luIH0gZnJvbSAnLi9wbHVnaW5zL3Jhdy1lZGl0b3ItcGx1Z2luJztcclxuaW1wb3J0IHsgZ2V0VGFibGVOb2RlcywgdGFibGVDb250ZXh0TWVudVBsdWdpbiB9IGZyb20gJy4vcGx1Z2lucy90YWJsZXMtcGx1Z2luJztcclxuaW1wb3J0IHsgU2V0dXBPcHRpb25zIH0gZnJvbSAnLi90eXBlcyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZUVkaXRvclZpZXdPcHRpb25zIHtcclxuICAgIG9uVGV4dElucHV0OiAoY29udGVudDogc3RyaW5nKSA9PiB2b2lkO1xyXG4gICAgZWxlbWVudDogSFRNTEVsZW1lbnQ7XHJcbiAgICBpc1JlYWRPbmx5OiAoKSA9PiBib29sZWFuO1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBQcm9zZW1pcnJvclNlcnZpY2Uge1xyXG4gICAgZWRpdG9yVmlldzogRWRpdG9yVmlldztcclxuXHJcbiAgICAvLyBNaXggdGhlIG5vZGVzIGZyb20gcHJvc2VtaXJyb3Itc2NoZW1hLWxpc3QgaW50byB0aGUgYmFzaWMgc2NoZW1hIHRvXHJcbiAgICAvLyBjcmVhdGUgYSBzY2hlbWEgd2l0aCBsaXN0IHN1cHBvcnQuXHJcbiAgICBwcml2YXRlIG15U2NoZW1hID0gbmV3IFNjaGVtYSh7XHJcbiAgICAgICAgbm9kZXM6IGFkZExpc3ROb2RlcyhzY2hlbWEuc3BlYy5ub2RlcywgJ3BhcmFncmFwaCBibG9jayonLCAnYmxvY2snKVxyXG4gICAgICAgICAgICAuYXBwZW5kKGdldFRhYmxlTm9kZXMoKSBhcyBhbnkpXHJcbiAgICAgICAgICAgIC5hZGRUb0VuZCgnaWZyYW1lJywgaWZyYW1lTm9kZSksXHJcbiAgICAgICAgbWFya3M6IHNjaGVtYS5zcGVjLm1hcmtzLnVwZGF0ZSgnbGluaycsIGxpbmtNYXJrKSxcclxuICAgIH0pO1xyXG4gICAgcHJpdmF0ZSBlbmFibGVkID0gdHJ1ZTtcclxuICAgIC8qKlxyXG4gICAgICogVGhpcyBpcyBhIERvY3VtZW50IHVzZWQgZm9yIHByb2Nlc3NpbmcgaW5jb21pbmcgdGV4dC4gSXQgZW5zdXJlcyB0aGF0IG1hbGljaW91cyBIVE1MIGlzIG5vdCBleGVjdXRlZCBieSB0aGVcclxuICAgICAqIGFjdHVhbCBkb2N1bWVudCB0aGF0IGlzIGF0dGFjaGVkIHRvIHRoZSBicm93c2VyIERPTSwgd2hpY2ggY291bGQgY2F1c2UgWFNTIGF0dGFja3MuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgZGV0YWNoZWREb2M6IERvY3VtZW50IHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsIHByaXZhdGUgY29udGV4dE1lbnVTZXJ2aWNlOiBDb250ZXh0TWVudVNlcnZpY2UpIHt9XHJcblxyXG4gICAgY29udGV4dE1lbnVJdGVtcyQ6IE9ic2VydmFibGU8c3RyaW5nPjtcclxuXHJcbiAgICBjcmVhdGVFZGl0b3JWaWV3KG9wdGlvbnM6IENyZWF0ZUVkaXRvclZpZXdPcHRpb25zKSB7XHJcbiAgICAgICAgdGhpcy5lZGl0b3JWaWV3ID0gbmV3IEVkaXRvclZpZXcob3B0aW9ucy5lbGVtZW50LCB7XHJcbiAgICAgICAgICAgIHN0YXRlOiB0aGlzLmdldFN0YXRlRnJvbVRleHQoJycpLFxyXG4gICAgICAgICAgICBkaXNwYXRjaFRyYW5zYWN0aW9uOiB0ciA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZW5hYmxlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMuZWRpdG9yVmlldy51cGRhdGVTdGF0ZSh0aGlzLmVkaXRvclZpZXcuc3RhdGUuYXBwbHkodHIpKTtcclxuICAgICAgICAgICAgICAgIGlmICh0ci5kb2NDaGFuZ2VkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29udGVudCA9IHRoaXMuZ2V0VGV4dEZyb21TdGF0ZSh0aGlzLmVkaXRvclZpZXcuc3RhdGUpO1xyXG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbnMub25UZXh0SW5wdXQoY29udGVudCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGVkaXRhYmxlOiAoKSA9PiBvcHRpb25zLmlzUmVhZE9ubHkoKSxcclxuICAgICAgICAgICAgaGFuZGxlRE9NRXZlbnRzOiB7XHJcbiAgICAgICAgICAgICAgICBmb2N1czogdmlldyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250ZXh0TWVudVNlcnZpY2Uuc2V0VmlzaWJpbGl0eSh0cnVlKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBibHVyOiB2aWV3ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRleHRNZW51U2VydmljZS5zZXRWaXNpYmlsaXR5KGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIG5vZGVWaWV3czoge1xyXG4gICAgICAgICAgICAgICAgaWZyYW1lOiBpZnJhbWVOb2RlVmlldyxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGUodGV4dDogc3RyaW5nKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZWRpdG9yVmlldykge1xyXG4gICAgICAgICAgICBjb25zdCBjdXJyZW50VGV4dCA9IHRoaXMuZ2V0VGV4dEZyb21TdGF0ZSh0aGlzLmVkaXRvclZpZXcuc3RhdGUpO1xyXG4gICAgICAgICAgICBpZiAodGV4dCAhPT0gY3VycmVudFRleHQpIHtcclxuICAgICAgICAgICAgICAgIGxldCBzdGF0ZSA9IHRoaXMuZ2V0U3RhdGVGcm9tVGV4dCh0ZXh0KTtcclxuICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5ib2R5LmNvbnRhaW5zKHRoaXMuZWRpdG9yVmlldy5kb20pKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZml4ID0gZml4VGFibGVzKHN0YXRlKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZml4KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gc3RhdGUuYXBwbHkoZml4LnNldE1ldGEoJ2FkZFRvSGlzdG9yeScsIGZhbHNlKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWRpdG9yVmlldy51cGRhdGVTdGF0ZShzdGF0ZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZGVzdHJveSgpIHtcclxuICAgICAgICBpZiAodGhpcy5lZGl0b3JWaWV3KSB7XHJcbiAgICAgICAgICAgIHRoaXMuZWRpdG9yVmlldy5kZXN0cm95KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHNldEVuYWJsZWQoZW5hYmxlZDogYm9vbGVhbikge1xyXG4gICAgICAgIGlmICh0aGlzLmVkaXRvclZpZXcpIHtcclxuICAgICAgICAgICAgdGhpcy5lbmFibGVkID0gZW5hYmxlZDtcclxuICAgICAgICAgICAgLy8gVXBkYXRpbmcgdGhlIHN0YXRlIGNhdXNlcyBQcm9zZU1pcnJvciB0byBjaGVjayB0aGVcclxuICAgICAgICAgICAgLy8gYGVkaXRhYmxlKClgIGZ1bmN0aW9uIGZyb20gdGhlIGNvbnRydWN0b3IgY29uZmlnIG9iamVjdFxyXG4gICAgICAgICAgICAvLyBuZXdseS5cclxuICAgICAgICAgICAgdGhpcy5lZGl0b3JWaWV3LnVwZGF0ZVN0YXRlKHRoaXMuZWRpdG9yVmlldy5zdGF0ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0U3RhdGVGcm9tVGV4dCh0ZXh0OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKTogRWRpdG9yU3RhdGUge1xyXG4gICAgICAgIGNvbnN0IGRvYyA9IHRoaXMuZ2V0RGV0YWNoZWREb2MoKTtcclxuICAgICAgICBjb25zdCBkaXYgPSBkb2MuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICAgICAgZGl2LmlubmVySFRNTCA9IHRleHQgPz8gJyc7XHJcbiAgICAgICAgcmV0dXJuIEVkaXRvclN0YXRlLmNyZWF0ZSh7XHJcbiAgICAgICAgICAgIGRvYzogRE9NUGFyc2VyLmZyb21TY2hlbWEodGhpcy5teVNjaGVtYSkucGFyc2UoZGl2KSxcclxuICAgICAgICAgICAgcGx1Z2luczogdGhpcy5jb25maWd1cmVQbHVnaW5zKHsgc2NoZW1hOiB0aGlzLm15U2NoZW1hLCBmbG9hdGluZ01lbnU6IGZhbHNlIH0pLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0VGV4dEZyb21TdGF0ZShzdGF0ZTogRWRpdG9yU3RhdGUpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IGRvYyA9IHRoaXMuZ2V0RGV0YWNoZWREb2MoKTtcclxuICAgICAgICBjb25zdCBkaXYgPSBkb2MuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICAgICAgY29uc3QgZnJhZ21lbnQgPSBET01TZXJpYWxpemVyLmZyb21TY2hlbWEodGhpcy5teVNjaGVtYSkuc2VyaWFsaXplRnJhZ21lbnQoc3RhdGUuZG9jLmNvbnRlbnQpO1xyXG5cclxuICAgICAgICBkaXYuYXBwZW5kQ2hpbGQoZnJhZ21lbnQpO1xyXG5cclxuICAgICAgICByZXR1cm4gZGl2LmlubmVySFRNTDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNvbmZpZ3VyZVBsdWdpbnMob3B0aW9uczogU2V0dXBPcHRpb25zKSB7XHJcbiAgICAgICAgY29uc3QgcGx1Z2lucyA9IFtcclxuICAgICAgICAgICAgYnVpbGRJbnB1dFJ1bGVzKG9wdGlvbnMuc2NoZW1hKSxcclxuICAgICAgICAgICAga2V5bWFwKGJ1aWxkS2V5bWFwKG9wdGlvbnMuc2NoZW1hLCBvcHRpb25zLm1hcEtleXMpKSxcclxuICAgICAgICAgICAga2V5bWFwKGJhc2VLZXltYXApLFxyXG4gICAgICAgICAgICBkcm9wQ3Vyc29yKCksXHJcbiAgICAgICAgICAgIGdhcEN1cnNvcigpLFxyXG4gICAgICAgICAgICBsaW5rU2VsZWN0UGx1Z2luLFxyXG4gICAgICAgICAgICBjb2x1bW5SZXNpemluZyh7fSksXHJcbiAgICAgICAgICAgIHRhYmxlRWRpdGluZyh7IGFsbG93VGFibGVOb2RlU2VsZWN0aW9uOiB0cnVlIH0pLFxyXG4gICAgICAgICAgICB0YWJsZUNvbnRleHRNZW51UGx1Z2luKHRoaXMuY29udGV4dE1lbnVTZXJ2aWNlKSxcclxuICAgICAgICAgICAgaW1hZ2VDb250ZXh0TWVudVBsdWdpbih0aGlzLmNvbnRleHRNZW51U2VydmljZSwgdGhpcy5pbmplY3Rvci5nZXQoTW9kYWxTZXJ2aWNlKSksXHJcbiAgICAgICAgICAgIHJhd0VkaXRvclBsdWdpbih0aGlzLmNvbnRleHRNZW51U2VydmljZSwgdGhpcy5pbmplY3Rvci5nZXQoTW9kYWxTZXJ2aWNlKSksXHJcbiAgICAgICAgICAgIGN1c3RvbU1lbnVQbHVnaW4oe1xyXG4gICAgICAgICAgICAgICAgZmxvYXRpbmdNZW51OiBvcHRpb25zLmZsb2F0aW5nTWVudSxcclxuICAgICAgICAgICAgICAgIGluamVjdG9yOiB0aGlzLmluamVjdG9yLFxyXG4gICAgICAgICAgICAgICAgc2NoZW1hOiBvcHRpb25zLnNjaGVtYSxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgXTtcclxuICAgICAgICBpZiAob3B0aW9ucy5oaXN0b3J5ICE9PSBmYWxzZSkge1xyXG4gICAgICAgICAgICBwbHVnaW5zLnB1c2goaGlzdG9yeSgpKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBwbHVnaW5zLmNvbmNhdChcclxuICAgICAgICAgICAgbmV3IFBsdWdpbih7XHJcbiAgICAgICAgICAgICAgICBwcm9wczoge1xyXG4gICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IHsgY2xhc3M6ICd2ZHItcHJvc2VtaXJyb3InIH0sXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0RGV0YWNoZWREb2MoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmRldGFjaGVkRG9jKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGV0YWNoZWREb2MgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZGV0YWNoZWREb2M7XHJcbiAgICB9XHJcbn1cclxuIl19
156
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvc2VtaXJyb3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvc2hhcmVkL2NvbXBvbmVudHMvcmljaC10ZXh0LWVkaXRvci9wcm9zZW1pcnJvci9wcm9zZW1pcnJvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDN0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRzlDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUd6RSxPQUFPLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFF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QyxJQUFJLENBQUMsa0JBQWtCLENBQUM7WUFDL0Msc0JBQXNCLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ2hGLGVBQWUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDekUsZ0JBQWdCLENBQUM7Z0JBQ2IsWUFBWSxFQUFFLE9BQU8sQ0FBQyxZQUFZO2dCQUNsQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7Z0JBQ3ZCLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTthQUN6QixDQUFDO1NBQ0wsQ0FBQztRQUNGLElBQUksT0FBTyxDQUFDLE9BQU8sS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUM1QixPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDNUIsQ0FBQztRQUVELE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FDakIsSUFBSSxNQUFNLENBQUM7WUFDUCxLQUFLLEVBQUU7Z0JBQ0gsVUFBVSxFQUFFLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFO2FBQzNDO1NBQ0osQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDO0lBRU8sY0FBYztRQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQ3BFLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDNUIsQ0FBQzs4R0EvSVEsa0JBQWtCO2tIQUFsQixrQkFBa0I7OzJGQUFsQixrQkFBa0I7a0JBRDlCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBiYXNlS2V5bWFwIH0gZnJvbSAncHJvc2VtaXJyb3ItY29tbWFuZHMnO1xyXG5pbXBvcnQgeyBkcm9wQ3Vyc29yIH0gZnJvbSAncHJvc2VtaXJyb3ItZHJvcGN1cnNvcic7XHJcbmltcG9ydCB7IGdhcEN1cnNvciB9IGZyb20gJ3Byb3NlbWlycm9yLWdhcGN1cnNvcic7XHJcbmltcG9ydCB7IGhpc3RvcnkgfSBmcm9tICdwcm9zZW1pcnJvci1oaXN0b3J5JztcclxuaW1wb3J0IHsga2V5bWFwIH0gZnJvbSAncHJvc2VtaXJyb3Ita2V5bWFwJztcclxuaW1wb3J0IHsgRE9NUGFyc2VyLCBET01TZXJpYWxpemVyLCBTY2hlbWEgfSBmcm9tICdwcm9zZW1pcnJvci1tb2RlbCc7XHJcbmltcG9ydCB7IHNjaGVtYSB9IGZyb20gJ3Byb3NlbWlycm9yLXNjaGVtYS1iYXNpYyc7XHJcbmltcG9ydCB7IGFkZExpc3ROb2RlcyB9IGZyb20gJ3Byb3NlbWlycm9yLXNjaGVtYS1saXN0JztcclxuaW1wb3J0IHsgRWRpdG9yU3RhdGUsIFBsdWdpbiB9IGZyb20gJ3Byb3NlbWlycm9yLXN0YXRlJztcclxuaW1wb3J0IHsgY29sdW1uUmVzaXppbmcsIGZpeFRhYmxlcywgdGFibGVFZGl0aW5nIH0gZnJvbSAncHJvc2VtaXJyb3ItdGFibGVzJztcclxuaW1wb3J0IHsgRWRpdG9yVmlldyB9IGZyb20gJ3Byb3NlbWlycm9yLXZpZXcnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBNb2RhbFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9wcm92aWRlcnMvbW9kYWwvbW9kYWwuc2VydmljZSc7XHJcblxyXG5pbXBvcnQgeyBDb250ZXh0TWVudVNlcnZpY2UgfSBmcm9tICcuL2NvbnRleHQtbWVudS9jb250ZXh0LW1lbnUuc2VydmljZSc7XHJcbmltcG9ydCB7IGlmcmFtZU5vZGUsIGlmcmFtZU5vZGVWaWV3LCBsaW5rTWFyayB9IGZyb20gJy4vY3VzdG9tLW5vZGVzJztcclxuaW1wb3J0IHsgYnVpbGRJbnB1dFJ1bGVzIH0gZnJvbSAnLi9pbnB1dHJ1bGVzJztcclxuaW1wb3J0IHsgYnVpbGRLZXltYXAgfSBmcm9tICcuL2tleW1hcCc7XHJcbmltcG9ydCB7IGN1c3RvbU1lbnVQbHVnaW4gfSBmcm9tICcuL21lbnUvbWVudS1wbHVnaW4nO1xyXG5pbXBvcnQgeyBpbWFnZUNvbnRleHRNZW51UGx1Z2luLCBpbWFnZU5vZGUgfSBmcm9tICcuL3BsdWdpbnMvaW1hZ2UtcGx1Z2luJztcclxuaW1wb3J0IHsgbGlua1NlbGVjdFBsdWdpbiB9IGZyb20gJy4vcGx1Z2lucy9saW5rLXNlbGVjdC1wbHVnaW4nO1xyXG5pbXBvcnQgeyByYXdFZGl0b3JQbHVnaW4gfSBmcm9tICcuL3BsdWdpbnMvcmF3LWVkaXRvci1wbHVnaW4nO1xyXG5pbXBvcnQgeyBnZXRUYWJsZU5vZGVzLCB0YWJsZUNvbnRleHRNZW51UGx1Z2luIH0gZnJvbSAnLi9wbHVnaW5zL3RhYmxlcy1wbHVnaW4nO1xyXG5pbXBvcnQgeyBTZXR1cE9wdGlvbnMgfSBmcm9tICcuL3R5cGVzJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlRWRpdG9yVmlld09wdGlvbnMge1xyXG4gICAgb25UZXh0SW5wdXQ6IChjb250ZW50OiBzdHJpbmcpID0+IHZvaWQ7XHJcbiAgICBlbGVtZW50OiBIVE1MRWxlbWVudDtcclxuICAgIGlzUmVhZE9ubHk6ICgpID0+IGJvb2xlYW47XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFByb3NlbWlycm9yU2VydmljZSB7XHJcbiAgICBlZGl0b3JWaWV3OiBFZGl0b3JWaWV3O1xyXG5cclxuICAgIC8vIE1peCB0aGUgbm9kZXMgZnJvbSBwcm9zZW1pcnJvci1zY2hlbWEtbGlzdCBpbnRvIHRoZSBiYXNpYyBzY2hlbWEgdG9cclxuICAgIC8vIGNyZWF0ZSBhIHNjaGVtYSB3aXRoIGxpc3Qgc3VwcG9ydC5cclxuICAgIHByaXZhdGUgbXlTY2hlbWEgPSBuZXcgU2NoZW1hKHtcclxuICAgICAgICBub2RlczogYWRkTGlzdE5vZGVzKHNjaGVtYS5zcGVjLm5vZGVzLCAncGFyYWdyYXBoIGJsb2NrKicsICdibG9jaycpXHJcbiAgICAgICAgICAgIC5hcHBlbmQoZ2V0VGFibGVOb2RlcygpIGFzIGFueSlcclxuICAgICAgICAgICAgLnVwZGF0ZSgnaW1hZ2UnLCBpbWFnZU5vZGUpXHJcbiAgICAgICAgICAgIC5hZGRUb0VuZCgnaWZyYW1lJywgaWZyYW1lTm9kZSksXHJcbiAgICAgICAgbWFya3M6IHNjaGVtYS5zcGVjLm1hcmtzLnVwZGF0ZSgnbGluaycsIGxpbmtNYXJrKSxcclxuICAgIH0pO1xyXG4gICAgcHJpdmF0ZSBlbmFibGVkID0gdHJ1ZTtcclxuICAgIC8qKlxyXG4gICAgICogVGhpcyBpcyBhIERvY3VtZW50IHVzZWQgZm9yIHByb2Nlc3NpbmcgaW5jb21pbmcgdGV4dC4gSXQgZW5zdXJlcyB0aGF0IG1hbGljaW91cyBIVE1MIGlzIG5vdCBleGVjdXRlZCBieSB0aGVcclxuICAgICAqIGFjdHVhbCBkb2N1bWVudCB0aGF0IGlzIGF0dGFjaGVkIHRvIHRoZSBicm93c2VyIERPTSwgd2hpY2ggY291bGQgY2F1c2UgWFNTIGF0dGFja3MuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgZGV0YWNoZWREb2M6IERvY3VtZW50IHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICAgICAgcHJpdmF0ZSBjb250ZXh0TWVudVNlcnZpY2U6IENvbnRleHRNZW51U2VydmljZSxcclxuICAgICkge31cclxuXHJcbiAgICBjb250ZXh0TWVudUl0ZW1zJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xyXG5cclxuICAgIGNyZWF0ZUVkaXRvclZpZXcob3B0aW9uczogQ3JlYXRlRWRpdG9yVmlld09wdGlvbnMpIHtcclxuICAgICAgICB0aGlzLmVkaXRvclZpZXcgPSBuZXcgRWRpdG9yVmlldyhvcHRpb25zLmVsZW1lbnQsIHtcclxuICAgICAgICAgICAgc3RhdGU6IHRoaXMuZ2V0U3RhdGVGcm9tVGV4dCgnJyksXHJcbiAgICAgICAgICAgIGRpc3BhdGNoVHJhbnNhY3Rpb246IHRyID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5lbmFibGVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5lZGl0b3JWaWV3LnVwZGF0ZVN0YXRlKHRoaXMuZWRpdG9yVmlldy5zdGF0ZS5hcHBseSh0cikpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHRyLmRvY0NoYW5nZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb250ZW50ID0gdGhpcy5nZXRUZXh0RnJvbVN0YXRlKHRoaXMuZWRpdG9yVmlldy5zdGF0ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5vblRleHRJbnB1dChjb250ZW50KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZWRpdGFibGU6ICgpID0+IG9wdGlvbnMuaXNSZWFkT25seSgpLFxyXG4gICAgICAgICAgICBoYW5kbGVET01FdmVudHM6IHtcclxuICAgICAgICAgICAgICAgIGZvY3VzOiB2aWV3ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRleHRNZW51U2VydmljZS5zZXRWaXNpYmlsaXR5KHRydWUpO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGJsdXI6IHZpZXcgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29udGV4dE1lbnVTZXJ2aWNlLnNldFZpc2liaWxpdHkoZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgbm9kZVZpZXdzOiB7XHJcbiAgICAgICAgICAgICAgICBpZnJhbWU6IGlmcmFtZU5vZGVWaWV3LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZSh0ZXh0OiBzdHJpbmcpIHtcclxuICAgICAgICBpZiAodGhpcy5lZGl0b3JWaWV3KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRUZXh0ID0gdGhpcy5nZXRUZXh0RnJvbVN0YXRlKHRoaXMuZWRpdG9yVmlldy5zdGF0ZSk7XHJcbiAgICAgICAgICAgIGlmICh0ZXh0ICE9PSBjdXJyZW50VGV4dCkge1xyXG4gICAgICAgICAgICAgICAgbGV0IHN0YXRlID0gdGhpcy5nZXRTdGF0ZUZyb21UZXh0KHRleHQpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50LmJvZHkuY29udGFpbnModGhpcy5lZGl0b3JWaWV3LmRvbSkpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBmaXggPSBmaXhUYWJsZXMoc3RhdGUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChmaXgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBzdGF0ZS5hcHBseShmaXguc2V0TWV0YSgnYWRkVG9IaXN0b3J5JywgZmFsc2UpKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lZGl0b3JWaWV3LnVwZGF0ZVN0YXRlKHN0YXRlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBkZXN0cm95KCkge1xyXG4gICAgICAgIGlmICh0aGlzLmVkaXRvclZpZXcpIHtcclxuICAgICAgICAgICAgdGhpcy5lZGl0b3JWaWV3LmRlc3Ryb3koKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc2V0RW5hYmxlZChlbmFibGVkOiBib29sZWFuKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZWRpdG9yVmlldykge1xyXG4gICAgICAgICAgICB0aGlzLmVuYWJsZWQgPSBlbmFibGVkO1xyXG4gICAgICAgICAgICAvLyBVcGRhdGluZyB0aGUgc3RhdGUgY2F1c2VzIFByb3NlTWlycm9yIHRvIGNoZWNrIHRoZVxyXG4gICAgICAgICAgICAvLyBgZWRpdGFibGUoKWAgZnVuY3Rpb24gZnJvbSB0aGUgY29udHJ1Y3RvciBjb25maWcgb2JqZWN0XHJcbiAgICAgICAgICAgIC8vIG5ld2x5LlxyXG4gICAgICAgICAgICB0aGlzLmVkaXRvclZpZXcudXBkYXRlU3RhdGUodGhpcy5lZGl0b3JWaWV3LnN0YXRlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRTdGF0ZUZyb21UZXh0KHRleHQ6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiBFZGl0b3JTdGF0ZSB7XHJcbiAgICAgICAgY29uc3QgZG9jID0gdGhpcy5nZXREZXRhY2hlZERvYygpO1xyXG4gICAgICAgIGNvbnN0IGRpdiA9IGRvYy5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgICAgICBkaXYuaW5uZXJIVE1MID0gdGV4dCA/PyAnJztcclxuICAgICAgICByZXR1cm4gRWRpdG9yU3RhdGUuY3JlYXRlKHtcclxuICAgICAgICAgICAgZG9jOiBET01QYXJzZXIuZnJvbVNjaGVtYSh0aGlzLm15U2NoZW1hKS5wYXJzZShkaXYpLFxyXG4gICAgICAgICAgICBwbHVnaW5zOiB0aGlzLmNvbmZpZ3VyZVBsdWdpbnMoeyBzY2hlbWE6IHRoaXMubXlTY2hlbWEsIGZsb2F0aW5nTWVudTogZmFsc2UgfSksXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRUZXh0RnJvbVN0YXRlKHN0YXRlOiBFZGl0b3JTdGF0ZSk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3QgZG9jID0gdGhpcy5nZXREZXRhY2hlZERvYygpO1xyXG4gICAgICAgIGNvbnN0IGRpdiA9IGRvYy5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgICAgICBjb25zdCBmcmFnbWVudCA9IERPTVNlcmlhbGl6ZXIuZnJvbVNjaGVtYSh0aGlzLm15U2NoZW1hKS5zZXJpYWxpemVGcmFnbWVudChzdGF0ZS5kb2MuY29udGVudCk7XHJcblxyXG4gICAgICAgIGRpdi5hcHBlbmRDaGlsZChmcmFnbWVudCk7XHJcblxyXG4gICAgICAgIHJldHVybiBkaXYuaW5uZXJIVE1MO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY29uZmlndXJlUGx1Z2lucyhvcHRpb25zOiBTZXR1cE9wdGlvbnMpIHtcclxuICAgICAgICBjb25zdCBwbHVnaW5zID0gW1xyXG4gICAgICAgICAgICBidWlsZElucHV0UnVsZXMob3B0aW9ucy5zY2hlbWEpLFxyXG4gICAgICAgICAgICBrZXltYXAoYnVpbGRLZXltYXAob3B0aW9ucy5zY2hlbWEsIG9wdGlvbnMubWFwS2V5cykpLFxyXG4gICAgICAgICAgICBrZXltYXAoYmFzZUtleW1hcCksXHJcbiAgICAgICAgICAgIGRyb3BDdXJzb3IoKSxcclxuICAgICAgICAgICAgZ2FwQ3Vyc29yKCksXHJcbiAgICAgICAgICAgIGxpbmtTZWxlY3RQbHVnaW4sXHJcbiAgICAgICAgICAgIGNvbHVtblJlc2l6aW5nKHt9KSxcclxuICAgICAgICAgICAgdGFibGVFZGl0aW5nKHsgYWxsb3dUYWJsZU5vZGVTZWxlY3Rpb246IHRydWUgfSksXHJcbiAgICAgICAgICAgIHRhYmxlQ29udGV4dE1lbnVQbHVnaW4odGhpcy5jb250ZXh0TWVudVNlcnZpY2UpLFxyXG4gICAgICAgICAgICBpbWFnZUNvbnRleHRNZW51UGx1Z2luKHRoaXMuY29udGV4dE1lbnVTZXJ2aWNlLCB0aGlzLmluamVjdG9yLmdldChNb2RhbFNlcnZpY2UpKSxcclxuICAgICAgICAgICAgcmF3RWRpdG9yUGx1Z2luKHRoaXMuY29udGV4dE1lbnVTZXJ2aWNlLCB0aGlzLmluamVjdG9yLmdldChNb2RhbFNlcnZpY2UpKSxcclxuICAgICAgICAgICAgY3VzdG9tTWVudVBsdWdpbih7XHJcbiAgICAgICAgICAgICAgICBmbG9hdGluZ01lbnU6IG9wdGlvbnMuZmxvYXRpbmdNZW51LFxyXG4gICAgICAgICAgICAgICAgaW5qZWN0b3I6IHRoaXMuaW5qZWN0b3IsXHJcbiAgICAgICAgICAgICAgICBzY2hlbWE6IG9wdGlvbnMuc2NoZW1hLFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICBdO1xyXG4gICAgICAgIGlmIChvcHRpb25zLmhpc3RvcnkgIT09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgIHBsdWdpbnMucHVzaChoaXN0b3J5KCkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHBsdWdpbnMuY29uY2F0KFxyXG4gICAgICAgICAgICBuZXcgUGx1Z2luKHtcclxuICAgICAgICAgICAgICAgIHByb3BzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlczogeyBjbGFzczogJ3Zkci1wcm9zZW1pcnJvcicgfSxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXREZXRhY2hlZERvYygpIHtcclxuICAgICAgICBpZiAoIXRoaXMuZGV0YWNoZWREb2MpIHtcclxuICAgICAgICAgICAgdGhpcy5kZXRhY2hlZERvYyA9IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy5kZXRhY2hlZERvYztcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -37,7 +37,7 @@ export class LocaleBasePipe {
37
37
  // and the first region discarded. This would only ever be an issue for
38
38
  // those languages where the translation file itself encodes the region,
39
39
  // as in pt_BR & pt_PT.
40
- const matches = hyphenated?.match(/^([a-zA-Z_-]+)(-[A-Z][A-Z])(-[A-Z][A-z])$/);
40
+ const matches = hyphenated?.match(/^([a-zA-Z_-]+)(-[A-Z][A-Z])(-[A-Z][A-Z])$/);
41
41
  if (matches?.length) {
42
42
  const overriddenLocale = matches[1] + matches[3];
43
43
  return overriddenLocale;
@@ -52,4 +52,4 @@ export class LocaleBasePipe {
52
52
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: LocaleBasePipe, decorators: [{
53
53
  type: Injectable
54
54
  }], ctorParameters: () => [{ type: i1.DataService }, { type: i0.ChangeDetectorRef }] });
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxlLWJhc2UucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvc2hhcmVkL3BpcGVzL2xvY2FsZS1iYXNlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixVQUFVLEVBQTRCLE1BQU0sZUFBZSxDQUFDOzs7QUFLeEY7OztHQUdHO0FBRUgsTUFBTSxPQUFnQixjQUFjO0lBSWhDLFlBQXNCLFdBQXlCLEVBQUUsaUJBQXFDO1FBQ2xGLElBQUksV0FBVyxJQUFJLGlCQUFpQixFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUMsTUFBTTtpQkFDakMsT0FBTyxFQUFFO2lCQUNULFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7aUJBQy9CLFNBQVMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUU7Z0JBQ2hDLElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQzFDLElBQUksTUFBTSxFQUFFLENBQUM7b0JBQ1QsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUNoQyxDQUFDO2dCQUNELGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3JDLENBQUMsQ0FBQyxDQUFDO1FBQ1gsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNwQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNPLGVBQWUsQ0FBQyxjQUF3QjtRQUM5QyxNQUFNLE1BQU0sR0FBRyxPQUFPLGNBQWMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUM7UUFDekYsTUFBTSxVQUFVLEdBQUcsTUFBTSxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFFOUMsbUVBQW1FO1FBQ25FLHNFQUFzRTtRQUN0RSx1RUFBdUU7UUFDdkUsd0VBQXdFO1FBQ3hFLHVCQUF1QjtRQUN2QixNQUFNLE9BQU8sR0FBRyxVQUFVLEVBQUUsS0FBSyxDQUFDLDJDQUEyQyxDQUFDLENBQUM7UUFDL0UsSUFBSSxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDbEIsTUFBTSxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pELE9BQU8sZ0JBQWdCLENBQUM7UUFDNUIsQ0FBQzthQUFNLENBQUM7WUFDSixPQUFPLFVBQVUsQ0FBQztRQUN0QixDQUFDO0lBQ0wsQ0FBQzs4R0E3Q2lCLGNBQWM7a0hBQWQsY0FBYzs7MkZBQWQsY0FBYztrQkFEbkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBJbmplY3RhYmxlLCBPbkRlc3Ryb3ksIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBEYXRhU2VydmljZSB9IGZyb20gJy4uLy4uL2RhdGEvcHJvdmlkZXJzL2RhdGEuc2VydmljZSc7XHJcblxyXG4vKipcclxuICogVXNlZCBieSBsb2NhbGUtYXdhcmUgcGlwZXMgdG8gaGFuZGxlIHRoZSB0YXNrIG9mIGdldHRpbmcgdGhlIGFjdGl2ZSBsYW5ndWFnZUNvZGVcclxuICogb2YgdGhlIFVJIGFuZCBjbGVhbmluZyB1cC5cclxuICovXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIExvY2FsZUJhc2VQaXBlIGltcGxlbWVudHMgT25EZXN0cm95LCBQaXBlVHJhbnNmb3JtIHtcclxuICAgIHByb3RlY3RlZCBsb2NhbGU6IHN0cmluZztcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcblxyXG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKGRhdGFTZXJ2aWNlPzogRGF0YVNlcnZpY2UsIGNoYW5nZURldGVjdG9yUmVmPzogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICAgICAgICBpZiAoZGF0YVNlcnZpY2UgJiYgY2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSBkYXRhU2VydmljZS5jbGllbnRcclxuICAgICAgICAgICAgICAgIC51aVN0YXRlKClcclxuICAgICAgICAgICAgICAgIC5tYXBTdHJlYW0oZGF0YSA9PiBkYXRhLnVpU3RhdGUpXHJcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCh7IGxhbmd1YWdlLCBsb2NhbGUgfSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9jYWxlID0gbGFuZ3VhZ2UucmVwbGFjZSgvXy9nLCAnLScpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChsb2NhbGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2NhbGUgKz0gYC0ke2xvY2FsZX1gO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcclxuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIHRoZSBhY3RpdmUgbG9jYWxlIGFmdGVyIGF0dGVtcHRpbmcgdG8gZW5zdXJlIHRoYXQgdGhlIGxvY2FsZSBzdHJpbmdcclxuICAgICAqIGlzIHZhbGlkIGZvciB0aGUgSW50bCBBUEkuXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBnZXRBY3RpdmVMb2NhbGUobG9jYWxlT3ZlcnJpZGU/OiB1bmtub3duKTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCBsb2NhbGUgPSB0eXBlb2YgbG9jYWxlT3ZlcnJpZGUgPT09ICdzdHJpbmcnID8gbG9jYWxlT3ZlcnJpZGUgOiB0aGlzLmxvY2FsZSA/PyAnZW4nO1xyXG4gICAgICAgIGNvbnN0IGh5cGhlbmF0ZWQgPSBsb2NhbGU/LnJlcGxhY2UoL18vZywgJy0nKTtcclxuXHJcbiAgICAgICAgLy8gQ2hlY2sgZm9yIGEgZG91YmxlLXJlZ2lvbiBzdHJpbmcsIGNvbnRhaW5pbmcgMiByZWdpb24gY29kZXMgbGlrZVxyXG4gICAgICAgIC8vIHB0LUJSLUJSLCB3aGljaCBpcyBpbnZhbGlkLiBJbiB0aGlzIGNhc2UsIHRoZSBzZWNvbmQgcmVnaW9uIGlzIHVzZWRcclxuICAgICAgICAvLyBhbmQgdGhlIGZpcnN0IHJlZ2lvbiBkaXNjYXJkZWQuIFRoaXMgd291bGQgb25seSBldmVyIGJlIGFuIGlzc3VlIGZvclxyXG4gICAgICAgIC8vIHRob3NlIGxhbmd1YWdlcyB3aGVyZSB0aGUgdHJhbnNsYXRpb24gZmlsZSBpdHNlbGYgZW5jb2RlcyB0aGUgcmVnaW9uLFxyXG4gICAgICAgIC8vIGFzIGluIHB0X0JSICYgcHRfUFQuXHJcbiAgICAgICAgY29uc3QgbWF0Y2hlcyA9IGh5cGhlbmF0ZWQ/Lm1hdGNoKC9eKFthLXpBLVpfLV0rKSgtW0EtWl1bQS1aXSkoLVtBLVpdW0Etel0pJC8pO1xyXG4gICAgICAgIGlmIChtYXRjaGVzPy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgY29uc3Qgb3ZlcnJpZGRlbkxvY2FsZSA9IG1hdGNoZXNbMV0gKyBtYXRjaGVzWzNdO1xyXG4gICAgICAgICAgICByZXR1cm4gb3ZlcnJpZGRlbkxvY2FsZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gaHlwaGVuYXRlZDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgYWJzdHJhY3QgdHJhbnNmb3JtKHZhbHVlOiBhbnksIC4uLmFyZ3MpOiBhbnk7XHJcbn1cclxuIl19
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxlLWJhc2UucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvc2hhcmVkL3BpcGVzL2xvY2FsZS1iYXNlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixVQUFVLEVBQTRCLE1BQU0sZUFBZSxDQUFDOzs7QUFLeEY7OztHQUdHO0FBRUgsTUFBTSxPQUFnQixjQUFjO0lBSWhDLFlBQXNCLFdBQXlCLEVBQUUsaUJBQXFDO1FBQ2xGLElBQUksV0FBVyxJQUFJLGlCQUFpQixFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUMsTUFBTTtpQkFDakMsT0FBTyxFQUFFO2lCQUNULFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7aUJBQy9CLFNBQVMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUU7Z0JBQ2hDLElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQzFDLElBQUksTUFBTSxFQUFFLENBQUM7b0JBQ1QsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUNoQyxDQUFDO2dCQUNELGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3JDLENBQUMsQ0FBQyxDQUFDO1FBQ1gsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNwQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNPLGVBQWUsQ0FBQyxjQUF3QjtRQUM5QyxNQUFNLE1BQU0sR0FBRyxPQUFPLGNBQWMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUM7UUFDekYsTUFBTSxVQUFVLEdBQUcsTUFBTSxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFFOUMsbUVBQW1FO1FBQ25FLHNFQUFzRTtRQUN0RSx1RUFBdUU7UUFDdkUsd0VBQXdFO1FBQ3hFLHVCQUF1QjtRQUN2QixNQUFNLE9BQU8sR0FBRyxVQUFVLEVBQUUsS0FBSyxDQUFDLDJDQUEyQyxDQUFDLENBQUM7UUFDL0UsSUFBSSxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDbEIsTUFBTSxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pELE9BQU8sZ0JBQWdCLENBQUM7UUFDNUIsQ0FBQzthQUFNLENBQUM7WUFDSixPQUFPLFVBQVUsQ0FBQztRQUN0QixDQUFDO0lBQ0wsQ0FBQzs4R0E3Q2lCLGNBQWM7a0hBQWQsY0FBYzs7MkZBQWQsY0FBYztrQkFEbkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBJbmplY3RhYmxlLCBPbkRlc3Ryb3ksIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBEYXRhU2VydmljZSB9IGZyb20gJy4uLy4uL2RhdGEvcHJvdmlkZXJzL2RhdGEuc2VydmljZSc7XG5cbi8qKlxuICogVXNlZCBieSBsb2NhbGUtYXdhcmUgcGlwZXMgdG8gaGFuZGxlIHRoZSB0YXNrIG9mIGdldHRpbmcgdGhlIGFjdGl2ZSBsYW5ndWFnZUNvZGVcbiAqIG9mIHRoZSBVSSBhbmQgY2xlYW5pbmcgdXAuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBMb2NhbGVCYXNlUGlwZSBpbXBsZW1lbnRzIE9uRGVzdHJveSwgUGlwZVRyYW5zZm9ybSB7XG4gICAgcHJvdGVjdGVkIGxvY2FsZTogc3RyaW5nO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoZGF0YVNlcnZpY2U/OiBEYXRhU2VydmljZSwgY2hhbmdlRGV0ZWN0b3JSZWY/OiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgICAgICBpZiAoZGF0YVNlcnZpY2UgJiYgY2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gZGF0YVNlcnZpY2UuY2xpZW50XG4gICAgICAgICAgICAgICAgLnVpU3RhdGUoKVxuICAgICAgICAgICAgICAgIC5tYXBTdHJlYW0oZGF0YSA9PiBkYXRhLnVpU3RhdGUpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoeyBsYW5ndWFnZSwgbG9jYWxlIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2NhbGUgPSBsYW5ndWFnZS5yZXBsYWNlKC9fL2csICctJyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChsb2NhbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9jYWxlICs9IGAtJHtsb2NhbGV9YDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBhY3RpdmUgbG9jYWxlIGFmdGVyIGF0dGVtcHRpbmcgdG8gZW5zdXJlIHRoYXQgdGhlIGxvY2FsZSBzdHJpbmdcbiAgICAgKiBpcyB2YWxpZCBmb3IgdGhlIEludGwgQVBJLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBnZXRBY3RpdmVMb2NhbGUobG9jYWxlT3ZlcnJpZGU/OiB1bmtub3duKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgbG9jYWxlID0gdHlwZW9mIGxvY2FsZU92ZXJyaWRlID09PSAnc3RyaW5nJyA/IGxvY2FsZU92ZXJyaWRlIDogdGhpcy5sb2NhbGUgPz8gJ2VuJztcbiAgICAgICAgY29uc3QgaHlwaGVuYXRlZCA9IGxvY2FsZT8ucmVwbGFjZSgvXy9nLCAnLScpO1xuXG4gICAgICAgIC8vIENoZWNrIGZvciBhIGRvdWJsZS1yZWdpb24gc3RyaW5nLCBjb250YWluaW5nIDIgcmVnaW9uIGNvZGVzIGxpa2VcbiAgICAgICAgLy8gcHQtQlItQlIsIHdoaWNoIGlzIGludmFsaWQuIEluIHRoaXMgY2FzZSwgdGhlIHNlY29uZCByZWdpb24gaXMgdXNlZFxuICAgICAgICAvLyBhbmQgdGhlIGZpcnN0IHJlZ2lvbiBkaXNjYXJkZWQuIFRoaXMgd291bGQgb25seSBldmVyIGJlIGFuIGlzc3VlIGZvclxuICAgICAgICAvLyB0aG9zZSBsYW5ndWFnZXMgd2hlcmUgdGhlIHRyYW5zbGF0aW9uIGZpbGUgaXRzZWxmIGVuY29kZXMgdGhlIHJlZ2lvbixcbiAgICAgICAgLy8gYXMgaW4gcHRfQlIgJiBwdF9QVC5cbiAgICAgICAgY29uc3QgbWF0Y2hlcyA9IGh5cGhlbmF0ZWQ/Lm1hdGNoKC9eKFthLXpBLVpfLV0rKSgtW0EtWl1bQS1aXSkoLVtBLVpdW0EtWl0pJC8pO1xuICAgICAgICBpZiAobWF0Y2hlcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBvdmVycmlkZGVuTG9jYWxlID0gbWF0Y2hlc1sxXSArIG1hdGNoZXNbM107XG4gICAgICAgICAgICByZXR1cm4gb3ZlcnJpZGRlbkxvY2FsZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBoeXBoZW5hdGVkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYWJzdHJhY3QgdHJhbnNmb3JtKHZhbHVlOiBhbnksIC4uLmFyZ3MpOiBhbnk7XG59XG4iXX0=