ngx-edu-sharing-ui 9.1.1 → 9999.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/assets/scss/variables-scss.scss +2 -0
  2. package/assets/scss/variables.scss +2 -1
  3. package/esm2022/lib/actionbar/actionbar.component.mjs +6 -6
  4. package/esm2022/lib/common/edu-sharing-ui-common.module.mjs +4 -4
  5. package/esm2022/lib/directives/border-box-observer.directive.mjs +5 -5
  6. package/esm2022/lib/directives/check-text-overflow.directive.mjs +5 -5
  7. package/esm2022/lib/directives/drag-nodes/nodes-drag-source.directive.mjs +5 -5
  8. package/esm2022/lib/directives/drag-nodes/nodes-drag.directive.mjs +5 -5
  9. package/esm2022/lib/directives/drag-nodes/nodes-drop-target.directive.mjs +5 -5
  10. package/esm2022/lib/directives/focus-state.directive.mjs +5 -5
  11. package/esm2022/lib/directives/icon.directive.mjs +6 -6
  12. package/esm2022/lib/directives/infinite-scroll.directive.mjs +5 -5
  13. package/esm2022/lib/dropdown/dropdown.component.mjs +6 -6
  14. package/esm2022/lib/edu-sharing-ui-configuration.mjs +3 -3
  15. package/esm2022/lib/edu-sharing-ui.module.mjs +9 -5
  16. package/esm2022/lib/list-items/format-duration.pipe.mjs +3 -3
  17. package/esm2022/lib/list-items/list-base/list-base.component.mjs +5 -5
  18. package/esm2022/lib/list-items/list-collection-info/list-collection-info.component.mjs +5 -5
  19. package/esm2022/lib/list-items/list-counts/list-counts.component.mjs +4 -4
  20. package/esm2022/lib/list-items/list-items.module.mjs +4 -4
  21. package/esm2022/lib/list-items/list-node-license/list-node-license.component.mjs +5 -5
  22. package/esm2022/lib/list-items/list-node-replication-source/list-node-replication-source.component.mjs +5 -5
  23. package/esm2022/lib/list-items/list-node-workflow/list-node-workflow.component.mjs +5 -5
  24. package/esm2022/lib/list-items/list-text/list-text.component.mjs +8 -10
  25. package/esm2022/lib/list-items/list-widget.mjs +5 -5
  26. package/esm2022/lib/list-items/node-row/node-row.component.mjs +5 -5
  27. package/esm2022/lib/list-items/node-source.pipe.mjs +5 -5
  28. package/esm2022/lib/mds/mds-helper.service.mjs +167 -0
  29. package/esm2022/lib/mds/mds.module.mjs +16 -0
  30. package/esm2022/lib/node-entries/drag-preview/drag-preview.component.mjs +3 -3
  31. package/esm2022/lib/node-entries/items-cap.mjs +1 -1
  32. package/esm2022/lib/node-entries/list-item-label.pipe.mjs +5 -5
  33. package/esm2022/lib/node-entries/node-cache.mjs +1 -1
  34. package/esm2022/lib/node-entries/node-data-source-remote.mjs +1 -1
  35. package/esm2022/lib/node-entries/node-data-source.mjs +1 -1
  36. package/esm2022/lib/node-entries/node-entries-card/node-entries-card.component.mjs +7 -7
  37. package/esm2022/lib/node-entries/node-entries-card-grid/node-entries-card-grid.component.mjs +6 -6
  38. package/esm2022/lib/node-entries/node-entries-card-small/node-entries-card-small.component.mjs +6 -6
  39. package/esm2022/lib/node-entries/node-entries-global-options/node-entries-global-options.component.mjs +10 -6
  40. package/esm2022/lib/node-entries/node-entries-global.service.mjs +5 -5
  41. package/esm2022/lib/node-entries/node-entries-table/column-chooser/column-chooser.component.mjs +6 -6
  42. package/esm2022/lib/node-entries/node-entries-table/node-entries-table.component.mjs +6 -6
  43. package/esm2022/lib/node-entries/node-entries-templates.service.mjs +4 -4
  44. package/esm2022/lib/node-entries/node-entries-wrapper.component.mjs +5 -5
  45. package/esm2022/lib/node-entries/node-entries.component.mjs +6 -6
  46. package/esm2022/lib/node-entries/node-entries.module.mjs +4 -4
  47. package/esm2022/lib/node-entries/node-rating/node-rating.component.mjs +5 -5
  48. package/esm2022/lib/node-entries/node-stats-badges/node-stats-badges.component.mjs +6 -6
  49. package/esm2022/lib/node-entries/node-type-badge/node-type-badge.component.mjs +5 -5
  50. package/esm2022/lib/node-entries/option-button/option-button.component.mjs +5 -5
  51. package/esm2022/lib/node-entries/preview-image/preview-image.component.mjs +5 -5
  52. package/esm2022/lib/node-entries/sort-select-panel/sort-select-panel.component.mjs +5 -5
  53. package/esm2022/lib/node-url/node-url.component.mjs +5 -5
  54. package/esm2022/lib/pipes/file-size.pipe.mjs +5 -5
  55. package/esm2022/lib/pipes/format-date.pipe.mjs +5 -5
  56. package/esm2022/lib/pipes/node-icon.pipe.mjs +4 -4
  57. package/esm2022/lib/pipes/node-image-size.pipe.mjs +4 -4
  58. package/esm2022/lib/pipes/node-image.pipe.mjs +5 -5
  59. package/esm2022/lib/pipes/node-person-name.pipe.mjs +5 -5
  60. package/esm2022/lib/pipes/node-title.pipe.mjs +4 -4
  61. package/esm2022/lib/pipes/option-tooltip.pipe.mjs +5 -5
  62. package/esm2022/lib/pipes/property-slug.pipe.mjs +3 -3
  63. package/esm2022/lib/pipes/replace-chars.pipe.mjs +5 -5
  64. package/esm2022/lib/pipes/vcard-name.pipe.mjs +4 -4
  65. package/esm2022/lib/services/abstract/keyboard-shortcuts.service.mjs +3 -3
  66. package/esm2022/lib/services/accessibility.service.mjs +5 -5
  67. package/esm2022/lib/services/app-container.service.mjs +5 -5
  68. package/esm2022/lib/services/local-events.service.mjs +3 -3
  69. package/esm2022/lib/services/node-entries.service.mjs +5 -5
  70. package/esm2022/lib/services/node-helper.service.mjs +6 -6
  71. package/esm2022/lib/services/nodes-drag-drop.service.mjs +5 -5
  72. package/esm2022/lib/services/options-helper-data.service.mjs +6 -6
  73. package/esm2022/lib/services/repo-url.service.mjs +5 -5
  74. package/esm2022/lib/services/temporary-storage.service.mjs +5 -5
  75. package/esm2022/lib/services/ui.service.mjs +5 -5
  76. package/esm2022/lib/sort-dropdown/sort-dropdown.component.mjs +5 -5
  77. package/esm2022/lib/spinner/spinner.component.mjs +6 -6
  78. package/esm2022/lib/translations/translation-loader.mjs +12 -9
  79. package/esm2022/lib/translations/translations.module.mjs +7 -7
  80. package/esm2022/lib/translations/translations.service.mjs +16 -8
  81. package/esm2022/lib/util/DateHelper.mjs +1 -1
  82. package/esm2022/lib/util/VCard.mjs +1 -1
  83. package/esm2022/lib/util/color-helper.mjs +1 -1
  84. package/esm2022/lib/util/duration-helper.mjs +1 -1
  85. package/esm2022/lib/util/helper.mjs +1 -1
  86. package/esm2022/lib/util/rest-helper.mjs +1 -1
  87. package/esm2022/module.mjs +3 -1
  88. package/fesm2022/ngx-edu-sharing-ui.mjs +539 -350
  89. package/fesm2022/ngx-edu-sharing-ui.mjs.map +1 -1
  90. package/lib/edu-sharing-ui.module.d.ts +7 -6
  91. package/lib/list-items/list-text/list-text.component.d.ts +1 -1
  92. package/lib/list-items/list-widget.d.ts +1 -1
  93. package/lib/mds/mds-helper.service.d.ts +37 -0
  94. package/lib/mds/mds.module.d.ts +6 -0
  95. package/lib/node-entries/node-data-source-remote.d.ts +2 -2
  96. package/lib/node-entries/node-entries-global-options/node-entries-global-options.component.d.ts +1 -0
  97. package/lib/types/option-item.d.ts +21 -21
  98. package/lib/util/ui-constants.d.ts +2 -2
  99. package/module.d.ts +2 -0
  100. package/package.json +5 -5
