ngx-edu-sharing-ui 9.0.2 → 9.2.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 (129) 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 +8 -8
  4. package/esm2022/lib/common/edu-sharing-ui-common.module.mjs +76 -65
  5. package/esm2022/lib/directives/border-box-observer.directive.mjs +5 -5
  6. package/esm2022/lib/directives/check-text-overflow.directive.mjs +12 -6
  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 +20 -13
  12. package/esm2022/lib/directives/infinite-scroll.directive.mjs +85 -0
  13. package/esm2022/lib/dropdown/dropdown.component.mjs +8 -8
  14. package/esm2022/lib/edu-sharing-ui-configuration.mjs +11 -4
  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 +10 -10
  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 +6 -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 +20 -20
  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/entries-model.mjs +2 -1
  32. package/esm2022/lib/node-entries/items-cap.mjs +1 -1
  33. package/esm2022/lib/node-entries/list-item-label.pipe.mjs +5 -5
  34. package/esm2022/lib/node-entries/node-cache.mjs +9 -1
  35. package/esm2022/lib/node-entries/node-data-source-remote.mjs +1 -1
  36. package/esm2022/lib/node-entries/node-data-source.mjs +4 -2
  37. package/esm2022/lib/node-entries/node-entries-card/node-entries-card.component.mjs +17 -15
  38. package/esm2022/lib/node-entries/node-entries-card-grid/node-entries-card-grid.component.mjs +39 -24
  39. package/esm2022/lib/node-entries/node-entries-card-small/node-entries-card-small.component.mjs +8 -8
  40. package/esm2022/lib/node-entries/node-entries-global-options/node-entries-global-options.component.mjs +10 -6
  41. package/esm2022/lib/node-entries/node-entries-global.service.mjs +18 -5
  42. package/esm2022/lib/node-entries/node-entries-table/column-chooser/column-chooser.component.mjs +6 -6
  43. package/esm2022/lib/node-entries/node-entries-table/node-entries-table.component.mjs +44 -35
  44. package/esm2022/lib/node-entries/node-entries-templates.service.mjs +4 -4
  45. package/esm2022/lib/node-entries/node-entries-wrapper.component.mjs +13 -6
  46. package/esm2022/lib/node-entries/node-entries.component.mjs +7 -7
  47. package/esm2022/lib/node-entries/node-entries.module.mjs +4 -4
  48. package/esm2022/lib/node-entries/node-rating/node-rating.component.mjs +36 -13
  49. package/esm2022/lib/node-entries/node-stats-badges/node-stats-badges.component.mjs +6 -6
  50. package/esm2022/lib/node-entries/node-type-badge/node-type-badge.component.mjs +5 -5
  51. package/esm2022/lib/node-entries/option-button/option-button.component.mjs +21 -10
  52. package/esm2022/lib/node-entries/preview-image/preview-image.component.mjs +5 -5
  53. package/esm2022/lib/node-entries/sort-select-panel/sort-select-panel.component.mjs +6 -6
  54. package/esm2022/lib/node-url/node-url.component.mjs +11 -7
  55. package/esm2022/lib/pipes/file-size.pipe.mjs +6 -6
  56. package/esm2022/lib/pipes/format-date.pipe.mjs +5 -5
  57. package/esm2022/lib/pipes/node-icon.pipe.mjs +4 -4
  58. package/esm2022/lib/pipes/node-image-size.pipe.mjs +4 -4
  59. package/esm2022/lib/pipes/node-image.pipe.mjs +5 -5
  60. package/esm2022/lib/pipes/node-person-name.pipe.mjs +5 -5
  61. package/esm2022/lib/pipes/node-title.pipe.mjs +4 -4
  62. package/esm2022/lib/pipes/option-tooltip.pipe.mjs +5 -5
  63. package/esm2022/lib/pipes/property-slug.pipe.mjs +16 -0
  64. package/esm2022/lib/pipes/replace-chars.pipe.mjs +5 -5
  65. package/esm2022/lib/pipes/vcard-name.pipe.mjs +4 -4
  66. package/esm2022/lib/services/abstract/keyboard-shortcuts.service.mjs +3 -3
  67. package/esm2022/lib/services/abstract/options-helper.service.mjs +1 -1
  68. package/esm2022/lib/services/accessibility.service.mjs +5 -5
  69. package/esm2022/lib/services/app-container.service.mjs +66 -0
  70. package/esm2022/lib/services/local-events.service.mjs +3 -3
  71. package/esm2022/lib/services/node-entries.service.mjs +51 -7
  72. package/esm2022/lib/services/node-helper.service.mjs +36 -13
  73. package/esm2022/lib/services/nodes-drag-drop.service.mjs +5 -5
  74. package/esm2022/lib/services/options-helper-data.service.mjs +9 -9
  75. package/esm2022/lib/services/repo-url.service.mjs +6 -5
  76. package/esm2022/lib/services/temporary-storage.service.mjs +5 -5
  77. package/esm2022/lib/services/ui.service.mjs +11 -5
  78. package/esm2022/lib/sort-dropdown/sort-dropdown.component.mjs +5 -5
  79. package/esm2022/lib/spinner/spinner.component.mjs +7 -6
  80. package/esm2022/lib/translations/translation-loader.mjs +40 -8
  81. package/esm2022/lib/translations/translations.module.mjs +21 -10
  82. package/esm2022/lib/translations/translations.service.mjs +17 -9
  83. package/esm2022/lib/types/injection-tokens.mjs +9 -0
  84. package/esm2022/lib/types/option-item.mjs +4 -3
  85. package/esm2022/lib/util/DateHelper.mjs +1 -1
  86. package/esm2022/lib/util/VCard.mjs +1 -1
  87. package/esm2022/lib/util/color-helper.mjs +1 -1
  88. package/esm2022/lib/util/duration-helper.mjs +1 -1
  89. package/esm2022/lib/util/helper.mjs +1 -1
  90. package/esm2022/lib/util/rest-helper.mjs +1 -1
  91. package/esm2022/module.mjs +51 -43
  92. package/fesm2022/ngx-edu-sharing-ui.mjs +5771 -5197
  93. package/fesm2022/ngx-edu-sharing-ui.mjs.map +1 -1
  94. package/lib/common/edu-sharing-ui-common.module.d.ts +27 -25
  95. package/lib/directives/icon.directive.d.ts +2 -2
  96. package/lib/directives/infinite-scroll.directive.d.ts +22 -0
  97. package/lib/edu-sharing-ui-configuration.d.ts +5 -0
  98. package/lib/edu-sharing-ui.module.d.ts +7 -6
  99. package/lib/list-items/list-text/list-text.component.d.ts +1 -1
  100. package/lib/list-items/list-widget.d.ts +1 -1
  101. package/lib/mds/mds-helper.service.d.ts +37 -0
  102. package/lib/mds/mds.module.d.ts +6 -0
  103. package/lib/node-entries/entries-model.d.ts +2 -1
  104. package/lib/node-entries/node-data-source-remote.d.ts +2 -2
  105. package/lib/node-entries/node-data-source.d.ts +1 -1
  106. package/lib/node-entries/node-entries-card/node-entries-card.component.d.ts +1 -1
  107. package/lib/node-entries/node-entries-card-grid/node-entries-card-grid.component.d.ts +6 -1
  108. package/lib/node-entries/node-entries-global-options/node-entries-global-options.component.d.ts +1 -0
  109. package/lib/node-entries/node-entries-global.service.d.ts +7 -0
  110. package/lib/node-entries/node-entries-table/node-entries-table.component.d.ts +4 -1
  111. package/lib/node-entries/node-entries-wrapper.component.d.ts +8 -3
  112. package/lib/node-entries/node-rating/node-rating.component.d.ts +3 -3
  113. package/lib/node-entries/option-button/option-button.component.d.ts +6 -2
  114. package/lib/pipes/property-slug.pipe.d.ts +7 -0
  115. package/lib/services/abstract/options-helper.service.d.ts +3 -3
  116. package/lib/services/app-container.service.d.ts +43 -0
  117. package/lib/services/node-entries.service.d.ts +31 -6
  118. package/lib/services/node-helper.service.d.ts +5 -3
  119. package/lib/services/options-helper-data.service.d.ts +3 -3
  120. package/lib/services/ui.service.d.ts +8 -1
  121. package/lib/spinner/spinner.component.d.ts +1 -1
  122. package/lib/translations/translation-loader.d.ts +2 -1
  123. package/lib/types/injection-tokens.d.ts +8 -0
  124. package/lib/types/option-item.d.ts +24 -25
  125. package/lib/util/ui-constants.d.ts +2 -2
  126. package/module.d.ts +50 -42
  127. package/package.json +5 -5
  128. package/esm2022/lib/translations/languages.mjs +0 -5
  129. package/lib/translations/languages.d.ts +0 -4
@@ -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: [{
@@ -19,5 +19,6 @@ export var ClickSource;
19
19
  ClickSource[ClickSource["Metadata"] = 2] = "Metadata";
20
20
  ClickSource[ClickSource["Comments"] = 3] = "Comments";
21
21
  ClickSource[ClickSource["Overlay"] = 4] = "Overlay";
22
+ ClickSource[ClickSource["Dropdown"] = 5] = "Dropdown";
22
23
  })(ClickSource || (ClickSource = {}));
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50cmllcy1tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VkdS1zaGFyaW5nLXVpL3NyYy9saWIvbm9kZS1lbnRyaWVzL2VudHJpZXMtbW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBa0JBLE1BQU0sQ0FBTixJQUFZLHNCQUlYO0FBSkQsV0FBWSxzQkFBc0I7SUFDOUIscUVBQUssQ0FBQTtJQUNMLG1FQUFJLENBQUE7SUFDSiw2RUFBUyxDQUFBO0FBQ2IsQ0FBQyxFQUpXLHNCQUFzQixLQUF0QixzQkFBc0IsUUFJakM7QUFFRCxNQUFNLENBQU4sSUFBWSxlQU1YO0FBTkQsV0FBWSxlQUFlO0lBQ3ZCLHFCQUFxQjtJQUNyQiwrRUFBaUIsQ0FBQTtJQUNqQixnQkFBZ0I7SUFDaEIsMkRBQU8sQ0FBQTtJQUNQLHFEQUFJLENBQUE7QUFDUixDQUFDLEVBTlcsZUFBZSxLQUFmLGVBQWUsUUFNMUI7QUE2QkQsTUFBTSxDQUFOLElBQVksV0FNWDtBQU5ELFdBQVksV0FBVztJQUNuQixtREFBTyxDQUFBO0lBQ1AsNkNBQUksQ0FBQTtJQUNKLHFEQUFRLENBQUE7SUFDUixxREFBUSxDQUFBO0lBQ1IsbURBQU8sQ0FBQTtBQUNYLENBQUMsRUFOVyxXQUFXLEtBQVgsV0FBVyxRQU10QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNvcnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcblxuaW1wb3J0IHsgU2VsZWN0aW9uTW9kZWwgfSBmcm9tICdAYW5ndWxhci9jZGsvY29sbGVjdGlvbnMnO1xuaW1wb3J0IHsgQ3VzdG9tT3B0aW9ucywgT3B0aW9uSXRlbSwgVGFyZ2V0IH0gZnJvbSAnLi4vdHlwZXMvb3B0aW9uLWl0ZW0nO1xuaW1wb3J0IHsgTGlzdEl0ZW0sIExpc3RJdGVtU29ydCB9IGZyb20gJy4uL3R5cGVzL2xpc3QtaXRlbSc7XG5pbXBvcnQgeyBDYW5Ecm9wLCBEcmFnRGF0YSwgRHJvcEFjdGlvbiB9IGZyb20gJy4uL3R5cGVzL2RyYWctZHJvcCc7XG5pbXBvcnQgeyBOb2RlLCBHZW5lcmljQXV0aG9yaXR5IH0gZnJvbSAnbmd4LWVkdS1zaGFyaW5nLWFwaSc7XG5pbXBvcnQgeyBBY3Rpb25iYXJDb21wb25lbnQgfSBmcm9tICcuLi9hY3Rpb25iYXIvYWN0aW9uYmFyLmNvbXBvbmVudCc7XG5cbmV4cG9ydCB0eXBlIE5vZGVSb290ID1cbiAgICB8ICdNWV9GSUxFUydcbiAgICB8ICdTSEFSRURfRklMRVMnXG4gICAgfCAnTVlfU0hBUkVEX0ZJTEVTJ1xuICAgIHwgJ1RPX01FX1NIQVJFRF9GSUxFUydcbiAgICB8ICdXT1JLRkxPV19SRUNFSVZFJ1xuICAgIHwgJ1JFQ1lDTEUnXG4gICAgfCAnQUxMX0ZJTEVTJztcblxuZXhwb3J0IGVudW0gTm9kZUVudHJpZXNEaXNwbGF5VHlwZSB7XG4gICAgVGFibGUsXG4gICAgR3JpZCxcbiAgICBTbWFsbEdyaWQsXG59XG5cbmV4cG9ydCBlbnVtIEludGVyYWN0aW9uVHlwZSB7XG4gICAgLy8gY3JlYXRlIHJvdXRlciBsaW5rXG4gICAgRGVmYXVsdEFjdGlvbkxpbmssXG4gICAgLy8gZW1pdCBhbiBldmVudFxuICAgIEVtaXR0ZXIsXG4gICAgTm9uZSxcbn1cblxuZXhwb3J0IHR5cGUgTGlzdE9wdGlvbnMgPSB7IFtrZXkgaW4gVGFyZ2V0XT86IE9wdGlvbkl0ZW1bXSB9O1xuZXhwb3J0IHR5cGUgTGlzdE9wdGlvbnNDb25maWcgPSB7XG4gICAgYWN0aW9uYmFyPzogQWN0aW9uYmFyQ29tcG9uZW50O1xuICAgIHBhcmVudD86IE5vZGU7XG4gICAgY3VzdG9tT3B0aW9ucz86IEN1c3RvbU9wdGlvbnM7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RTb3J0Q29uZmlnIGV4dGVuZHMgU29ydCB7XG4gICAgY29sdW1uczogTGlzdEl0ZW1Tb3J0W107XG4gICAgYWxsb3dlZD86IGJvb2xlYW47XG4gICAgY3VzdG9tU29ydGluZ0luUHJvZ3Jlc3M/OiBib29sZWFuO1xufVxuXG5leHBvcnQgdHlwZSBEcm9wVGFyZ2V0ID0gTm9kZSB8IE5vZGVSb290O1xuXG5leHBvcnQgaW50ZXJmYWNlIERyb3BTb3VyY2U8VCBleHRlbmRzIE5vZGVFbnRyaWVzRGF0YVR5cGU+IHtcbiAgICBlbGVtZW50OiBUW107XG4gICAgLy8gc291cmNlTGlzdDogTGlzdEV2ZW50SW50ZXJmYWNlPFQ+O1xuICAgIG1vZGU6IERyb3BBY3Rpb247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdERyYWdHcm9wQ29uZmlnPFQgZXh0ZW5kcyBOb2RlRW50cmllc0RhdGFUeXBlPiB7XG4gICAgZHJhZ0FsbG93ZWQ6IGJvb2xlYW47XG4gICAgZHJvcEFsbG93ZWQ/OiAoZHJhZ0RhdGE6IERyYWdEYXRhPFQ+KSA9PiBDYW5Ecm9wO1xuICAgIGRyb3BwZWQ/OiAodGFyZ2V0OiBOb2RlLCBzb3VyY2U6IERyb3BTb3VyY2U8Tm9kZUVudHJpZXNEYXRhVHlwZT4pID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBlbnVtIENsaWNrU291cmNlIHtcbiAgICBQcmV2aWV3LFxuICAgIEljb24sXG4gICAgTWV0YWRhdGEsXG4gICAgQ29tbWVudHMsXG4gICAgT3ZlcmxheSxcbn1cblxuZXhwb3J0IHR5cGUgTm9kZUNsaWNrRXZlbnQ8VCBleHRlbmRzIE5vZGVFbnRyaWVzRGF0YVR5cGU+ID0ge1xuICAgIGVsZW1lbnQ6IFQ7XG4gICAgc291cmNlOiBDbGlja1NvdXJjZTtcbiAgICBhdHRyaWJ1dGU/OiBMaXN0SXRlbTsgLy8gb25seSB3aGVuIHNvdXJjZSA9PT0gTWV0YWRhdGFcbn07XG5leHBvcnQgdHlwZSBGZXRjaEV2ZW50ID0ge1xuICAgIG9mZnNldDogbnVtYmVyO1xuICAgIGFtb3VudD86IG51bWJlcjtcbiAgICAvKipcbiAgICAgKiBpcyBhIHJlc2V0IG9mIHRoZSBjdXJyZW50IGRhdGEgcmVxdWlyZWQ/XG4gICAgICogdGhpcyBzaG91bGQgYmUgdHJ1ZSBpZiB0aGlzIHdhcyBhIHBhZ2luYXRpb24gcmVxdWVzdFxuICAgICAqL1xuICAgIHJlc2V0PzogYm9vbGVhbjtcbn07XG5leHBvcnQgdHlwZSBOb2RlRW50cmllc0RhdGFUeXBlID0gTm9kZSB8IEdlbmVyaWNBdXRob3JpdHk7XG5leHBvcnQgdHlwZSBHcmlkTGF5b3V0ID0gJ2dyaWQnIHwgJ3Njcm9sbCc7XG5leHBvcnQgdHlwZSBHcmlkQ29uZmlnID0ge1xuICAgIC8qKlxuICAgICAqIG1heCBhbW91bnQgb2Ygcm93cyB0aGF0IHNob3VsZCBiZSB2aXNpYmxlLCB1bnNldCBmb3Igbm8gbGltaXRcbiAgICAgKi9cbiAgICBtYXhSb3dzPzogbnVtYmVyO1xuICAgIC8qKlxuICAgICAqIGxheW91dCwgZGVmYXVsdHMgdG8gJ2dyaWQnXG4gICAgICogJ3Njcm9sbCcgbWF5IG9ubHkgYmUgdXNlZCB3aGVuIG1heFJvd3MgaXMgbm90IHNldFxuICAgICAqL1xuICAgIGxheW91dD86IEdyaWRMYXlvdXQ7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RFdmVudEludGVyZmFjZTxUIGV4dGVuZHMgTm9kZUVudHJpZXNEYXRhVHlwZT4ge1xuICAgIHVwZGF0ZU5vZGVzKG5vZGVzOiB2b2lkIHwgVFtdKTogdm9pZDtcblxuICAgIGdldERpc3BsYXlUeXBlKCk6IE5vZGVFbnRyaWVzRGlzcGxheVR5cGU7XG5cbiAgICBzZXREaXNwbGF5VHlwZShkaXNwbGF5VHlwZTogTm9kZUVudHJpZXNEaXNwbGF5VHlwZSk6IHZvaWQ7XG5cbiAgICBzaG93UmVvcmRlckNvbHVtbnNEaWFsb2coKTogdm9pZDtcblxuICAgIGFkZFZpcnR1YWxOb2Rlcyh2aXJ0dWFsOiBUW10pOiB2b2lkO1xuXG4gICAgc2V0T3B0aW9ucyhvcHRpb25zOiBMaXN0T3B0aW9ucyk6IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBhY3RpdmF0ZSBvcHRpb24gKGRyb3Bkb3duKSBnZW5lcmF0aW9uXG4gICAgICovXG4gICAgaW5pdE9wdGlvbnNHZW5lcmF0b3IoY29uZmlnOiBMaXN0T3B0aW9uc0NvbmZpZyk6IHZvaWQgfCBQcm9taXNlPHZvaWQ+O1xuXG4gICAgZ2V0U2VsZWN0aW9uKCk6IFNlbGVjdGlvbk1vZGVsPFQ+O1xuXG4gICAgLyoqXG4gICAgICogdHJpZ2dlcmVkIHdoZW4gbm9kZXMvb2JqZWN0cyBhcmUgZGVsZXRlZCBhbmQgc2hvdWxkIG5vdCBiZSBzaG93biBpbiB0aGUgbGlzdCBhbnltb3JlXG4gICAgICovXG4gICAgZGVsZXRlTm9kZXMob2JqZWN0czogVFtdKTogdm9pZDtcbn1cbiJdfQ==
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50cmllcy1tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VkdS1zaGFyaW5nLXVpL3NyYy9saWIvbm9kZS1lbnRyaWVzL2VudHJpZXMtbW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBa0JBLE1BQU0sQ0FBTixJQUFZLHNCQUlYO0FBSkQsV0FBWSxzQkFBc0I7SUFDOUIscUVBQUssQ0FBQTtJQUNMLG1FQUFJLENBQUE7SUFDSiw2RUFBUyxDQUFBO0FBQ2IsQ0FBQyxFQUpXLHNCQUFzQixLQUF0QixzQkFBc0IsUUFJakM7QUFFRCxNQUFNLENBQU4sSUFBWSxlQU1YO0FBTkQsV0FBWSxlQUFlO0lBQ3ZCLHFCQUFxQjtJQUNyQiwrRUFBaUIsQ0FBQTtJQUNqQixnQkFBZ0I7SUFDaEIsMkRBQU8sQ0FBQTtJQUNQLHFEQUFJLENBQUE7QUFDUixDQUFDLEVBTlcsZUFBZSxLQUFmLGVBQWUsUUFNMUI7QUE2QkQsTUFBTSxDQUFOLElBQVksV0FPWDtBQVBELFdBQVksV0FBVztJQUNuQixtREFBTyxDQUFBO0lBQ1AsNkNBQUksQ0FBQTtJQUNKLHFEQUFRLENBQUE7SUFDUixxREFBUSxDQUFBO0lBQ1IsbURBQU8sQ0FBQTtJQUNQLHFEQUFRLENBQUE7QUFDWixDQUFDLEVBUFcsV0FBVyxLQUFYLFdBQVcsUUFPdEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTb3J0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XG5cbmltcG9ydCB7IFNlbGVjdGlvbk1vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IEN1c3RvbU9wdGlvbnMsIE9wdGlvbkl0ZW0sIFRhcmdldCB9IGZyb20gJy4uL3R5cGVzL29wdGlvbi1pdGVtJztcbmltcG9ydCB7IExpc3RJdGVtLCBMaXN0SXRlbVNvcnQgfSBmcm9tICcuLi90eXBlcy9saXN0LWl0ZW0nO1xuaW1wb3J0IHsgQ2FuRHJvcCwgRHJhZ0RhdGEsIERyb3BBY3Rpb24gfSBmcm9tICcuLi90eXBlcy9kcmFnLWRyb3AnO1xuaW1wb3J0IHsgTm9kZSwgR2VuZXJpY0F1dGhvcml0eSB9IGZyb20gJ25neC1lZHUtc2hhcmluZy1hcGknO1xuaW1wb3J0IHsgQWN0aW9uYmFyQ29tcG9uZW50IH0gZnJvbSAnLi4vYWN0aW9uYmFyL2FjdGlvbmJhci5jb21wb25lbnQnO1xuXG5leHBvcnQgdHlwZSBOb2RlUm9vdCA9XG4gICAgfCAnTVlfRklMRVMnXG4gICAgfCAnU0hBUkVEX0ZJTEVTJ1xuICAgIHwgJ01ZX1NIQVJFRF9GSUxFUydcbiAgICB8ICdUT19NRV9TSEFSRURfRklMRVMnXG4gICAgfCAnV09SS0ZMT1dfUkVDRUlWRSdcbiAgICB8ICdSRUNZQ0xFJ1xuICAgIHwgJ0FMTF9GSUxFUyc7XG5cbmV4cG9ydCBlbnVtIE5vZGVFbnRyaWVzRGlzcGxheVR5cGUge1xuICAgIFRhYmxlLFxuICAgIEdyaWQsXG4gICAgU21hbGxHcmlkLFxufVxuXG5leHBvcnQgZW51bSBJbnRlcmFjdGlvblR5cGUge1xuICAgIC8vIGNyZWF0ZSByb3V0ZXIgbGlua1xuICAgIERlZmF1bHRBY3Rpb25MaW5rLFxuICAgIC8vIGVtaXQgYW4gZXZlbnRcbiAgICBFbWl0dGVyLFxuICAgIE5vbmUsXG59XG5cbmV4cG9ydCB0eXBlIExpc3RPcHRpb25zID0geyBba2V5IGluIFRhcmdldF0/OiBPcHRpb25JdGVtW10gfTtcbmV4cG9ydCB0eXBlIExpc3RPcHRpb25zQ29uZmlnID0ge1xuICAgIGFjdGlvbmJhcj86IEFjdGlvbmJhckNvbXBvbmVudDtcbiAgICBwYXJlbnQ/OiBOb2RlO1xuICAgIGN1c3RvbU9wdGlvbnM/OiBDdXN0b21PcHRpb25zO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBMaXN0U29ydENvbmZpZyBleHRlbmRzIFNvcnQge1xuICAgIGNvbHVtbnM6IExpc3RJdGVtU29ydFtdO1xuICAgIGFsbG93ZWQ/OiBib29sZWFuO1xuICAgIGN1c3RvbVNvcnRpbmdJblByb2dyZXNzPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IHR5cGUgRHJvcFRhcmdldCA9IE5vZGUgfCBOb2RlUm9vdDtcblxuZXhwb3J0IGludGVyZmFjZSBEcm9wU291cmNlPFQgZXh0ZW5kcyBOb2RlRW50cmllc0RhdGFUeXBlPiB7XG4gICAgZWxlbWVudDogVFtdO1xuICAgIC8vIHNvdXJjZUxpc3Q6IExpc3RFdmVudEludGVyZmFjZTxUPjtcbiAgICBtb2RlOiBEcm9wQWN0aW9uO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3REcmFnR3JvcENvbmZpZzxUIGV4dGVuZHMgTm9kZUVudHJpZXNEYXRhVHlwZT4ge1xuICAgIGRyYWdBbGxvd2VkOiBib29sZWFuO1xuICAgIGRyb3BBbGxvd2VkPzogKGRyYWdEYXRhOiBEcmFnRGF0YTxUPikgPT4gQ2FuRHJvcDtcbiAgICBkcm9wcGVkPzogKHRhcmdldDogTm9kZSwgc291cmNlOiBEcm9wU291cmNlPE5vZGVFbnRyaWVzRGF0YVR5cGU+KSA9PiB2b2lkO1xufVxuXG5leHBvcnQgZW51bSBDbGlja1NvdXJjZSB7XG4gICAgUHJldmlldyxcbiAgICBJY29uLFxuICAgIE1ldGFkYXRhLFxuICAgIENvbW1lbnRzLFxuICAgIE92ZXJsYXksXG4gICAgRHJvcGRvd24sIC8vIGtlZXA6IHVzZWQgaW4gZXh0ZW5zaW9uc1xufVxuXG5leHBvcnQgdHlwZSBOb2RlQ2xpY2tFdmVudDxUIGV4dGVuZHMgTm9kZUVudHJpZXNEYXRhVHlwZT4gPSB7XG4gICAgZWxlbWVudDogVDtcbiAgICBzb3VyY2U6IENsaWNrU291cmNlO1xuICAgIGF0dHJpYnV0ZT86IExpc3RJdGVtOyAvLyBvbmx5IHdoZW4gc291cmNlID09PSBNZXRhZGF0YVxufTtcbmV4cG9ydCB0eXBlIEZldGNoRXZlbnQgPSB7XG4gICAgb2Zmc2V0OiBudW1iZXI7XG4gICAgYW1vdW50PzogbnVtYmVyO1xuICAgIC8qKlxuICAgICAqIGlzIGEgcmVzZXQgb2YgdGhlIGN1cnJlbnQgZGF0YSByZXF1aXJlZD9cbiAgICAgKiB0aGlzIHNob3VsZCBiZSB0cnVlIGlmIHRoaXMgd2FzIGEgcGFnaW5hdGlvbiByZXF1ZXN0XG4gICAgICovXG4gICAgcmVzZXQ/OiBib29sZWFuO1xufTtcbmV4cG9ydCB0eXBlIE5vZGVFbnRyaWVzRGF0YVR5cGUgPSBOb2RlIHwgR2VuZXJpY0F1dGhvcml0eTtcbmV4cG9ydCB0eXBlIEdyaWRMYXlvdXQgPSAnZ3JpZCcgfCAnc2Nyb2xsJztcbmV4cG9ydCB0eXBlIEdyaWRDb25maWcgPSB7XG4gICAgLyoqXG4gICAgICogbWF4IGFtb3VudCBvZiByb3dzIHRoYXQgc2hvdWxkIGJlIHZpc2libGUsIHVuc2V0IGZvciBubyBsaW1pdFxuICAgICAqL1xuICAgIG1heFJvd3M/OiBudW1iZXI7XG4gICAgLyoqXG4gICAgICogbGF5b3V0LCBkZWZhdWx0cyB0byAnZ3JpZCdcbiAgICAgKiAnc2Nyb2xsJyBtYXkgb25seSBiZSB1c2VkIHdoZW4gbWF4Um93cyBpcyBub3Qgc2V0XG4gICAgICovXG4gICAgbGF5b3V0PzogR3JpZExheW91dDtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdEV2ZW50SW50ZXJmYWNlPFQgZXh0ZW5kcyBOb2RlRW50cmllc0RhdGFUeXBlPiB7XG4gICAgdXBkYXRlTm9kZXMobm9kZXM6IHZvaWQgfCBUW10pOiB2b2lkO1xuXG4gICAgZ2V0RGlzcGxheVR5cGUoKTogTm9kZUVudHJpZXNEaXNwbGF5VHlwZTtcblxuICAgIHNldERpc3BsYXlUeXBlKGRpc3BsYXlUeXBlOiBOb2RlRW50cmllc0Rpc3BsYXlUeXBlKTogdm9pZDtcblxuICAgIHNob3dSZW9yZGVyQ29sdW1uc0RpYWxvZygpOiB2b2lkO1xuXG4gICAgYWRkVmlydHVhbE5vZGVzKHZpcnR1YWw6IFRbXSk6IHZvaWQ7XG5cbiAgICBzZXRPcHRpb25zKG9wdGlvbnM6IExpc3RPcHRpb25zKTogdm9pZDtcblxuICAgIC8qKlxuICAgICAqIGFjdGl2YXRlIG9wdGlvbiAoZHJvcGRvd24pIGdlbmVyYXRpb25cbiAgICAgKi9cbiAgICBpbml0T3B0aW9uc0dlbmVyYXRvcihjb25maWc6IExpc3RPcHRpb25zQ29uZmlnKTogdm9pZCB8IFByb21pc2U8dm9pZD47XG5cbiAgICBnZXRTZWxlY3Rpb24oKTogU2VsZWN0aW9uTW9kZWw8VD47XG5cbiAgICAvKipcbiAgICAgKiB0cmlnZ2VyZWQgd2hlbiBub2Rlcy9vYmplY3RzIGFyZSBkZWxldGVkIGFuZCBzaG91bGQgbm90IGJlIHNob3duIGluIHRoZSBsaXN0IGFueW1vcmVcbiAgICAgKi9cbiAgICBkZWxldGVOb2RlcyhvYmplY3RzOiBUW10pOiB2b2lkO1xufVxuIl19
@@ -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
@@ -18,6 +18,14 @@ export class NodeCache {
18
18
  return slice.data.slice(range.startIndex - slice.startIndex, range.endIndex - slice.startIndex);
19
19
  }