@@ -0,0 +1,167 @@
1
+ import { RestConstants, } from 'ngx-edu-sharing-api';
2
+ import { Injectable } from '@angular/core';
3
+ import { ListItem } from '../types/list-item';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "ngx-edu-sharing-api";
6
+ export class MdsHelperService {
7
+ static getSortInfo(mdsSet, name) {
8
+ if (mdsSet) {
9
+ if (mdsSet.sorts) {
10
+ for (const list of mdsSet.sorts) {
11
+ if (list.id == name) {
12
+ return list;
13
+ }
14
+ }
15
+ }
16
+ console.error('mds does not define sort info for ' + name + ', invalid configuration!');
17
+ }
18
+ return null;
19
+ }
20
+ static getColumns(translate, mdsSet, name) {
21
+ let columns = [];
22
+ if (mdsSet) {
23
+ for (const list of mdsSet.lists) {
24
+ if (list.id === name) {
25
+ for (const column of list.columns) {
26
+ let type = 'NODE';
27
+ if (name === 'mediacenterGroups') {
28
+ type = 'GROUP';
29
+ }
30
+ else if (name === 'searchCollections') {
31
+ type = 'COLLECTION';
32
+ }
33
+ // in this case, the type is included
34
+ if (column.id.includes('.')) {
35
+ const split = column.id.split('.');
36
+ type = split[0];
37
+ column.id = split[1];
38
+ }
39
+ const item = new ListItem(type, column.id);
40
+ item.format = column.format;
41
+ columns.push(item);
42
+ }
43
+ break;
44
+ }
45
+ }
46
+ }
47
+ if (!columns.length) {
48
+ if (mdsSet !== null) {
49
+ console.warn('mds does not define columns for ' + name + ', invalid configuration!');
50
+ }
51
+ if (name === 'search' || name === 'collectionReferences') {
52
+ columns.push(new ListItem('NODE', RestConstants.LOM_PROP_TITLE));
53
+ columns.push(new ListItem('NODE', RestConstants.CM_MODIFIED_DATE));
54
+ columns.push(new ListItem('NODE', RestConstants.CCM_PROP_LICENSE));
55
+ columns.push(new ListItem('NODE', RestConstants.CCM_PROP_REPLICATIONSOURCE));
56
+ }
57
+ else if (name === 'mediacenterManaged') {
58
+ columns.push(new ListItem('NODE', RestConstants.LOM_PROP_TITLE));
59
+ columns.push(new ListItem('NODE', RestConstants.CCM_PROP_REPLICATIONSOURCEID));
60
+ columns.push(new ListItem('NODE', RestConstants.CCM_PROP_REPLICATIONSOURCE));
61
+ }
62
+ else if (name === 'mediacenterGroups') {
63
+ columns.push(new ListItem('GROUP', RestConstants.AUTHORITY_DISPLAYNAME));
64
+ columns.push(new ListItem('GROUP', RestConstants.AUTHORITY_GROUPTYPE));
65
+ }
66
+ else if (name === 'searchCollections') {
67
+ columns.push(new ListItem('COLLECTION', 'title'));
68
+ columns.push(new ListItem('COLLECTION', 'info'));
69
+ columns.push(new ListItem('COLLECTION', 'scope'));
70
+ }
71
+ }
72
+ columns.map((c) => {
73
+ const key = c.type + '.' + c.name;
74
+ if (c.type === 'NODE' && translate.instant(key) === key) {
75
+ c.label = mdsSet.widgets.filter((w) => w.id === c.name)?.[0]?.caption;
76
+ }
77
+ return c;
78
+ });
79
+ return columns;
80
+ }
81
+ /**
82
+ * Finds the appropriate widget with the id, but will not check any widget conditions
83
+ * @param cid
84
+ * @param template
85
+ * @param widgets
86
+ */
87
+ static getWidget(cid, template, widgets) {
88
+ if (widgets == null) {
89
+ console.warn('Could not iterate widget ' + cid + ': no widgets data provided');
90
+ return null;
91
+ }
92
+ for (let w of widgets) {
93
+ if (w.id == cid) {
94
+ if (template === undefined || w.template === template) {
95
+ return w;
96
+ }
97
+ }
98
+ }
99
+ return null;
100
+ }
101
+ constructor(authentication) {
102
+ this.authentication = authentication;
103
+ }
104
+ /**
105
+ * Same as getWidget, but will also check the widget conditions
106
+ * @param connector
107
+ * @param properties
108
+ * @param id
109
+ * @param template
110
+ * @param widgets
111
+ */
112
+ async getWidgetWithCondition(properties, id, template = null, widgets) {
113
+ for (let w of widgets) {
114
+ if (w.id == id) {
115
+ if ((template == null || w.template == template) &&
116
+ (await this.isWidgetConditionTrue(w, properties))) {
117
+ return w;
118
+ }
119
+ }
120
+ }
121
+ return null;
122
+ }
123
+ async isWidgetConditionTrue(widget, properties) {
124
+ if (!widget.condition)
125
+ return true;
126
+ let condition = widget.condition;
127
+ if (condition.type == 'PROPERTY' && properties) {
128
+ if ((!properties[condition.value] && !condition.negate) ||
129
+ (properties[condition.value] && condition.negate)) {
130
+ return false;
131
+ }
132
+ }
133
+ if (condition.type == 'TOOLPERMISSION') {
134
+ let tp = await this.authentication.hasToolpermission(condition.value);
135
+ if (tp == condition.negate) {
136
+ return false;
137
+ }
138
+ }
139
+ return true;
140
+ }
141
+ /**
142
+ * Find a template by id in the given mds
143
+ */
144
+ static findTemplate(mds, id) {
145
+ return mds.views.find((v) => v.id === id);
146
+ }
147
+ /**
148
+ * Returns all widgets used by the given template
149
+ */
150
+ static getUsedWidgets(mds, template = null) {
151
+ const used = [];
152
+ const templateData = MdsHelperService.findTemplate(mds, template);
153
+ for (const w of mds.widgets) {
154
+ if (templateData.html.indexOf('<' + w.id) !== -1 &&
155
+ !used.find((w2) => w2.id === w.id)) {
156
+ used.push(w);
157
+ }
158
+ }
159
+ return used;
160
+ }
161
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: MdsHelperService, deps: [{ token: i1.AuthenticationService }], target: i0.ɵɵFactoryTarget.Injectable }); }
162
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: MdsHelperService }); }
163
+ }
164
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: MdsHelperService, decorators: [{
165
+ type: Injectable
166
+ }], ctorParameters: () => [{ type: i1.AuthenticationService }] });
167
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWRzLWhlbHBlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWR1LXNoYXJpbmctdWkvc3JjL2xpYi9tZHMvbWRzLWhlbHBlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFLSCxhQUFhLEdBRWhCLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsUUFBUSxFQUFnQixNQUFNLG9CQUFvQixDQUFDOzs7QUFHNUQsTUFBTSxPQUFPLGdCQUFnQjtJQUN6QixNQUFNLENBQUMsV0FBVyxDQUFDLE1BQXFCLEVBQUUsSUFBWTtRQUNsRCxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1QsSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ2YsS0FBSyxNQUFNLElBQUksSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQzlCLElBQUksSUFBSSxDQUFDLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQzt3QkFDbEIsT0FBTyxJQUFJLENBQUM7b0JBQ2hCLENBQUM7Z0JBQ0wsQ0FBQztZQUNMLENBQUM7WUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLG9DQUFvQyxHQUFHLElBQUksR0FBRywwQkFBMEIsQ0FBQyxDQUFDO1FBQzVGLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBQ0QsTUFBTSxDQUFDLFVBQVUsQ0FBQyxTQUEyQixFQUFFLE1BQVcsRUFBRSxJQUFZO1FBQ3BFLElBQUksT0FBTyxHQUFlLEVBQUUsQ0FBQztRQUM3QixJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1QsS0FBSyxNQUFNLElBQUksSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQzlCLElBQUksSUFBSSxDQUFDLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQztvQkFDbkIsS0FB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LENBQUMsRUFBTyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFDekMsQ0FBQztnQkFDQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pCLENBQUM7UUFDTCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQzs4R0F4S1EsZ0JBQWdCO2tIQUFoQixnQkFBZ0I7OzJGQUFoQixnQkFBZ0I7a0JBRDVCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge1xuICAgIEF1dGhlbnRpY2F0aW9uU2VydmljZSxcbiAgICBNZHNEZWZpbml0aW9uLFxuICAgIE1kc1NvcnQsXG4gICAgTWRzV2lkZ2V0LFxuICAgIFJlc3RDb25zdGFudHMsXG4gICAgU29ydCxcbn0gZnJvbSAnbmd4LWVkdS1zaGFyaW5nLWFwaSc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMaXN0SXRlbSwgTGlzdEl0ZW1UeXBlIH0gZnJvbSAnLi4vdHlwZXMvbGlzdC1pdGVtJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE1kc0hlbHBlclNlcnZpY2Uge1xuICAgIHN0YXRpYyBnZXRTb3J0SW5mbyhtZHNTZXQ6IE1kc0RlZmluaXRpb24sIG5hbWU6IHN0cmluZyk6IE1kc1NvcnQge1xuICAgICAgICBpZiAobWRzU2V0KSB7XG4gICAgICAgICAgICBpZiAobWRzU2V0LnNvcnRzKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBsaXN0IG9mIG1kc1NldC5zb3J0cykge1xuICAgICAgICAgICAgICAgICAgICBpZiAobGlzdC5pZCA9PSBuYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbGlzdDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ21kcyBkb2VzIG5vdCBkZWZpbmUgc29ydCBpbmZvIGZvciAnICsgbmFtZSArICcsIGludmFsaWQgY29uZmlndXJhdGlvbiEnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgc3RhdGljIGdldENvbHVtbnModHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLCBtZHNTZXQ6IGFueSwgbmFtZTogc3RyaW5nKSB7XG4gICAgICAgIGxldCBjb2x1bW5zOiBMaXN0SXRlbVtdID0gW107XG4gICAgICAgIGlmIChtZHNTZXQpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgbGlzdCBvZiBtZHNTZXQubGlzdHMpIHtcbiAgICAgICAgICAgICAgICBpZiAobGlzdC5pZCA9PT0gbmFtZSkge1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGNvbHVtbiBvZiBsaXN0LmNvbHVtbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0eXBlOiBMaXN0SXRlbVR5cGUgPSAnTk9ERSc7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobmFtZSA9PT0gJ21lZGlhY2VudGVyR3JvdXBzJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnR1JPVVAnO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChuYW1lID09PSAnc2VhcmNoQ29sbGVjdGlvbnMnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdDT0xMRUNUSU9OJztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGluIHRoaXMgY2FzZSwgdGhlIHR5cGUgaXMgaW5jbHVkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb2x1bW4uaWQuaW5jbHVkZXMoJy4nKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNwbGl0ID0gY29sdW1uLmlkLnNwbGl0KCcuJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9IHNwbGl0WzBdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbi5pZCA9IHNwbGl0WzFdO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaXRlbSA9IG5ldyBMaXN0SXRlbSh0eXBlLCBjb2x1bW4uaWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5mb3JtYXQgPSBjb2x1bW4uZm9ybWF0O1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1ucy5wdXNoKGl0ZW0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoIWNvbHVtbnMubGVuZ3RoKSB7XG4gICAgICAgICAgICBpZiAobWRzU2V0ICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgICAgICAgICAnbWRzIGRvZXMgbm90IGRlZmluZSBjb2x1bW5zIGZvciAnICsgbmFtZSArICcsIGludmFsaWQgY29uZmlndXJhdGlvbiEnLFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobmFtZSA9PT0gJ3NlYXJjaCcgfHwgbmFtZSA9PT0gJ2NvbGxlY3Rpb25SZWZlcmVuY2VzJykge1xuICAgICAgICAgICAgICAgIGNvbHVtbnMucHVzaChuZXcgTGlzdEl0ZW0oJ05PREUnLCBSZXN0Q29uc3RhbnRzLkxPTV9QUk9QX1RJVExFKSk7XG4gICAgICAgICAgICAgICAgY29sdW1ucy5wdXNoKG5ldyBMaXN0SXRlbSgnTk9ERScsIFJlc3RDb25zdGFudHMuQ01fTU9ESUZJRURfREFURSkpO1xuICAgICAgICAgICAgICAgIGNvbHVtbnMucHVzaChuZXcgTGlzdEl0ZW0oJ05PREUnLCBSZXN0Q29uc3RhbnRzLkNDTV9QUk9QX0xJQ0VOU0UpKTtcbiAgICAgICAgICAgICAgICBjb2x1bW5zLnB1c2gobmV3IExpc3RJdGVtKCdOT0RFJywgUmVzdENvbnN0YW50cy5DQ01fUFJPUF9SRVBMSUNBVElPTlNPVVJDRSkpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChuYW1lID09PSAnbWVkaWFjZW50ZXJNYW5hZ2VkJykge1xuICAgICAgICAgICAgICAgIGNvbHVtbnMucHVzaChuZXcgTGlzdEl0ZW0oJ05PREUnLCBSZXN0Q29uc3RhbnRzLkxPTV9QUk9QX1RJVExFKSk7XG4gICAgICAgICAgICAgICAgY29sdW1ucy5wdXNoKG5ldyBMaXN0SXRlbSgnTk9ERScsIFJlc3RDb25zdGFudHMuQ0NNX1BST1BfUkVQTElDQVRJT05TT1VSQ0VJRCkpO1xuICAgICAgICAgICAgICAgIGNvbHVtbnMucHVzaChuZXcgTGlzdEl0ZW0oJ05PREUnLCBSZXN0Q29uc3RhbnRzLkNDTV9QUk9QX1JFUExJQ0FUSU9OU09VUkNFKSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG5hbWUgPT09ICdtZWRpYWNlbnRlckdyb3VwcycpIHtcbiAgICAgICAgICAgICAgICBjb2x1bW5zLnB1c2gobmV3IExpc3RJdGVtKCdHUk9VUCcsIFJlc3RDb25zdGFudHMuQVVUSE9SSVRZX0RJU1BMQVlOQU1FKSk7XG4gICAgICAgICAgICAgICAgY29sdW1ucy5wdXNoKG5ldyBMaXN0SXRlbSgnR1JPVVAnLCBSZXN0Q29uc3RhbnRzLkFVVEhPUklUWV9HUk9VUFRZUEUpKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobmFtZSA9PT0gJ3NlYXJjaENvbGxlY3Rpb25zJykge1xuICAgICAgICAgICAgICAgIGNvbHVtbnMucHVzaChuZXcgTGlzdEl0ZW0oJ0NPTExFQ1RJT04nLCAndGl0bGUnKSk7XG4gICAgICAgICAgICAgICAgY29sdW1ucy5wdXNoKG5ldyBMaXN0SXRlbSgnQ09MTEVDVElPTicsICdpbmZvJykpO1xuICAgICAgICAgICAgICAgIGNvbHVtbnMucHVzaChuZXcgTGlzdEl0ZW0oJ0NPTExFQ1RJT04nLCAnc2NvcGUnKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29sdW1ucy5tYXAoKGMpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGtleSA9IGMudHlwZSArICcuJyArIGMubmFtZTtcbiAgICAgICAgICAgIGlmIChjLnR5cGUgPT09ICdOT0RFJyAmJiB0cmFuc2xhdGUuaW5zdGFudChrZXkpID09PSBrZXkpIHtcbiAgICAgICAgICAgICAgICBjLmxhYmVsID0gbWRzU2V0LndpZGdldHMuZmlsdGVyKCh3OiBhbnkpID0+IHcuaWQgPT09IGMubmFtZSk/LlswXT8uY2FwdGlvbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBjO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGNvbHVtbnM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRmluZHMgdGhlIGFwcHJvcHJpYXRlIHdpZGdldCB3aXRoIHRoZSBpZCwgYnV0IHdpbGwgbm90IGNoZWNrIGFueSB3aWRnZXQgY29uZGl0aW9uc1xuICAgICAqIEBwYXJhbSBjaWRcbiAgICAgKiBAcGFyYW0gdGVtcGxhdGVcbiAgICAgKiBAcGFyYW0gd2lkZ2V0c1xuICAgICAqL1xuICAgIHN0YXRpYyBnZXRXaWRnZXQoY2lkOiBzdHJpbmcsIHRlbXBsYXRlOiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsLCB3aWRnZXRzOiBNZHNXaWRnZXRbXSkge1xuICAgICAgICBpZiAod2lkZ2V0cyA9PSBudWxsKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ0NvdWxkIG5vdCBpdGVyYXRlIHdpZGdldCAnICsgY2lkICsgJzogbm8gd2lkZ2V0cyBkYXRhIHByb3ZpZGVkJyk7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGxldCB3IG9mIHdpZGdldHMpIHtcbiAgICAgICAgICAgIGlmICh3LmlkID09IGNpZCkge1xuICAgICAgICAgICAgICAgIGlmICh0ZW1wbGF0ZSA9PT0gdW5kZWZpbmVkIHx8IHcudGVtcGxhdGUgPT09IHRlbXBsYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB3O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGF1dGhlbnRpY2F0aW9uOiBBdXRoZW50aWNhdGlvblNlcnZpY2UpIHt9XG5cbiAgICAvKipcbiAgICAgKiBTYW1lIGFzIGdldFdpZGdldCwgYnV0IHdpbGwgYWxzbyBjaGVjayB0aGUgd2lkZ2V0IGNvbmRpdGlvbnNcbiAgICAgKiBAcGFyYW0gY29ubmVjdG9yXG4gICAgICogQHBhcmFtIHByb3BlcnRpZXNcbiAgICAgKiBAcGFyYW0gaWRcbiAgICAgKiBAcGFyYW0gdGVtcGxhdGVcbiAgICAgKiBAcGFyYW0gd2lkZ2V0c1xuICAgICAqL1xuICAgIGFzeW5jIGdldFdpZGdldFdpdGhDb25kaXRpb24oXG4gICAgICAgIHByb3BlcnRpZXM6IGFueSxcbiAgICAgICAgaWQ6IHN0cmluZyxcbiAgICAgICAgdGVtcGxhdGU6IHN0cmluZyA9IG51bGwsXG4gICAgICAgIHdpZGdldHM6IGFueSxcbiAgICApIHtcbiAgICAgICAgZm9yIChsZXQgdyBvZiB3aWRnZXRzKSB7XG4gICAgICAgICAgICBpZiAody5pZCA9PSBpZCkge1xuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgKHRlbXBsYXRlID09IG51bGwgfHwgdy50ZW1wbGF0ZSA9PSB0ZW1wbGF0ZSkgJiZcbiAgICAgICAgICAgICAgICAgICAgKGF3YWl0IHRoaXMuaXNXaWRnZXRDb25kaXRpb25UcnVlKHcsIHByb3BlcnRpZXMpKVxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgYXN5bmMgaXNXaWRnZXRDb25kaXRpb25UcnVlKHdpZGdldDogYW55LCBwcm9wZXJ0aWVzOiBhbnkpIHtcbiAgICAgICAgaWYgKCF3aWRnZXQuY29uZGl0aW9uKSByZXR1cm4gdHJ1ZTtcbiAgICAgICAgbGV0IGNvbmRpdGlvbiA9IHdpZGdldC5jb25kaXRpb247XG4gICAgICAgIGlmIChjb25kaXRpb24udHlwZSA9PSAnUFJPUEVSVFknICYmIHByb3BlcnRpZXMpIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAoIXByb3BlcnRpZXNbY29uZGl0aW9uLnZhbHVlXSAmJiAhY29uZGl0aW9uLm5lZ2F0ZSkgfHxcbiAgICAgICAgICAgICAgICAocHJvcGVydGllc1tjb25kaXRpb24udmFsdWVdICYmIGNvbmRpdGlvbi5uZWdhdGUpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbmRpdGlvbi50eXBlID09ICdUT09MUEVSTUlTU0lPTicpIHtcbiAgICAgICAgICAgIGxldCB0cCA9IGF3YWl0IHRoaXMuYXV0aGVudGljYXRpb24uaGFzVG9vbHBlcm1pc3Npb24oY29uZGl0aW9uLnZhbHVlKTtcbiAgICAgICAgICAgIGlmICh0cCA9PSBjb25kaXRpb24ubmVnYXRlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBGaW5kIGEgdGVtcGxhdGUgYnkgaWQgaW4gdGhlIGdpdmVuIG1kc1xuICAgICAqL1xuICAgIHN0YXRpYyBmaW5kVGVtcGxhdGUobWRzOiBNZHNEZWZpbml0aW9uLCBpZDogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBtZHMudmlld3MgYXMgQXJyYXk8XG4gICAgICAgICAgICAgICAgQXJyYXlFbGVtZW50PE1kc0RlZmluaXRpb25bJ3ZpZXdzJ10+IHwgQXJyYXlFbGVtZW50PE1kc0RlZmluaXRpb25bJ3ZpZXdzJ10+XG4gICAgICAgICAgICA+XG4gICAgICAgICkuZmluZCgodikgPT4gdi5pZCA9PT0gaWQpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGFsbCB3aWRnZXRzIHVzZWQgYnkgdGhlIGdpdmVuIHRlbXBsYXRlXG4gICAgICovXG4gICAgc3RhdGljIGdldFVzZWRXaWRnZXRzKG1kczogTWRzRGVmaW5pdGlvbiwgdGVtcGxhdGU6IHN0cmluZyA9IG51bGwpOiBhbnlbXSB7XG4gICAgICAgIGNvbnN0IHVzZWQ6IGFueSA9IFtdO1xuICAgICAgICBjb25zdCB0ZW1wbGF0ZURhdGEgPSBNZHNIZWxwZXJTZXJ2aWNlLmZpbmRUZW1wbGF0ZShtZHMsIHRlbXBsYXRlKTtcbiAgICAgICAgZm9yIChjb25zdCB3IG9mIG1kcy53aWRnZXRzKSB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgdGVtcGxhdGVEYXRhLmh0bWwuaW5kZXhPZignPCcgKyB3LmlkKSAhPT0gLTEgJiZcbiAgICAgICAgICAgICAgICAhdXNlZC5maW5kKCh3MjogYW55KSA9PiB3Mi5pZCA9PT0gdy5pZClcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHVzZWQucHVzaCh3KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdXNlZDtcbiAgICB9XG59XG5cbnR5cGUgQXJyYXlFbGVtZW50PEFycmF5VHlwZSBleHRlbmRzIHJlYWRvbmx5IHVua25vd25bXT4gPVxuICAgIEFycmF5VHlwZSBleHRlbmRzIHJlYWRvbmx5IChpbmZlciBFbGVtZW50VHlwZSlbXSA/IEVsZW1lbnRUeXBlIDogbmV2ZXI7XG4iXX0=
@@ -0,0 +1,16 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { MdsHelperService } from './mds-helper.service';
3
+ import * as i0 from "@angular/core";
4
+ export class MdsModule {
5
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: MdsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
6
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.2", ngImport: i0, type: MdsModule }); }
7
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: MdsModule, providers: [MdsHelperService] }); }
8
+ }
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: MdsModule, decorators: [{
10
+ type: NgModule,
11
+ args: [{
12
+ declarations: [],
13
+ providers: [MdsHelperService],
14
+ }]
15
+ }] });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWRzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VkdS1zaGFyaW5nLXVpL3NyYy9saWIvbWRzL21kcy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFNeEQsTUFBTSxPQUFPLFNBQVM7OEdBQVQsU0FBUzsrR0FBVCxTQUFTOytHQUFULFNBQVMsYUFGUCxDQUFDLGdCQUFnQixDQUFDOzsyRkFFcEIsU0FBUztrQkFKckIsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUUsRUFBRTtvQkFDaEIsU0FBUyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7aUJBQ2hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1kc0hlbHBlclNlcnZpY2UgfSBmcm9tICcuL21kcy1oZWxwZXIuc2VydmljZSc7XG5cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbXSxcbiAgICBwcm92aWRlcnM6IFtNZHNIZWxwZXJTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgTWRzTW9kdWxlIHt9XG4iXX0=
@@ -5,10 +5,10 @@ import * as i2 from "../../list-items/list-text/list-text.component";
5
5
  import * as i3 from "@angular/material/badge";
6
6
  import * as i4 from "../../pipes/node-icon.pipe";
7
7
  export class DragPreviewComponent {
8
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: DragPreviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.6", type: DragPreviewComponent, selector: "es-drag-preview", inputs: { node: "node", selected: "selected", item: "item" }, ngImport: i0, template: "<div class=\"drag-preview\" [matBadge]=\"selected.length > 1 ? selected.length : null\">\n <div class=\"drag-preview-icon\">\n <img *ngIf=\"node.iconURL\" [src]=\"node | esNodeIcon\" />\n </div>\n <es-list-text class=\"drag-preview-text\" [node]=\"node\" [item]=\"item\"></es-list-text>\n</div>\n", styles: [".drag-preview{display:flex;align-items:center;gap:16px;height:48px;padding:0 12px;background-color:var(--palette-primary-50)}.drag-preview-icon{width:30px;height:30px;padding:3px;margin:1px 0;background-color:#fff;border-radius:50%;display:flex;justify-content:center;align-items:center;box-shadow:0 0 3px #0000004d}.drag-preview-icon>img{width:18px;height:auto}.drag-preview-text{max-width:300px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.ListTextComponent, selector: "es-list-text" }, { kind: "directive", type: i3.MatBadge, selector: "[matBadge]", inputs: ["matBadgeDisabled", "matBadgeColor", "matBadgeOverlap", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "pipe", type: i4.NodeIconPipe, name: "esNodeIcon" }] }); }
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: DragPreviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: DragPreviewComponent, selector: "es-drag-preview", inputs: { node: "node", selected: "selected", item: "item" }, ngImport: i0, template: "<div class=\"drag-preview\" [matBadge]=\"selected.length > 1 ? selected.length : null\">\n <div class=\"drag-preview-icon\">\n <img *ngIf=\"node.iconURL\" [src]=\"node | esNodeIcon\" />\n </div>\n <es-list-text class=\"drag-preview-text\" [node]=\"node\" [item]=\"item\"></es-list-text>\n</div>\n", styles: [".drag-preview{display:flex;align-items:center;gap:16px;height:48px;padding:0 12px;background-color:var(--palette-primary-50)}.drag-preview-icon{width:30px;height:30px;padding:3px;margin:1px 0;background-color:#fff;border-radius:50%;display:flex;justify-content:center;align-items:center;box-shadow:0 0 3px #0000004d}.drag-preview-icon>img{width:18px;height:auto}.drag-preview-text{max-width:300px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.ListTextComponent, selector: "es-list-text" }, { kind: "directive", type: i3.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "pipe", type: i4.NodeIconPipe, name: "esNodeIcon" }] }); }
10
10
  }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: DragPreviewComponent, decorators: [{
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: DragPreviewComponent, decorators: [{
12
12
  type: Component,
13
13
  args: [{ selector: 'es-drag-preview', template: "<div class=\"drag-preview\" [matBadge]=\"selected.length > 1 ? selected.length : null\">\n <div class=\"drag-preview-icon\">\n <img *ngIf=\"node.iconURL\" [src]=\"node | esNodeIcon\" />\n </div>\n <es-list-text class=\"drag-preview-text\" [node]=\"node\" [item]=\"item\"></es-list-text>\n</div>\n", styles: [".drag-preview{display:flex;align-items:center;gap:16px;height:48px;padding:0 12px;background-color:var(--palette-primary-50)}.drag-preview-icon{width:30px;height:30px;padding:3px;margin:1px 0;background-color:#fff;border-radius:50%;display:flex;justify-content:center;align-items:center;box-shadow:0 0 3px #0000004d}.drag-preview-icon>img{width:18px;height:auto}.drag-preview-text{max-width:300px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"] }]
14
14
  }], propDecorators: { node: [{
@@ -44,4 +44,4 @@ export class ItemsCap {
44
44
  return effectiveCap && originalData?.length > effectiveCap;
45
45
  }
46
46
  }
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbXMtY2FwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWR1LXNoYXJpbmctdWkvc3JjL2xpYi9ub2RlLWVudHJpZXMvaXRlbXMtY2FwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNELE1BQU0sT0FBTyxRQUFRO0lBQXJCO1FBUVksU0FBSSxHQUFHLElBQUksZUFBZSxDQUFnQixJQUFJLENBQUMsQ0FBQztRQVNoRCxjQUFTLEdBQUcsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFNdkMsdUJBQWtCLEdBQUcsS0FBSyxDQUFDO1FBRTNCLGtCQUFhLEdBQThCLElBQUk7YUFDbEQsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDMUMsSUFBSSxDQUNELEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUNqRCxvQkFBb0IsRUFBRSxDQUN6QixDQUFDO0lBbUJWLENBQUM7SUFoREcsOERBQThEO0lBQzlELElBQUksR0FBRztRQUNILE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQUNELElBQUksR0FBRyxDQUFDLEtBQW9CO1FBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBR0QsOENBQThDO0lBQzlDLElBQUksUUFBUTtRQUNSLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7SUFDaEMsQ0FBQztJQUNELElBQUksUUFBUSxDQUFDLEtBQWM7UUFDdkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUdELDJFQUEyRTtJQUMzRSxJQUFJLGlCQUFpQjtRQUNqQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNuQyxDQUFDO0lBVUQsT0FBTyxDQUFDLFVBQTJCO1FBQy9CLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQzVELEdBQUcsQ0FBQyxDQUFDLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxFQUFFLEVBQUU7WUFDakMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLENBQUM7WUFDOUQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFNBQVMsQ0FBQztZQUNwQyxJQUFJLFNBQVMsRUFBRTtnQkFDWCxPQUFPLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLFlBQVksQ0FBQyxDQUFDO2FBQzlDO2lCQUFNO2dCQUNILE9BQU8sWUFBWSxDQUFDO2FBQ3ZCO1FBQ0wsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNOLENBQUM7SUFFTyxVQUFVLENBQUMsWUFBMkIsRUFBRSxZQUFpQjtRQUM3RCxPQUFPLFlBQVksSUFBSSxZQUFZLEVBQUUsTUFBTSxHQUFHLFlBQVksQ0FBQztJQUMvRCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyByeGpzIGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5leHBvcnQgY2xhc3MgSXRlbXNDYXA8VD4ge1xuICAgIC8qKiBUaGUgbnVtYmVyIG9mIGl0ZW1zIHRvIHdoaWNoIHRoZSBkYXRhIHNob3VsZCBiZSBjYXBwZWQuICovXG4gICAgZ2V0IGNhcCgpOiBudW1iZXIgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NhcC52YWx1ZTtcbiAgICB9XG4gICAgc2V0IGNhcCh2YWx1ZTogbnVtYmVyIHwgbnVsbCkge1xuICAgICAgICB0aGlzLl9jYXAubmV4dCh2YWx1ZSA/PyBudWxsKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfY2FwID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXIgfCBudWxsPihudWxsKTtcblxuICAgIC8qKiBXaGV0aGVyIHRvIHRlbXBvcmFyaWx5IGRpc2FibGUgY2FwcGluZy4gKi9cbiAgICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZC52YWx1ZTtcbiAgICB9XG4gICAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2Rpc2FibGVkLm5leHQodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9kaXNhYmxlZCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlcmUgaXMgbW9yZSBkYXRhIGF2YWlsYWJsZSB0aGF0IGlzIGN1cnJlbnRseSBiZWluZyBjYXBwZWQuICovXG4gICAgZ2V0IGlzQWN0aXZlbHlDYXBwaW5nKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNBY3RpdmVseUNhcHBpbmc7XG4gICAgfVxuICAgIHByaXZhdGUgX2lzQWN0aXZlbHlDYXBwaW5nID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIF9lZmZlY3RpdmVDYXA6IE9ic2VydmFibGU8bnVtYmVyIHwgbnVsbD4gPSByeGpzXG4gICAgICAgIC5jb21iaW5lTGF0ZXN0KFt0aGlzLl9jYXAsIHRoaXMuX2Rpc2FibGVkXSlcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBtYXAoKFtjYXAsIGRpc2FibGVkXSkgPT4gKGRpc2FibGVkID8gbnVsbCA6IGNhcCkpLFxuICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgKTtcblxuICAgIGNvbm5lY3QoZGF0YVN0cmVhbTogT2JzZXJ2YWJsZTxUW10+KTogT2JzZXJ2YWJsZTxUW10+IHtcbiAgICAgICAgcmV0dXJuIHJ4anMuY29tYmluZUxhdGVzdChbdGhpcy5fZWZmZWN0aXZlQ2FwLCBkYXRhU3RyZWFtXSkucGlwZShcbiAgICAgICAgICAgIG1hcCgoW2VmZmVjdGl2ZUNhcCwgb3JpZ2luYWxEYXRhXSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5lZWRUb0NhcCA9IHRoaXMuX25lZWRUb0NhcChlZmZlY3RpdmVDYXAsIG9yaWdpbmFsRGF0YSk7XG4gICAgICAgICAgICAgICAgdGhpcy5faXNBY3RpdmVseUNhcHBpbmcgPSBuZWVkVG9DYXA7XG4gICAgICAgICAgICAgICAgaWYgKG5lZWRUb0NhcCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3JpZ2luYWxEYXRhLnNsaWNlKDAsIGVmZmVjdGl2ZUNhcCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9yaWdpbmFsRGF0YTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9uZWVkVG9DYXAoZWZmZWN0aXZlQ2FwOiBudW1iZXIgfCBudWxsLCBvcmlnaW5hbERhdGE6IFRbXSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gZWZmZWN0aXZlQ2FwICYmIG9yaWdpbmFsRGF0YT8ubGVuZ3RoID4gZWZmZWN0aXZlQ2FwO1xuICAgIH1cbn1cbiJdfQ==
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbXMtY2FwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWR1LXNoYXJpbmctdWkvc3JjL2xpYi9ub2RlLWVudHJpZXMvaXRlbXMtY2FwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNELE1BQU0sT0FBTyxRQUFRO0lBQXJCO1FBUVksU0FBSSxHQUFHLElBQUksZUFBZSxDQUFnQixJQUFJLENBQUMsQ0FBQztRQVNoRCxjQUFTLEdBQUcsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFNdkMsdUJBQWtCLEdBQUcsS0FBSyxDQUFDO1FBRTNCLGtCQUFhLEdBQThCLElBQUk7YUFDbEQsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDMUMsSUFBSSxDQUNELEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUNqRCxvQkFBb0IsRUFBRSxDQUN6QixDQUFDO0lBbUJWLENBQUM7SUFoREcsOERBQThEO0lBQzlELElBQUksR0FBRztRQUNILE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQUNELElBQUksR0FBRyxDQUFDLEtBQW9CO1FBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBR0QsOENBQThDO0lBQzlDLElBQUksUUFBUTtRQUNSLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7SUFDaEMsQ0FBQztJQUNELElBQUksUUFBUSxDQUFDLEtBQWM7UUFDdkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUdELDJFQUEyRTtJQUMzRSxJQUFJLGlCQUFpQjtRQUNqQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNuQyxDQUFDO0lBVUQsT0FBTyxDQUFDLFVBQTJCO1FBQy9CLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQzVELEdBQUcsQ0FBQyxDQUFDLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxFQUFFLEVBQUU7WUFDakMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLENBQUM7WUFDOUQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFNBQVMsQ0FBQztZQUNwQyxJQUFJLFNBQVMsRUFBRSxDQUFDO2dCQUNaLE9BQU8sWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsWUFBWSxDQUFDLENBQUM7WUFDL0MsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLE9BQU8sWUFBWSxDQUFDO1lBQ3hCLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ04sQ0FBQztJQUVPLFVBQVUsQ0FBQyxZQUEyQixFQUFFLFlBQWlCO1FBQzdELE9BQU8sWUFBWSxJQUFJLFlBQVksRUFBRSxNQUFNLEdBQUcsWUFBWSxDQUFDO0lBQy9ELENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHJ4anMgZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBjbGFzcyBJdGVtc0NhcDxUPiB7XG4gICAgLyoqIFRoZSBudW1iZXIgb2YgaXRlbXMgdG8gd2hpY2ggdGhlIGRhdGEgc2hvdWxkIGJlIGNhcHBlZC4gKi9cbiAgICBnZXQgY2FwKCk6IG51bWJlciB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5fY2FwLnZhbHVlO1xuICAgIH1cbiAgICBzZXQgY2FwKHZhbHVlOiBudW1iZXIgfCBudWxsKSB7XG4gICAgICAgIHRoaXMuX2NhcC5uZXh0KHZhbHVlID8/IG51bGwpO1xuICAgIH1cbiAgICBwcml2YXRlIF9jYXAgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlciB8IG51bGw+KG51bGwpO1xuXG4gICAgLyoqIFdoZXRoZXIgdG8gdGVtcG9yYXJpbHkgZGlzYWJsZSBjYXBwaW5nLiAqL1xuICAgIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkLnZhbHVlO1xuICAgIH1cbiAgICBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fZGlzYWJsZWQubmV4dCh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2Rpc2FibGVkID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG5cbiAgICAvKiogV2hldGhlciB0aGVyZSBpcyBtb3JlIGRhdGEgYXZhaWxhYmxlIHRoYXQgaXMgY3VycmVudGx5IGJlaW5nIGNhcHBlZC4gKi9cbiAgICBnZXQgaXNBY3RpdmVseUNhcHBpbmcoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0FjdGl2ZWx5Q2FwcGluZztcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXNBY3RpdmVseUNhcHBpbmcgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgX2VmZmVjdGl2ZUNhcDogT2JzZXJ2YWJsZTxudW1iZXIgfCBudWxsPiA9IHJ4anNcbiAgICAgICAgLmNvbWJpbmVMYXRlc3QoW3RoaXMuX2NhcCwgdGhpcy5fZGlzYWJsZWRdKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1hcCgoW2NhcCwgZGlzYWJsZWRdKSA9PiAoZGlzYWJsZWQgPyBudWxsIDogY2FwKSksXG4gICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICApO1xuXG4gICAgY29ubmVjdChkYXRhU3RyZWFtOiBPYnNlcnZhYmxlPFRbXT4pOiBPYnNlcnZhYmxlPFRbXT4ge1xuICAgICAgICByZXR1cm4gcnhqcy5jb21iaW5lTGF0ZXN0KFt0aGlzLl9lZmZlY3RpdmVDYXAsIGRhdGFTdHJlYW1dKS5waXBlKFxuICAgICAgICAgICAgbWFwKChbZWZmZWN0aXZlQ2FwLCBvcmlnaW5hbERhdGFdKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbmVlZFRvQ2FwID0gdGhpcy5fbmVlZFRvQ2FwKGVmZmVjdGl2ZUNhcCwgb3JpZ2luYWxEYXRhKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9pc0FjdGl2ZWx5Q2FwcGluZyA9IG5lZWRUb0NhcDtcbiAgICAgICAgICAgICAgICBpZiAobmVlZFRvQ2FwKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvcmlnaW5hbERhdGEuc2xpY2UoMCwgZWZmZWN0aXZlQ2FwKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3JpZ2luYWxEYXRhO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgX25lZWRUb0NhcChlZmZlY3RpdmVDYXA6IG51bWJlciB8IG51bGwsIG9yaWdpbmFsRGF0YTogVFtdKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBlZmZlY3RpdmVDYXAgJiYgb3JpZ2luYWxEYXRhPy5sZW5ndGggPiBlZmZlY3RpdmVDYXA7XG4gICAgfVxufVxuIl19
@@ -24,11 +24,11 @@ export class ListItemLabelPipe {
24
24
  });
25
25
  }
26
26
  }
27
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: ListItemLabelPipe, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe }); }
28
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.6", ngImport: i0, type: ListItemLabelPipe, name: "esListItemLabel" }); }
27
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ListItemLabelPipe, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe }); }
28
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.0.2", ngImport: i0, type: ListItemLabelPipe, name: "esListItemLabel" }); }
29
29
  }
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: ListItemLabelPipe, decorators: [{
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ListItemLabelPipe, decorators: [{
31
31
  type: Pipe,
32
32
  args: [{ name: 'esListItemLabel' }]
33
- }], ctorParameters: function () { return [{ type: i1.TranslateService }]; } });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1pdGVtLWxhYmVsLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lZHUtc2hhcmluZy11aS9zcmMvbGliL25vZGUtZW50cmllcy9saXN0LWl0ZW0tbGFiZWwucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUVwRCxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQzs7O0FBSzdCLE1BQU0sT0FBTyxpQkFBaUI7SUFDMUIsWUFBb0IsU0FBMkI7UUFBM0IsY0FBUyxHQUFULFNBQVMsQ0FBa0I7SUFBRyxDQUFDO0lBRW5ELFNBQVMsQ0FBQyxJQUFjLEVBQUUsSUFBSSxHQUFHLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUU7UUFDcEQsTUFBTSxPQUFPLEdBQUc7WUFDWixJQUFJLEVBQUUsTUFBTTtZQUNaLFVBQVUsRUFBRSxNQUFNO1lBQ2xCLGFBQWEsRUFBRSxlQUFlO1lBQzlCLEdBQUcsRUFBRSxLQUFLO1lBQ1YsS0FBSyxFQUFFLE9BQU87WUFDZCxJQUFJLEVBQUUsTUFBTTtTQUNmLENBQUM7UUFDRixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDWixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzlCO2FBQU07WUFDSCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUU7Z0JBQzVELFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTthQUMxQixDQUFDLENBQUM7U0FDTjtJQUNMLENBQUM7OEdBbkJRLGlCQUFpQjs0R0FBakIsaUJBQWlCOzsyRkFBakIsaUJBQWlCO2tCQUQ3QixJQUFJO21CQUFDLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0ICogYXMgcnhqcyBmcm9tICdyeGpzJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IExpc3RJdGVtIH0gZnJvbSAnLi4vdHlwZXMvbGlzdC1pdGVtJztcblxuQFBpcGUoeyBuYW1lOiAnZXNMaXN0SXRlbUxhYmVsJyB9KVxuZXhwb3J0IGNsYXNzIExpc3RJdGVtTGFiZWxQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpIHt9XG5cbiAgICB0cmFuc2Zvcm0oaXRlbTogTGlzdEl0ZW0sIGFyZ3MgPSB7IGZhbGxiYWNrOiBpdGVtLm5hbWUgfSk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIGNvbnN0IG1hcHBpbmcgPSB7XG4gICAgICAgICAgICBOT0RFOiAnTk9ERScsXG4gICAgICAgICAgICBDT0xMRUNUSU9OOiAnTk9ERScsXG4gICAgICAgICAgICBOT0RFX1BST1BPU0FMOiAnTk9ERV9QUk9QT1NBTCcsXG4gICAgICAgICAgICBPUkc6ICdPUkcnLFxuICAgICAgICAgICAgR1JPVVA6ICdHUk9VUCcsXG4gICAgICAgICAgICBVU0VSOiAnVVNFUicsXG4gICAgICAgIH07XG4gICAgICAgIGlmIChpdGVtLmxhYmVsKSB7XG4gICAgICAgICAgICByZXR1cm4gcnhqcy5vZihpdGVtLmxhYmVsKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5nZXQobWFwcGluZ1tpdGVtLnR5cGVdICsgJy4nICsgaXRlbS5uYW1lLCB7XG4gICAgICAgICAgICAgICAgZmFsbGJhY2s6IGFyZ3MuZmFsbGJhY2ssXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
33
+ }], ctorParameters: () => [{ type: i1.TranslateService }] });
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1pdGVtLWxhYmVsLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lZHUtc2hhcmluZy11aS9zcmMvbGliL25vZGUtZW50cmllcy9saXN0LWl0ZW0tbGFiZWwucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUVwRCxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQzs7O0FBSzdCLE1BQU0sT0FBTyxpQkFBaUI7SUFDMUIsWUFBb0IsU0FBMkI7UUFBM0IsY0FBUyxHQUFULFNBQVMsQ0FBa0I7SUFBRyxDQUFDO0lBRW5ELFNBQVMsQ0FBQyxJQUFjLEVBQUUsSUFBSSxHQUFHLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUU7UUFDcEQsTUFBTSxPQUFPLEdBQUc7WUFDWixJQUFJLEVBQUUsTUFBTTtZQUNaLFVBQVUsRUFBRSxNQUFNO1lBQ2xCLGFBQWEsRUFBRSxlQUFlO1lBQzlCLEdBQUcsRUFBRSxLQUFLO1lBQ1YsS0FBSyxFQUFFLE9BQU87WUFDZCxJQUFJLEVBQUUsTUFBTTtTQUNmLENBQUM7UUFDRixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNiLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0IsQ0FBQzthQUFNLENBQUM7WUFDSixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUU7Z0JBQzVELFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTthQUMxQixDQUFDLENBQUM7UUFDUCxDQUFDO0lBQ0wsQ0FBQzs4R0FuQlEsaUJBQWlCOzRHQUFqQixpQkFBaUI7OzJGQUFqQixpQkFBaUI7a0JBRDdCLElBQUk7bUJBQUMsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgKiBhcyByeGpzIGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTGlzdEl0ZW0gfSBmcm9tICcuLi90eXBlcy9saXN0LWl0ZW0nO1xuXG5AUGlwZSh7IG5hbWU6ICdlc0xpc3RJdGVtTGFiZWwnIH0pXG5leHBvcnQgY2xhc3MgTGlzdEl0ZW1MYWJlbFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSkge31cblxuICAgIHRyYW5zZm9ybShpdGVtOiBMaXN0SXRlbSwgYXJncyA9IHsgZmFsbGJhY2s6IGl0ZW0ubmFtZSB9KTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICAgICAgY29uc3QgbWFwcGluZyA9IHtcbiAgICAgICAgICAgIE5PREU6ICdOT0RFJyxcbiAgICAgICAgICAgIENPTExFQ1RJT046ICdOT0RFJyxcbiAgICAgICAgICAgIE5PREVfUFJPUE9TQUw6ICdOT0RFX1BST1BPU0FMJyxcbiAgICAgICAgICAgIE9SRzogJ09SRycsXG4gICAgICAgICAgICBHUk9VUDogJ0dST1VQJyxcbiAgICAgICAgICAgIFVTRVI6ICdVU0VSJyxcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKGl0ZW0ubGFiZWwpIHtcbiAgICAgICAgICAgIHJldHVybiByeGpzLm9mKGl0ZW0ubGFiZWwpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmdldChtYXBwaW5nW2l0ZW0udHlwZV0gKyAnLicgKyBpdGVtLm5hbWUsIHtcbiAgICAgICAgICAgICAgICBmYWxsYmFjazogYXJncy5mYWxsYmFjayxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -70,4 +70,4 @@ export class NodeCache {
70
70
  };