20
20
  }
21
+ // for the first request
22
+ console.warn('Requested range was not found in the slices cache, falling back to a smaller slice (the backend resolved too less data)', range, this._slices);
23
+ for (const slice of this._slices) {
24
+ if (slice.startIndex <= range.startIndex && slice.endIndex >= range.startIndex) {
25
+ return slice.data.slice(range.startIndex - slice.startIndex, range.endIndex - slice.startIndex);
26
+ }
27
+ }
28
+ console.error('Could not find any slice for the range', range, this._slices);
21
29
  return null;
22
30
  }
23
31
  getMissingRange(requestedRange) {
@@ -62,4 +70,4 @@ export class NodeCache {
62
70
  };
63
71
  }
64
72
  }
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1jYWNoZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VkdS1zaGFyaW5nLXVpL3NyYy9saWIvbm9kZS1lbnRyaWVzL25vZGUtY2FjaGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBVzVDLE1BQU0sT0FBTyxTQUFTO0lBQXRCO1FBQ1ksWUFBTyxHQUFpQyxFQUFFLENBQUM7SUFvRXZELENBQUM7SUFsRUcsR0FBRyxDQUFDLEtBQXdCO1FBQ3hCLElBQUksS0FBSyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsVUFBVSxLQUFLLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ3pELE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXVDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1NBQ3BGO1FBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQsS0FBSztRQUNELElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxHQUFHLENBQUMsS0FBcUI7UUFDckIsS0FBSyxNQUFNLEtBQUssSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQzlCLElBQUksS0FBSyxDQUFDLFVBQVUsSUFBSSxLQUFLLENBQUMsVUFBVSxJQUFJLEtBQUssQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRTtnQkFDMUUsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FDbkIsS0FBSyxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsVUFBVSxFQUNuQyxLQUFLLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQ3BDLENBQUM7YUFDTDtTQUNKO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELGVBQWUsQ0FBQyxjQUE4QjtRQUMxQyxJQUFJLFNBQVMsR0FBRyxjQUFjLENBQUMsVUFBVSxDQUFDO1FBQzFDLElBQUksT0FBTyxHQUFHLGNBQWMsQ0FBQyxRQUFRLENBQUM7UUFDdEMsS0FBSyxNQUFNLEtBQUssSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQzlCLElBQUksS0FBSyxDQUFDLFVBQVUsSUFBSSxTQUFTLElBQUksS0FBSyxDQUFDLFFBQVEsR0FBRyxTQUFTLEVBQUU7Z0JBQzdELFNBQVMsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO2FBQzlCO2lCQUFNLElBQUksS0FBSyxDQUFDLFVBQVUsR0FBRyxPQUFPLElBQUksS0FBSyxDQUFDLFFBQVEsSUFBSSxPQUFPLEVBQUU7Z0JBQ2hFLE9BQU8sR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDO2FBQzlCO1lBQ0QsSUFBSSxTQUFTLElBQUksT0FBTyxFQUFFO2dCQUN0QixPQUFPLElBQUksQ0FBQzthQUNmO1NBQ0o7UUFDRCxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFDeEQsQ0FBQztJQUVPLGdCQUFnQixDQUFDLE1BQTJCO1FBQ2hELE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMzRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDeEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUN4QyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO29CQUN0QyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQzlDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxvQkFBb0I7aUJBQ3pDO2FBQ0o7U0FDSjtRQUNELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRU8sU0FBUyxDQUFDLEdBQXNCLEVBQUUsR0FBc0I7UUFDNUQsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNkLE9BQU8sS0FBSyxDQUFDO1NBQ2hCO1FBQ0QsT0FBTyxHQUFHLENBQUMsUUFBUSxJQUFJLEdBQUcsQ0FBQyxVQUFVLENBQUM7SUFDMUMsQ0FBQztJQUVPLE1BQU0sQ0FBQyxHQUFzQixFQUFFLEdBQXNCO1FBQ3pELE9BQU87WUFDSCxVQUFVLEVBQUUsR0FBRyxDQUFDLFVBQVU7WUFDMUIsUUFBUSxFQUFFLEdBQUcsQ0FBQyxRQUFRO1lBQ3RCLElBQUksRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLElBQUksRUFBRSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ3hFLENBQUM7SUFDTixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBub3ROdWxsIH0gZnJvbSAnLi4vdXRpbC9mdW5jdGlvbnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5vZGVDYWNoZVJhbmdlIHtcbiAgICBzdGFydEluZGV4OiBudW1iZXI7XG4gICAgZW5kSW5kZXg6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOb2RlQ2FjaGVTbGljZTxUPiBleHRlbmRzIE5vZGVDYWNoZVJhbmdlIHtcbiAgICBkYXRhOiByZWFkb25seSBUW107XG59XG5cbmV4cG9ydCBjbGFzcyBOb2RlQ2FjaGU8VD4ge1xuICAgIHByaXZhdGUgX3NsaWNlczogcmVhZG9ubHkgTm9kZUNhY2hlU2xpY2U8VD5bXSA9IFtdO1xuXG4gICAgYWRkKHNsaWNlOiBOb2RlQ2FjaGVTbGljZTxUPik6IHZvaWQge1xuICAgICAgICBpZiAoc2xpY2UuZW5kSW5kZXggLSBzbGljZS5zdGFydEluZGV4ICE9PSBzbGljZS5kYXRhLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdUcmllZCB0byBhZGQgaW52YWxpZCBzbGljZSB0byBjYWNoZTogJyArIEpTT04uc3RyaW5naWZ5KHNsaWNlKSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fc2xpY2VzID0gdGhpcy5fbm9ybWFsaXplU2xpY2VzKFsuLi50aGlzLl9zbGljZXMsIHNsaWNlXSk7XG4gICAgfVxuXG4gICAgY2xlYXIoKSB7XG4gICAgICAgIHRoaXMuX3NsaWNlcyA9IFtdO1xuICAgIH1cblxuICAgIGdldChyYW5nZTogTm9kZUNhY2hlUmFuZ2UpOiBUW10gfCBudWxsIHtcbiAgICAgICAgZm9yIChjb25zdCBzbGljZSBvZiB0aGlzLl9zbGljZXMpIHtcbiAgICAgICAgICAgIGlmIChzbGljZS5zdGFydEluZGV4IDw9IHJhbmdlLnN0YXJ0SW5kZXggJiYgc2xpY2UuZW5kSW5kZXggPj0gcmFuZ2UuZW5kSW5kZXgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc2xpY2UuZGF0YS5zbGljZShcbiAgICAgICAgICAgICAgICAgICAgcmFuZ2Uuc3RhcnRJbmRleCAtIHNsaWNlLnN0YXJ0SW5kZXgsXG4gICAgICAgICAgICAgICAgICAgIHJhbmdlLmVuZEluZGV4IC0gc2xpY2Uuc3RhcnRJbmRleCxcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGdldE1pc3NpbmdSYW5nZShyZXF1ZXN0ZWRSYW5nZTogTm9kZUNhY2hlUmFuZ2UpOiBOb2RlQ2FjaGVSYW5nZSB8IG51bGwge1xuICAgICAgICBsZXQgZnJvbUluZGV4ID0gcmVxdWVzdGVkUmFuZ2Uuc3RhcnRJbmRleDtcbiAgICAgICAgbGV0IHRvSW5kZXggPSByZXF1ZXN0ZWRSYW5nZS5lbmRJbmRleDtcbiAgICAgICAgZm9yIChjb25zdCBzbGljZSBvZiB0aGlzLl9zbGljZXMpIHtcbiAgICAgICAgICAgIGlmIChzbGljZS5zdGFydEluZGV4IDw9IGZyb21JbmRleCAmJiBzbGljZS5lbmRJbmRleCA+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=
@@ -98,7 +98,9 @@ export class NodeDataSource extends DataSource {
98
98
  return this.dataStream.value?.length === 0;
99
99
  }
100
100
  getTotal() {
101
- return this.pagination$.value?.total ?? this.dataStream.value?.length ?? 0;
101
+ return this.pagination$.value?.total
102
+ ? Math.max(this.pagination$.value?.total, this.getData()?.length || 0)
103
+ : this.dataStream.value?.length ?? 0;
102
104
  }
103
105
  isFullyLoaded() {
104
106
  return this.getTotal() <= this.dataStream.value?.length;
@@ -112,4 +114,4 @@ export class NodeDataSource extends DataSource {
112
114
  this.dataStream.next(Helper.deepCopy(this.dataStream.value));
113
115
  }
114
116
  }