71
71
  }
72
72
  }
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1jYWNoZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VkdS1zaGFyaW5nLXVpL3NyYy9saWIvbm9kZS1lbnRyaWVzL25vZGUtY2FjaGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBVzVDLE1BQU0sT0FBTyxTQUFTO0lBQXRCO1FBQ1ksWUFBTyxHQUFpQyxFQUFFLENBQUM7SUFtRnZELENBQUM7SUFqRkcsR0FBRyxDQUFDLEtBQXdCO1FBQ3hCLElBQUksS0FBSyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsVUFBVSxLQUFLLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ3pELE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXVDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1NBQ3BGO1FBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQsS0FBSztRQUNELElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxHQUFHLENBQUMsS0FBcUI7UUFDckIsS0FBSyxNQUFNLEtBQUssSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQzlCLElBQUksS0FBSyxDQUFDLFVBQVUsSUFBSSxLQUFLLENBQUMsVUFBVSxJQUFJLEtBQUssQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRTtnQkFDMUUsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FDbkIsS0FBSyxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsVUFBVSxFQUNuQyxLQUFLLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxVQUFVLENB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QyxHQUFzQixFQUFFLEdBQXNCO1FBQ3pELE9BQU87WUFDSCxVQUFVLEVBQUUsR0FBRyxDQUFDLFVBQVU7WUFDMUIsUUFBUSxFQUFFLEdBQUcsQ0FBQyxRQUFRO1lBQ3RCLElBQUksRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLElBQUksRUFBRSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ3hFLENBQUM7SUFDTixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBub3ROdWxsIH0gZnJvbSAnLi4vdXRpbC9mdW5jdGlvbnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5vZGVDYWNoZVJhbmdlIHtcbiAgICBzdGFydEluZGV4OiBudW1iZXI7XG4gICAgZW5kSW5kZXg6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOb2RlQ2FjaGVTbGljZTxUPiBleHRlbmRzIE5vZGVDYWNoZVJhbmdlIHtcbiAgICBkYXRhOiByZWFkb25seSBUW107XG59XG5cbmV4cG9ydCBjbGFzcyBOb2RlQ2FjaGU8VD4ge1xuICAgIHByaXZhdGUgX3NsaWNlczogcmVhZG9ubHkgTm9kZUNhY2hlU2xpY2U8VD5bXSA9IFtdO1xuXG4gICAgYWRkKHNsaWNlOiBOb2RlQ2FjaGVTbGljZTxUPik6IHZvaWQge1xuICAgICAgICBpZiAoc2xpY2UuZW5kSW5kZXggLSBzbGljZS5zdGFydEluZGV4ICE9PSBzbGljZS5kYXRhLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdUcmllZCB0byBhZGQgaW52YWxpZCBzbGljZSB0byBjYWNoZTogJyArIEpTT04uc3RyaW5naWZ5KHNsaWNlKSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fc2xpY2VzID0gdGhpcy5fbm9ybWFsaXplU2xpY2VzKFsuLi50aGlzLl9zbGljZXMsIHNsaWNlXSk7XG4gICAgfVxuXG4gICAgY2xlYXIoKSB7XG4gICAgICAgIHRoaXMuX3NsaWNlcyA9IFtdO1xuICAgIH1cblxuICAgIGdldChyYW5nZTogTm9kZUNhY2hlUmFuZ2UpOiBUW10gfCBudWxsIHtcbiAgICAgICAgZm9yIChjb25zdCBzbGljZSBvZiB0aGlzLl9zbGljZXMpIHtcbiAgICAgICAgICAgIGlmIChzbGljZS5zdGFydEluZGV4IDw9IHJhbmdlLnN0YXJ0SW5kZXggJiYgc2xpY2UuZW5kSW5kZXggPj0gcmFuZ2UuZW5kSW5kZXgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc2xpY2UuZGF0YS5zbGljZShcbiAgICAgICAgICAgICAgICAgICAgcmFuZ2Uuc3RhcnRJbmRleCAtIHNsaWNlLnN0YXJ0SW5kZXgsXG4gICAgICAgICAgICAgICAgICAgIHJhbmdlLmVuZEluZGV4IC0gc2xpY2Uuc3RhcnRJbmRleCxcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIGZvciB0aGUgZmlyc3QgcmVxdWVzdFxuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAnUmVxdWVzdGVkIHJhbmdlIHdhcyBub3QgZm91bmQgaW4gdGhlIHNsaWNlcyBjYWNoZSwgZmFsbGluZyBiYWNrIHRvIGEgc21hbGxlciBzbGljZSAodGhlIGJhY2tlbmQgcmVzb2x2ZWQgdG9vIGxlc3MgZGF0YSknLFxuICAgICAgICAgICAgcmFuZ2UsXG4gICAgICAgICAgICB0aGlzLl9zbGljZXMsXG4gICAgICAgICk7XG4gICAgICAgIGZvciAoY29uc3Qgc2xpY2Ugb2YgdGhpcy5fc2xpY2VzKSB7XG4gICAgICAgICAgICBpZiAoc2xpY2Uuc3RhcnRJbmRleCA8PSByYW5nZS5zdGFydEluZGV4ICYmIHNsaWNlLmVuZEluZGV4ID49IHJhbmdlLnN0YXJ0SW5kZXgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc2xpY2UuZGF0YS5zbGljZShcbiAgICAgICAgICAgICAgICAgICAgcmFuZ2Uuc3RhcnRJbmRleCAtIHNsaWNlLnN0YXJ0SW5kZXgsXG4gICAgICAgICAgICAgICAgICAgIHJhbmdlLmVuZEluZGV4IC0gc2xpY2Uuc3RhcnRJbmRleCxcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0NvdWxkIG5vdCBmaW5kIGFueSBzbGljZSBmb3IgdGhlIHJhbmdlJywgcmFuZ2UsIHRoaXMuX3NsaWNlcyk7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGdldE1pc3NpbmdSYW5nZShyZXF1ZXN0ZWRSYW5nZTogTm9kZUNhY2hlUmFuZ2UpOiBOb2RlQ2FjaGVSYW5nZSB8IG51bGwge1xuICAgICAgICBsZXQgZnJvbUluZGV4ID0gcmVxdWVzdGVkUmFuZ2Uuc3RhcnRJbmRleDtcbiAgICAgICAgbGV0IHRvSW5kZXggPSByZXF1ZXN0ZWRSYW5nZS5lbmRJbmRleDtcbiAgICAgICAgZm9yIChjb25zdCBzbGljZSBvZiB0aGlzLl9zbGljZXMpIHtcbiAgICAgICAgICAgIGlmIChzbGljZS5zdGFydEluZGV4IDw9IGZyb21JbmRleCAmJiBzbGljZS5lbmRJbmRleCA+IGZyb21JbmRleCkge1xuICAgICAgICAgICAgICAgIGZyb21JbmRleCA9IHNsaWNlLmVuZEluZGV4O1xuICAgICAgICAgICAgfSBlbHNlIGlmIChzbGljZS5zdGFydEluZGV4IDwgdG9JbmRleCAmJiBzbGljZS5lbmRJbmRleCA+PSB0b0luZGV4KSB7XG4gICAgICAgICAgICAgICAgdG9JbmRleCA9IHNsaWNlLnN0YXJ0SW5kZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZnJvbUluZGV4ID49IHRvSW5kZXgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBzdGFydEluZGV4OiBmcm9tSW5kZXgsIGVuZEluZGV4OiB0b0luZGV4IH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfbm9ybWFsaXplU2xpY2VzKHNsaWNlczogTm9kZUNhY2hlU2xpY2U8VD5bXSk6IE5vZGVDYWNoZVNsaWNlPFQ+W10ge1xuICAgICAgICBzbGljZXMuc29ydCgobGhzLCByaHMpID0+IGxocy5zdGFydEluZGV4IC0gcmhzLnN0YXJ0SW5kZXgpO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNsaWNlcy5sZW5ndGggLSAxOyBpKyspIHtcbiAgICAgICAgICAgIGZvciAobGV0IGogPSBpICsgMTsgaiA8IHNsaWNlcy5sZW5ndGg7IGorKykge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLl9jYW5NZXJnZShzbGljZXNbaV0sIHNsaWNlc1tqXSkpIHtcbiAgICAgICAgICAgICAgICAgICAgc2xpY2VzW2ldID0gdGhpcy5fbWVyZ2Uoc2xpY2VzW2ldLCBzbGljZXNbal0pO1xuICAgICAgICAgICAgICAgICAgICBzbGljZXNbal0gPSBudWxsOyAvLyBNYXJrIGZvciBkZWxldGlvblxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc2xpY2VzLmZpbHRlcihub3ROdWxsKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9jYW5NZXJnZShsaHM6IE5vZGVDYWNoZVNsaWNlPFQ+LCByaHM6IE5vZGVDYWNoZVNsaWNlPFQ+KTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghbGhzIHx8ICFyaHMpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbGhzLmVuZEluZGV4ID49IHJocy5zdGFydEluZGV4O1xuICAgIH1cblxuICAgIHByaXZhdGUgX21lcmdlKGxoczogTm9kZUNhY2hlU2xpY2U8VD4sIHJoczogTm9kZUNhY2hlU2xpY2U8VD4pOiBOb2RlQ2FjaGVTbGljZTxUPiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzdGFydEluZGV4OiBsaHMuc3RhcnRJbmRleCxcbiAgICAgICAgICAgIGVuZEluZGV4OiByaHMuZW5kSW5kZXgsXG4gICAgICAgICAgICBkYXRhOiBbLi4ubGhzLmRhdGEsIC4uLnJocy5kYXRhLnNsaWNlKGxocy5lbmRJbmRleCAtIHJocy5zdGFydEluZGV4KV0sXG4gICAgICAgIH07XG4gICAgfVxufVxuIl19
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1jYWNoZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VkdS1zaGFyaW5nLXVpL3NyYy9saWIvbm9kZS1lbnRyaWVzL25vZGUtY2FjaGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBVzVDLE1BQU0sT0FBTyxTQUFTO0lBQXRCO1FBQ1ksWUFBTyxHQUFpQyxFQUFFLENBQUM7SUFtRnZELENBQUM7SUFqRkcsR0FBRyxDQUFDLEtBQXdCO1FBQ3hCLElBQUksS0FBSyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsVUFBVSxLQUFLLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDMUQsTUFBTSxJQUFJLEtBQUssQ0FBQyx1Q0FBdUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDckYsQ0FBQztRQUNELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVELEtBQUs7UUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsR0FBRyxDQUFDLEtBQXFCO1FBQ3JCLEtBQUssTUFBTSxLQUFLLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQy9CLElBQUksS0FBSyxDQUFDLFVBQVUsSUFBSSxLQUFLLENBQUMsVUFBVSxJQUFJLEtBQUssQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUMzRSxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUNuQixLQUFLLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxVQUFVLEVBQ25DLEtBQUssQ0FBQyxRQUFRLEdB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LElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNmLE9BQU8sS0FBSyxDQUFDO1FBQ2pCLENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQyxRQUFRLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQztJQUMxQyxDQUFDO0lBRU8sTUFBTSxDQUFDLEdBQXNCLEVBQUUsR0FBc0I7UUFDekQsT0FBTztZQUNILFVBQVUsRUFBRSxHQUFHLENBQUMsVUFBVTtZQUMxQixRQUFRLEVBQUUsR0FBRyxDQUFDLFFBQVE7WUFDdEIsSUFBSSxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDeEUsQ0FBQztJQUNOLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG5vdE51bGwgfSBmcm9tICcuLi91dGlsL2Z1bmN0aW9ucyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTm9kZUNhY2hlUmFuZ2Uge1xuICAgIHN0YXJ0SW5kZXg6IG51bWJlcjtcbiAgICBlbmRJbmRleDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5vZGVDYWNoZVNsaWNlPFQ+IGV4dGVuZHMgTm9kZUNhY2hlUmFuZ2Uge1xuICAgIGRhdGE6IHJlYWRvbmx5IFRbXTtcbn1cblxuZXhwb3J0IGNsYXNzIE5vZGVDYWNoZTxUPiB7XG4gICAgcHJpdmF0ZSBfc2xpY2VzOiByZWFkb25seSBOb2RlQ2FjaGVTbGljZTxUPltdID0gW107XG5cbiAgICBhZGQoc2xpY2U6IE5vZGVDYWNoZVNsaWNlPFQ+KTogdm9pZCB7XG4gICAgICAgIGlmIChzbGljZS5lbmRJbmRleCAtIHNsaWNlLnN0YXJ0SW5kZXggIT09IHNsaWNlLmRhdGEubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RyaWVkIHRvIGFkZCBpbnZhbGlkIHNsaWNlIHRvIGNhY2hlOiAnICsgSlNPTi5zdHJpbmdpZnkoc2xpY2UpKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9zbGljZXMgPSB0aGlzLl9ub3JtYWxpemVTbGljZXMoWy4uLnRoaXMuX3NsaWNlcywgc2xpY2VdKTtcbiAgICB9XG5cbiAgICBjbGVhcigpIHtcbiAgICAgICAgdGhpcy5fc2xpY2VzID0gW107XG4gICAgfVxuXG4gICAgZ2V0KHJhbmdlOiBOb2RlQ2FjaGVSYW5nZSk6IFRbXSB8IG51bGwge1xuICAgICAgICBmb3IgKGNvbnN0IHNsaWNlIG9mIHRoaXMuX3NsaWNlcykge1xuICAgICAgICAgICAgaWYgKHNsaWNlLnN0YXJ0SW5kZXggPD0gcmFuZ2Uuc3RhcnRJbmRleCAmJiBzbGljZS5lbmRJbmRleCA+PSByYW5nZS5lbmRJbmRleCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBzbGljZS5kYXRhLnNsaWNlKFxuICAgICAgICAgICAgICAgICAgICByYW5nZS5zdGFydEluZGV4IC0gc2xpY2Uuc3RhcnRJbmRleCxcbiAgICAgICAgICAgICAgICAgICAgcmFuZ2UuZW5kSW5kZXggLSBzbGljZS5zdGFydEluZGV4LFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gZm9yIHRoZSBmaXJzdCByZXF1ZXN0XG4gICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgICdSZXF1ZXN0ZWQgcmFuZ2Ugd2FzIG5vdCBmb3VuZCBpbiB0aGUgc2xpY2VzIGNhY2hlLCBmYWxsaW5nIGJhY2sgdG8gYSBzbWFsbGVyIHNsaWNlICh0aGUgYmFja2VuZCByZXNvbHZlZCB0b28gbGVzcyBkYXRhKScsXG4gICAgICAgICAgICByYW5nZSxcbiAgICAgICAgICAgIHRoaXMuX3NsaWNlcyxcbiAgICAgICAgKTtcbiAgICAgICAgZm9yIChjb25zdCBzbGljZSBvZiB0aGlzLl9zbGljZXMpIHtcbiAgICAgICAgICAgIGlmIChzbGljZS5zdGFydEluZGV4IDw9IHJhbmdlLnN0YXJ0SW5kZXggJiYgc2xpY2UuZW5kSW5kZXggPj0gcmFuZ2Uuc3RhcnRJbmRleCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBzbGljZS5kYXRhLnNsaWNlKFxuICAgICAgICAgICAgICAgICAgICByYW5nZS5zdGFydEluZGV4IC0gc2xpY2Uuc3RhcnRJbmRleCxcbiAgICAgICAgICAgICAgICAgICAgcmFuZ2UuZW5kSW5kZXggLSBzbGljZS5zdGFydEluZGV4LFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc29sZS5lcnJvcignQ291bGQgbm90IGZpbmQgYW55IHNsaWNlIGZvciB0aGUgcmFuZ2UnLCByYW5nZSwgdGhpcy5fc2xpY2VzKTtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgZ2V0TWlzc2luZ1JhbmdlKHJlcXVlc3RlZFJhbmdlOiBOb2RlQ2FjaGVSYW5nZSk6IE5vZGVDYWNoZVJhbmdlIHwgbnVsbCB7XG4gICAgICAgIGxldCBmcm9tSW5kZXggPSByZXF1ZXN0ZWRSYW5nZS5zdGFydEluZGV4O1xuICAgICAgICBsZXQgdG9JbmRleCA9IHJlcXVlc3RlZFJhbmdlLmVuZEluZGV4O1xuICAgICAgICBmb3IgKGNvbnN0IHNsaWNlIG9mIHRoaXMuX3NsaWNlcykge1xuICAgICAgICAgICAgaWYgKHNsaWNlLnN0YXJ0SW5kZXggPD0gZnJvbUluZGV4ICYmIHNsaWNlLmVuZEluZGV4ID4gZnJvbUluZGV4KSB7XG4gICAgICAgICAgICAgICAgZnJvbUluZGV4ID0gc2xpY2UuZW5kSW5kZXg7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHNsaWNlLnN0YXJ0SW5kZXggPCB0b0luZGV4ICYmIHNsaWNlLmVuZEluZGV4ID49IHRvSW5kZXgpIHtcbiAgICAgICAgICAgICAgICB0b0luZGV4ID0gc2xpY2Uuc3RhcnRJbmRleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChmcm9tSW5kZXggPj0gdG9JbmRleCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IHN0YXJ0SW5kZXg6IGZyb21JbmRleCwgZW5kSW5kZXg6IHRvSW5kZXggfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9ub3JtYWxpemVTbGljZXMoc2xpY2VzOiBOb2RlQ2FjaGVTbGljZTxUPltdKTogTm9kZUNhY2hlU2xpY2U8VD5bXSB7XG4gICAgICAgIHNsaWNlcy5zb3J0KChsaHMsIHJocykgPT4gbGhzLnN0YXJ0SW5kZXggLSByaHMuc3RhcnRJbmRleCk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2xpY2VzLmxlbmd0aCAtIDE7IGkrKykge1xuICAgICAgICAgICAgZm9yIChsZXQgaiA9IGkgKyAxOyBqIDwgc2xpY2VzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2Nhbk1lcmdlKHNsaWNlc1tpXSwgc2xpY2VzW2pdKSkge1xuICAgICAgICAgICAgICAgICAgICBzbGljZXNbaV0gPSB0aGlzLl9tZXJnZShzbGljZXNbaV0sIHNsaWNlc1tqXSk7XG4gICAgICAgICAgICAgICAgICAgIHNsaWNlc1tqXSA9IG51bGw7IC8vIE1hcmsgZm9yIGRlbGV0aW9uXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzbGljZXMuZmlsdGVyKG5vdE51bGwpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2Nhbk1lcmdlKGxoczogTm9kZUNhY2hlU2xpY2U8VD4sIHJoczogTm9kZUNhY2hlU2xpY2U8VD4pOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCFsaHMgfHwgIXJocykge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBsaHMuZW5kSW5kZXggPj0gcmhzLnN0YXJ0SW5kZXg7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfbWVyZ2UobGhzOiBOb2RlQ2FjaGVTbGljZTxUPiwgcmhzOiBOb2RlQ2FjaGVTbGljZTxUPik6IE5vZGVDYWNoZVNsaWNlPFQ+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHN0YXJ0SW5kZXg6IGxocy5zdGFydEluZGV4LFxuICAgICAgICAgICAgZW5kSW5kZXg6IHJocy5lbmRJbmRleCxcbiAgICAgICAgICAgIGRhdGE6IFsuLi5saHMuZGF0YSwgLi4ucmhzLmRhdGEuc2xpY2UobGhzLmVuZEluZGV4IC0gcmhzLnN0YXJ0SW5kZXgpXSxcbiAgICAgICAgfTtcbiAgICB9XG59XG4iXX0=
@@ -1,4 +1,4 @@
1
1
  import { NodeDataSource } from './node-data-source';