115
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1kYXRhLXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VkdS1zaGFyaW5nLXVpL3NyYy9saWIvbm9kZS1lbnRyaWVzL25vZGUtZGF0YS1zb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQTRCLE1BQU0sTUFBTSxDQUFDO0FBR2pFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQVl4QyxNQUFNLE9BQU8sY0FBa0QsU0FBUSxVQUFhO0lBTWhGLElBQUksU0FBUztRQUNULE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQztJQUN2QyxDQUFDO0lBQ0QsSUFBSSxTQUFTLENBQUMsU0FBaUM7UUFDM0MsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBR0QsSUFBSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxLQUF5QjtRQUNsQyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBSUQsWUFBWSxjQUFtQixFQUFFO1FBQzdCLEtBQUssRUFBRSxDQUFDO1FBeEJGLGVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBTSxFQUFFLENBQUMsQ0FBQztRQUM1QyxnQkFBVyxHQUFHLElBQUksZUFBZSxDQUFhLElBQUksQ0FBQyxDQUFDO1FBQzVELDJGQUEyRjtRQUMzRixRQUFRO1FBQ0QscUJBQWdCLEdBQUcsSUFBSSxlQUFlLENBQXlCLEtBQUssQ0FBQyxDQUFDO1FBTzdFLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQVNoQixlQUFVLEdBQUcsSUFBSSxlQUFlLENBQU0sRUFBRSxDQUFDLENBQUM7UUFLaEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsT0FBTztRQUNILElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUU7WUFDOUIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7U0FDNUI7UUFDRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDM0IsQ0FBQztJQUVPLGlCQUFpQjtRQUNyQixJQUFJLENBQUMsc0JBQXNCLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDM0MsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2YsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQyxRQUFRO2lCQUN0QyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztpQkFDeEIsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQ3hEO2FBQU07WUFDSCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUM3RCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FDN0IsQ0FBQztTQUNMO0lBQ0wsQ0FBQztJQUVELGlCQUFpQjtRQUNiLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBRUQsVUFBVSxLQUFJLENBQUM7SUFFZixPQUFPLENBQUMsSUFBUyxFQUFFLGFBQXlCLElBQUk7UUFDNUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsVUFBVSxDQUFDLFVBQWUsRUFBRSxXQUErQixPQUFPO1FBQzlELElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMxQixJQUFJLFFBQVEsS0FBSyxPQUFPLEVBQUU7WUFDdEIsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDbEM7YUFBTTtZQUNILElBQUksR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2xDO1FBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsVUFBVSxDQUFDLFFBQWE7UUFDcEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FDakMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUNOLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBRSxDQUFVLENBQUMsR0FBRyxFQUFHLEtBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUN2RixDQUFDO1FBQ0YsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDL0UsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDOUIsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRTtZQUN4QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztZQUMxQyxJQUFJLENBQUMsYUFBYSxDQUFDO2dCQUNmLEtBQUssRUFBRSxVQUFVLENBQUMsS0FBSyxHQUFHLFdBQVcsQ0FBQyxNQUFNO2dCQUM1QyxJQUFJLEVBQUUsVUFBVSxDQUFDLElBQUk7Z0JBQ3JCLEtBQUssRUFBRSxVQUFVLENBQUMsS0FBSyxHQUFHLFdBQVcsQ0FBQyxNQUFNO2FBQy9DLENBQUMsQ0FBQztTQUNOO0lBQ0wsQ0FBQztJQUVELGFBQWEsQ0FBQyxVQUFzQjtRQUNoQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsS0FBSztRQUNELElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVELE9BQU87UUFDSCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUU7WUFDekIsT0FBTyxTQUFTLENBQUM7U0FDcEI7UUFDRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUM7SUFDeEUsQ0FBQztJQUVELGdHQUFnRztJQUNoRyw0RUFBNEU7SUFDNUUsT0FBTztRQUNILE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUM7SUFDakMsQ0FBQztJQUVELE9BQU87UUFDSCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLE1BQU0sS0FBSyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELFFBQVE7UUFDSixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLEtBQUssSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFFRCxhQUFhO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDO0lBQzVELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsT0FBTztRQUNILElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tICdAYW5ndWxhci9jZGsvY29sbGVjdGlvbnMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEl0ZW1zQ2FwIH0gZnJvbSAnLi9pdGVtcy1jYXAnO1xuaW1wb3J0IHsgTm9kZSwgR2VuZXJpY0F1dGhvcml0eSwgUGFnaW5hdGlvbiB9IGZyb20gJ25neC1lZHUtc2hhcmluZy1hcGknO1xuaW1wb3J0IHsgSGVscGVyIH0gZnJvbSAnLi4vdXRpbC9oZWxwZXInO1xuXG5leHBvcnQgdHlwZSBMb2FkaW5nU3RhdGUgPVxuICAgIC8vIFRoZSBkYXRhIHNvdXJjZSBpcyBsb2FkaW5nIGRhdGEgZm9yIHRoZSBmaXJzdCB0aW1lLlxuICAgIHwgJ2luaXRpYWwnXG4gICAgLy8gTG9hZGluZyBkYXRhIGFmdGVyIGNoYW5nZSBvZiBwYXJhbWV0ZXJzLCBpLmUuLCBpdCB3aWxsIHJlcGxhY2UgdGhlIGN1cnJlbnQgZGF0YSB3aGVuIGRvbmUuXG4gICAgfCAncmVzZXQnXG4gICAgLy8gTG9hZGluZyBhbm90aGVyIHBhZ2Ugd2l0aCB1bmNoYW5nZWQgcGFyYW1ldGVycy5cbiAgICB8ICdwYWdlJ1xuICAgIC8vIExvYWRpbmcgZG9uZS5cbiAgICB8IGZhbHNlO1xuXG5leHBvcnQgY2xhc3MgTm9kZURhdGFTb3VyY2U8VCBleHRlbmRzIE5vZGUgfCBHZW5lcmljQXV0aG9yaXR5PiBleHRlbmRzIERhdGFTb3VyY2U8VD4ge1xuICAgIHByb3RlY3RlZCBkYXRhU3RyZWFtID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUW10+KFtdKTtcbiAgICBwcml2YXRlIHBhZ2luYXRpb24kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxQYWdpbmF0aW9uPihudWxsKTtcbiAgICAvLyBJbmNsdWRlIGBMb2FkaW5nU3RhdGVgIHRvIGJlIHR5cGUtY29tcGF0aWJsZSB0byBgTm9kZURhdGFTb3VyY2VSZW1vdGVgIGFsdGhvdWdoIG5vdCB1c2VkXG4gICAgLy8gaGVyZS5cbiAgICBwdWJsaWMgaXNMb2FkaW5nU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TG9hZGluZ1N0YXRlIHwgYm9vbGVhbj4oZmFsc2UpO1xuICAgIGdldCBpc0xvYWRpbmcoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzTG9hZGluZ1N1YmplY3QudmFsdWU7XG4gICAgfVxuICAgIHNldCBpc0xvYWRpbmcoaXNMb2FkaW5nOiBMb2FkaW5nU3RhdGUgfCBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuaXNMb2FkaW5nU3ViamVjdC5uZXh0KGlzTG9hZGluZyk7XG4gICAgfVxuICAgIGluaXRpYWxQYWdlTG9hZGVkID0gZmFsc2U7XG4gICAgcHJvdGVjdGVkIF9pdGVtc0NhcDogSXRlbXNDYXA8VD4gfCBudWxsO1xuICAgIGdldCBpdGVtc0NhcCgpOiBJdGVtc0NhcDxUPiB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5faXRlbXNDYXA7XG4gICAgfVxuICAgIHNldCBpdGVtc0NhcCh2YWx1ZTogSXRlbXNDYXA8VD4gfCBudWxsKSB7XG4gICAgICAgIHRoaXMuX2l0ZW1zQ2FwID0gdmFsdWU7XG4gICAgICAgIHRoaXMuY29ubmVjdFJlbmRlckRhdGEoKTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIHJlbmRlckRhdGEgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRbXT4oW10pO1xuICAgIHByb3RlY3RlZCByZW5kZXJEYXRhU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCBudWxsO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdGlhbERhdGE6IFRbXSA9IFtdKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuc2V0RGF0YShpbml0aWFsRGF0YSk7XG4gICAgfVxuXG4gICAgY29ubmVjdCgpOiBPYnNlcnZhYmxlPFRbXT4ge1xuICAgICAgICBpZiAoIXRoaXMucmVuZGVyRGF0YVN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy5jb25uZWN0UmVuZGVyRGF0YSgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnJlbmRlckRhdGE7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb25uZWN0UmVuZGVyRGF0YSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZW5kZXJEYXRhU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICBpZiAodGhpcy5pdGVtc0NhcCkge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJEYXRhU3Vic2NyaXB0aW9uID0gdGhpcy5pdGVtc0NhcFxuICAgICAgICAgICAgICAgIC5jb25uZWN0KHRoaXMuZGF0YVN0cmVhbSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChkYXRhKSA9PiB0aGlzLnJlbmRlckRhdGEubmV4dChkYXRhKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlckRhdGFTdWJzY3JpcHRpb24gPSB0aGlzLmRhdGFTdHJlYW0uc3Vic2NyaWJlKChkYXRhKSA9PlxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyRGF0YS5uZXh0KGRhdGEpLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbm5lY3RQYWdpbmF0aW9uKCk6IE9ic2VydmFibGU8UGFnaW5hdGlvbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wYWdpbmF0aW9uJDtcbiAgICB9XG5cbiAgICBkaXNjb25uZWN0KCkge31cblxuICAgIHNldERhdGEoZGF0YTogVFtdLCBwYWdpbmF0aW9uOiBQYWdpbmF0aW9uID0gbnVsbCkge1xuICAgICAgICB0aGlzLmRhdGFTdHJlYW0ubmV4dChkYXRhKTtcbiAgICAgICAgdGhpcy5zZXRQYWdpbmF0aW9uKHBhZ2luYXRpb24pO1xuICAgIH1cblxuICAgIGFwcGVuZERhdGEoYXBwZW5kRGF0YTogVFtdLCBsb2NhdGlvbjogJ2JlZm9yZScgfCAnYWZ0ZXInID0gJ2FmdGVyJykge1xuICAgICAgICBsZXQgZGF0YSA9IHRoaXMuZ2V0RGF0YSgpO1xuICAgICAgICBpZiAobG9jYXRpb24gPT09ICdhZnRlcicpIHtcbiAgICAgICAgICAgIGRhdGEgPSBkYXRhLmNvbmNhdChhcHBlbmREYXRhKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRhdGEgPSBhcHBlbmREYXRhLmNvbmNhdChkYXRhKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmRhdGFTdHJlYW0ubmV4dChkYXRhKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmVzIGVsZW1lbnRzIGZyb20gdGhlIHZpc2libGUgZGF0YS5cbiAgICAgKi9cbiAgICByZW1vdmVEYXRhKHRvUmVtb3ZlOiBUW10pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgbmV3RGF0YSA9IHRoaXMuZ2V0RGF0YSgpLmZpbHRlcihcbiAgICAgICAgICAgICh2YWx1ZSkgPT5cbiAgICAgICAgICAgICAgICAhdG9SZW1vdmUuc29tZSgoZCkgPT4gSGVscGVyLm9iamVjdEVxdWFscygoZCBhcyBOb2RlKS5yZWYsICh2YWx1ZSBhcyBOb2RlKS5yZWYpKSxcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgcmVtb3ZlZERhdGEgPSB0aGlzLmdldERhdGEoKS5maWx0ZXIoKHZhbHVlKSA9PiAhbmV3RGF0YS5pbmNsdWRlcyh2YWx1ZSkpO1xuICAgICAgICB0aGlzLmRhdGFTdHJlYW0ubmV4dChuZXdEYXRhKTtcbiAgICAgICAgaWYgKHRoaXMucGFnaW5hdGlvbiQudmFsdWUpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhZ2luYXRpb24gPSB0aGlzLnBhZ2luYXRpb24kLnZhbHVlO1xuICAgICAgICAgICAgdGhpcy5zZXRQYWdpbmF0aW9uKHtcbiAgICAgICAgICAgICAgICBjb3VudDogcGFnaW5hdGlvbi5jb3VudCAtIHJlbW92ZWREYXRhLmxlbmd0aCxcbiAgICAgICAgICAgICAgICBmcm9tOiBwYWdpbmF0aW9uLmZyb20sXG4gICAgICAgICAgICAgICAgdG90YWw6IHBhZ2luYXRpb24udG90YWwgLSByZW1vdmVkRGF0YS5sZW5ndGgsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldFBhZ2luYXRpb24ocGFnaW5hdGlvbjogUGFnaW5hdGlvbikge1xuICAgICAgICB0aGlzLnBhZ2luYXRpb24kLm5leHQocGFnaW5hdGlvbik7XG4gICAgfVxuXG4gICAgcmVzZXQoKSB7XG4gICAgICAgIHRoaXMuc2V0RGF0YShbXSk7XG4gICAgfVxuXG4gICAgaGFzTW9yZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLnBhZ2luYXRpb24kLnZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnBhZ2luYXRpb24kLnZhbHVlLnRvdGFsID4gdGhpcy5kYXRhU3RyZWFtLnZhbHVlPy5sZW5ndGg7XG4gICAgfVxuXG4gICAgLy8gRklYTUU6IFRoaXMgaXMgc29tZXdoYXQgZGFuZ2Vyb3VzIGJlY2F1c2Ugd2UgcmVseSBvbiBgY29ubmVjdGAgYmVpbmcgY2FsbGVkIGZyb20gb3V0c2lkZSwgYnV0XG4gICAgLy8gdGhpcyBtZXRob2QgcHJvdmlkZXMgYSB3YXkgdG8gYWNjZXNzIGRhdGEgd2l0aG91dCBldmVyIGNhbGxpbmcgYGNvbm5lY3RgLlxuICAgIGdldERhdGEoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlbmRlckRhdGEudmFsdWU7XG4gICAgfVxuXG4gICAgaXNFbXB0eSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVN0cmVhbS52YWx1ZT8ubGVuZ3RoID09PSAwO1xuICAgIH1cblxuICAgIGdldFRvdGFsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wYWdpbmF0aW9uJC52YWx1ZT8udG90YWwgPz8gdGhpcy5kYXRhU3RyZWFtLnZhbHVlPy5sZW5ndGggPz8gMDtcbiAgICB9XG5cbiAgICBpc0Z1bGx5TG9hZGVkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRUb3RhbCgpIDw9IHRoaXMuZGF0YVN0cmVhbS52YWx1ZT8ubGVuZ3RoO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGZvcmNlIGEgcmVmcmVzaCBvZiBhbGwgZWxlbWVudHMgaW4gdGhlIGN1cnJlbnQgZGF0YSBzdHJlYW1cbiAgICAgKiB0cmlnZ2VyIHRoaXMgdG8gZW5mb3JjZSBhIHJlYnVpbGQgb2YgdGhlIG5vZGVzIGluIGFsbCBzdWItY29tcG9uZW50c1xuICAgICAqIGkuZS4gaWYgZGF0YSBmcm9tIHNvbWUgbm9kZXMgaGFzIGNoYW5nZWRcbiAgICAgKi9cbiAgICByZWZyZXNoKCkge1xuICAgICAgICB0aGlzLmRhdGFTdHJlYW0ubmV4dChIZWxwZXIuZGVlcENvcHkodGhpcy5kYXRhU3RyZWFtLnZhbHVlKSk7XG4gICAgfVxufVxuIl19
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1kYXRhLXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VkdS1zaGFyaW5nLXVpL3NyYy9saWIvbm9kZS1lbnRyaWVzL25vZGUtZGF0YS1zb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQTRCLE1BQU0sTUFBTSxDQUFDO0FBR2pFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQVl4QyxNQUFNLE9BQU8sY0FBa0QsU0FBUSxVQUFhO0lBTWhGLElBQUksU0FBUztRQUNULE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQztJQUN2QyxDQUFDO0lBQ0QsSUFBSSxTQUFTLENBQUMsU0FBaUM7UUFDM0MsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBR0QsSUFBSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxLQUF5QjtRQUNsQyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBSUQsWUFBWSxjQUFtQixFQUFFO1FBQzdCLEtBQUssRUFBRSxDQUFDO1FBeEJGLGVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBTSxFQUFFLENBQUMsQ0FBQztRQUM1QyxnQkFBVyxHQUFHLElBQUksZUFBZSxDQUFhLElBQUksQ0FBQyxDQUFDO1FBQzVELDJGQUEyRjtRQUMzRixRQUFRO1FBQ0QscUJBQWdCLEdBQUcsSUFBSSxlQUFlLENBQXlCLEtBQUssQ0FBQyxDQUFDO1FBTzdFLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQVNoQixlQUFV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QUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUM7SUFDNUQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxPQUFPO1FBQ0gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDakUsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2xsZWN0aW9ucyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSXRlbXNDYXAgfSBmcm9tICcuL2l0ZW1zLWNhcCc7XG5pbXBvcnQgeyBHZW5lcmljQXV0aG9yaXR5LCBOb2RlLCBQYWdpbmF0aW9uIH0gZnJvbSAnbmd4LWVkdS1zaGFyaW5nLWFwaSc7XG5pbXBvcnQgeyBIZWxwZXIgfSBmcm9tICcuLi91dGlsL2hlbHBlcic7XG5cbmV4cG9ydCB0eXBlIExvYWRpbmdTdGF0ZSA9XG4gICAgLy8gVGhlIGRhdGEgc291cmNlIGlzIGxvYWRpbmcgZGF0YSBmb3IgdGhlIGZpcnN0IHRpbWUuXG4gICAgfCAnaW5pdGlhbCdcbiAgICAvLyBMb2FkaW5nIGRhdGEgYWZ0ZXIgY2hhbmdlIG9mIHBhcmFtZXRlcnMsIGkuZS4sIGl0IHdpbGwgcmVwbGFjZSB0aGUgY3VycmVudCBkYXRhIHdoZW4gZG9uZS5cbiAgICB8ICdyZXNldCdcbiAgICAvLyBMb2FkaW5nIGFub3RoZXIgcGFnZSB3aXRoIHVuY2hhbmdlZCBwYXJhbWV0ZXJzLlxuICAgIHwgJ3BhZ2UnXG4gICAgLy8gTG9hZGluZyBkb25lLlxuICAgIHwgZmFsc2U7XG5cbmV4cG9ydCBjbGFzcyBOb2RlRGF0YVNvdXJjZTxUIGV4dGVuZHMgTm9kZSB8IEdlbmVyaWNBdXRob3JpdHk+IGV4dGVuZHMgRGF0YVNvdXJjZTxUPiB7XG4gICAgcHJvdGVjdGVkIGRhdGFTdHJlYW0gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRbXT4oW10pO1xuICAgIHByaXZhdGUgcGFnaW5hdGlvbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFBhZ2luYXRpb24+KG51bGwpO1xuICAgIC8vIEluY2x1ZGUgYExvYWRpbmdTdGF0ZWAgdG8gYmUgdHlwZS1jb21wYXRpYmxlIHRvIGBOb2RlRGF0YVNvdXJjZVJlbW90ZWAgYWx0aG91Z2ggbm90IHVzZWRcbiAgICAvLyBoZXJlLlxuICAgIHB1YmxpYyBpc0xvYWRpbmdTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxMb2FkaW5nU3RhdGUgfCBib29sZWFuPihmYWxzZSk7XG4gICAgZ2V0IGlzTG9hZGluZygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNMb2FkaW5nU3ViamVjdC52YWx1ZTtcbiAgICB9XG4gICAgc2V0IGlzTG9hZGluZyhpc0xvYWRpbmc6IExvYWRpbmdTdGF0ZSB8IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmdTdWJqZWN0Lm5leHQoaXNMb2FkaW5nKTtcbiAgICB9XG4gICAgaW5pdGlhbFBhZ2VMb2FkZWQgPSBmYWxzZTtcbiAgICBwcm90ZWN0ZWQgX2l0ZW1zQ2FwOiBJdGVtc0NhcDxUPiB8IG51bGw7XG4gICAgZ2V0IGl0ZW1zQ2FwKCk6IEl0ZW1zQ2FwPFQ+IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pdGVtc0NhcDtcbiAgICB9XG4gICAgc2V0IGl0ZW1zQ2FwKHZhbHVlOiBJdGVtc0NhcDxUPiB8IG51bGwpIHtcbiAgICAgICAgdGhpcy5faXRlbXNDYXAgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5jb25uZWN0UmVuZGVyRGF0YSgpO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgcmVuZGVyRGF0YSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VFtdPihbXSk7XG4gICAgcHJvdGVjdGVkIHJlbmRlckRhdGFTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IG51bGw7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0aWFsRGF0YTogVFtdID0gW10pIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5zZXREYXRhKGluaXRpYWxEYXRhKTtcbiAgICB9XG5cbiAgICBjb25uZWN0KCk6IE9ic2VydmFibGU8VFtdPiB7XG4gICAgICAgIGlmICghdGhpcy5yZW5kZXJEYXRhU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLmNvbm5lY3RSZW5kZXJEYXRhKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGF0YTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbm5lY3RSZW5kZXJEYXRhKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlbmRlckRhdGFTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIGlmICh0aGlzLml0ZW1zQ2FwKSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlckRhdGFTdWJzY3JpcHRpb24gPSB0aGlzLml0ZW1zQ2FwXG4gICAgICAgICAgICAgICAgLmNvbm5lY3QodGhpcy5kYXRhU3RyZWFtKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGRhdGEpID0+IHRoaXMucmVuZGVyRGF0YS5uZXh0KGRhdGEpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyRGF0YVN1YnNjcmlwdGlvbiA9IHRoaXMuZGF0YVN0cmVhbS5zdWJzY3JpYmUoKGRhdGEpID0+XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJEYXRhLm5leHQoZGF0YSksXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29ubmVjdFBhZ2luYXRpb24oKTogT2JzZXJ2YWJsZTxQYWdpbmF0aW9uPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnBhZ2luYXRpb24kO1xuICAgIH1cblxuICAgIGRpc2Nvbm5lY3QoKSB7fVxuXG4gICAgc2V0RGF0YShkYXRhOiBUW10sIHBhZ2luYXRpb246IFBhZ2luYXRpb24gPSBudWxsKSB7XG4gICAgICAgIHRoaXMuZGF0YVN0cmVhbS5uZXh0KGRhdGEpO1xuICAgICAgICB0aGlzLnNldFBhZ2luYXRpb24ocGFnaW5hdGlvbik7XG4gICAgfVxuXG4gICAgYXBwZW5kRGF0YShhcHBlbmREYXRhOiBUW10sIGxvY2F0aW9uOiAnYmVmb3JlJyB8ICdhZnRlcicgPSAnYWZ0ZXInKSB7XG4gICAgICAgIGxldCBkYXRhID0gdGhpcy5nZXREYXRhKCk7XG4gICAgICAgIGlmIChsb2NhdGlvbiA9PT0gJ2FmdGVyJykge1xuICAgICAgICAgICAgZGF0YSA9IGRhdGEuY29uY2F0KGFwcGVuZERhdGEpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGF0YSA9IGFwcGVuZERhdGEuY29uY2F0KGRhdGEpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZGF0YVN0cmVhbS5uZXh0KGRhdGEpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZXMgZWxlbWVudHMgZnJvbSB0aGUgdmlzaWJsZSBkYXRhLlxuICAgICAqL1xuICAgIHJlbW92ZURhdGEodG9SZW1vdmU6IFRbXSk6IHZvaWQge1xuICAgICAgICBjb25zdCBuZXdEYXRhID0gdGhpcy5nZXREYXRhKCkuZmlsdGVyKFxuICAgICAgICAgICAgKHZhbHVlKSA9PlxuICAgICAgICAgICAgICAgICF0b1JlbW92ZS5zb21lKChkKSA9PiBIZWxwZXIub2JqZWN0RXF1YWxzKChkIGFzIE5vZGUpLnJlZiwgKHZhbHVlIGFzIE5vZGUpLnJlZikpLFxuICAgICAgICApO1xuICAgICAgICBjb25zdCByZW1vdmVkRGF0YSA9IHRoaXMuZ2V0RGF0YSgpLmZpbHRlcigodmFsdWUpID0+ICFuZXdEYXRhLmluY2x1ZGVzKHZhbHVlKSk7XG4gICAgICAgIHRoaXMuZGF0YVN0cmVhbS5uZXh0KG5ld0RhdGEpO1xuICAgICAgICBpZiAodGhpcy5wYWdpbmF0aW9uJC52YWx1ZSkge1xuICAgICAgICAgICAgY29uc3QgcGFnaW5hdGlvbiA9IHRoaXMucGFnaW5hdGlvbiQudmFsdWU7XG4gICAgICAgICAgICB0aGlzLnNldFBhZ2luYXRpb24oe1xuICAgICAgICAgICAgICAgIGNvdW50OiBwYWdpbmF0aW9uLmNvdW50IC0gcmVtb3ZlZERhdGEubGVuZ3RoLFxuICAgICAgICAgICAgICAgIGZyb206IHBhZ2luYXRpb24uZnJvbSxcbiAgICAgICAgICAgICAgICB0b3RhbDogcGFnaW5hdGlvbi50b3RhbCAtIHJlbW92ZWREYXRhLmxlbmd0aCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2V0UGFnaW5hdGlvbihwYWdpbmF0aW9uOiBQYWdpbmF0aW9uKSB7XG4gICAgICAgIHRoaXMucGFnaW5hdGlvbiQubmV4dChwYWdpbmF0aW9uKTtcbiAgICB9XG5cbiAgICByZXNldCgpIHtcbiAgICAgICAgdGhpcy5zZXREYXRhKFtdKTtcbiAgICB9XG5cbiAgICBoYXNNb3JlKCkge1xuICAgICAgICBpZiAoIXRoaXMucGFnaW5hdGlvbiQudmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMucGFnaW5hdGlvbiQudmFsdWUudG90YWwgPiB0aGlzLmRhdGFTdHJlYW0udmFsdWU/Lmxlbmd0aDtcbiAgICB9XG5cbiAgICAvLyBGSVhNRTogVGhpcyBpcyBzb21ld2hhdCBkYW5nZXJvdXMgYmVjYXVzZSB3ZSByZWx5IG9uIGBjb25uZWN0YCBiZWluZyBjYWxsZWQgZnJvbSBvdXRzaWRlLCBidXRcbiAgICAvLyB0aGlzIG1ldGhvZCBwcm92aWRlcyBhIHdheSB0byBhY2Nlc3MgZGF0YSB3aXRob3V0IGV2ZXIgY2FsbGluZyBgY29ubmVjdGAuXG4gICAgZ2V0RGF0YSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVuZGVyRGF0YS52YWx1ZTtcbiAgICB9XG5cbiAgICBpc0VtcHR5KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXRhU3RyZWFtLnZhbHVlPy5sZW5ndGggPT09IDA7XG4gICAgfVxuXG4gICAgZ2V0VG90YWwoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnBhZ2luYXRpb24kLnZhbHVlPy50b3RhbFxuICAgICAgICAgICAgPyBNYXRoLm1heCh0aGlzLnBhZ2luYXRpb24kLnZhbHVlPy50b3RhbCwgdGhpcy5nZXREYXRhKCk/Lmxlbmd0aCB8fCAwKVxuICAgICAgICAgICAgOiB0aGlzLmRhdGFTdHJlYW0udmFsdWU/Lmxlbmd0aCA/PyAwO1xuICAgIH1cblxuICAgIGlzRnVsbHlMb2FkZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFRvdGFsKCkgPD0gdGhpcy5kYXRhU3RyZWFtLnZhbHVlPy5sZW5ndGg7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZm9yY2UgYSByZWZyZXNoIG9mIGFsbCBlbGVtZW50cyBpbiB0aGUgY3VycmVudCBkYXRhIHN0cmVhbVxuICAgICAqIHRyaWdnZXIgdGhpcyB0byBlbmZvcmNlIGEgcmVidWlsZCBvZiB0aGUgbm9kZXMgaW4gYWxsIHN1Yi1jb21wb25lbnRzXG4gICAgICogaS5lLiBpZiBkYXRhIGZyb20gc29tZSBub2RlcyBoYXMgY2hhbmdlZFxuICAgICAqL1xuICAgIHJlZnJlc2goKSB7XG4gICAgICAgIHRoaXMuZGF0YVN0cmVhbS5uZXh0KEhlbHBlci5kZWVwQ29weSh0aGlzLmRhdGFTdHJlYW0udmFsdWUpKTtcbiAgICB9XG59XG4iXX0=
@@ -14,8 +14,8 @@ import * as i4 from "../node-entries-templates.service";
14
14
  import * as i5 from "../node-entries-global.service";
15
15
  import * as i6 from "../../services/abstract/toast.service";
16
16
  import * as i7 from "@angular/common";
17
- import * as i8 from "../../directives/icon.directive";
18
- import * as i9 from "../../directives/focus-state.directive";
17
+ import * as i8 from "../../directives/focus-state.directive";
18
+ import * as i9 from "../../directives/icon.directive";
19
19
  import * as i10 from "../../node-url/node-url.component";
20
20
  import * as i11 from "../../list-items/list-base/list-base.component";
21
21
  import * as i12 from "@angular/material/checkbox";
@@ -27,9 +27,10 @@ import * as i17 from "../preview-image/preview-image.component";
27
27
  import * as i18 from "../node-type-badge/node-type-badge.component";
28
28
  import * as i19 from "../option-button/option-button.component";
29
29
  import * as i20 from "../node-stats-badges/node-stats-badges.component";
30
- import * as i21 from "../../pipes/node-title.pipe";
31
- import * as i22 from "@ngx-translate/core";
32
- import * as i23 from "../list-item-label.pipe";
30
+ import * as i21 from "../../pipes/property-slug.pipe";
31
+ import * as i22 from "../../pipes/node-title.pipe";
32
+ import * as i23 from "@ngx-translate/core";
33
+ import * as i24 from "../list-item-label.pipe";
33
34
  export class NodeEntriesCardComponent {
34
35
  constructor(entriesService, nodeHelper, applicationRef, configService, authenticationService, templatesService, nodeEntriesGlobalService, toast) {
35
36
  this.entriesService = entriesService;
@@ -55,9 +56,9 @@ export class NodeEntriesCardComponent {
55
56
  : '#fff';
56
57
  }
57
58
  optionsOnCard() {
58
- const options = this.entriesService.options[Target.List];
59
- const always = options.filter((o) => o.showAlways);
60
- if (always.some((o) => o.showCallback(this.node))) {
59
+ const options = this.entriesService.options?.[Target.List];
60
+ const always = options?.filter((o) => o.showAlways);
61
+ if (always?.some((o) => o.showCallback(this.node))) {
61
62
  return always;
62
63
  }
63
64
  // we do NOT show any additional actions
@@ -98,6 +99,7 @@ export class NodeEntriesCardComponent {
98
99
  async openMenu(node) {
99
100
  this.entriesService.selection.clear();
100
101
  this.entriesService.selection.select(node);
102
+ this.entriesService.selection.clickSource = ClickSource.Dropdown;
101
103
  await this.applicationRef.tick();
102
104
  this.dropdown.menu.focusFirstItem();
103
105
  }
@@ -112,15 +114,15 @@ export class NodeEntriesCardComponent {
112
114
  name,
113
115
  }, this.node);
114
116
  }
115
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: NodeEntriesCardComponent, deps: [{ token: i1.NodeEntriesService }, { token: i2.NodeHelperService }, { token: i0.ApplicationRef }, { token: i3.ConfigService }, { token: i3.AuthenticationService }, { token: i4.NodeEntriesTemplatesService }, { token: i5.NodeEntriesGlobalService }, { token: i6.Toast, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
116
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.6", type: NodeEntriesCardComponent, selector: "es-node-entries-card", inputs: { dropdown: "dropdown", node: "node" }, viewQueries: [{ propertyName: "menuTrigger", first: true, predicate: ["menuTrigger"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n class=\"grid-card\"\n [class.grid-card-collection]=\"isCollection\"\n [class.grid-card-virtual]=\"$any(node).virtual\"\n [style.background-color]=\"isCollection ? node.collection.color : null\"\n [class.dynamic-single-click]=\"entriesService.singleClickHint === 'dynamic'\"\n [class.selected]=\"entriesService.selection.isSelected(node)\"\n (contextmenu)=\"openContextmenu($event)\"\n (keydown.ContextMenu)=\"openContextmenu($event)\"\n>\n <div\n *ngIf=\"templatesService.overlay\"\n class=\"card-overlay\"\n (click)=\"\n entriesService.clickItem.emit({\n element: node,\n source: ClickSource.Overlay\n })\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"templatesService.overlay; context: { element: node }\"\n ></ng-container>\n </div>\n <button\n *ngIf=\"dropdown\"\n #menuTrigger=\"matMenuTrigger\"\n mat-button\n class=\"dropdown-dummy cdk-visually-hidden\"\n [style.left.px]=\"dropdownLeft\"\n [style.top.px]=\"dropdownTop\"\n [matMenuTriggerFor]=\"dropdown.menu\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n ></button>\n <div class=\"card-top-bar\" [style.background-color]=\"isCollection ? node.collection.color : null\">\n <div class=\"card-top-bar-collection-color\" *ngIf=\"nodeHelper.isNodeCollection(node)\"></div>\n <es-node-type-badge [node]=\"node\"></es-node-type-badge>\n <div *ngIf=\"isCollection && node.collection.pinned\" class=\"card-top-bar-flag\">\n <i esIcon=\"edu-pin\"></i>\n </div>\n <div class=\"card-top-bar-empty\"></div>\n <es-node-stats-badges [node]=\"node\"></es-node-stats-badges>\n <div class=\"card-top-bar-checkbox\" *ngIf=\"entriesService.checkbox\">\n <mat-checkbox\n [checked]=\"entriesService.selection.isSelected(node)\"\n (change)=\"entriesService.onCheckboxChanged(node, $event.checked)\"\n aria-label=\"{{ 'SELECT' | translate : { element: (node | nodeTitle) } }}\"\n ></mat-checkbox>\n </div>\n </div>\n <es-node-url\n *ngIf=\"entriesService.elementInteractionType === InteractionType.DefaultActionLink\"\n mode=\"wrapper\"\n [node]=\"node\"\n esFocusState\n #cardFocusState=\"esFocusState\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n image;\n context: { playAnimation: cardFocusState.hovering || cardFocusState.hasFocus }\n \"\n ></ng-container>\n <ng-container *ngTemplateOutlet=\"meta\"></ng-container>\n </es-node-url>\n <div\n *ngIf=\"entriesService.elementInteractionType !== InteractionType.DefaultActionLink\"\n matRipple\n (click)=\"\n entriesService.onClicked({\n event: $event,\n element: node,\n source: ClickSource.Metadata\n })\n \"\n (dblclick)=\"\n entriesService.dblClickItem.emit({\n element: node,\n source: ClickSource.Metadata\n })\n \"\n esFocusState\n #cardFocusState=\"esFocusState\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n image;\n context: { playAnimation: cardFocusState.hovering || cardFocusState.hasFocus }\n \"\n ></ng-container>\n <ng-container *ngTemplateOutlet=\"meta\"></ng-container>\n </div>\n <div class=\"card-options\" *ngIf=\"entriesService.options || showRatings\">\n <div class=\"card-rating-area\">\n <es-node-rating [node]=\"node\"></es-node-rating>\n </div>\n <div class=\"card-options-area\">\n <es-option-button\n *ngFor=\"let option of optionsOnCard()\"\n class=\"card-options-always\"\n [option]=\"option\"\n [node]=\"node\"\n ></es-option-button>\n <div class=\"card-options-spacer\"></div>\n <button\n *ngIf=\"dropdown\"\n mat-icon-button\n color=\"primary\"\n (click)=\"openMenu(node)\"\n [matMenuTriggerFor]=\"dropdown.menu\"\n [attr.aria-label]=\"'OPTIONS_FOR' | translate : { element: (node | nodeTitle) }\"\n data-test=\"card-options-button\"\n >\n <i esIcon=\"more_vert\"></i>\n </button>\n </div>\n </div>\n <ng-template #image let-playAnimation=\"playAnimation\">\n <div\n class=\"card-image-area\"\n [style.background-color]=\"isCollection ? node.collection.color : null\"\n >\n <ng-container *ngIf=\"getTemplate(CustomFieldSpecialType.preview) as ref\">\n <ng-container *ngTemplateOutlet=\"ref; context: { node: this.node }\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"!getTemplate(CustomFieldSpecialType.preview)\">\n <es-preview-image\n *ngIf=\"!(isCollection && node.preview.isIcon)\"\n [node]=\"node\"\n [playAnimation]=\"playAnimation\"\n ></es-preview-image>\n <div *ngIf=\"isCollection && node.preview.isIcon\" class=\"card-collection-image\">\n <i esIcon=\"layers\"></i>\n </div>\n </ng-container>\n </div>\n </ng-template>\n <ng-template #meta let-link=\"link\">\n <div class=\"card-meta\">\n <div\n *ngFor=\"let displayPart of getVisibleColumns(); let first = first\"\n class=\"card-meta-row card-meta-row-{{ displayPart.name | lowercase }}\"\n [class.card-meta-row-primary]=\"first\"\n >\n <ng-container *ngIf=\"first\">\n <es-node-url\n *ngIf=\"entriesService.elementInteractionType === InteractionType.DefaultActionLink\"\n [node]=\"node\"\n #link\n >\n <es-list-base [item]=\"displayPart\" [node]=\"node\" [provideLabel]=\"false\"> </es-list-base>\n </es-node-url>\n <div *ngIf=\"entriesService.elementInteractionType !== InteractionType.DefaultActionLink\">\n <es-list-base [item]=\"displayPart\" [node]=\"node\" [provideLabel]=\"false\"> </es-list-base>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!first\">\n <label>\n {{ displayPart | esListItemLabel | async }}\n </label>\n <es-list-base [item]=\"displayPart\" [node]=\"node\" [provideLabel]=\"false\"> </es-list-base>\n </ng-container>\n </div>\n </div>\n </ng-template>\n</div>\n", styles: [".grid-card{transition:all var(--transitionNormal);overflow:hidden;background-color:#fff;box-shadow:0 3px 3px #0000001a;display:grid;height:100%;grid-template-columns:auto}:host-context(body.es-contrast-mode) .grid-card{border:1px solid rgba(0,0,0,.42)}.grid-card.selected{background-color:rgb(var(--palette-primary-50))}.grid-card .dropdown-dummy{position:fixed}.grid-card .card-options{display:grid;grid-template-columns:1fr auto;grid-column-gap:10px}.grid-card .card-options .card-rating-area{display:flex;align-items:center;height:100%}.grid-card .card-options .card-options-area{display:flex}.grid-card .card-options .card-options-area es-option-button,.grid-card .card-options .card-options-area button{transition:all var(--transitionNormal);margin:0 2px;border-radius:50%}.grid-card .card-options .card-options-area es-option-button:hover,.grid-card .card-options .card-options-area es-option-button:focus,.grid-card .card-options .card-options-area button:hover,.grid-card .card-options .card-options-area button:focus{background-color:#fff}.grid-card:not(.grid-card-collection) .card-top-bar{background-color:var(--palette-primary-200)}.grid-card.grid-card-virtual{outline:2px dashed var(--nodeVirtualColor)}.grid-card .card-top-bar{height:40px;display:flex;gap:15px;align-items:center;padding:0 20px;position:relative}.grid-card .card-top-bar .card-top-bar-collection-color{position:absolute;background-color:#ffffff80;inset:0}.grid-card .card-top-bar .card-top-bar-flag{display:flex;align-items:center;justify-content:center;-webkit-user-select:none;user-select:none;border-radius:50%;background-color:#fff;padding:5px;position:relative;z-index:1;box-shadow:0 0 5px #0000004d}.grid-card .card-top-bar .card-top-bar-flag i{font-size:18px;color:#333}.grid-card .card-top-bar .card-top-bar-flag img{width:18px;height:18px}.grid-card .card-top-bar .card-top-bar-checkbox mat-checkbox{margin-right:-5px;position:relative;top:-1.3px}.grid-card .card-top-bar .card-top-bar-checkbox mat-checkbox.cdk-keyboard-focused ::ng-deep .mat-focus-indicator{outline:none}.grid-card .card-top-bar .card-top-bar-checkbox mat-checkbox.cdk-keyboard-focused ::ng-deep .mat-focus-indicator:after{content:\"\";position:absolute;inset:2px;outline:none;border:var(--focusWidth) solid var(--palette-primary-300);border-color:#fff}.grid-card .card-top-bar .card-top-bar-empty{width:0;flex-grow:1}.grid-card .card-image-area{height:150px;padding:0;display:flex}.grid-card .card-image-area es-preview-image{flex-grow:1}.grid-card .card-image-area .card-collection-image{display:flex;width:100%;height:100%;align-items:center;justify-content:center}.grid-card .card-image-area .card-collection-image i{display:flex;align-items:center;justify-content:center;-webkit-user-select:none;user-select:none;color:#000000bf;background-color:#ffffff80;padding:40px;font-size:40px;border-radius:50%}.grid-card .card-meta{padding:10px 20px 0;display:grid;flex-direction:row}.grid-card .card-meta .card-meta-row{display:flex;flex-direction:row;align-items:center;min-height:2.5em;gap:5px}.grid-card .card-meta .card-meta-row:not(:first-child)>label{cursor:inherit;color:var(--textLight);font-size:85%}.grid-card .card-meta .card-meta-row:not(:first-child)>es-list-base{color:#000;flex-grow:1;margin:5px 0;display:flex;justify-content:flex-end;text-align:end;word-break:break-word}.grid-card .card-meta .card-meta-row:first-child>es-list-base,.grid-card .card-meta .card-meta-row:first-child>es-node-url{width:100%;color:var(--textMain);font-size:120%;height:2.5em;text-align:left;word-break:break-word}.grid-card.dynamic-single-click:hover{box-shadow:0 0 25px #0003;background-color:rgb(var(--palette-primary-50))}.grid-card.dynamic-single-click.grid-card-collection:hover .card-meta{background-color:#ffffffe6}.grid-card.grid-card-collection .card-meta{background-color:#fffc}.grid-card.grid-card-collection .card-options{background-color:#ffffffe6}.grid-card .card-options{border-top:1px solid #ddd}:host ::ng-deep .grid-card .card-meta-row:first-child es-list-base,:host ::ng-deep .grid-card .card-meta-row:first-child es-node-url a es-list-base{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;line-height:1.25em;max-height:2.5em;-webkit-line-clamp:2;-webkit-box-orient:vertical}:host ::ng-deep .grid-card .card-meta-row:first-child es-list-base>es-list-text,:host ::ng-deep .grid-card .card-meta-row:first-child es-node-url a es-list-base>es-list-text{word-break:break-word}:host ::ng-deep .grid-card .card-meta-row es-node-url a{color:var(--textMain)}:host ::ng-deep .grid-card .card-meta-row es-node-url a.cdk-keyboard-focused{display:inline-flex;outline:none;outline:var(--focusWidth) solid var(--palette-primary-300);outline-offset:2px}:host ::ng-deep .card-meta es-list-base img{max-width:100px;max-height:20px}:host ::ng-deep .card-meta es-list-base es-list-node-license img{height:20px}:host ::ng-deep .card-meta es-list-base es-list-collection-info{display:flex;align-items:center}:host ::ng-deep .card-meta es-list-base es-list-collection-info i{font-size:12pt;margin:0 6px}:host ::ng-deep .grid-card-collection es-node-url a.cdk-keyboard-focused .card-meta{background-color:#fff}.card-overlay{position:absolute;z-index:2;inset:0;pointer-events:none}.card-overlay ::ng-deep>*{pointer-events:auto}.grid-card{grid-template-rows:40px auto auto}.grid-card .card-meta .card-meta-row>es-list-base{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;line-height:1.25em;max-height:2.5em;-webkit-line-clamp:2;-webkit-box-orient:vertical}:host ::ng-deep .grid-card es-node-url .node-url-wrapper{height:100%}\n"], dependencies: [{ kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i8.IconDirective, selector: "i[esIcon], i.material-icons", inputs: ["altText", "aria", "esIcon"] }, { kind: "directive", type: i9.FocusStateDirective, selector: "[esFocusState]", exportAs: ["esFocusState"] }, { kind: "component", type: i10.NodeUrlComponent, selector: "es-node-url", inputs: ["node", "nodes", "target", "scope", "queryParams", "mode", "disabled", "alwaysRipple", "aria-describedby", "aria-label"], outputs: ["buttonClick"] }, { kind: "component", type: i11.ListBaseComponent, selector: "es-list-base", inputs: ["forceText"] }, { kind: "component", type: i12.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i13.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i13.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i14.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i15.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "component", type: i16.NodeRatingComponent, selector: "es-node-rating", inputs: ["node"] }, { kind: "component", type: i17.PreviewImageComponent, selector: "es-preview-image", inputs: ["node", "playAnimation"] }, { kind: "component", type: i18.NodeTypeBadgeComponent, selector: "es-node-type-badge", inputs: ["node"] }, { kind: "component", type: i19.OptionButtonComponent, selector: "es-option-button", inputs: ["option", "node"] }, { kind: "component", type: i20.NodeStatsBadgesComponent, selector: "es-node-stats-badges", inputs: ["node", "backgroundStyle"] }, { kind: "pipe", type: i7.AsyncPipe, name: "async" }, { kind: "pipe", type: i7.LowerCasePipe, name: "lowercase" }, { kind: "pipe", type: i21.NodeTitlePipe, name: "nodeTitle" }, { kind: "pipe", type: i22.TranslatePipe, name: "translate" }, { kind: "pipe", type: i23.ListItemLabelPipe, name: "esListItemLabel" }] }); }
117
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: NodeEntriesCardComponent, deps: [{ token: i1.NodeEntriesService }, { token: i2.NodeHelperService }, { token: i0.ApplicationRef }, { token: i3.ConfigService }, { token: i3.AuthenticationService }, { token: i4.NodeEntriesTemplatesService }, { token: i5.NodeEntriesGlobalService }, { token: i6.Toast, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
118
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: NodeEntriesCardComponent, selector: "es-node-entries-card", inputs: { dropdown: "dropdown", node: "node" }, viewQueries: [{ propertyName: "menuTrigger", first: true, predicate: ["menuTrigger"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n [class]=\"\n 'grid-card' +\n (isCollection\n ? ' grid-card-collection grid-card-collection-scope-' +\n node.collection.scope +\n ' grid-card-collection-type-' +\n node.collection.type\n : '') +\n ($any(node).virtual ? ' grid-card-virtual' : '') +\n ' ' +\n nodeEntriesGlobalService.getCustomCssClass(node)\n \"\n [style.background-color]=\"isCollection ? node.collection.color : null\"\n [class.dynamic-single-click]=\"entriesService.singleClickHint === 'dynamic'\"\n [class.selected]=\"entriesService.selection.isSelected(node)\"\n (contextmenu)=\"openContextmenu($event)\"\n (keydown.ContextMenu)=\"openContextmenu($event)\"\n>\n <div\n *ngIf=\"templatesService.overlay\"\n class=\"card-overlay\"\n (click)=\"\n entriesService.clickItem.emit({\n element: node,\n source: ClickSource.Overlay,\n })\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"templatesService.overlay; context: { element: node }\"\n ></ng-container>\n </div>\n <button\n *ngIf=\"dropdown\"\n #menuTrigger=\"matMenuTrigger\"\n mat-button\n class=\"dropdown-dummy cdk-visually-hidden\"\n [style.left.px]=\"dropdownLeft\"\n [style.top.px]=\"dropdownTop\"\n [matMenuTriggerFor]=\"dropdown.menu\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n ></button>\n <div class=\"card-top-bar\" [style.background-color]=\"isCollection ? node.collection.color : null\">\n <div class=\"card-top-bar-collection-color\" *ngIf=\"nodeHelper.isNodeCollection(node)\"></div>\n <es-node-type-badge [node]=\"node\"></es-node-type-badge>\n <div *ngIf=\"isCollection && node.collection.pinned\" class=\"card-top-bar-flag\">\n <i esIcon=\"edu-pin\"></i>\n </div>\n <div class=\"card-top-bar-empty\"></div>\n <es-node-stats-badges [node]=\"node\"></es-node-stats-badges>\n <div class=\"card-top-bar-checkbox\" *ngIf=\"entriesService.checkbox\">\n <mat-checkbox\n [checked]=\"entriesService.selection.isSelected(node)\"\n (change)=\"entriesService.onCheckboxChanged(node, $event.checked)\"\n color=\"primary\"\n aria-label=\"{{ 'SELECT' | translate: { element: (node | nodeTitle) } }}\"\n ></mat-checkbox>\n </div>\n </div>\n <es-node-url\n *ngIf=\"entriesService.elementInteractionType === InteractionType.DefaultActionLink\"\n mode=\"wrapper\"\n [node]=\"node\"\n esFocusState\n #cardFocusState=\"esFocusState\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n image;\n context: { playAnimation: cardFocusState.hovering || cardFocusState.hasFocus }\n \"\n ></ng-container>\n <ng-container *ngTemplateOutlet=\"meta\"></ng-container>\n </es-node-url>\n <div\n *ngIf=\"entriesService.elementInteractionType !== InteractionType.DefaultActionLink\"\n matRipple\n (click)=\"\n entriesService.onClicked({\n event: $event,\n element: node,\n source: ClickSource.Metadata,\n })\n \"\n (dblclick)=\"\n entriesService.dblClickItem.emit({\n element: node,\n source: ClickSource.Metadata,\n })\n \"\n esFocusState\n #cardFocusState=\"esFocusState\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n image;\n context: { playAnimation: cardFocusState.hovering || cardFocusState.hasFocus }\n \"\n ></ng-container>\n <ng-container *ngTemplateOutlet=\"meta\"></ng-container>\n </div>\n <div class=\"card-options\" *ngIf=\"entriesService.options || showRatings\">\n <div class=\"card-rating-area\">\n <es-node-rating [node]=\"node\"></es-node-rating>\n </div>\n <div class=\"card-options-area\">\n <es-option-button\n *ngFor=\"let option of optionsOnCard()\"\n class=\"card-options-always\"\n [option]=\"option\"\n [node]=\"node\"\n ></es-option-button>\n <div class=\"card-options-spacer\"></div>\n <button\n *ngIf=\"dropdown\"\n mat-icon-button\n color=\"primary\"\n (click)=\"openMenu(node)\"\n [matMenuTriggerFor]=\"dropdown.menu\"\n [attr.aria-label]=\"'OPTIONS_FOR' | translate: { element: (node | nodeTitle) }\"\n data-test=\"card-options-button\"\n >\n <i esIcon=\"more_vert\"></i>\n </button>\n </div>\n </div>\n <ng-template #image let-playAnimation=\"playAnimation\">\n <div\n class=\"card-image-area\"\n [style.background-color]=\"isCollection ? node.collection.color : null\"\n >\n <ng-container *ngIf=\"getTemplate(CustomFieldSpecialType.preview) as ref\">\n <ng-container *ngTemplateOutlet=\"ref; context: { node: this.node }\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"!getTemplate(CustomFieldSpecialType.preview)\">\n <es-preview-image\n *ngIf=\"!(isCollection && node.preview.isIcon)\"\n [node]=\"node\"\n [playAnimation]=\"playAnimation\"\n ></es-preview-image>\n <div *ngIf=\"isCollection && node.preview.isIcon\" class=\"card-collection-image\">\n <i esIcon=\"layers\"></i>\n </div>\n </ng-container>\n </div>\n </ng-template>\n <ng-template #meta let-link=\"link\">\n <div class=\"card-meta\">\n <div\n *ngFor=\"let displayPart of getVisibleColumns(); let first = first\"\n class=\"card-meta-row card-meta-row-{{ displayPart.name | lowercase | propertySlug }}\"\n [class.card-meta-row-primary]=\"first\"\n >\n <ng-container *ngIf=\"first\">\n <es-node-url\n *ngIf=\"entriesService.elementInteractionType === InteractionType.DefaultActionLink\"\n [node]=\"node\"\n #link\n >\n <es-list-base [item]=\"displayPart\" [node]=\"node\" [provideLabel]=\"false\"> </es-list-base>\n </es-node-url>\n <div *ngIf=\"entriesService.elementInteractionType !== InteractionType.DefaultActionLink\">\n <es-list-base [item]=\"displayPart\" [node]=\"node\" [provideLabel]=\"false\"> </es-list-base>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!first\">\n <label>\n {{ displayPart | esListItemLabel | async }}\n </label>\n <es-list-base [item]=\"displayPart\" [node]=\"node\" [provideLabel]=\"false\"> </es-list-base>\n </ng-container>\n </div>\n </div>\n </ng-template>\n</div>\n", styles: [".grid-card{transition:all var(--transitionNormal);overflow:hidden;background-color:#fff;box-shadow:0 3px 3px #0000001a;display:grid;height:100%;grid-template-columns:auto}:host-context(body.es-contrast-mode) .grid-card{border:1px solid rgba(0,0,0,.42)}.grid-card.selected{background-color:rgb(var(--palette-primary-50))}.grid-card .dropdown-dummy{position:fixed}.grid-card .card-options{display:grid;grid-template-columns:1fr auto;grid-column-gap:10px}.grid-card .card-options .card-rating-area{display:flex;align-items:center;height:100%;padding-left:10px}.grid-card .card-options .card-options-area{display:flex}.grid-card .card-options .card-options-area es-option-button,.grid-card .card-options .card-options-area button{transition:all var(--transitionNormal);margin:0 2px;border-radius:50%}.grid-card .card-options .card-options-area es-option-button:hover,.grid-card .card-options .card-options-area es-option-button:focus,.grid-card .card-options .card-options-area button:hover,.grid-card .card-options .card-options-area button:focus{background-color:#fff}.grid-card:not(.grid-card-collection) .card-top-bar{background-color:var(--palette-primary-200)}.grid-card.grid-card-virtual{outline:2px dashed var(--nodeVirtualColor)}.grid-card .card-top-bar{height:40px;display:flex;gap:15px;align-items:center;padding:0 20px;position:relative}.grid-card .card-top-bar .card-top-bar-collection-color{position:absolute;background-color:#ffffff80;inset:0}.grid-card .card-top-bar .card-top-bar-flag{display:flex;align-items:center;justify-content:center;-webkit-user-select:none;user-select:none;border-radius:50%;background-color:#fff;padding:5px;position:relative;z-index:1;box-shadow:0 0 5px #0000004d}.grid-card .card-top-bar .card-top-bar-flag i{font-size:18px;color:#333}.grid-card .card-top-bar .card-top-bar-flag img{width:18px;height:18px}.grid-card .card-top-bar .card-top-bar-checkbox mat-checkbox{margin-right:-5px;position:relative;top:-1.3px}.grid-card .card-top-bar .card-top-bar-checkbox mat-checkbox.cdk-keyboard-focused ::ng-deep .mat-focus-indicator{outline:none}.grid-card .card-top-bar .card-top-bar-checkbox mat-checkbox.cdk-keyboard-focused ::ng-deep .mat-focus-indicator:after{content:\"\";position:absolute;inset:2px;outline:none;border:var(--focusWidth) solid var(--palette-primary-300);border-color:#fff}.grid-card .card-top-bar .card-top-bar-empty{width:0;flex-grow:1}.grid-card .card-image-area{height:150px;padding:0;display:flex}.grid-card .card-image-area es-preview-image{flex-grow:1}.grid-card .card-image-area .card-collection-image{display:flex;width:100%;height:100%;align-items:center;justify-content:center}.grid-card .card-image-area .card-collection-image i{display:flex;align-items:center;justify-content:center;-webkit-user-select:none;user-select:none;color:#000000bf;background-color:#ffffff80;padding:40px;font-size:40px;border-radius:50%}.grid-card .card-meta{padding:10px 20px 0;display:grid;flex-direction:row}.grid-card .card-meta .card-meta-row{display:flex;flex-direction:row;align-items:center;min-height:2.8em;gap:5px}.grid-card .card-meta .card-meta-row:not(:first-child)>label{cursor:inherit;color:var(--textLight);font-size:85%}.grid-card .card-meta .card-meta-row:not(:first-child)>es-list-base{color:#000;flex-grow:1;margin:5px 0;display:flex;justify-content:flex-end;text-align:end;word-break:break-word}.grid-card .card-meta .card-meta-row:first-child{font-size:120%}.grid-card .card-meta .card-meta-row:first-child>es-list-base,.grid-card .card-meta .card-meta-row:first-child>es-node-url{width:100%;font-size:120%;color:var(--textMain);height:2.8em;text-align:left;word-break:break-word}.grid-card.dynamic-single-click:hover{box-shadow:0 0 25px #0003;background-color:rgb(var(--palette-primary-50))}.grid-card.dynamic-single-click.grid-card-collection:hover .card-meta{background-color:#ffffffe6}.grid-card.grid-card-collection .card-meta{background-color:#fffc}.grid-card.grid-card-collection .card-options{background-color:#ffffffe6}.grid-card .card-options{border-top:1px solid #ddd}:host ::ng-deep .grid-card .card-meta-row:first-child es-list-base,:host ::ng-deep .grid-card .card-meta-row:first-child es-node-url a es-list-base{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;line-height:1.4em;max-height:2.8em;-webkit-line-clamp:2;-webkit-box-orient:vertical}:host ::ng-deep .grid-card .card-meta-row:first-child es-list-base>es-list-text,:host ::ng-deep .grid-card .card-meta-row:first-child es-node-url a es-list-base>es-list-text{word-break:break-word}:host ::ng-deep .grid-card .card-meta-row es-node-url a{color:var(--textMain)}:host ::ng-deep .grid-card .card-meta-row es-node-url a.cdk-keyboard-focused{display:inline-flex;outline:none;outline:var(--focusWidth) solid var(--palette-primary-300);outline-offset:2px}:host ::ng-deep .card-meta es-list-base img{max-width:100px;max-height:20px}:host ::ng-deep .card-meta es-list-base es-list-node-license img{height:20px}:host ::ng-deep .card-meta es-list-base es-list-collection-info{display:flex;align-items:center}:host ::ng-deep .card-meta es-list-base es-list-collection-info i{font-size:12pt;margin:0 6px}:host ::ng-deep .grid-card-collection es-node-url a.cdk-keyboard-focused .card-meta{background-color:#fff}.card-overlay{position:absolute;z-index:2;inset:0;pointer-events:none}.card-overlay ::ng-deep>*{pointer-events:auto}.grid-card{grid-template-rows:40px auto auto}.grid-card .card-meta .card-meta-row>es-list-base{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;line-height:1.4em;max-height:2.8em;-webkit-line-clamp:2;-webkit-box-orient:vertical}:host ::ng-deep .grid-card es-node-url .node-url-wrapper{height:100%}\n"], dependencies: [{ kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i8.FocusStateDirective, selector: "[esFocusState]", exportAs: ["esFocusState"] }, { kind: "directive", type: i9.IconDirective, selector: "i[esIcon], i.material-icons", inputs: ["altText", "aria", "esIcon"] }, { kind: "component", type: i10.NodeUrlComponent, selector: "es-node-url", inputs: ["node", "nodes", "target", "scope", "queryParams", "mode", "disabled", "alwaysRipple", "aria-describedby", "aria-label"], outputs: ["buttonClick"] }, { kind: "component", type: i11.ListBaseComponent, selector: "es-list-base", inputs: ["forceText"] }, { kind: "component", type: i12.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "component", type: i13.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i13.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i14.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i15.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "component", type: i16.NodeRatingComponent, selector: "es-node-rating", inputs: ["node"] }, { kind: "component", type: i17.PreviewImageComponent, selector: "es-preview-image", inputs: ["node", "playAnimation"] }, { kind: "component", type: i18.NodeTypeBadgeComponent, selector: "es-node-type-badge", inputs: ["node"] }, { kind: "component", type: i19.OptionButtonComponent, selector: "es-option-button", inputs: ["option", "node"] }, { kind: "component", type: i20.NodeStatsBadgesComponent, selector: "es-node-stats-badges", inputs: ["node", "backgroundStyle"] }, { kind: "pipe", type: i7.AsyncPipe, name: "async" }, { kind: "pipe", type: i7.LowerCasePipe, name: "lowercase" }, { kind: "pipe", type: i21.PropertySlugPipe, name: "propertySlug" }, { kind: "pipe", type: i22.NodeTitlePipe, name: "nodeTitle" }, { kind: "pipe", type: i23.TranslatePipe, name: "translate" }, { kind: "pipe", type: i24.ListItemLabelPipe, name: "esListItemLabel" }] }); }
117
119
  }
118
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: NodeEntriesCardComponent, decorators: [{
120
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: NodeEntriesCardComponent, decorators: [{
119
121
  type: Component,
120
- args: [{ selector: 'es-node-entries-card', template: "<div\n class=\"grid-card\"\n [class.grid-card-collection]=\"isCollection\"\n [class.grid-card-virtual]=\"$any(node).virtual\"\n [style.background-color]=\"isCollection ? node.collection.color : null\"\n [class.dynamic-single-click]=\"entriesService.singleClickHint === 'dynamic'\"\n [class.selected]=\"entriesService.selection.isSelected(node)\"\n (contextmenu)=\"openContextmenu($event)\"\n (keydown.ContextMenu)=\"openContextmenu($event)\"\n>\n <div\n *ngIf=\"templatesService.overlay\"\n class=\"card-overlay\"\n (click)=\"\n entriesService.clickItem.emit({\n element: node,\n source: ClickSource.Overlay\n })\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"templatesService.overlay; context: { element: node }\"\n ></ng-container>\n </div>\n <button\n *ngIf=\"dropdown\"\n #menuTrigger=\"matMenuTrigger\"\n mat-button\n class=\"dropdown-dummy cdk-visually-hidden\"\n [style.left.px]=\"dropdownLeft\"\n [style.top.px]=\"dropdownTop\"\n [matMenuTriggerFor]=\"dropdown.menu\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n ></button>\n <div class=\"card-top-bar\" [style.background-color]=\"isCollection ? node.collection.color : null\">\n <div class=\"card-top-bar-collection-color\" *ngIf=\"nodeHelper.isNodeCollection(node)\"></div>\n <es-node-type-badge [node]=\"node\"></es-node-type-badge>\n <div *ngIf=\"isCollection && node.collection.pinned\" class=\"card-top-bar-flag\">\n <i esIcon=\"edu-pin\"></i>\n </div>\n <div class=\"card-top-bar-empty\"></div>\n <es-node-stats-badges [node]=\"node\"></es-node-stats-badges>\n <div class=\"card-top-bar-checkbox\" *ngIf=\"entriesService.checkbox\">\n <mat-checkbox\n [checked]=\"entriesService.selection.isSelected(node)\"\n (change)=\"entriesService.onCheckboxChanged(node, $event.checked)\"\n aria-label=\"{{ 'SELECT' | translate : { element: (node | nodeTitle) } }}\"\n ></mat-checkbox>\n </div>\n </div>\n <es-node-url\n *ngIf=\"entriesService.elementInteractionType === InteractionType.DefaultActionLink\"\n mode=\"wrapper\"\n [node]=\"node\"\n esFocusState\n #cardFocusState=\"esFocusState\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n image;\n context: { playAnimation: cardFocusState.hovering || cardFocusState.hasFocus }\n \"\n ></ng-container>\n <ng-container *ngTemplateOutlet=\"meta\"></ng-container>\n </es-node-url>\n <div\n *ngIf=\"entriesService.elementInteractionType !== InteractionType.DefaultActionLink\"\n matRipple\n (click)=\"\n entriesService.onClicked({\n event: $event,\n element: node,\n source: ClickSource.Metadata\n })\n \"\n (dblclick)=\"\n entriesService.dblClickItem.emit({\n element: node,\n source: ClickSource.Metadata\n })\n \"\n esFocusState\n #cardFocusState=\"esFocusState\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n image;\n context: { playAnimation: cardFocusState.hovering || cardFocusState.hasFocus }\n \"\n ></ng-container>\n <ng-container *ngTemplateOutlet=\"meta\"></ng-container>\n </div>\n <div class=\"card-options\" *ngIf=\"entriesService.options || showRatings\">\n <div class=\"card-rating-area\">\n <es-node-rating [node]=\"node\"></es-node-rating>\n </div>\n <div class=\"card-options-area\">\n <es-option-button\n *ngFor=\"let option of optionsOnCard()\"\n class=\"card-options-always\"\n [option]=\"option\"\n [node]=\"node\"\n ></es-option-button>\n <div class=\"card-options-spacer\"></div>\n <button\n *ngIf=\"dropdown\"\n mat-icon-button\n color=\"primary\"\n (click)=\"openMenu(node)\"\n [matMenuTriggerFor]=\"dropdown.menu\"\n [attr.aria-label]=\"'OPTIONS_FOR' | translate : { element: (node | nodeTitle) }\"\n data-test=\"card-options-button\"\n >\n <i esIcon=\"more_vert\"></i>\n </button>\n </div>\n </div>\n <ng-template #image let-playAnimation=\"playAnimation\">\n <div\n class=\"card-image-area\"\n [style.background-color]=\"isCollection ? node.collection.color : null\"\n >\n <ng-container *ngIf=\"getTemplate(CustomFieldSpecialType.preview) as ref\">\n <ng-container *ngTemplateOutlet=\"ref; context: { node: this.node }\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"!getTemplate(CustomFieldSpecialType.preview)\">\n <es-preview-image\n *ngIf=\"!(isCollection && node.preview.isIcon)\"\n [node]=\"node\"\n [playAnimation]=\"playAnimation\"\n ></es-preview-image>\n <div *ngIf=\"isCollection && node.preview.isIcon\" class=\"card-collection-image\">\n <i esIcon=\"layers\"></i>\n </div>\n </ng-container>\n </div>\n </ng-template>\n <ng-template #meta let-link=\"link\">\n <div class=\"card-meta\">\n <div\n *ngFor=\"let displayPart of getVisibleColumns(); let first = first\"\n class=\"card-meta-row card-meta-row-{{ displayPart.name | lowercase }}\"\n [class.card-meta-row-primary]=\"first\"\n >\n <ng-container *ngIf=\"first\">\n <es-node-url\n *ngIf=\"entriesService.elementInteractionType === InteractionType.DefaultActionLink\"\n [node]=\"node\"\n #link\n >\n <es-list-base [item]=\"displayPart\" [node]=\"node\" [provideLabel]=\"false\"> </es-list-base>\n </es-node-url>\n <div *ngIf=\"entriesService.elementInteractionType !== InteractionType.DefaultActionLink\">\n <es-list-base [item]=\"displayPart\" [node]=\"node\" [provideLabel]=\"false\"> </es-list-base>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!first\">\n <label>\n {{ displayPart | esListItemLabel | async }}\n </label>\n <es-list-base [item]=\"displayPart\" [node]=\"node\" [provideLabel]=\"false\"> </es-list-base>\n </ng-container>\n </div>\n </div>\n </ng-template>\n</div>\n", styles: [".grid-card{transition:all var(--transitionNormal);overflow:hidden;background-color:#fff;box-shadow:0 3px 3px #0000001a;display:grid;height:100%;grid-template-columns:auto}:host-context(body.es-contrast-mode) .grid-card{border:1px solid rgba(0,0,0,.42)}.grid-card.selected{background-color:rgb(var(--palette-primary-50))}.grid-card .dropdown-dummy{position:fixed}.grid-card .card-options{display:grid;grid-template-columns:1fr auto;grid-column-gap:10px}.grid-card .card-options .card-rating-area{display:flex;align-items:center;height:100%}.grid-card .card-options .card-options-area{display:flex}.grid-card .card-options .card-options-area es-option-button,.grid-card .card-options .card-options-area button{transition:all var(--transitionNormal);margin:0 2px;border-radius:50%}.grid-card .card-options .card-options-area es-option-button:hover,.grid-card .card-options .card-options-area es-option-button:focus,.grid-card .card-options .card-options-area button:hover,.grid-card .card-options .card-options-area button:focus{background-color:#fff}.grid-card:not(.grid-card-collection) .card-top-bar{background-color:var(--palette-primary-200)}.grid-card.grid-card-virtual{outline:2px dashed var(--nodeVirtualColor)}.grid-card .card-top-bar{height:40px;display:flex;gap:15px;align-items:center;padding:0 20px;position:relative}.grid-card .card-top-bar .card-top-bar-collection-color{position:absolute;background-color:#ffffff80;inset:0}.grid-card .card-top-bar .card-top-bar-flag{display:flex;align-items:center;justify-content:center;-webkit-user-select:none;user-select:none;border-radius:50%;background-color:#fff;padding:5px;position:relative;z-index:1;box-shadow:0 0 5px #0000004d}.grid-card .card-top-bar .card-top-bar-flag i{font-size:18px;color:#333}.grid-card .card-top-bar .card-top-bar-flag img{width:18px;height:18px}.grid-card .card-top-bar .card-top-bar-checkbox mat-checkbox{margin-right:-5px;position:relative;top:-1.3px}.grid-card .card-top-bar .card-top-bar-checkbox mat-checkbox.cdk-keyboard-focused ::ng-deep .mat-focus-indicator{outline:none}.grid-card .card-top-bar .card-top-bar-checkbox mat-checkbox.cdk-keyboard-focused ::ng-deep .mat-focus-indicator:after{content:\"\";position:absolute;inset:2px;outline:none;border:var(--focusWidth) solid var(--palette-primary-300);border-color:#fff}.grid-card .card-top-bar .card-top-bar-empty{width:0;flex-grow:1}.grid-card .card-image-area{height:150px;padding:0;display:flex}.grid-card .card-image-area es-preview-image{flex-grow:1}.grid-card .card-image-area .card-collection-image{display:flex;width:100%;height:100%;align-items:center;justify-content:center}.grid-card .card-image-area .card-collection-image i{display:flex;align-items:center;justify-content:center;-webkit-user-select:none;user-select:none;color:#000000bf;background-color:#ffffff80;padding:40px;font-size:40px;border-radius:50%}.grid-card .card-meta{padding:10px 20px 0;display:grid;flex-direction:row}.grid-card .card-meta .card-meta-row{display:flex;flex-direction:row;align-items:center;min-height:2.5em;gap:5px}.grid-card .card-meta .card-meta-row:not(:first-child)>label{cursor:inherit;color:var(--textLight);font-size:85%}.grid-card .card-meta .card-meta-row:not(:first-child)>es-list-base{color:#000;flex-grow:1;margin:5px 0;display:flex;justify-content:flex-end;text-align:end;word-break:break-word}.grid-card .card-meta .card-meta-row:first-child>es-list-base,.grid-card .card-meta .card-meta-row:first-child>es-node-url{width:100%;color:var(--textMain);font-size:120%;height:2.5em;text-align:left;word-break:break-word}.grid-card.dynamic-single-click:hover{box-shadow:0 0 25px #0003;background-color:rgb(var(--palette-primary-50))}.grid-card.dynamic-single-click.grid-card-collection:hover .card-meta{background-color:#ffffffe6}.grid-card.grid-card-collection .card-meta{background-color:#fffc}.grid-card.grid-card-collection .card-options{background-color:#ffffffe6}.grid-card .card-options{border-top:1px solid #ddd}:host ::ng-deep .grid-card .card-meta-row:first-child es-list-base,:host ::ng-deep .grid-card .card-meta-row:first-child es-node-url a es-list-base{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;line-height:1.25em;max-height:2.5em;-webkit-line-clamp:2;-webkit-box-orient:vertical}:host ::ng-deep .grid-card .card-meta-row:first-child es-list-base>es-list-text,:host ::ng-deep .grid-card .card-meta-row:first-child es-node-url a es-list-base>es-list-text{word-break:break-word}:host ::ng-deep .grid-card .card-meta-row es-node-url a{color:var(--textMain)}:host ::ng-deep .grid-card .card-meta-row es-node-url a.cdk-keyboard-focused{display:inline-flex;outline:none;outline:var(--focusWidth) solid var(--palette-primary-300);outline-offset:2px}:host ::ng-deep .card-meta es-list-base img{max-width:100px;max-height:20px}:host ::ng-deep .card-meta es-list-base es-list-node-license img{height:20px}:host ::ng-deep .card-meta es-list-base es-list-collection-info{display:flex;align-items:center}:host ::ng-deep .card-meta es-list-base es-list-collection-info i{font-size:12pt;margin:0 6px}:host ::ng-deep .grid-card-collection es-node-url a.cdk-keyboard-focused .card-meta{background-color:#fff}.card-overlay{position:absolute;z-index:2;inset:0;pointer-events:none}.card-overlay ::ng-deep>*{pointer-events:auto}.grid-card{grid-template-rows:40px auto auto}.grid-card .card-meta .card-meta-row>es-list-base{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;line-height:1.25em;max-height:2.5em;-webkit-line-clamp:2;-webkit-box-orient:vertical}:host ::ng-deep .grid-card es-node-url .node-url-wrapper{height:100%}\n"] }]
121
- }], ctorParameters: function () { return [{ type: i1.NodeEntriesService }, { type: i2.NodeHelperService }, { type: i0.ApplicationRef }, { type: i3.ConfigService }, { type: i3.AuthenticationService }, { type: i4.NodeEntriesTemplatesService }, { type: i5.NodeEntriesGlobalService }, { type: i6.Toast, decorators: [{
122
+ args: [{ selector: 'es-node-entries-card', template: "<div\n [class]=\"\n 'grid-card' +\n (isCollection\n ? ' grid-card-collection grid-card-collection-scope-' +\n node.collection.scope +\n ' grid-card-collection-type-' +\n node.collection.type\n : '') +\n ($any(node).virtual ? ' grid-card-virtual' : '') +\n ' ' +\n nodeEntriesGlobalService.getCustomCssClass(node)\n \"\n [style.background-color]=\"isCollection ? node.collection.color : null\"\n [class.dynamic-single-click]=\"entriesService.singleClickHint === 'dynamic'\"\n [class.selected]=\"entriesService.selection.isSelected(node)\"\n (contextmenu)=\"openContextmenu($event)\"\n (keydown.ContextMenu)=\"openContextmenu($event)\"\n>\n <div\n *ngIf=\"templatesService.overlay\"\n class=\"card-overlay\"\n (click)=\"\n entriesService.clickItem.emit({\n element: node,\n source: ClickSource.Overlay,\n })\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"templatesService.overlay; context: { element: node }\"\n ></ng-container>\n </div>\n <button\n *ngIf=\"dropdown\"\n #menuTrigger=\"matMenuTrigger\"\n mat-button\n class=\"dropdown-dummy cdk-visually-hidden\"\n [style.left.px]=\"dropdownLeft\"\n [style.top.px]=\"dropdownTop\"\n [matMenuTriggerFor]=\"dropdown.menu\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n ></button>\n <div class=\"card-top-bar\" [style.background-color]=\"isCollection ? node.collection.color : null\">\n <div class=\"card-top-bar-collection-color\" *ngIf=\"nodeHelper.isNodeCollection(node)\"></div>\n <es-node-type-badge [node]=\"node\"></es-node-type-badge>\n <div *ngIf=\"isCollection && node.collection.pinned\" class=\"card-top-bar-flag\">\n <i esIcon=\"edu-pin\"></i>\n </div>\n <div class=\"card-top-bar-empty\"></div>\n <es-node-stats-badges [node]=\"node\"></es-node-stats-badges>\n <div class=\"card-top-bar-checkbox\" *ngIf=\"entriesService.checkbox\">\n <mat-checkbox\n [checked]=\"entriesService.selection.isSelected(node)\"\n (change)=\"entriesService.onCheckboxChanged(node, $event.checked)\"\n color=\"primary\"\n aria-label=\"{{ 'SELECT' | translate: { element: (node | nodeTitle) } }}\"\n ></mat-checkbox>\n </div>\n </div>\n <es-node-url\n *ngIf=\"entriesService.elementInteractionType === InteractionType.DefaultActionLink\"\n mode=\"wrapper\"\n [node]=\"node\"\n esFocusState\n #cardFocusState=\"esFocusState\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n image;\n context: { playAnimation: cardFocusState.hovering || cardFocusState.hasFocus }\n \"\n ></ng-container>\n <ng-container *ngTemplateOutlet=\"meta\"></ng-container>\n </es-node-url>\n <div\n *ngIf=\"entriesService.elementInteractionType !== InteractionType.DefaultActionLink\"\n matRipple\n (click)=\"\n entriesService.onClicked({\n event: $event,\n element: node,\n source: ClickSource.Metadata,\n })\n \"\n (dblclick)=\"\n entriesService.dblClickItem.emit({\n element: node,\n source: ClickSource.Metadata,\n })\n \"\n esFocusState\n #cardFocusState=\"esFocusState\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n image;\n context: { playAnimation: cardFocusState.hovering || cardFocusState.hasFocus }\n \"\n ></ng-container>\n <ng-container *ngTemplateOutlet=\"meta\"></ng-container>\n </div>\n <div class=\"card-options\" *ngIf=\"entriesService.options || showRatings\">\n <div class=\"card-rating-area\">\n <es-node-rating [node]=\"node\"></es-node-rating>\n </div>\n <div class=\"card-options-area\">\n <es-option-button\n *ngFor=\"let option of optionsOnCard()\"\n class=\"card-options-always\"\n [option]=\"option\"\n [node]=\"node\"\n ></es-option-button>\n <div class=\"card-options-spacer\"></div>\n <button\n *ngIf=\"dropdown\"\n mat-icon-button\n color=\"primary\"\n (click)=\"openMenu(node)\"\n [matMenuTriggerFor]=\"dropdown.menu\"\n [attr.aria-label]=\"'OPTIONS_FOR' | translate: { element: (node | nodeTitle) }\"\n data-test=\"card-options-button\"\n >\n <i esIcon=\"more_vert\"></i>\n </button>\n </div>\n </div>\n <ng-template #image let-playAnimation=\"playAnimation\">\n <div\n class=\"card-image-area\"\n [style.background-color]=\"isCollection ? node.collection.color : null\"\n >\n <ng-container *ngIf=\"getTemplate(CustomFieldSpecialType.preview) as ref\">\n <ng-container *ngTemplateOutlet=\"ref; context: { node: this.node }\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"!getTemplate(CustomFieldSpecialType.preview)\">\n <es-preview-image\n *ngIf=\"!(isCollection && node.preview.isIcon)\"\n [node]=\"node\"\n [playAnimation]=\"playAnimation\"\n ></es-preview-image>\n <div *ngIf=\"isCollection && node.preview.isIcon\" class=\"card-collection-image\">\n <i esIcon=\"layers\"></i>\n </div>\n </ng-container>\n </div>\n </ng-template>\n <ng-template #meta let-link=\"link\">\n <div class=\"card-meta\">\n <div\n *ngFor=\"let displayPart of getVisibleColumns(); let first = first\"\n class=\"card-meta-row card-meta-row-{{ displayPart.name | lowercase | propertySlug }}\"\n [class.card-meta-row-primary]=\"first\"\n >\n <ng-container *ngIf=\"first\">\n <es-node-url\n *ngIf=\"entriesService.elementInteractionType === InteractionType.DefaultActionLink\"\n [node]=\"node\"\n #link\n >\n <es-list-base [item]=\"displayPart\" [node]=\"node\" [provideLabel]=\"false\"> </es-list-base>\n </es-node-url>\n <div *ngIf=\"entriesService.elementInteractionType !== InteractionType.DefaultActionLink\">\n <es-list-base [item]=\"displayPart\" [node]=\"node\" [provideLabel]=\"false\"> </es-list-base>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!first\">\n <label>\n {{ displayPart | esListItemLabel | async }}\n </label>\n <es-list-base [item]=\"displayPart\" [node]=\"node\" [provideLabel]=\"false\"> </es-list-base>\n </ng-container>\n </div>\n </div>\n </ng-template>\n</div>\n", styles: [".grid-card{transition:all var(--transitionNormal);overflow:hidden;background-color:#fff;box-shadow:0 3px 3px #0000001a;display:grid;height:100%;grid-template-columns:auto}:host-context(body.es-contrast-mode) .grid-card{border:1px solid rgba(0,0,0,.42)}.grid-card.selected{background-color:rgb(var(--palette-primary-50))}.grid-card .dropdown-dummy{position:fixed}.grid-card .card-options{display:grid;grid-template-columns:1fr auto;grid-column-gap:10px}.grid-card .card-options .card-rating-area{display:flex;align-items:center;height:100%;padding-left:10px}.grid-card .card-options .card-options-area{display:flex}.grid-card .card-options .card-options-area es-option-button,.grid-card .card-options .card-options-area button{transition:all var(--transitionNormal);margin:0 2px;border-radius:50%}.grid-card .card-options .card-options-area es-option-button:hover,.grid-card .card-options .card-options-area es-option-button:focus,.grid-card .card-options .card-options-area button:hover,.grid-card .card-options .card-options-area button:focus{background-color:#fff}.grid-card:not(.grid-card-collection) .card-top-bar{background-color:var(--palette-primary-200)}.grid-card.grid-card-virtual{outline:2px dashed var(--nodeVirtualColor)}.grid-card .card-top-bar{height:40px;display:flex;gap:15px;align-items:center;padding:0 20px;position:relative}.grid-card .card-top-bar .card-top-bar-collection-color{position:absolute;background-color:#ffffff80;inset:0}.grid-card .card-top-bar .card-top-bar-flag{display:flex;align-items:center;justify-content:center;-webkit-user-select:none;user-select:none;border-radius:50%;background-color:#fff;padding:5px;position:relative;z-index:1;box-shadow:0 0 5px #0000004d}.grid-card .card-top-bar .card-top-bar-flag i{font-size:18px;color:#333}.grid-card .card-top-bar .card-top-bar-flag img{width:18px;height:18px}.grid-card .card-top-bar .card-top-bar-checkbox mat-checkbox{margin-right:-5px;position:relative;top:-1.3px}.grid-card .card-top-bar .card-top-bar-checkbox mat-checkbox.cdk-keyboard-focused ::ng-deep .mat-focus-indicator{outline:none}.grid-card .card-top-bar .card-top-bar-checkbox mat-checkbox.cdk-keyboard-focused ::ng-deep .mat-focus-indicator:after{content:\"\";position:absolute;inset:2px;outline:none;border:var(--focusWidth) solid var(--palette-primary-300);border-color:#fff}.grid-card .card-top-bar .card-top-bar-empty{width:0;flex-grow:1}.grid-card .card-image-area{height:150px;padding:0;display:flex}.grid-card .card-image-area es-preview-image{flex-grow:1}.grid-card .card-image-area .card-collection-image{display:flex;width:100%;height:100%;align-items:center;justify-content:center}.grid-card .card-image-area .card-collection-image i{display:flex;align-items:center;justify-content:center;-webkit-user-select:none;user-select:none;color:#000000bf;background-color:#ffffff80;padding:40px;font-size:40px;border-radius:50%}.grid-card .card-meta{padding:10px 20px 0;display:grid;flex-direction:row}.grid-card .card-meta .card-meta-row{display:flex;flex-direction:row;align-items:center;min-height:2.8em;gap:5px}.grid-card .card-meta .card-meta-row:not(:first-child)>label{cursor:inherit;color:var(--textLight);font-size:85%}.grid-card .card-meta .card-meta-row:not(:first-child)>es-list-base{color:#000;flex-grow:1;margin:5px 0;display:flex;justify-content:flex-end;text-align:end;word-break:break-word}.grid-card .card-meta .card-meta-row:first-child{font-size:120%}.grid-card .card-meta .card-meta-row:first-child>es-list-base,.grid-card .card-meta .card-meta-row:first-child>es-node-url{width:100%;font-size:120%;color:var(--textMain);height:2.8em;text-align:left;word-break:break-word}.grid-card.dynamic-single-click:hover{box-shadow:0 0 25px #0003;background-color:rgb(var(--palette-primary-50))}.grid-card.dynamic-single-click.grid-card-collection:hover .card-meta{background-color:#ffffffe6}.grid-card.grid-card-collection .card-meta{background-color:#fffc}.grid-card.grid-card-collection .card-options{background-color:#ffffffe6}.grid-card .card-options{border-top:1px solid #ddd}:host ::ng-deep .grid-card .card-meta-row:first-child es-list-base,:host ::ng-deep .grid-card .card-meta-row:first-child es-node-url a es-list-base{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;line-height:1.4em;max-height:2.8em;-webkit-line-clamp:2;-webkit-box-orient:vertical}:host ::ng-deep .grid-card .card-meta-row:first-child es-list-base>es-list-text,:host ::ng-deep .grid-card .card-meta-row:first-child es-node-url a es-list-base>es-list-text{word-break:break-word}:host ::ng-deep .grid-card .card-meta-row es-node-url a{color:var(--textMain)}:host ::ng-deep .grid-card .card-meta-row es-node-url a.cdk-keyboard-focused{display:inline-flex;outline:none;outline:var(--focusWidth) solid var(--palette-primary-300);outline-offset:2px}:host ::ng-deep .card-meta es-list-base img{max-width:100px;max-height:20px}:host ::ng-deep .card-meta es-list-base es-list-node-license img{height:20px}:host ::ng-deep .card-meta es-list-base es-list-collection-info{display:flex;align-items:center}:host ::ng-deep .card-meta es-list-base es-list-collection-info i{font-size:12pt;margin:0 6px}:host ::ng-deep .grid-card-collection es-node-url a.cdk-keyboard-focused .card-meta{background-color:#fff}.card-overlay{position:absolute;z-index:2;inset:0;pointer-events:none}.card-overlay ::ng-deep>*{pointer-events:auto}.grid-card{grid-template-rows:40px auto auto}.grid-card .card-meta .card-meta-row>es-list-base{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;line-height:1.4em;max-height:2.8em;-webkit-line-clamp:2;-webkit-box-orient:vertical}:host ::ng-deep .grid-card es-node-url .node-url-wrapper{height:100%}\n"] }]
123
+ }], ctorParameters: () => [{ type: i1.NodeEntriesService }, { type: i2.NodeHelperService }, { type: i0.ApplicationRef }, { type: i3.ConfigService }, { type: i3.AuthenticationService }, { type: i4.NodeEntriesTemplatesService }, { type: i5.NodeEntriesGlobalService }, { type: i6.Toast, decorators: [{
122
124
  type: Optional
123
- }] }]; }, propDecorators: { dropdown: [{
125
+ }] }], propDecorators: { dropdown: [{
124
126
  type: Input
125
127
  }], menuTrigger: [{
126
128
  type: ViewChild,
@@ -128,4 +130,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
128
130
  }], node: [{
129
131
  type: Input
130
132
  }] } });
131
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1lbnRyaWVzLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWR1LXNoYXJpbmctdWkvc3JjL2xpYi9ub2RlLWVudHJpZXMvbm9kZS1lbnRyaWVzLWNhcmQvbm9kZS1lbnRyaWVzLWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWR1LXNoYXJpbmctdWkvc3JjL2xpYi9ub2RlLWVudHJpZXMvbm9kZS1lbnRyaWVzLWNhcmQvbm9kZS1lbnRyaWVzLWNhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILFNBQVMsRUFDVCxLQUFLLEVBR0wsUUFBUSxFQUVSLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWhFLE9BQU8sRUFBRSxzQkFBc0IsRUFBNEIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHakQsT0FBTyxFQUE4QyxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRyxPQUFPLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd0QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBT3ZDLE1BQU0sT0FBTyx3QkFBd0I7SUFjakMsWUFDVyxjQUFxQyxFQUNyQyxVQUE2QixFQUM3QixjQUE4QixFQUM5QixhQUE0QixFQUM1QixxQkFBNEMsRUFDNUMsZ0JBQTZDLEVBQzVDLHdCQUFrRCxFQUN0QyxLQUFZO1FBUHpCLG1CQUFjLEdBQWQsY0FBYyxD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QUFDLElBQVksQ0FDcEIsQ0FBQztJQUNOLENBQUM7OEdBdkdRLHdCQUF3QjtrR0FBeEIsd0JBQXdCLDZPQzdCckMscWhNQXVLQTs7MkZEMUlhLHdCQUF3QjtrQkFMcEMsU0FBUzsrQkFDSSxzQkFBc0I7OzBCQTBCM0IsUUFBUTs0Q0FqQkosUUFBUTtzQkFBaEIsS0FBSztnQkFFb0IsV0FBVztzQkFBcEMsU0FBUzt1QkFBQyxhQUFhO2dCQUVmLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQXBwbGljYXRpb25SZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0TWVudVRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCB7IENsaWNrU291cmNlLCBJbnRlcmFjdGlvblR5cGUgfSBmcm9tICcuLi9lbnRyaWVzLW1vZGVsJztcbmltcG9ydCB7IE5vZGVFbnRyaWVzVGVtcGxhdGVzU2VydmljZSB9IGZyb20gJy4uL25vZGUtZW50cmllcy10ZW1wbGF0ZXMuc2VydmljZSc7XG5pbXBvcnQgeyBDdXN0b21GaWVsZFNwZWNpYWxUeXBlLCBOb2RlRW50cmllc0dsb2JhbFNlcnZpY2UgfSBmcm9tICcuLi9ub2RlLWVudHJpZXMtZ2xvYmFsLnNlcnZpY2UnO1xuaW1wb3J0IHsgVGFyZ2V0IH0gZnJvbSAnLi4vLi4vdHlwZXMvb3B0aW9uLWl0ZW0nO1xuaW1wb3J0IHsgTm9kZUVudHJpZXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbm9kZS1lbnRyaWVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgTm9kZUhlbHBlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9ub2RlLWhlbHBlci5zZXJ2aWNlJztcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uU2VydmljZSwgQ29uZmlnU2VydmljZSwgTm9kZSwgUmVzdENvbnN0YW50cyB9IGZyb20gJ25neC1lZHUtc2hhcmluZy1hcGknO1xuaW1wb3J0IHsgQ29sb3JIZWxwZXIsIFByZWZlcnJlZENvbG9yIH0gZnJvbSAnLi4vLi4vdXRpbC9jb2xvci1oZWxwZXInO1xuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IERyb3Bkb3duQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50JztcbmltcG9ydCB7IFRvYXN0IH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYWJzdHJhY3QvdG9hc3Quc2VydmljZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdlcy1ub2RlLWVudHJpZXMtY2FyZCcsXG4gICAgdGVtcGxhdGVVcmw6ICdub2RlLWVudHJpZXMtY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJ25vZGUtZW50cmllcy1jYXJkLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIE5vZGVFbnRyaWVzQ2FyZENvbXBvbmVudDxUIGV4dGVuZHMgTm9kZT4gaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCB7XG4gICAgcmVhZG9ubHkgSW50ZXJhY3Rpb25UeXBlID0gSW50ZXJhY3Rpb25UeXBlO1xuICAgIHJlYWRvbmx5IFRhcmdldCA9IFRhcmdldDtcbiAgICByZWFkb25seSBDbGlja1NvdXJjZSA9IENsaWNrU291cmNlO1xuICAgIHJlYWRvbmx5IEN1c3RvbUZpZWxkU3BlY2lhbFR5cGUgPSBDdXN0b21GaWVsZFNwZWNpYWxUeXBlO1xuICAgIEBJbnB1dCgpIGRyb3Bkb3duOiBEcm9wZG93bkNvbXBvbmVudDtcblxuICAgIEBWaWV3Q2hpbGQoJ21lbnVUcmlnZ2VyJykgbWVudVRyaWdnZXI6IE1hdE1lbnVUcmlnZ2VyO1xuXG4gICAgQElucHV0KCkgbm9kZTogVDtcbiAgICBkcm9wZG93bkxlZnQ6IG51bWJlcjtcbiAgICBkcm9wZG93blRvcDogbnVtYmVyO1xuICAgIHNob3dSYXRpbmdzID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG4gICAgaXNDb2xsZWN0aW9uOiBib29sZWFuO1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgZW50cmllc1NlcnZpY2U6IE5vZGVFbnRyaWVzU2VydmljZTxUPixcbiAgICAgICAgcHVibGljIG5vZGVIZWxwZXI6IE5vZGVIZWxwZXJTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgYXBwbGljYXRpb25SZWY6IEFwcGxpY2F0aW9uUmVmLFxuICAgICAgICBwdWJsaWMgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZSxcbiAgICAgICAgcHVibGljIGF1dGhlbnRpY2F0aW9uU2VydmljZTogQXV0aGVudGljYXRpb25TZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgdGVtcGxhdGVzU2VydmljZTogTm9kZUVudHJpZXNUZW1wbGF0ZXNTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIG5vZGVFbnRyaWVzR2xvYmFsU2VydmljZTogTm9kZUVudHJpZXNHbG9iYWxTZXJ2aWNlLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHRvYXN0OiBUb2FzdCxcbiAgICApIHt9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNDb2xsZWN0aW9uID0gdGhpcy5ub2RlSGVscGVyLmlzTm9kZUNvbGxlY3Rpb24oY2hhbmdlcy5ub2RlPy5jdXJyZW50VmFsdWUpO1xuICAgIH1cblxuICAgIGdldFRleHRDb2xvcigpIHtcbiAgICAgICAgcmV0dXJuIENvbG9ySGVscGVyLmdldFByZWZlcnJlZENvbG9yKHRoaXMubm9kZS5jb2xsZWN0aW9uLmNvbG9yKSA9PT0gUHJlZmVycmVkQ29sb3IuQmxhY2tcbiAgICAgICAgICAgID8gJyMwMDAnXG4gICAgICAgICAgICA6ICcjZmZmJztcbiAgICB9XG4gICAgb3B0aW9uc09uQ2FyZCgpIHtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuZW50cmllc1NlcnZpY2Uub3B0aW9uc1tUYXJnZXQuTGlzdF07XG4gICAgICAgIGNvbnN0IGFsd2F5cyA9IG9wdGlvbnMuZmlsdGVyKChvKSA9PiBvLnNob3dBbHdheXMpO1xuICAgICAgICBpZiAoYWx3YXlzLnNvbWUoKG8pID0+IG8uc2hvd0NhbGxiYWNrKHRoaXMubm9kZSkpKSB7XG4gICAgICAgICAgICByZXR1cm4gYWx3YXlzO1xuICAgICAgICB9XG4gICAgICAgIC8vIHdlIGRvIE5PVCBzaG93IGFueSBhZGRpdGlvbmFsIGFjdGlvbnNcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAvLyByZXR1cm4gb3B0aW9ucy5maWx0ZXIoKG8pID0+IG8uc2hvd0FzQWN0aW9uICYmIG8uc2hvd0NhbGxiYWNrKHRoaXMubm9kZSkpLnNsaWNlKDAsIDMpO1xuICAgIH1cblxuICAgIG9wZW5Db250ZXh0bWVudShldmVudDogTW91c2VFdmVudCB8IEV2ZW50KSB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBpZiAoIXRoaXMuZHJvcGRvd24pIHtcbiAgICAgICAgICAgIC8vIENhbGwgYHByZXZlbnREZWZhdWx0KClgIGV2ZW4gd2hlbiB0aGVyZSBpcyBubyBtZW51LCBzbyB3ZSBjYW4gdXNlIGBjZGtEcmFnYCB3aXRoIGFcbiAgICAgICAgICAgIC8vIHN0YXJ0IGRlbGF5IHdpdGhvdXQgYmVpbmcgaW50ZXJydXB0ZWQgYnkgdGhlIHN0YW5kYXJkIGxvbmctdGFwIGFjdGlvbi5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBNb3VzZUV2ZW50KSB7XG4gICAgICAgICAgICAoeyBjbGllbnRYOiB0aGlzLmRyb3Bkb3duTGVmdCwgY2xpZW50WTogdGhpcy5kcm9wZG93blRvcCB9ID0gZXZlbnQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgKHsgeDogdGhpcy5kcm9wZG93bkxlZnQsIHk6IHRoaXMuZHJvcGRvd25Ub3AgfSA9IChcbiAgICAgICAgICAgICAgICBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnRcbiAgICAgICAgICAgICkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5lbnRyaWVzU2VydmljZS5zZWxlY3Rpb24uc2VsZWN0ZWQuaW5jbHVkZXModGhpcy5ub2RlKSkge1xuICAgICAgICAgICAgdGhpcy5lbnRyaWVzU2VydmljZS5zZWxlY3Rpb24uY2xlYXIoKTtcbiAgICAgICAgICAgIHRoaXMuZW50cmllc1NlcnZpY2Uuc2VsZWN0aW9uLnNlbGVjdCh0aGlzLm5vZGUpO1xuICAgICAgICB9XG4gICAgICAgIC8vIFdhaXQgZm9yIHRoZSBtZW51IHRvIHJlZmxlY3QgY2hhbmdlZCBvcHRpb25zLlxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmRyb3Bkb3duLmNhblNob3dEcm9wZG93bigpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tZW51VHJpZ2dlci5vcGVuTWVudSgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRvYXN0LnRvYXN0KCdOT19BVkFJTEFCTEVfT1BUSU9OUycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXRWaXNpYmxlQ29sdW1ucygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZW50cmllc1NlcnZpY2UuY29sdW1ucz8uZmlsdGVyKChjKSA9PiBjLnZpc2libGUpO1xuICAgIH1cblxuICAgIGFzeW5jIG9wZW5NZW51KG5vZGU6IFQpIHtcbiAgICAgICAgdGhpcy5lbnRyaWVzU2VydmljZS5zZWxlY3Rpb24uY2xlYXIoKTtcbiAgICAgICAgdGhpcy5lbnRyaWVzU2VydmljZS5zZWxlY3Rpb24uc2VsZWN0KG5vZGUpO1xuICAgICAgICBhd2FpdCB0aGlzLmFwcGxpY2F0aW9uUmVmLnRpY2soKTtcbiAgICAgICAgdGhpcy5kcm9wZG93bi5tZW51LmZvY3VzRmlyc3RJdGVtKCk7XG4gICAgfVxuXG4gICAgYXN5bmMgbmdPbkluaXQoKSB7XG4gICAgICAgIGF3YWl0IHRoaXMuY29uZmlnU2VydmljZS5vYnNlcnZlQ29uZmlnKCkucGlwZSh0YWtlKDEpKS50b1Byb21pc2UoKTtcbiAgICAgICAgdGhpcy5zaG93UmF0aW5ncy5uZXh0KFxuICAgICAgICAgICAgdGhpcy5jb25maWdTZXJ2aWNlLmluc3RhbnQoJ3JhdGluZy5tb2RlJywgJ25vbmUnKSAhPT0gJ25vbmUnICYmXG4gICAgICAgICAgICAgICAgKGF3YWl0IHRoaXMuYXV0aGVudGljYXRpb25TZXJ2aWNlLmhhc1Rvb2xwZXJtaXNzaW9uKFxuICAgICAgICAgICAgICAgICAgICBSZXN0Q29uc3RhbnRzLlRPT0xQRVJNSVNTSU9OX1JBVEVfUkVBRCxcbiAgICAgICAgICAgICAgICApKSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXRUZW1wbGF0ZShuYW1lOiBDdXN0b21GaWVsZFNwZWNpYWxUeXBlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm5vZGVFbnRyaWVzR2xvYmFsU2VydmljZS5nZXRDdXN0b21GaWVsZFRlbXBsYXRlKFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHR5cGU6ICdOT0RFJyxcbiAgICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHRoaXMubm9kZSBhcyBOb2RlLFxuICAgICAgICApO1xuICAgIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJncmlkLWNhcmRcIlxuICBbY2xhc3MuZ3JpZC1jYXJkLWNvbGxlY3Rpb25dPVwiaXNDb2xsZWN0aW9uXCJcbiAgW2NsYXNzLmdyaWQtY2FyZC12aXJ0dWFsXT1cIiRhbnkobm9kZSkudmlydHVhbFwiXG4gIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImlzQ29sbGVjdGlvbiA/IG5vZGUuY29sbGVjdGlvbi5jb2xvciA6IG51bGxcIlxuICBbY2xhc3MuZHluYW1pYy1zaW5nbGUtY2xpY2tdPVwiZW50cmllc1NlcnZpY2Uuc2luZ2xlQ2xpY2tIaW50ID09PSAnZHluYW1pYydcIlxuICBbY2xhc3Muc2VsZWN0ZWRdPVwiZW50cmllc1NlcnZpY2Uuc2VsZWN0aW9uLmlzU2VsZWN0ZWQobm9kZSlcIlxuICAoY29udGV4dG1lbnUpPVwib3BlbkNvbnRleHRtZW51KCRldmVudClcIlxuICAoa2V5ZG93bi5Db250ZXh0TWVudSk9XCJvcGVuQ29udGV4dG1lbnUoJGV2ZW50KVwiXG4+XG4gIDxkaXZcbiAgICAqbmdJZj1cInRlbXBsYXRlc1NlcnZpY2Uub3ZlcmxheVwiXG4gICAgY2xhc3M9XCJjYXJkLW92ZXJsYXlcIlxuICAgIChjbGljayk9XCJcbiAgICAgIGVudHJpZXNTZXJ2aWNlLmNsaWNrSXRlbS5lbWl0KHtcbiAgICAgICAgZWxlbWVudDogbm9kZSxcbiAgICAgICAgc291cmNlOiBDbGlja1NvdXJjZS5PdmVybGF5XG4gICAgICB9KVxuICAgIFwiXG4gID5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInRlbXBsYXRlc1NlcnZpY2Uub3ZlcmxheTsgY29udGV4dDogeyBlbGVtZW50OiBub2RlIH1cIlxuICAgID48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG4gIDxidXR0b25cbiAgICAqbmdJZj1cImRyb3Bkb3duXCJcbiAgICAjbWVudVRyaWdnZXI9XCJtYXRNZW51VHJpZ2dlclwiXG4gICAgbWF0LWJ1dHRvblxuICAgIGNsYXNzPVwiZHJvcGRvd24tZHVtbXkgY2RrLXZpc3VhbGx5LWhpZGRlblwiXG4gICAgW3N0eWxlLmxlZnQucHhdPVwiZHJvcGRvd25MZWZ0XCJcbiAgICBbc3R5bGUudG9wLnB4XT1cImRyb3Bkb3duVG9wXCJcbiAgICBbbWF0TWVudVRyaWdnZXJGb3JdPVwiZHJvcGRvd24ubWVudVwiXG4gICAgdGFiaW5kZXg9XCItMVwiXG4gICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgPjwvYnV0dG9uPlxuICA8ZGl2IGNsYXNzPVwiY2FyZC10b3AtYmFyXCIgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiaXNDb2xsZWN0aW9uID8gbm9kZS5jb2xsZWN0aW9uLmNvbG9yIDogbnVsbFwiPlxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRvcC1iYXItY29sbGVjdGlvbi1jb2xvclwiICpuZ0lmPVwibm9kZUhlbHBlci5pc05vZGVDb2xsZWN0aW9uKG5vZGUpXCI+PC9kaXY+XG4gICAgPGVzLW5vZGUtdHlwZS1iYWRnZSBbbm9kZV09XCJub2RlXCI+PC9lcy1ub2RlLXR5cGUtYmFkZ2U+XG4gICAgPGRpdiAqbmdJZj1cImlzQ29sbGVjdGlvbiAmJiBub2RlLmNvbGxlY3Rpb24ucGlubmVkXCIgY2xhc3M9XCJjYXJkLXRvcC1iYXItZmxhZ1wiPlxuICAgICAgPGkgZXNJY29uPVwiZWR1LXBpblwiPjwvaT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC10b3AtYmFyLWVtcHR5XCI+PC9kaXY+XG4gICAgPGVzLW5vZGUtc3RhdHMtYmFkZ2VzIFtub2RlXT1cIm5vZGVcIj48L2VzLW5vZGUtc3RhdHMtYmFkZ2VzPlxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRvcC1iYXItY2hlY2tib3hcIiAqbmdJZj1cImVudHJpZXNTZXJ2aWNlLmNoZWNrYm94XCI+XG4gICAgICA8bWF0LWNoZWNrYm94XG4gICAgICAgIFtjaGVja2VkXT1cImVudHJpZXNTZXJ2aWNlLnNlbGVjdGlvbi5pc1NlbGVjdGVkKG5vZGUpXCJcbiAgICAgICAgKGNoYW5nZSk9XCJlbnRyaWVzU2VydmljZS5vbkNoZWNrYm94Q2hhbmdlZChub2RlLCAkZXZlbnQuY2hlY2tlZClcIlxuICAgICAgICBhcmlhLWxhYmVsPVwie3sgJ1NFTEVDVCcgfCB0cmFuc2xhdGUgOiB7IGVsZW1lbnQ6IChub2RlIHwgbm9kZVRpdGxlKSB9IH19XCJcbiAgICAgID48L21hdC1jaGVja2JveD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxlcy1ub2RlLXVybFxuICAgICpuZ0lmPVwiZW50cmllc1NlcnZpY2UuZWxlbWVudEludGVyYWN0aW9uVHlwZSA9PT0gSW50ZXJhY3Rpb25UeXBlLkRlZmF1bHRBY3Rpb25MaW5rXCJcbiAgICBtb2RlPVwid3JhcHBlclwiXG4gICAgW25vZGVdPVwibm9kZVwiXG4gICAgZXNGb2N1c1N0YXRlXG4gICAgI2NhcmRGb2N1c1N0YXRlPVwiZXNGb2N1c1N0YXRlXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgIGltYWdlO1xuICAgICAgICBjb250ZXh0OiB7IHBsYXlBbmltYXRpb246IGNhcmRGb2N1c1N0YXRlLmhvdmVyaW5nIHx8IGNhcmRGb2N1c1N0YXRlLmhhc0ZvY3VzIH1cbiAgICAgIFwiXG4gICAgPjwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJtZXRhXCI+PC9uZy1jb250YWluZXI+XG4gIDwvZXMtbm9kZS11cmw+XG4gIDxkaXZcbiAgICAqbmdJZj1cImVudHJpZXNTZXJ2aWNlLmVsZW1lbnRJbnRlcmFjdGlvblR5cGUgIT09IEludGVyYWN0aW9uVHlwZS5EZWZhdWx0QWN0aW9uTGlua1wiXG4gICAgbWF0UmlwcGxlXG4gICAgKGNsaWNrKT1cIlxuICAgICAgZW50cmllc1NlcnZpY2Uub25DbGlja2VkKHtcbiAgICAgICAgZXZlbnQ6ICRldmVudCxcbiAgICAgICAgZWxlbWVudDogbm9kZSxcbiAgICAgICAgc291cmNlOiBDbGlja1NvdXJjZS5NZXRhZGF0YVxuICAgICAgfSlcbiAgICBcIlxuICAgIChkYmxjbGljayk9XCJcbiAgICAgIGVudHJpZXNTZXJ2aWNlLmRibENsaWNrSXRlbS5lbWl0KHtcbiAgICAgICAgZWxlbWVudDogbm9kZSxcbiAgICAgICAgc291cmNlOiBDbGlja1NvdXJjZS5NZXRhZGF0YVxuICAgICAgfSlcbiAgICBcIlxuICAgIGVzRm9jdXNTdGF0ZVxuICAgICNjYXJkRm9jdXNTdGF0ZT1cImVzRm9jdXNTdGF0ZVwiXG4gID5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICBpbWFnZTtcbiAgICAgICAgY29udGV4dDogeyBwbGF5QW5pbWF0aW9uOiBjYXJkRm9jdXNTdGF0ZS5ob3ZlcmluZyB8fCBjYXJkRm9jdXNTdGF0ZS5oYXNGb2N1cyB9XG4gICAgICBcIlxuICAgID48L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibWV0YVwiPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImNhcmQtb3B0aW9uc1wiICpuZ0lmPVwiZW50cmllc1NlcnZpY2Uub3B0aW9ucyB8fCBzaG93UmF0aW5nc1wiPlxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLXJhdGluZy1hcmVhXCI+XG4gICAgICA8ZXMtbm9kZS1yYXRpbmcgW25vZGVdPVwibm9kZVwiPjwvZXMtbm9kZS1yYXRpbmc+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNhcmQtb3B0aW9ucy1hcmVhXCI+XG4gICAgICA8ZXMtb3B0aW9uLWJ1dHRvblxuICAgICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnNPbkNhcmQoKVwiXG4gICAgICAgIGNsYXNzPVwiY2FyZC1vcHRpb25zLWFsd2F5c1wiXG4gICAgICAgIFtvcHRpb25dPVwib3B0aW9uXCJcbiAgICAgICAgW25vZGVdPVwibm9kZVwiXG4gICAgICA+PC9lcy1vcHRpb24tYnV0dG9uPlxuICAgICAgPGRpdiBjbGFzcz1cImNhcmQtb3B0aW9ucy1zcGFjZXJcIj48L2Rpdj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgKm5nSWY9XCJkcm9wZG93blwiXG4gICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAoY2xpY2spPVwib3Blbk1lbnUobm9kZSlcIlxuICAgICAgICBbbWF0TWVudVRyaWdnZXJGb3JdPVwiZHJvcGRvd24ubWVudVwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ09QVElPTlNfRk9SJyB8IHRyYW5zbGF0ZSA6IHsgZWxlbWVudDogKG5vZGUgfCBub2RlVGl0bGUpIH1cIlxuICAgICAgICBkYXRhLXRlc3Q9XCJjYXJkLW9wdGlvbnMtYnV0dG9uXCJcbiAgICAgID5cbiAgICAgICAgPGkgZXNJY29uPVwibW9yZV92ZXJ0XCI+PC9pPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8bmctdGVtcGxhdGUgI2ltYWdlIGxldC1wbGF5QW5pbWF0aW9uPVwicGxheUFuaW1hdGlvblwiPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiY2FyZC1pbWFnZS1hcmVhXCJcbiAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImlzQ29sbGVjdGlvbiA/IG5vZGUuY29sbGVjdGlvbi5jb2xvciA6IG51bGxcIlxuICAgID5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJnZXRUZW1wbGF0ZShDdXN0b21GaWVsZFNwZWNpYWxUeXBlLnByZXZpZXcpIGFzIHJlZlwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicmVmOyBjb250ZXh0OiB7IG5vZGU6IHRoaXMubm9kZSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZ2V0VGVtcGxhdGUoQ3VzdG9tRmllbGRTcGVjaWFsVHlwZS5wcmV2aWV3KVwiPlxuICAgICAgICA8ZXMtcHJldmlldy1pbWFnZVxuICAgICAgICAgICpuZ0lmPVwiIShpc0NvbGxlY3Rpb24gJiYgbm9kZS5wcmV2aWV3LmlzSWNvbilcIlxuICAgICAgICAgIFtub2RlXT1cIm5vZGVcIlxuICAgICAgICAgIFtwbGF5QW5pbWF0aW9uXT1cInBsYXlBbmltYXRpb25cIlxuICAgICAgICA+PC9lcy1wcmV2aWV3LWltYWdlPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNDb2xsZWN0aW9uICYmIG5vZGUucHJldmlldy5pc0ljb25cIiBjbGFzcz1cImNhcmQtY29sbGVjdGlvbi1pbWFnZVwiPlxuICAgICAgICAgIDxpIGVzSWNvbj1cImxheWVyc1wiPjwvaT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbiAgPG5nLXRlbXBsYXRlICNtZXRhIGxldC1saW5rPVwibGlua1wiPlxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLW1ldGFcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgKm5nRm9yPVwibGV0IGRpc3BsYXlQYXJ0IG9mIGdldFZpc2libGVDb2x1bW5zKCk7IGxldCBmaXJzdCA9IGZpcnN0XCJcbiAgICAgICAgY2xhc3M9XCJjYXJkLW1ldGEtcm93IGNhcmQtbWV0YS1yb3cte3sgZGlzcGxheVBhcnQubmFtZSB8IGxvd2VyY2FzZSB9fVwiXG4gICAgICAgIFtjbGFzcy5jYXJkLW1ldGEtcm93LXByaW1hcnldPVwiZmlyc3RcIlxuICAgICAgPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZmlyc3RcIj5cbiAgICAgICAgICA8ZXMtbm9kZS11cmxcbiAgICAgICAgICAgICpuZ0lmPVwiZW50cmllc1NlcnZpY2UuZWxlbWVudEludGVyYWN0aW9uVHlwZSA9PT0gSW50ZXJhY3Rpb25UeXBlLkRlZmF1bHRBY3Rpb25MaW5rXCJcbiAgICAgICAgICAgIFtub2RlXT1cIm5vZGVcIlxuICAgICAgICAgICAgI2xpbmtcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZXMtbGlzdC1iYXNlIFtpdGVtXT1cImRpc3BsYXlQYXJ0XCIgW25vZGVdPVwibm9kZVwiIFtwcm92aWRlTGFiZWxdPVwiZmFsc2VcIj4gPC9lcy1saXN0LWJhc2U+XG4gICAgICAgICAgPC9lcy1ub2RlLXVybD5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZW50cmllc1NlcnZpY2UuZWxlbWVudEludGVyYWN0aW9uVHlwZSAhPT0gSW50ZXJhY3Rpb25UeXBlLkRlZmF1bHRBY3Rpb25MaW5rXCI+XG4gICAgICAgICAgICA8ZXMtbGlzdC1iYXNlIFtpdGVtXT1cImRpc3BsYXlQYXJ0XCIgW25vZGVdPVwibm9kZVwiIFtwcm92aWRlTGFiZWxdPVwiZmFsc2VcIj4gPC9lcy1saXN0LWJhc2U+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWZpcnN0XCI+XG4gICAgICAgICAgPGxhYmVsPlxuICAgICAgICAgICAge3sgZGlzcGxheVBhcnQgfCBlc0xpc3RJdGVtTGFiZWwgfCBhc3luYyB9fVxuICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgPGVzLWxpc3QtYmFzZSBbaXRlbV09XCJkaXNwbGF5UGFydFwiIFtub2RlXT1cIm5vZGVcIiBbcHJvdmlkZUxhYmVsXT1cImZhbHNlXCI+IDwvZXMtbGlzdC1iYXNlPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuPC9kaXY+XG4iXX0=
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1lbnRyaWVzLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWR1LXNoYXJpbmctdWkvc3JjL2xpYi9ub2RlLWVudHJpZXMvbm9kZS1lbnRyaWVzLWNhcmQvbm9kZS1lbnRyaWVzLWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWR1LXNoYXJpbmctdWkvc3JjL2xpYi9ub2RlLWVudHJpZXMvbm9kZS1lbnRyaWVzLWNhcmQvbm9kZS1lbnRyaWVzLWNhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILFNBQVMsRUFDVCxLQUFLLEVBR0wsUUFBUSxFQUVSLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWhFLE9BQU8sRUFBRSxzQkFBc0IsRUFBNEIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHakQsT0FBTyxFQUE4QyxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRyxPQUFPLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd0QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU92QyxNQUFNLE9BQU8sd0JBQXdCO0lBY2pDLFlBQ1csY0FBcUMsRUFDckMsVUFBNkIsRUFDN0IsY0FBOEIsRUFDOUIsYUFBNEIsRUFDNUIscUJBQTRDLEVBQzVDLGdCQUE2QyxFQUM3Qyx3QkFBa0QsRUFDckMsS0FBWTtRQVB6QixtQkFBYyxHQUFkLGNBQWMs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Q3pDLENBQUMsQ0FDVCxDQUFDO0lBQ04sQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUE0QjtRQUNwQyxPQUFPLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxzQkFBc0IsQ0FDdkQ7WUFDSSxJQUFJLEVBQUUsTUFBTTtZQUNaLElBQUk7U0FDUCxFQUNELElBQUksQ0FBQyxJQUFZLENBQ3BCLENBQUM7SUFDTixDQUFDOzhHQXhHUSx3QkFBd0I7a0dBQXhCLHdCQUF3Qiw2T0M3QnJDLDZ5TUFpTEE7OzJGRHBKYSx3QkFBd0I7a0JBTHBDLFNBQVM7K0JBQ0ksc0JBQXNCOzswQkEwQjNCLFFBQVE7eUNBakJKLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRW9CLFdBQVc7c0JBQXBDLFNBQVM7dUJBQUMsYUFBYTtnQkFFZixJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFwcGxpY2F0aW9uUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25Jbml0LFxuICAgIE9wdGlvbmFsLFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdE1lbnVUcmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5pbXBvcnQgeyBDbGlja1NvdXJjZSwgSW50ZXJhY3Rpb25UeXBlIH0gZnJvbSAnLi4vZW50cmllcy1tb2RlbCc7XG5pbXBvcnQgeyBOb2RlRW50cmllc1RlbXBsYXRlc1NlcnZpY2UgfSBmcm9tICcuLi9ub2RlLWVudHJpZXMtdGVtcGxhdGVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ3VzdG9tRmllbGRTcGVjaWFsVHlwZSwgTm9kZUVudHJpZXNHbG9iYWxTZXJ2aWNlIH0gZnJvbSAnLi4vbm9kZS1lbnRyaWVzLWdsb2JhbC5zZXJ2aWNlJztcbmltcG9ydCB7IFRhcmdldCB9IGZyb20gJy4uLy4uL3R5cGVzL29wdGlvbi1pdGVtJztcbmltcG9ydCB7IE5vZGVFbnRyaWVzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL25vZGUtZW50cmllcy5zZXJ2aWNlJztcbmltcG9ydCB7IE5vZGVIZWxwZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbm9kZS1oZWxwZXIuc2VydmljZSc7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGlvblNlcnZpY2UsIENvbmZpZ1NlcnZpY2UsIE5vZGUsIFJlc3RDb25zdGFudHMgfSBmcm9tICduZ3gtZWR1LXNoYXJpbmctYXBpJztcbmltcG9ydCB7IENvbG9ySGVscGVyLCBQcmVmZXJyZWRDb2xvciB9IGZyb20gJy4uLy4uL3V0aWwvY29sb3ItaGVscGVyJztcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBEcm9wZG93bkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Ryb3Bkb3duL2Ryb3Bkb3duLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUb2FzdCB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Fic3RyYWN0L3RvYXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZXMtbm9kZS1lbnRyaWVzLWNhcmQnLFxuICAgIHRlbXBsYXRlVXJsOiAnbm9kZS1lbnRyaWVzLWNhcmQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWydub2RlLWVudHJpZXMtY2FyZC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBOb2RlRW50cmllc0NhcmRDb21wb25lbnQ8VCBleHRlbmRzIE5vZGU+IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQge1xuICAgIHJlYWRvbmx5IEludGVyYWN0aW9uVHlwZSA9IEludGVyYWN0aW9uVHlwZTtcbiAgICByZWFkb25seSBUYXJnZXQgPSBUYXJnZXQ7XG4gICAgcmVhZG9ubHkgQ2xpY2tTb3VyY2UgPSBDbGlja1NvdXJjZTtcbiAgICByZWFkb25seSBDdXN0b21GaWVsZFNwZWNpYWxUeXBlID0gQ3VzdG9tRmllbGRTcGVjaWFsVHlwZTtcbiAgICBASW5wdXQoKSBkcm9wZG93bjogRHJvcGRvd25Db21wb25lbnQ7XG5cbiAgICBAVmlld0NoaWxkKCdtZW51VHJpZ2dlcicpIG1lbnVUcmlnZ2VyOiBNYXRNZW51VHJpZ2dlcjtcblxuICAgIEBJbnB1dCgpIG5vZGU6IFQ7XG4gICAgZHJvcGRvd25MZWZ0OiBudW1iZXI7XG4gICAgZHJvcGRvd25Ub3A6IG51bWJlcjtcbiAgICBzaG93UmF0aW5ncyA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICAgIGlzQ29sbGVjdGlvbjogYm9vbGVhbjtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGVudHJpZXNTZXJ2aWNlOiBOb2RlRW50cmllc1NlcnZpY2U8VD4sXG4gICAgICAgIHB1YmxpYyBub2RlSGVscGVyOiBOb2RlSGVscGVyU2VydmljZSxcbiAgICAgICAgcHVibGljIGFwcGxpY2F0aW9uUmVmOiBBcHBsaWNhdGlvblJlZixcbiAgICAgICAgcHVibGljIGNvbmZpZ1NlcnZpY2U6IENvbmZpZ1NlcnZpY2UsXG4gICAgICAgIHB1YmxpYyBhdXRoZW50aWNhdGlvblNlcnZpY2U6IEF1dGhlbnRpY2F0aW9uU2VydmljZSxcbiAgICAgICAgcHVibGljIHRlbXBsYXRlc1NlcnZpY2U6IE5vZGVFbnRyaWVzVGVtcGxhdGVzU2VydmljZSxcbiAgICAgICAgcHVibGljIG5vZGVFbnRyaWVzR2xvYmFsU2VydmljZTogTm9kZUVudHJpZXNHbG9iYWxTZXJ2aWNlLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHRvYXN0OiBUb2FzdCxcbiAgICApIHt9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNDb2xsZWN0aW9uID0gdGhpcy5ub2RlSGVscGVyLmlzTm9kZUNvbGxlY3Rpb24oY2hhbmdlcy5ub2RlPy5jdXJyZW50VmFsdWUpO1xuICAgIH1cblxuICAgIGdldFRleHRDb2xvcigpIHtcbiAgICAgICAgcmV0dXJuIENvbG9ySGVscGVyLmdldFByZWZlcnJlZENvbG9yKHRoaXMubm9kZS5jb2xsZWN0aW9uLmNvbG9yKSA9PT0gUHJlZmVycmVkQ29sb3IuQmxhY2tcbiAgICAgICAgICAgID8gJyMwMDAnXG4gICAgICAgICAgICA6ICcjZmZmJztcbiAgICB9XG4gICAgb3B0aW9uc09uQ2FyZCgpIHtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuZW50cmllc1NlcnZpY2Uub3B0aW9ucz8uW1RhcmdldC5MaXN0XTtcbiAgICAgICAgY29uc3QgYWx3YXlzID0gb3B0aW9ucz8uZmlsdGVyKChvKSA9PiBvLnNob3dBbHdheXMpO1xuICAgICAgICBpZiAoYWx3YXlzPy5zb21lKChvKSA9PiBvLnNob3dDYWxsYmFjayh0aGlzLm5vZGUpKSkge1xuICAgICAgICAgICAgcmV0dXJuIGFsd2F5cztcbiAgICAgICAgfVxuICAgICAgICAvLyB3ZSBkbyBOT1Qgc2hvdyBhbnkgYWRkaXRpb25hbCBhY3Rpb25zXG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgLy8gcmV0dXJuIG9wdGlvbnMuZmlsdGVyKChvKSA9PiBvLnNob3dBc0FjdGlvbiAmJiBvLnNob3dDYWxsYmFjayh0aGlzLm5vZGUpKS5zbGljZSgwLCAzKTtcbiAgICB9XG5cbiAgICBvcGVuQ29udGV4dG1lbnUoZXZlbnQ6IE1vdXNlRXZlbnQgfCBFdmVudCkge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgaWYgKCF0aGlzLmRyb3Bkb3duKSB7XG4gICAgICAgICAgICAvLyBDYWxsIGBwcmV2ZW50RGVmYXVsdCgpYCBldmVuIHdoZW4gdGhlcmUgaXMgbm8gbWVudSwgc28gd2UgY2FuIHVzZSBgY2RrRHJhZ2Agd2l0aCBhXG4gICAgICAgICAgICAvLyBzdGFydCBkZWxheSB3aXRob3V0IGJlaW5nIGludGVycnVwdGVkIGJ5IHRoZSBzdGFuZGFyZCBsb25nLXRhcCBhY3Rpb24uXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgTW91c2VFdmVudCkge1xuICAgICAgICAgICAgKHsgY2xpZW50WDogdGhpcy5kcm9wZG93bkxlZnQsIGNsaWVudFk6IHRoaXMuZHJvcGRvd25Ub3AgfSA9IGV2ZW50KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICh7IHg6IHRoaXMuZHJvcGRvd25MZWZ0LCB5OiB0aGlzLmRyb3Bkb3duVG9wIH0gPSAoXG4gICAgICAgICAgICAgICAgZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50XG4gICAgICAgICAgICApLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuZW50cmllc1NlcnZpY2Uuc2VsZWN0aW9uLnNlbGVjdGVkLmluY2x1ZGVzKHRoaXMubm9kZSkpIHtcbiAgICAgICAgICAgIHRoaXMuZW50cmllc1NlcnZpY2Uuc2VsZWN0aW9uLmNsZWFyKCk7XG4gICAgICAgICAgICB0aGlzLmVudHJpZXNTZXJ2aWNlLnNlbGVjdGlvbi5zZWxlY3QodGhpcy5ub2RlKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBXYWl0IGZvciB0aGUgbWVudSB0byByZWZsZWN0IGNoYW5nZWQgb3B0aW9ucy5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5kcm9wZG93bi5jYW5TaG93RHJvcGRvd24oKSkge1xuICAgICAgICAgICAgICAgIHRoaXMubWVudVRyaWdnZXIub3Blbk1lbnUoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy50b2FzdC50b2FzdCgnTk9fQVZBSUxBQkxFX09QVElPTlMnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0VmlzaWJsZUNvbHVtbnMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVudHJpZXNTZXJ2aWNlLmNvbHVtbnM/LmZpbHRlcigoYykgPT4gYy52aXNpYmxlKTtcbiAgICB9XG5cbiAgICBhc3luYyBvcGVuTWVudShub2RlOiBUKSB7XG4gICAgICAgIHRoaXMuZW50cmllc1NlcnZpY2Uuc2VsZWN0aW9uLmNsZWFyKCk7XG4gICAgICAgIHRoaXMuZW50cmllc1NlcnZpY2Uuc2VsZWN0aW9uLnNlbGVjdChub2RlKTtcbiAgICAgICAgdGhpcy5lbnRyaWVzU2VydmljZS5zZWxlY3Rpb24uY2xpY2tTb3VyY2UgPSBDbGlja1NvdXJjZS5Ecm9wZG93bjtcbiAgICAgICAgYXdhaXQgdGhpcy5hcHBsaWNhdGlvblJlZi50aWNrKCk7XG4gICAgICAgIHRoaXMuZHJvcGRvd24ubWVudS5mb2N1c0ZpcnN0SXRlbSgpO1xuICAgIH1cblxuICAgIGFzeW5jIG5nT25Jbml0KCkge1xuICAgICAgICBhd2FpdCB0aGlzLmNvbmZpZ1NlcnZpY2Uub2JzZXJ2ZUNvbmZpZygpLnBpcGUodGFrZSgxKSkudG9Qcm9taXNlKCk7XG4gICAgICAgIHRoaXMuc2hvd1JhdGluZ3MubmV4dChcbiAgICAgICAgICAgIHRoaXMuY29uZmlnU2VydmljZS5pbnN0YW50KCdyYXRpbmcubW9kZScsICdub25lJykgIT09ICdub25lJyAmJlxuICAgICAgICAgICAgICAgIChhd2FpdCB0aGlzLmF1dGhlbnRpY2F0aW9uU2VydmljZS5oYXNUb29scGVybWlzc2lvbihcbiAgICAgICAgICAgICAgICAgICAgUmVzdENvbnN0YW50cy5UT09MUEVSTUlTU0lPTl9SQVRFX1JFQUQsXG4gICAgICAgICAgICAgICAgKSksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0VGVtcGxhdGUobmFtZTogQ3VzdG9tRmllbGRTcGVjaWFsVHlwZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5ub2RlRW50cmllc0dsb2JhbFNlcnZpY2UuZ2V0Q3VzdG9tRmllbGRUZW1wbGF0ZShcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnTk9ERScsXG4gICAgICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0aGlzLm5vZGUgYXMgTm9kZSxcbiAgICAgICAgKTtcbiAgICB9XG59XG4iLCI8ZGl2XG4gIFtjbGFzc109XCJcbiAgICAnZ3JpZC1jYXJkJyArXG4gICAgKGlzQ29sbGVjdGlvblxuICAgICAgPyAnIGdyaWQtY2FyZC1jb2xsZWN0aW9uIGdyaWQtY2FyZC1jb2xsZWN0aW9uLXNjb3BlLScgK1xuICAgICAgICBub2RlLmNvbGxlY3Rpb24uc2NvcGUgK1xuICAgICAgICAnIGdyaWQtY2FyZC1jb2xsZWN0aW9uLXR5cGUtJyArXG4gICAgICAgIG5vZGUuY29sbGVjdGlvbi50eXBlXG4gICAgICA6ICcnKSArXG4gICAgKCRhbnkobm9kZSkudmlydHVhbCA/ICcgZ3JpZC1jYXJkLXZpcnR1YWwnIDogJycpICtcbiAgICAnICcgK1xuICAgIG5vZGVFbnRyaWVzR2xvYmFsU2VydmljZS5nZXRDdXN0b21Dc3NDbGFzcyhub2RlKVxuICBcIlxuICBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJpc0NvbGxlY3Rpb24gPyBub2RlLmNvbGxlY3Rpb24uY29sb3IgOiBudWxsXCJcbiAgW2NsYXNzLmR5bmFtaWMtc2luZ2xlLWNsaWNrXT1cImVudHJpZXNTZXJ2aWNlLnNpbmdsZUNsaWNrSGludCA9PT0gJ2R5bmFtaWMnXCJcbiAgW2NsYXNzLnNlbGVjdGVkXT1cImVudHJpZXNTZXJ2aWNlLnNlbGVjdGlvbi5pc1NlbGVjdGVkKG5vZGUpXCJcbiAgKGNvbnRleHRtZW51KT1cIm9wZW5Db250ZXh0bWVudSgkZXZlbnQpXCJcbiAgKGtleWRvd24uQ29udGV4dE1lbnUpPVwib3BlbkNvbnRleHRtZW51KCRldmVudClcIlxuPlxuICA8ZGl2XG4gICAgKm5nSWY9XCJ0ZW1wbGF0ZXNTZXJ2aWNlLm92ZXJsYXlcIlxuICAgIGNsYXNzPVwiY2FyZC1vdmVybGF5XCJcbiAgICAoY2xpY2spPVwiXG4gICAgICBlbnRyaWVzU2VydmljZS5jbGlja0l0ZW0uZW1pdCh7XG4gICAgICAgIGVsZW1lbnQ6IG5vZGUsXG4gICAgICAgIHNvdXJjZTogQ2xpY2tTb3VyY2UuT3ZlcmxheSxcbiAgICAgIH0pXG4gICAgXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVtcGxhdGVzU2VydmljZS5vdmVybGF5OyBjb250ZXh0OiB7IGVsZW1lbnQ6IG5vZGUgfVwiXG4gICAgPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbiAgPGJ1dHRvblxuICAgICpuZ0lmPVwiZHJvcGRvd25cIlxuICAgICNtZW51VHJpZ2dlcj1cIm1hdE1lbnVUcmlnZ2VyXCJcbiAgICBtYXQtYnV0dG9uXG4gICAgY2xhc3M9XCJkcm9wZG93bi1kdW1teSBjZGstdmlzdWFsbHktaGlkZGVuXCJcbiAgICBbc3R5bGUubGVmdC5weF09XCJkcm9wZG93bkxlZnRcIlxuICAgIFtzdHlsZS50b3AucHhdPVwiZHJvcGRvd25Ub3BcIlxuICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJkcm9wZG93bi5tZW51XCJcbiAgICB0YWJpbmRleD1cIi0xXCJcbiAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICA+PC9idXR0b24+XG4gIDxkaXYgY2xhc3M9XCJjYXJkLXRvcC1iYXJcIiBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJpc0NvbGxlY3Rpb24gPyBub2RlLmNvbGxlY3Rpb24uY29sb3IgOiBudWxsXCI+XG4gICAgPGRpdiBjbGFzcz1cImNhcmQtdG9wLWJhci1jb2xsZWN0aW9uLWNvbG9yXCIgKm5nSWY9XCJub2RlSGVscGVyLmlzTm9kZUNvbGxlY3Rpb24obm9kZSlcIj48L2Rpdj5cbiAgICA8ZXMtbm9kZS10eXBlLWJhZGdlIFtub2RlXT1cIm5vZGVcIj48L2VzLW5vZGUtdHlwZS1iYWRnZT5cbiAgICA8ZGl2ICpuZ0lmPVwiaXNDb2xsZWN0aW9uICYmIG5vZGUuY29sbGVjdGlvbi5waW5uZWRcIiBjbGFzcz1cImNhcmQtdG9wLWJhci1mbGFnXCI+XG4gICAgICA8aSBlc0ljb249XCJlZHUtcGluXCI+PC9pPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRvcC1iYXItZW1wdHlcIj48L2Rpdj5cbiAgICA8ZXMtbm9kZS1zdGF0cy1iYWRnZXMgW25vZGVdPVwibm9kZVwiPjwvZXMtbm9kZS1zdGF0cy1iYWRnZXM+XG4gICAgPGRpdiBjbGFzcz1cImNhcmQtdG9wLWJhci1jaGVja2JveFwiICpuZ0lmPVwiZW50cmllc1NlcnZpY2UuY2hlY2tib3hcIj5cbiAgICAgIDxtYXQtY2hlY2tib3hcbiAgICAgICAgW2NoZWNrZWRdPVwiZW50cmllc1NlcnZpY2Uuc2VsZWN0aW9uLmlzU2VsZWN0ZWQobm9kZSlcIlxuICAgICAgICAoY2hhbmdlKT1cImVudHJpZXNTZXJ2aWNlLm9uQ2hlY2tib3hDaGFuZ2VkKG5vZGUsICRldmVudC5jaGVja2VkKVwiXG4gICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgIGFyaWEtbGFiZWw9XCJ7eyAnU0VMRUNUJyB8IHRyYW5zbGF0ZTogeyBlbGVtZW50OiAobm9kZSB8IG5vZGVUaXRsZSkgfSB9fVwiXG4gICAgICA+PC9tYXQtY2hlY2tib3g+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZXMtbm9kZS11cmxcbiAgICAqbmdJZj1cImVudHJpZXNTZXJ2aWNlLmVsZW1lbnRJbnRlcmFjdGlvblR5cGUgPT09IEludGVyYWN0aW9uVHlwZS5EZWZhdWx0QWN0aW9uTGlua1wiXG4gICAgbW9kZT1cIndyYXBwZXJcIlxuICAgIFtub2RlXT1cIm5vZGVcIlxuICAgIGVzRm9jdXNTdGF0ZVxuICAgICNjYXJkRm9jdXNTdGF0ZT1cImVzRm9jdXNTdGF0ZVwiXG4gID5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICBpbWFnZTtcbiAgICAgICAgY29udGV4dDogeyBwbGF5QW5pbWF0aW9uOiBjYXJkRm9jdXNTdGF0ZS5ob3ZlcmluZyB8fCBjYXJkRm9jdXNTdGF0ZS5oYXNGb2N1cyB9XG4gICAgICBcIlxuICAgID48L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibWV0YVwiPjwvbmctY29udGFpbmVyPlxuICA8L2VzLW5vZGUtdXJsPlxuICA8ZGl2XG4gICAgKm5nSWY9XCJlbnRyaWVzU2VydmljZS5lbGVtZW50SW50ZXJhY3Rpb25UeXBlICE9PSBJbnRlcmFjdGlvblR5cGUuRGVmYXVsdEFjdGlvbkxpbmtcIlxuICAgIG1hdFJpcHBsZVxuICAgIChjbGljayk9XCJcbiAgICAgIGVudHJpZXNTZXJ2aWNlLm9uQ2xpY2tlZCh7XG4gICAgICAgIGV2ZW50OiAkZXZlbnQsXG4gICAgICAgIGVsZW1lbnQ6IG5vZGUsXG4gICAgICAgIHNvdXJjZTogQ2xpY2tTb3VyY2UuTWV0YWRhdGEsXG4gICAgICB9KVxuICAgIFwiXG4gICAgKGRibGNsaWNrKT1cIlxuICAgICAgZW50cmllc1NlcnZpY2UuZGJsQ2xpY2tJdGVtLmVtaXQoe1xuICAgICAgICBlbGVtZW50OiBub2RlLFxuICAgICAgICBzb3VyY2U6IENsaWNrU291cmNlLk1ldGFkYXRhLFxuICAgICAgfSlcbiAgICBcIlxuICAgIGVzRm9jdXNTdGF0ZVxuICAgICNjYXJkRm9jdXNTdGF0ZT1cImVzRm9jdXNTdGF0ZVwiXG4gID5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICBpbWFnZTtcbiAgICAgICAgY29udGV4dDogeyBwbGF5QW5pbWF0aW9uOiBjYXJkRm9jdXNTdGF0ZS5ob3ZlcmluZyB8fCBjYXJkRm9jdXNTdGF0ZS5oYXNGb2N1cyB9XG4gICAgICBcIlxuICAgID48L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibWV0YVwiPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImNhcmQtb3B0aW9uc1wiICpuZ0lmPVwiZW50cmllc1NlcnZpY2Uub3B0aW9ucyB8fCBzaG93UmF0aW5nc1wiPlxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLXJhdGluZy1hcmVhXCI+XG4gICAgICA8ZXMtbm9kZS1yYXRpbmcgW25vZGVdPVwibm9kZVwiPjwvZXMtbm9kZS1yYXRpbmc+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNhcmQtb3B0aW9ucy1hcmVhXCI+XG4gICAgICA8ZXMtb3B0aW9uLWJ1dHRvblxuICAgICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnNPbkNhcmQoKVwiXG4gICAgICAgIGNsYXNzPVwiY2FyZC1vcHRpb25zLWFsd2F5c1wiXG4gICAgICAgIFtvcHRpb25dPVwib3B0aW9uXCJcbiAgICAgICAgW25vZGVdPVwibm9kZVwiXG4gICAgICA+PC9lcy1vcHRpb24tYnV0dG9uPlxuICAgICAgPGRpdiBjbGFzcz1cImNhcmQtb3B0aW9ucy1zcGFjZXJcIj48L2Rpdj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgKm5nSWY9XCJkcm9wZG93blwiXG4gICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAoY2xpY2spPVwib3Blbk1lbnUobm9kZSlcIlxuICAgICAgICBbbWF0TWVudVRyaWdnZXJGb3JdPVwiZHJvcGRvd24ubWVudVwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ09QVElPTlNfRk9SJyB8IHRyYW5zbGF0ZTogeyBlbGVtZW50OiAobm9kZSB8IG5vZGVUaXRsZSkgfVwiXG4gICAgICAgIGRhdGEtdGVzdD1cImNhcmQtb3B0aW9ucy1idXR0b25cIlxuICAgICAgPlxuICAgICAgICA8aSBlc0ljb249XCJtb3JlX3ZlcnRcIj48L2k+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxuZy10ZW1wbGF0ZSAjaW1hZ2UgbGV0LXBsYXlBbmltYXRpb249XCJwbGF5QW5pbWF0aW9uXCI+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJjYXJkLWltYWdlLWFyZWFcIlxuICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiaXNDb2xsZWN0aW9uID8gbm9kZS5jb2xsZWN0aW9uLmNvbG9yIDogbnVsbFwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImdldFRlbXBsYXRlKEN1c3RvbUZpZWxkU3BlY2lhbFR5cGUucHJldmlldykgYXMgcmVmXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJyZWY7IGNvbnRleHQ6IHsgbm9kZTogdGhpcy5ub2RlIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFnZXRUZW1wbGF0ZShDdXN0b21GaWVsZFNwZWNpYWxUeXBlLnByZXZpZXcpXCI+XG4gICAgICAgIDxlcy1wcmV2aWV3LWltYWdlXG4gICAgICAgICAgKm5nSWY9XCIhKGlzQ29sbGVjdGlvbiAmJiBub2RlLnByZXZpZXcuaXNJY29uKVwiXG4gICAgICAgICAgW25vZGVdPVwibm9kZVwiXG4gICAgICAgICAgW3BsYXlBbmltYXRpb25dPVwicGxheUFuaW1hdGlvblwiXG4gICAgICAgID48L2VzLXByZXZpZXctaW1hZ2U+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJpc0NvbGxlY3Rpb24gJiYgbm9kZS5wcmV2aWV3LmlzSWNvblwiIGNsYXNzPVwiY2FyZC1jb2xsZWN0aW9uLWltYWdlXCI+XG4gICAgICAgICAgPGkgZXNJY29uPVwibGF5ZXJzXCI+PC9pPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuICA8bmctdGVtcGxhdGUgI21ldGEgbGV0LWxpbms9XCJsaW5rXCI+XG4gICAgPGRpdiBjbGFzcz1cImNhcmQtbWV0YVwiPlxuICAgICAgPGRpdlxuICAgICAgICAqbmdGb3I9XCJsZXQgZGlzcGxheVBhcnQgb2YgZ2V0VmlzaWJsZUNvbHVtbnMoKTsgbGV0IGZpcnN0ID0gZmlyc3RcIlxuICAgICAgICBjbGFzcz1cImNhcmQtbWV0YS1yb3cgY2FyZC1tZXRhLXJvdy17eyBkaXNwbGF5UGFydC5uYW1lIHwgbG93ZXJjYXNlIHwgcHJvcGVydHlTbHVnIH19XCJcbiAgICAgICAgW2NsYXNzLmNhcmQtbWV0YS1yb3ctcHJpbWFyeV09XCJmaXJzdFwiXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmaXJzdFwiPlxuICAgICAgICAgIDxlcy1ub2RlLXVybFxuICAgICAgICAgICAgKm5nSWY9XCJlbnRyaWVzU2VydmljZS5lbGVtZW50SW50ZXJhY3Rpb25UeXBlID09PSBJbnRlcmFjdGlvblR5cGUuRGVmYXVsdEFjdGlvbkxpbmtcIlxuICAgICAgICAgICAgW25vZGVdPVwibm9kZVwiXG4gICAgICAgICAgICAjbGlua1xuICAgICAgICAgID5cbiAgICAgICAgICAgIDxlcy1saXN0LWJhc2UgW2l0ZW1dPVwiZGlzcGxheVBhcnRcIiBbbm9kZV09XCJub2RlXCIgW3Byb3ZpZGVMYWJlbF09XCJmYWxzZVwiPiA8L2VzLWxpc3QtYmFzZT5cbiAgICAgICAgICA8L2VzLW5vZGUtdXJsPlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJlbnRyaWVzU2VydmljZS5lbGVtZW50SW50ZXJhY3Rpb25UeXBlICE9PSBJbnRlcmFjdGlvblR5cGUuRGVmYXVsdEFjdGlvbkxpbmtcIj5cbiAgICAgICAgICAgIDxlcy1saXN0LWJhc2UgW2l0ZW1dPVwiZGlzcGxheVBhcnRcIiBbbm9kZV09XCJub2RlXCIgW3Byb3ZpZGVMYWJlbF09XCJmYWxzZVwiPiA8L2VzLWxpc3QtYmFzZT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZmlyc3RcIj5cbiAgICAgICAgICA8bGFiZWw+XG4gICAgICAgICAgICB7eyBkaXNwbGF5UGFydCB8IGVzTGlzdEl0ZW1MYWJlbCB8IGFzeW5jIH19XG4gICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICA8ZXMtbGlzdC1iYXNlIFtpdGVtXT1cImRpc3BsYXlQYXJ0XCIgW25vZGVdPVwibm9kZVwiIFtwcm92aWRlTGFiZWxdPVwiZmFsc2VcIj4gPC9lcy1saXN0LWJhc2U+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cbiJdfQ==