2
2
  export class NodeDataSourceRemote extends NodeDataSource {
3
3
  }
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1kYXRhLXNvdXJjZS1yZW1vdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lZHUtc2hhcmluZy11aS9zcmMvbGliL25vZGUtZW50cmllcy9ub2RlLWRhdGEtc291cmNlLXJlbW90ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFhcEQsTUFBTSxPQUFnQixvQkFHcEIsU0FBUSxjQUFpQjtDQWdCMUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOb2RlRGF0YVNvdXJjZSB9IGZyb20gJy4vbm9kZS1kYXRhLXNvdXJjZSc7XG5pbXBvcnQgeyBHZW5lcmljQXV0aG9yaXR5LCBOb2RlIH0gZnJvbSAnbmd4LWVkdS1zaGFyaW5nLWFwaSc7XG5pbXBvcnQgeyBNYXRUYWJsZURhdGFTb3VyY2VQYWdpbmF0b3IgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBQYWdpbmF0aW9uU3RyYXRlZ3kgfSBmcm9tICcuL25vZGUtZW50cmllcy1nbG9iYWwuc2VydmljZSc7XG5pbXBvcnQgeyBTb3J0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XG5pbXBvcnQgeyBTb3J0UGFuZWwgfSBmcm9tICcuLi90eXBlcy9saXN0LWl0ZW0nO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBhZ2luYXRpb25Db25maWcge1xuICAgIGRlZmF1bHRQYWdlU2l6ZTogbnVtYmVyO1xuICAgIHN0cmF0ZWd5OiBQYWdpbmF0aW9uU3RyYXRlZ3k7XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBOb2RlRGF0YVNvdXJjZVJlbW90ZTxcbiAgICBUIGV4dGVuZHMgTm9kZSB8IEdlbmVyaWNBdXRob3JpdHkgPSBOb2RlLFxuICAgIFAgZXh0ZW5kcyBNYXRUYWJsZURhdGFTb3VyY2VQYWdpbmF0b3IgPSBNYXRUYWJsZURhdGFTb3VyY2VQYWdpbmF0b3IsXG4+IGV4dGVuZHMgTm9kZURhdGFTb3VyY2U8VD4ge1xuICAgIGFic3RyYWN0IGdldCBwYWdpbmF0b3IoKTogUCB8IG51bGw7XG4gICAgYWJzdHJhY3Qgc2V0IHBhZ2luYXRvcih2YWx1ZTogUCB8IG51bGwpO1xuICAgIGFic3RyYWN0IGdldCBzb3J0UGFuZWwoKTogU29ydFBhbmVsO1xuICAgIGFic3RyYWN0IHNldCBzb3J0UGFuZWwodmFsdWU6IFNvcnRQYW5lbCk7XG4gICAgYWJzdHJhY3QgbG9hZE1vcmUoKTogYm9vbGVhbjtcblxuICAgIGFic3RyYWN0IHJlZ2lzdGVyUXVlcnlQYXJhbWV0ZXJzKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSk6IHZvaWQ7XG5cbiAgICBhYnN0cmFjdCBpbml0KHtcbiAgICAgICAgcGFnaW5hdGlvbkNvbmZpZyxcbiAgICAgICAgZGVmYXVsdFNvcnQsXG4gICAgfToge1xuICAgICAgICBwYWdpbmF0aW9uQ29uZmlnOiBQYWdpbmF0aW9uQ29uZmlnO1xuICAgICAgICBkZWZhdWx0U29ydDogU29ydDtcbiAgICB9KTogdm9pZDtcbn1cbiJdfQ==
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1kYXRhLXNvdXJjZS1yZW1vdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lZHUtc2hhcmluZy11aS9zcmMvbGliL25vZGUtZW50cmllcy9ub2RlLWRhdGEtc291cmNlLXJlbW90ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFjcEQsTUFBTSxPQUFnQixvQkFHcEIsU0FBUSxjQUFpQjtDQWdCMUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOb2RlRGF0YVNvdXJjZSB9IGZyb20gJy4vbm9kZS1kYXRhLXNvdXJjZSc7XG5pbXBvcnQgeyBHZW5lcmljQXV0aG9yaXR5LCBOb2RlIH0gZnJvbSAnbmd4LWVkdS1zaGFyaW5nLWFwaSc7XG5pbXBvcnQgeyBNYXRUYWJsZURhdGFTb3VyY2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBQYWdpbmF0aW9uU3RyYXRlZ3kgfSBmcm9tICcuL25vZGUtZW50cmllcy1nbG9iYWwuc2VydmljZSc7XG5pbXBvcnQgeyBTb3J0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XG5pbXBvcnQgeyBTb3J0UGFuZWwgfSBmcm9tICcuLi90eXBlcy9saXN0LWl0ZW0nO1xuaW1wb3J0IHsgTWF0UGFnaW5hdG9yIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJztcblxuZXhwb3J0IGludGVyZmFjZSBQYWdpbmF0aW9uQ29uZmlnIHtcbiAgICBkZWZhdWx0UGFnZVNpemU6IG51bWJlcjtcbiAgICBzdHJhdGVneTogUGFnaW5hdGlvblN0cmF0ZWd5O1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTm9kZURhdGFTb3VyY2VSZW1vdGU8XG4gICAgVCBleHRlbmRzIE5vZGUgfCBHZW5lcmljQXV0aG9yaXR5ID0gTm9kZSxcbiAgICBQIGV4dGVuZHMgTWF0UGFnaW5hdG9yID0gTWF0UGFnaW5hdG9yLFxuPiBleHRlbmRzIE5vZGVEYXRhU291cmNlPFQ+IHtcbiAgICBhYnN0cmFjdCBnZXQgcGFnaW5hdG9yKCk6IFAgfCBudWxsO1xuICAgIGFic3RyYWN0IHNldCBwYWdpbmF0b3IodmFsdWU6IFAgfCBudWxsKTtcbiAgICBhYnN0cmFjdCBnZXQgc29ydFBhbmVsKCk6IFNvcnRQYW5lbDtcbiAgICBhYnN0cmFjdCBzZXQgc29ydFBhbmVsKHZhbHVlOiBTb3J0UGFuZWwpO1xuICAgIGFic3RyYWN0IGxvYWRNb3JlKCk6IGJvb2xlYW47XG5cbiAgICBhYnN0cmFjdCByZWdpc3RlclF1ZXJ5UGFyYW1ldGVycyhyb3V0ZTogQWN0aXZhdGVkUm91dGUpOiB2b2lkO1xuXG4gICAgYWJzdHJhY3QgaW5pdCh7XG4gICAgICAgIHBhZ2luYXRpb25Db25maWcsXG4gICAgICAgIGRlZmF1bHRTb3J0LFxuICAgIH06IHtcbiAgICAgICAgcGFnaW5hdGlvbkNvbmZpZzogUGFnaW5hdGlvbkNvbmZpZztcbiAgICAgICAgZGVmYXVsdFNvcnQ6IFNvcnQ7XG4gICAgfSk6IHZvaWQ7XG59XG4iXX0=
@@ -114,4 +114,4 @@ export class NodeDataSource extends DataSource {
114
114
  this.dataStream.next(Helper.deepCopy(this.dataStream.value));
115
115
  }
116
116
  }
117
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1kYXRhLXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VkdS1zaGFyaW5nLXVpL3NyYy9saWIvbm9kZS1lbnRyaWVzL25vZGUtZGF0YS1zb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQTRCLE1BQU0sTUFBTSxDQUFDO0FBR2pFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQVl4QyxNQUFNLE9BQU8sY0FBa0QsU0FBUSxVQUFhO0lBTWhGLElBQUksU0FBUztRQUNULE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQztJQUN2QyxDQUFDO0lBQ0QsSUFBSSxTQUFTLENBQUMsU0FBaUM7UUFDM0MsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBR0QsSUFBSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxLQUF5QjtRQUNsQyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBSUQsWUFBWSxjQUFtQixFQUFFO1FBQzdCLEtBQUssRUFBRSxDQUFDO1FBeEJGLGVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBTSxFQUFFLENBQUMsQ0FBQztRQUM1QyxnQkFBVyxHQUFHLElBQUksZUFBZSxDQUFhLElBQUksQ0FBQyxDQUFDO1FBQzVELDJGQUEyRjtRQUMzRixRQUFRO1FBQ0QscUJBQWdCLEdBQUcsSUFBSSxlQUFlLENBQXlCLEtBQUssQ0FBQyxDQUFDO1FBTzdFLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQVNoQixlQUFV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TztRQUNILElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tICdAYW5ndWxhci9jZGsvY29sbGVjdGlvbnMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEl0ZW1zQ2FwIH0gZnJvbSAnLi9pdGVtcy1jYXAnO1xuaW1wb3J0IHsgR2VuZXJpY0F1dGhvcml0eSwgTm9kZSwgUGFnaW5hdGlvbiB9IGZyb20gJ25neC1lZHUtc2hhcmluZy1hcGknO1xuaW1wb3J0IHsgSGVscGVyIH0gZnJvbSAnLi4vdXRpbC9oZWxwZXInO1xuXG5leHBvcnQgdHlwZSBMb2FkaW5nU3RhdGUgPVxuICAgIC8vIFRoZSBkYXRhIHNvdXJjZSBpcyBsb2FkaW5nIGRhdGEgZm9yIHRoZSBmaXJzdCB0aW1lLlxuICAgIHwgJ2luaXRpYWwnXG4gICAgLy8gTG9hZGluZyBkYXRhIGFmdGVyIGNoYW5nZSBvZiBwYXJhbWV0ZXJzLCBpLmUuLCBpdCB3aWxsIHJlcGxhY2UgdGhlIGN1cnJlbnQgZGF0YSB3aGVuIGRvbmUuXG4gICAgfCAncmVzZXQnXG4gICAgLy8gTG9hZGluZyBhbm90aGVyIHBhZ2Ugd2l0aCB1bmNoYW5nZWQgcGFyYW1ldGVycy5cbiAgICB8ICdwYWdlJ1xuICAgIC8vIExvYWRpbmcgZG9uZS5cbiAgICB8IGZhbHNlO1xuXG5leHBvcnQgY2xhc3MgTm9kZURhdGFTb3VyY2U8VCBleHRlbmRzIE5vZGUgfCBHZW5lcmljQXV0aG9yaXR5PiBleHRlbmRzIERhdGFTb3VyY2U8VD4ge1xuICAgIHByb3RlY3RlZCBkYXRhU3RyZWFtID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUW10+KFtdKTtcbiAgICBwcml2YXRlIHBhZ2luYXRpb24kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxQYWdpbmF0aW9uPihudWxsKTtcbiAgICAvLyBJbmNsdWRlIGBMb2FkaW5nU3RhdGVgIHRvIGJlIHR5cGUtY29tcGF0aWJsZSB0byBgTm9kZURhdGFTb3VyY2VSZW1vdGVgIGFsdGhvdWdoIG5vdCB1c2VkXG4gICAgLy8gaGVyZS5cbiAgICBwdWJsaWMgaXNMb2FkaW5nU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TG9hZGluZ1N0YXRlIHwgYm9vbGVhbj4oZmFsc2UpO1xuICAgIGdldCBpc0xvYWRpbmcoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzTG9hZGluZ1N1YmplY3QudmFsdWU7XG4gICAgfVxuICAgIHNldCBpc0xvYWRpbmcoaXNMb2FkaW5nOiBMb2FkaW5nU3RhdGUgfCBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuaXNMb2FkaW5nU3ViamVjdC5uZXh0KGlzTG9hZGluZyk7XG4gICAgfVxuICAgIGluaXRpYWxQYWdlTG9hZGVkID0gZmFsc2U7XG4gICAgcHJvdGVjdGVkIF9pdGVtc0NhcDogSXRlbXNDYXA8VD4gfCBudWxsO1xuICAgIGdldCBpdGVtc0NhcCgpOiBJdGVtc0NhcDxUPiB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5faXRlbXNDYXA7XG4gICAgfVxuICAgIHNldCBpdGVtc0NhcCh2YWx1ZTogSXRlbXNDYXA8VD4gfCBudWxsKSB7XG4gICAgICAgIHRoaXMuX2l0ZW1zQ2FwID0gdmFsdWU7XG4gICAgICAgIHRoaXMuY29ubmVjdFJlbmRlckRhdGEoKTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIHJlbmRlckRhdGEgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRbXT4oW10pO1xuICAgIHByb3RlY3RlZCByZW5kZXJEYXRhU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCBudWxsO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdGlhbERhdGE6IFRbXSA9IFtdKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuc2V0RGF0YShpbml0aWFsRGF0YSk7XG4gICAgfVxuXG4gICAgY29ubmVjdCgpOiBPYnNlcnZhYmxlPFRbXT4ge1xuICAgICAgICBpZiAoIXRoaXMucmVuZGVyRGF0YVN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy5jb25uZWN0UmVuZGVyRGF0YSgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnJlbmRlckRhdGE7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb25uZWN0UmVuZGVyRGF0YSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZW5kZXJEYXRhU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICBpZiAodGhpcy5pdGVtc0NhcCkge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJEYXRhU3Vic2NyaXB0aW9uID0gdGhpcy5pdGVtc0NhcFxuICAgICAgICAgICAgICAgIC5jb25uZWN0KHRoaXMuZGF0YVN0cmVhbSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChkYXRhKSA9PiB0aGlzLnJlbmRlckRhdGEubmV4dChkYXRhKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlckRhdGFTdWJzY3JpcHRpb24gPSB0aGlzLmRhdGFTdHJlYW0uc3Vic2NyaWJlKChkYXRhKSA9PlxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyRGF0YS5uZXh0KGRhdGEpLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbm5lY3RQYWdpbmF0aW9uKCk6IE9ic2VydmFibGU8UGFnaW5hdGlvbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wYWdpbmF0aW9uJDtcbiAgICB9XG5cbiAgICBkaXNjb25uZWN0KCkge31cblxuICAgIHNldERhdGEoZGF0YTogVFtdLCBwYWdpbmF0aW9uOiBQYWdpbmF0aW9uID0gbnVsbCkge1xuICAgICAgICB0aGlzLmRhdGFTdHJlYW0ubmV4dChkYXRhKTtcbiAgICAgICAgdGhpcy5zZXRQYWdpbmF0aW9uKHBhZ2luYXRpb24pO1xuICAgIH1cblxuICAgIGFwcGVuZERhdGEoYXBwZW5kRGF0YTogVFtdLCBsb2NhdGlvbjogJ2JlZm9yZScgfCAnYWZ0ZXInID0gJ2FmdGVyJykge1xuICAgICAgICBsZXQgZGF0YSA9IHRoaXMuZ2V0RGF0YSgpO1xuICAgICAgICBpZiAobG9jYXRpb24gPT09ICdhZnRlcicpIHtcbiAgICAgICAgICAgIGRhdGEgPSBkYXRhLmNvbmNhdChhcHBlbmREYXRhKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRhdGEgPSBhcHBlbmREYXRhLmNvbmNhdChkYXRhKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmRhdGFTdHJlYW0ubmV4dChkYXRhKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmVzIGVsZW1lbnRzIGZyb20gdGhlIHZpc2libGUgZGF0YS5cbiAgICAgKi9cbiAgICByZW1vdmVEYXRhKHRvUmVtb3ZlOiBUW10pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgbmV3RGF0YSA9IHRoaXMuZ2V0RGF0YSgpLmZpbHRlcihcbiAgICAgICAgICAgICh2YWx1ZSkgPT5cbiAgICAgICAgICAgICAgICAhdG9SZW1vdmUuc29tZSgoZCkgPT4gSGVscGVyLm9iamVjdEVxdWFscygoZCBhcyBOb2RlKS5yZWYsICh2YWx1ZSBhcyBOb2RlKS5yZWYpKSxcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgcmVtb3ZlZERhdGEgPSB0aGlzLmdldERhdGEoKS5maWx0ZXIoKHZhbHVlKSA9PiAhbmV3RGF0YS5pbmNsdWRlcyh2YWx1ZSkpO1xuICAgICAgICB0aGlzLmRhdGFTdHJlYW0ubmV4dChuZXdEYXRhKTtcbiAgICAgICAgaWYgKHRoaXMucGFnaW5hdGlvbiQudmFsdWUpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhZ2luYXRpb24gPSB0aGlzLnBhZ2luYXRpb24kLnZhbHVlO1xuICAgICAgICAgICAgdGhpcy5zZXRQYWdpbmF0aW9uKHtcbiAgICAgICAgICAgICAgICBjb3VudDogcGFnaW5hdGlvbi5jb3VudCAtIHJlbW92ZWREYXRhLmxlbmd0aCxcbiAgICAgICAgICAgICAgICBmcm9tOiBwYWdpbmF0aW9uLmZyb20sXG4gICAgICAgICAgICAgICAgdG90YWw6IHBhZ2luYXRpb24udG90YWwgLSByZW1vdmVkRGF0YS5sZW5ndGgsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldFBhZ2luYXRpb24ocGFnaW5hdGlvbjogUGFnaW5hdGlvbikge1xuICAgICAgICB0aGlzLnBhZ2luYXRpb24kLm5leHQocGFnaW5hdGlvbik7XG4gICAgfVxuXG4gICAgcmVzZXQoKSB7XG4gICAgICAgIHRoaXMuc2V0RGF0YShbXSk7XG4gICAgfVxuXG4gICAgaGFzTW9yZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLnBhZ2luYXRpb24kLnZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnBhZ2luYXRpb24kLnZhbHVlLnRvdGFsID4gdGhpcy5kYXRhU3RyZWFtLnZhbHVlPy5sZW5ndGg7XG4gICAgfVxuXG4gICAgLy8gRklYTUU6IFRoaXMgaXMgc29tZXdoYXQgZGFuZ2Vyb3VzIGJlY2F1c2Ugd2UgcmVseSBvbiBgY29ubmVjdGAgYmVpbmcgY2FsbGVkIGZyb20gb3V0c2lkZSwgYnV0XG4gICAgLy8gdGhpcyBtZXRob2QgcHJvdmlkZXMgYSB3YXkgdG8gYWNjZXNzIGRhdGEgd2l0aG91dCBldmVyIGNhbGxpbmcgYGNvbm5lY3RgLlxuICAgIGdldERhdGEoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlbmRlckRhdGEudmFsdWU7XG4gICAgfVxuXG4gICAgaXNFbXB0eSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVN0cmVhbS52YWx1ZT8ubGVuZ3RoID09PSAwO1xuICAgIH1cblxuICAgIGdldFRvdGFsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wYWdpbmF0aW9uJC52YWx1ZT8udG90YWxcbiAgICAgICAgICAgID8gTWF0aC5tYXgodGhpcy5wYWdpbmF0aW9uJC52YWx1ZT8udG90YWwsIHRoaXMuZ2V0RGF0YSgpPy5sZW5ndGggfHwgMClcbiAgICAgICAgICAgIDogdGhpcy5kYXRhU3RyZWFtLnZhbHVlPy5sZW5ndGggPz8gMDtcbiAgICB9XG5cbiAgICBpc0Z1bGx5TG9hZGVkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRUb3RhbCgpIDw9IHRoaXMuZGF0YVN0cmVhbS52YWx1ZT8ubGVuZ3RoO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGZvcmNlIGEgcmVmcmVzaCBvZiBhbGwgZWxlbWVudHMgaW4gdGhlIGN1cnJlbnQgZGF0YSBzdHJlYW1cbiAgICAgKiB0cmlnZ2VyIHRoaXMgdG8gZW5mb3JjZSBhIHJlYnVpbGQgb2YgdGhlIG5vZGVzIGluIGFsbCBzdWItY29tcG9uZW50c1xuICAgICAqIGkuZS4gaWYgZGF0YSBmcm9tIHNvbWUgbm9kZXMgaGFzIGNoYW5nZWRcbiAgICAgKi9cbiAgICByZWZyZXNoKCkge1xuICAgICAgICB0aGlzLmRhdGFTdHJlYW0ubmV4dChIZWxwZXIuZGVlcENvcHkodGhpcy5kYXRhU3RyZWFtLnZhbHVlKSk7XG4gICAgfVxufVxuIl19
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1kYXRhLXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VkdS1zaGFyaW5nLXVpL3NyYy9saWIvbm9kZS1lbnRyaWVzL25vZGUtZGF0YS1zb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQTRCLE1BQU0sTUFBTSxDQUFDO0FBR2pFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQVl4QyxNQUFNLE9BQU8sY0FBa0QsU0FBUSxVQUFhO0lBTWhGLElBQUksU0FBUztRQUNULE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQztJQUN2QyxDQUFDO0lBQ0QsSUFBSSxTQUFTLENBQUMsU0FBaUM7UUFDM0MsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBR0QsSUFBSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxLQUF5QjtRQUNsQyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBSUQsWUFBWSxjQUFtQixFQUFFO1FBQzdCLEtBQUssRUFBRSxDQUFDO1FBeEJGLGVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBTSxFQUFFLENBQUMsQ0FBQztRQUM1QyxnQkFBVyxHQUFHLElBQUksZUFBZSxDQUFhLElBQUksQ0FBQyxDQUFDO1FBQzVELDJGQUEyRjtRQUMzRixRQUFRO1FBQ0QscUJBQWdCLEdBQUcsSUFBSSxlQUFlLENBQXlCLEtBQUssQ0FBQyxDQUFDO1FBTzdFLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQVNoQixlQUFV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QUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUM7SUFDNUQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxPQUFPO1FBQ0gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDakUsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2xsZWN0aW9ucyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSXRlbXNDYXAgfSBmcm9tICcuL2l0ZW1zLWNhcCc7XG5pbXBvcnQgeyBHZW5lcmljQXV0aG9yaXR5LCBOb2RlLCBQYWdpbmF0aW9uIH0gZnJvbSAnbmd4LWVkdS1zaGFyaW5nLWFwaSc7XG5pbXBvcnQgeyBIZWxwZXIgfSBmcm9tICcuLi91dGlsL2hlbHBlcic7XG5cbmV4cG9ydCB0eXBlIExvYWRpbmdTdGF0ZSA9XG4gICAgLy8gVGhlIGRhdGEgc291cmNlIGlzIGxvYWRpbmcgZGF0YSBmb3IgdGhlIGZpcnN0IHRpbWUuXG4gICAgfCAnaW5pdGlhbCdcbiAgICAvLyBMb2FkaW5nIGRhdGEgYWZ0ZXIgY2hhbmdlIG9mIHBhcmFtZXRlcnMsIGkuZS4sIGl0IHdpbGwgcmVwbGFjZSB0aGUgY3VycmVudCBkYXRhIHdoZW4gZG9uZS5cbiAgICB8ICdyZXNldCdcbiAgICAvLyBMb2FkaW5nIGFub3RoZXIgcGFnZSB3aXRoIHVuY2hhbmdlZCBwYXJhbWV0ZXJzLlxuICAgIHwgJ3BhZ2UnXG4gICAgLy8gTG9hZGluZyBkb25lLlxuICAgIHwgZmFsc2U7XG5cbmV4cG9ydCBjbGFzcyBOb2RlRGF0YVNvdXJjZTxUIGV4dGVuZHMgTm9kZSB8IEdlbmVyaWNBdXRob3JpdHk+IGV4dGVuZHMgRGF0YVNvdXJjZTxUPiB7XG4gICAgcHJvdGVjdGVkIGRhdGFTdHJlYW0gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRbXT4oW10pO1xuICAgIHByaXZhdGUgcGFnaW5hdGlvbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFBhZ2luYXRpb24+KG51bGwpO1xuICAgIC8vIEluY2x1ZGUgYExvYWRpbmdTdGF0ZWAgdG8gYmUgdHlwZS1jb21wYXRpYmxlIHRvIGBOb2RlRGF0YVNvdXJjZVJlbW90ZWAgYWx0aG91Z2ggbm90IHVzZWRcbiAgICAvLyBoZXJlLlxuICAgIHB1YmxpYyBpc0xvYWRpbmdTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxMb2FkaW5nU3RhdGUgfCBib29sZWFuPihmYWxzZSk7XG4gICAgZ2V0IGlzTG9hZGluZygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNMb2FkaW5nU3ViamVjdC52YWx1ZTtcbiAgICB9XG4gICAgc2V0IGlzTG9hZGluZyhpc0xvYWRpbmc6IExvYWRpbmdTdGF0ZSB8IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmdTdWJqZWN0Lm5leHQoaXNMb2FkaW5nKTtcbiAgICB9XG4gICAgaW5pdGlhbFBhZ2VMb2FkZWQgPSBmYWxzZTtcbiAgICBwcm90ZWN0ZWQgX2l0ZW1zQ2FwOiBJdGVtc0NhcDxUPiB8IG51bGw7XG4gICAgZ2V0IGl0ZW1zQ2FwKCk6IEl0ZW1zQ2FwPFQ+IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pdGVtc0NhcDtcbiAgICB9XG4gICAgc2V0IGl0ZW1zQ2FwKHZhbHVlOiBJdGVtc0NhcDxUPiB8IG51bGwpIHtcbiAgICAgICAgdGhpcy5faXRlbXNDYXAgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5jb25uZWN0UmVuZGVyRGF0YSgpO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgcmVuZGVyRGF0YSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VFtdPihbXSk7XG4gICAgcHJvdGVjdGVkIHJlbmRlckRhdGFTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IG51bGw7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0aWFsRGF0YTogVFtdID0gW10pIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5zZXREYXRhKGluaXRpYWxEYXRhKTtcbiAgICB9XG5cbiAgICBjb25uZWN0KCk6IE9ic2VydmFibGU8VFtdPiB7XG4gICAgICAgIGlmICghdGhpcy5yZW5kZXJEYXRhU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLmNvbm5lY3RSZW5kZXJEYXRhKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGF0YTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbm5lY3RSZW5kZXJEYXRhKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlbmRlckRhdGFTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIGlmICh0aGlzLml0ZW1zQ2FwKSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlckRhdGFTdWJzY3JpcHRpb24gPSB0aGlzLml0ZW1zQ2FwXG4gICAgICAgICAgICAgICAgLmNvbm5lY3QodGhpcy5kYXRhU3RyZWFtKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGRhdGEpID0+IHRoaXMucmVuZGVyRGF0YS5uZXh0KGRhdGEpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyRGF0YVN1YnNjcmlwdGlvbiA9IHRoaXMuZGF0YVN0cmVhbS5zdWJzY3JpYmUoKGRhdGEpID0+XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJEYXRhLm5leHQoZGF0YSksXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29ubmVjdFBhZ2luYXRpb24oKTogT2JzZXJ2YWJsZTxQYWdpbmF0aW9uPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnBhZ2luYXRpb24kO1xuICAgIH1cblxuICAgIGRpc2Nvbm5lY3QoKSB7fVxuXG4gICAgc2V0RGF0YShkYXRhOiBUW10sIHBhZ2luYXRpb246IFBhZ2luYXRpb24gPSBudWxsKSB7XG4gICAgICAgIHRoaXMuZGF0YVN0cmVhbS5uZXh0KGRhdGEpO1xuICAgICAgICB0aGlzLnNldFBhZ2luYXRpb24ocGFnaW5hdGlvbik7XG4gICAgfVxuXG4gICAgYXBwZW5kRGF0YShhcHBlbmREYXRhOiBUW10sIGxvY2F0aW9uOiAnYmVmb3JlJyB8ICdhZnRlcicgPSAnYWZ0ZXInKSB7XG4gICAgICAgIGxldCBkYXRhID0gdGhpcy5nZXREYXRhKCk7XG4gICAgICAgIGlmIChsb2NhdGlvbiA9PT0gJ2FmdGVyJykge1xuICAgICAgICAgICAgZGF0YSA9IGRhdGEuY29uY2F0KGFwcGVuZERhdGEpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGF0YSA9IGFwcGVuZERhdGEuY29uY2F0KGRhdGEpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZGF0YVN0cmVhbS5uZXh0KGRhdGEpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZXMgZWxlbWVudHMgZnJvbSB0aGUgdmlzaWJsZSBkYXRhLlxuICAgICAqL1xuICAgIHJlbW92ZURhdGEodG9SZW1vdmU6IFRbXSk6IHZvaWQge1xuICAgICAgICBjb25zdCBuZXdEYXRhID0gdGhpcy5nZXREYXRhKCkuZmlsdGVyKFxuICAgICAgICAgICAgKHZhbHVlKSA9PlxuICAgICAgICAgICAgICAgICF0b1JlbW92ZS5zb21lKChkKSA9PiBIZWxwZXIub2JqZWN0RXF1YWxzKChkIGFzIE5vZGUpLnJlZiwgKHZhbHVlIGFzIE5vZGUpLnJlZikpLFxuICAgICAgICApO1xuICAgICAgICBjb25zdCByZW1vdmVkRGF0YSA9IHRoaXMuZ2V0RGF0YSgpLmZpbHRlcigodmFsdWUpID0+ICFuZXdEYXRhLmluY2x1ZGVzKHZhbHVlKSk7XG4gICAgICAgIHRoaXMuZGF0YVN0cmVhbS5uZXh0KG5ld0RhdGEpO1xuICAgICAgICBpZiAodGhpcy5wYWdpbmF0aW9uJC52YWx1ZSkge1xuICAgICAgICAgICAgY29uc3QgcGFnaW5hdGlvbiA9IHRoaXMucGFnaW5hdGlvbiQudmFsdWU7XG4gICAgICAgICAgICB0aGlzLnNldFBhZ2luYXRpb24oe1xuICAgICAgICAgICAgICAgIGNvdW50OiBwYWdpbmF0aW9uLmNvdW50IC0gcmVtb3ZlZERhdGEubGVuZ3RoLFxuICAgICAgICAgICAgICAgIGZyb206IHBhZ2luYXRpb24uZnJvbSxcbiAgICAgICAgICAgICAgICB0b3RhbDogcGFnaW5hdGlvbi50b3RhbCAtIHJlbW92ZWREYXRhLmxlbmd0aCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2V0UGFnaW5hdGlvbihwYWdpbmF0aW9uOiBQYWdpbmF0aW9uKSB7XG4gICAgICAgIHRoaXMucGFnaW5hdGlvbiQubmV4dChwYWdpbmF0aW9uKTtcbiAgICB9XG5cbiAgICByZXNldCgpIHtcbiAgICAgICAgdGhpcy5zZXREYXRhKFtdKTtcbiAgICB9XG5cbiAgICBoYXNNb3JlKCkge1xuICAgICAgICBpZiAoIXRoaXMucGFnaW5hdGlvbiQudmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMucGFnaW5hdGlvbiQudmFsdWUudG90YWwgPiB0aGlzLmRhdGFTdHJlYW0udmFsdWU/Lmxlbmd0aDtcbiAgICB9XG5cbiAgICAvLyBGSVhNRTogVGhpcyBpcyBzb21ld2hhdCBkYW5nZXJvdXMgYmVjYXVzZSB3ZSByZWx5IG9uIGBjb25uZWN0YCBiZWluZyBjYWxsZWQgZnJvbSBvdXRzaWRlLCBidXRcbiAgICAvLyB0aGlzIG1ldGhvZCBwcm92aWRlcyBhIHdheSB0byBhY2Nlc3MgZGF0YSB3aXRob3V0IGV2ZXIgY2FsbGluZyBgY29ubmVjdGAuXG4gICAgZ2V0RGF0YSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGF0YS52YWx1ZTtcbiAgICB9XG5cbiAgICBpc0VtcHR5KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXRhU3RyZWFtLnZhbHVlPy5sZW5ndGggPT09IDA7XG4gICAgfVxuXG4gICAgZ2V0VG90YWwoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnBhZ2luYXRpb24kLnZhbHVlPy50b3RhbFxuICAgICAgICAgICAgPyBNYXRoLm1heCh0aGlzLnBhZ2luYXRpb24kLnZhbHVlPy50b3RhbCwgdGhpcy5nZXREYXRhKCk/Lmxlbmd0aCB8fCAwKVxuICAgICAgICAgICAgOiB0aGlzLmRhdGFTdHJlYW0udmFsdWU/Lmxlbmd0aCA/PyAwO1xuICAgIH1cblxuICAgIGlzRnVsbHlMb2FkZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFRvdGFsKCkgPD0gdGhpcy5kYXRhU3RyZWFtLnZhbHVlPy5sZW5ndGg7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZm9yY2UgYSByZWZyZXNoIG9mIGFsbCBlbGVtZW50cyBpbiB0aGUgY3VycmVudCBkYXRhIHN0cmVhbVxuICAgICAqIHRyaWdnZXIgdGhpcyB0byBlbmZvcmNlIGEgcmVidWlsZCBvZiB0aGUgbm9kZXMgaW4gYWxsIHN1Yi1jb21wb25lbnRzXG4gICAgICogaS5lLiBpZiBkYXRhIGZyb20gc29tZSBub2RlcyBoYXMgY2hhbmdlZFxuICAgICAqL1xuICAgIHJlZnJlc2goKSB7XG4gICAgICAgIHRoaXMuZGF0YVN0cmVhbS5uZXh0KEhlbHBlci5kZWVwQ29weSh0aGlzLmRhdGFTdHJlYW0udmFsdWUpKTtcbiAgICB9XG59XG4iXX0=