geonetwork-ui 2.6.0-dev.600519f47 → 2.6.0-dev.609dd7257

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 (138) hide show
  1. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +4 -1
  2. package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/constant.mjs +4 -2
  3. package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.mjs +2 -2
  4. package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +45 -15
  5. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +7 -1
  6. package/esm2022/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.mjs +2 -1
  7. package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
  8. package/esm2022/libs/common/domain/src/lib/repository/records-repository.interface.mjs +1 -1
  9. package/esm2022/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.mjs +4 -3
  10. package/esm2022/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.mjs +1 -1
  11. package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +49 -23
  12. package/esm2022/libs/feature/search/src/lib/constants.mjs +3 -2
  13. package/esm2022/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.mjs +5 -3
  14. package/esm2022/libs/feature/search/src/lib/results-table/results-table-container.component.mjs +13 -10
  15. package/esm2022/libs/ui/elements/src/index.mjs +1 -2
  16. package/esm2022/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.mjs +19 -34
  17. package/esm2022/libs/ui/elements/src/lib/internal-link-card-contact/internal-link-card-contact.component.mjs +59 -0
  18. package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +35 -10
  19. package/esm2022/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.mjs +5 -1
  20. package/esm2022/libs/ui/elements/src/lib/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.mjs +50 -29
  21. package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +7 -3
  22. package/esm2022/libs/ui/layout/src/index.mjs +2 -1
  23. package/esm2022/libs/ui/layout/src/lib/cell-popin/cell-popin.component.mjs +110 -0
  24. package/esm2022/libs/ui/layout/src/lib/interactive-table/interactive-table.component.mjs +20 -10
  25. package/esm2022/libs/ui/layout/src/lib/truncated-text/truncated-text.component.mjs +15 -49
  26. package/esm2022/libs/ui/layout/src/lib/ui-layout.module.mjs +2 -2
  27. package/esm2022/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.mjs +5 -3
  28. package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +16 -8
  29. package/esm2022/translations/de.json +20 -6
  30. package/esm2022/translations/en.json +20 -6
  31. package/esm2022/translations/es.json +19 -5
  32. package/esm2022/translations/fr.json +20 -6
  33. package/esm2022/translations/it.json +22 -8
  34. package/esm2022/translations/nl.json +19 -5
  35. package/esm2022/translations/pt.json +19 -5
  36. package/fesm2022/geonetwork-ui.mjs +1003 -711
  37. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  38. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
  39. package/libs/api/repository/src/lib/gn4/elasticsearch/constant.d.ts.map +1 -1
  40. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts.map +1 -1
  41. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts +8 -2
  42. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts.map +1 -1
  43. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +2 -0
  44. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
  45. package/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.d.ts +1 -0
  46. package/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.d.ts.map +1 -1
  47. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +20 -17
  48. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
  49. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts +3 -0
  50. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts.map +1 -1
  51. package/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.d.ts.map +1 -1
  52. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts +13 -5
  53. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
  54. package/libs/feature/search/src/lib/constants.d.ts.map +1 -1
  55. package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts +2 -1
  56. package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts.map +1 -1
  57. package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts +6 -5
  58. package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts.map +1 -1
  59. package/libs/ui/elements/src/index.d.ts +0 -1
  60. package/libs/ui/elements/src/index.d.ts.map +1 -1
  61. package/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.d.ts +3 -6
  62. package/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.d.ts.map +1 -1
  63. package/libs/ui/elements/src/lib/internal-link-card-contact/internal-link-card-contact.component.d.ts +14 -0
  64. package/libs/ui/elements/src/lib/internal-link-card-contact/internal-link-card-contact.component.d.ts.map +1 -0
  65. package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts +3 -0
  66. package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts.map +1 -1
  67. package/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.d.ts.map +1 -1
  68. package/libs/ui/elements/src/lib/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.d.ts +20 -9
  69. package/libs/ui/elements/src/lib/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.d.ts.map +1 -1
  70. package/libs/ui/elements/src/lib/ui-elements.module.d.ts +2 -1
  71. package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
  72. package/libs/ui/layout/src/index.d.ts +1 -0
  73. package/libs/ui/layout/src/index.d.ts.map +1 -1
  74. package/libs/ui/layout/src/lib/cell-popin/cell-popin.component.d.ts +28 -0
  75. package/libs/ui/layout/src/lib/cell-popin/cell-popin.component.d.ts.map +1 -0
  76. package/libs/ui/layout/src/lib/interactive-table/interactive-table.component.d.ts +4 -2
  77. package/libs/ui/layout/src/lib/interactive-table/interactive-table.component.d.ts.map +1 -1
  78. package/libs/ui/layout/src/lib/truncated-text/truncated-text.component.d.ts +5 -10
  79. package/libs/ui/layout/src/lib/truncated-text/truncated-text.component.d.ts.map +1 -1
  80. package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts +2 -1
  81. package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts.map +1 -1
  82. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts +5 -3
  83. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts.map +1 -1
  84. package/package.json +1 -1
  85. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +7 -0
  86. package/src/libs/api/repository/src/lib/gn4/elasticsearch/constant.ts +3 -1
  87. package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +1 -1
  88. package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +57 -14
  89. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +11 -0
  90. package/src/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.ts +3 -0
  91. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +20 -14
  92. package/src/libs/common/domain/src/lib/repository/records-repository.interface.ts +3 -0
  93. package/src/libs/common/fixtures/src/lib/records.fixtures.ts +61 -0
  94. package/src/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.html +1 -1
  95. package/src/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.ts +1 -0
  96. package/src/libs/feature/record/src/lib/map-view/map-view.component.html +27 -9
  97. package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +84 -27
  98. package/src/libs/feature/search/src/lib/constants.ts +2 -1
  99. package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.html +1 -1
  100. package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.ts +1 -0
  101. package/src/libs/feature/search/src/lib/results-table/results-table-container.component.html +1 -0
  102. package/src/libs/feature/search/src/lib/results-table/results-table-container.component.ts +13 -3
  103. package/src/libs/ui/elements/src/index.ts +0 -1
  104. package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.html +8 -76
  105. package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.ts +20 -51
  106. package/src/libs/ui/elements/src/lib/internal-link-card-contact/internal-link-card-contact.component.html +69 -0
  107. package/src/libs/ui/elements/src/lib/internal-link-card-contact/internal-link-card-contact.component.ts +61 -0
  108. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.ts +48 -9
  109. package/src/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.ts +4 -0
  110. package/src/libs/ui/elements/src/lib/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.html +96 -37
  111. package/src/libs/ui/elements/src/lib/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.ts +60 -29
  112. package/src/libs/ui/elements/src/lib/ui-elements.module.ts +2 -0
  113. package/src/libs/ui/layout/src/index.ts +1 -0
  114. package/src/libs/ui/layout/src/lib/cell-popin/cell-popin.component.html +40 -0
  115. package/src/libs/ui/layout/src/lib/cell-popin/cell-popin.component.ts +141 -0
  116. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.html +2 -2
  117. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.ts +13 -6
  118. package/src/libs/ui/layout/src/lib/truncated-text/truncated-text.component.html +25 -42
  119. package/src/libs/ui/layout/src/lib/truncated-text/truncated-text.component.ts +10 -49
  120. package/src/libs/ui/layout/src/lib/ui-layout.module.ts +1 -1
  121. package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.html +6 -4
  122. package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.ts +1 -0
  123. package/src/libs/ui/search/src/lib/results-table/results-table.component.html +14 -20
  124. package/src/libs/ui/search/src/lib/results-table/results-table.component.ts +13 -5
  125. package/translations/de.json +20 -6
  126. package/translations/en.json +20 -6
  127. package/translations/es.json +19 -5
  128. package/translations/fr.json +20 -6
  129. package/translations/it.json +22 -8
  130. package/translations/nl.json +19 -5
  131. package/translations/pt.json +19 -5
  132. package/translations/sk.json +19 -5
  133. package/esm2022/libs/ui/elements/src/lib/related-record-card/related-record-card.component.mjs +0 -56
  134. package/libs/ui/elements/src/lib/related-record-card/related-record-card.component.d.ts +0 -19
  135. package/libs/ui/elements/src/lib/related-record-card/related-record-card.component.d.ts.map +0 -1
  136. package/src/libs/ui/elements/src/lib/related-record-card/related-record-card.component.css +0 -0
  137. package/src/libs/ui/elements/src/lib/related-record-card/related-record-card.component.html +0 -9
  138. package/src/libs/ui/elements/src/lib/related-record-card/related-record-card.component.ts +0 -61
@@ -5,14 +5,17 @@ import { NgIconComponent, provideIcons } from '@ng-icons/core';
5
5
  import { iconoirNavArrowDown, iconoirNavArrowUp } from '@ng-icons/iconoir';
6
6
  import { TranslateModule } from '@ngx-translate/core';
7
7
  import { marker } from '@biesbjerg/ngx-translate-extract-marker';
8
+ import { of } from 'rxjs';
8
9
  import * as i0 from "@angular/core";
9
10
  import * as i1 from "@angular/common";
10
11
  import * as i2 from "@ngx-translate/core";
11
- marker('editor.record.lock.reason');
12
- marker('editor.record.lock.format');
12
+ marker('editor.record.lock.resourceType');
13
+ marker('editor.record.lock.harvested');
14
+ marker('editor.record.lock.owner');
13
15
  export class InteractiveTableComponent {
14
16
  constructor() {
15
17
  this.items = [];
18
+ this.canEditItem = () => of(true);
16
19
  this.isDraftPage = false;
17
20
  this.itemClick = new EventEmitter();
18
21
  }
@@ -28,11 +31,16 @@ export class InteractiveTableComponent {
28
31
  };
29
32
  }
30
33
  getItemTitle(item) {
31
- if (!item.extras?.edit && !this.isDraftPage && item.kind === 'dataset') {
32
- return 'editor.record.lock.reason';
33
- }
34
- else if (item.kind !== 'dataset') {
35
- return 'editor.record.lock.format';
34
+ if (!this.isDraftPage) {
35
+ if (item.kind !== 'dataset') {
36
+ return 'editor.record.lock.resourceType';
37
+ }
38
+ else if (item.extras?.isHarvested) {
39
+ return 'editor.record.lock.harvested';
40
+ }
41
+ else if (!item.extras?.edit) {
42
+ return 'editor.record.lock.owner';
43
+ }
36
44
  }
37
45
  return '';
38
46
  }
@@ -40,19 +48,21 @@ export class InteractiveTableComponent {
40
48
  this.itemClick.emit(item);
41
49
  }
42
50
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InteractiveTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
43
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: InteractiveTableComponent, isStandalone: true, selector: "gn-ui-interactive-table", inputs: { items: "items", isDraftPage: "isDraftPage" }, outputs: { itemClick: "itemClick" }, providers: [provideIcons({ iconoirNavArrowDown, iconoirNavArrowUp })], queries: [{ propertyName: "columns", predicate: InteractiveTableColumnComponent }], ngImport: i0, template: "<div class=\"grid w-full\" [ngStyle]=\"gridStyle\">\n <div class=\"contents w-full\">\n <ng-container *ngFor=\"let column of columns\">\n <button\n *ngIf=\"column.sortable\"\n type=\"button\"\n class=\"table-header-cell gap-1\"\n (click)=\"column.sortable && column.handleSortChange()\"\n >\n <ng-container *ngTemplateOutlet=\"column.header\"></ng-container>\n <div class=\"sort-button flex flex-col\" *ngIf=\"column.sortable\">\n <ng-icon\n class=\"text-gray-600 -mb-2\"\n [ngClass]=\"{ 'text-main': column.activeSort === 'asc' }\"\n name=\"iconoirNavArrowUp\"\n ></ng-icon>\n <ng-icon\n class=\"text-gray-600\"\n [ngClass]=\"{ 'text-main': column.activeSort === 'desc' }\"\n name=\"iconoirNavArrowDown\"\n ></ng-icon>\n </div>\n </button>\n <div *ngIf=\"!column.sortable\" class=\"table-header-cell\">\n <ng-container *ngTemplateOutlet=\"column.header\"></ng-container>\n </div>\n </ng-container>\n </div>\n <div\n class=\"contents text-gray-900 cursor-pointer group\"\n *ngFor=\"let item of items\"\n (click)=\"handleRowClick(item)\"\n data-cy=\"table-row\"\n [attr.data-cy-title]=\"item.title\"\n [title]=\"getItemTitle(item) | translate\"\n >\n <div\n class=\"relative h-0\"\n [ngStyle]=\"{ 'grid-column': 'span ' + this.columns.length }\"\n >\n <!-- this element is only used in keyboard navigation -->\n <button\n type=\"button\"\n class=\"absolute inset-x-0 h-[50px] bg-transparent pointer-events-none\"\n ></button>\n </div>\n <ng-container *ngFor=\"let column of columns\">\n <div\n class=\"table-row-cell px-3 py-1.5 flex items-center bg-white transition-colors duration-75 truncate border-b border-gray-200\"\n [ngClass]=\"{\n 'text-purple-light cursor-default':\n (!item.extras?.edit && !isDraftPage) || item.kind !== 'dataset',\n 'group-hover:text-main group-hover:bg-gray-50':\n (item.extras?.edit || isDraftPage) && item.kind === 'dataset',\n }\"\n >\n <ng-container\n *ngTemplateOutlet=\"column.cell; context: { $implicit: item }\"\n ></ng-container>\n </div>\n </ng-container>\n </div>\n</div>\n", styles: [".table-header-cell{@apply text-gray-700 px-3 py-3 flex items-center truncate bg-white;}button.table-header-cell{@apply transition-colors duration-75 hover:text-main hover:bg-gray-50 focus:text-main focus:bg-gray-50;}ng-icon{@apply w-4 h-4;}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
51
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: InteractiveTableComponent, isStandalone: true, selector: "gn-ui-interactive-table", inputs: { items: "items", canEditItem: "canEditItem", isDraftPage: "isDraftPage" }, outputs: { itemClick: "itemClick" }, providers: [provideIcons({ iconoirNavArrowDown, iconoirNavArrowUp })], queries: [{ propertyName: "columns", predicate: InteractiveTableColumnComponent }], ngImport: i0, template: "<div class=\"grid w-full\" [ngStyle]=\"gridStyle\">\n <div class=\"contents w-full\">\n <ng-container *ngFor=\"let column of columns\">\n <button\n *ngIf=\"column.sortable\"\n type=\"button\"\n class=\"table-header-cell gap-1\"\n (click)=\"column.sortable && column.handleSortChange()\"\n >\n <ng-container *ngTemplateOutlet=\"column.header\"></ng-container>\n <div class=\"sort-button flex flex-col\" *ngIf=\"column.sortable\">\n <ng-icon\n class=\"text-gray-600 -mb-2\"\n [ngClass]=\"{ 'text-main': column.activeSort === 'asc' }\"\n name=\"iconoirNavArrowUp\"\n ></ng-icon>\n <ng-icon\n class=\"text-gray-600\"\n [ngClass]=\"{ 'text-main': column.activeSort === 'desc' }\"\n name=\"iconoirNavArrowDown\"\n ></ng-icon>\n </div>\n </button>\n <div *ngIf=\"!column.sortable\" class=\"table-header-cell\">\n <ng-container *ngTemplateOutlet=\"column.header\"></ng-container>\n </div>\n </ng-container>\n </div>\n <div\n class=\"contents text-gray-900 cursor-pointer group\"\n *ngFor=\"let item of items\"\n (click)=\"handleRowClick(item)\"\n data-cy=\"table-row\"\n [attr.data-cy-title]=\"item.title\"\n [title]=\"getItemTitle(item) | translate\"\n >\n <div\n class=\"relative h-0\"\n [ngStyle]=\"{ 'grid-column': 'span ' + this.columns.length }\"\n >\n <!-- this element is only used in keyboard navigation -->\n <button\n type=\"button\"\n class=\"absolute inset-x-0 h-[50px] bg-transparent pointer-events-none\"\n ></button>\n </div>\n <ng-container *ngFor=\"let column of columns\">\n <div\n class=\"table-row-cell px-3 py-1.5 flex items-center bg-white transition-colors duration-75 truncate border-b border-gray-200\"\n [ngClass]=\"{\n 'text-purple-light cursor-default':\n (canEditItem(item) | async) === false,\n 'group-hover:text-main group-hover:bg-gray-50':\n canEditItem(item) | async,\n }\"\n >\n <ng-container\n *ngTemplateOutlet=\"column.cell; context: { $implicit: item }\"\n ></ng-container>\n </div>\n </ng-container>\n </div>\n</div>\n", styles: [".table-header-cell{@apply text-gray-700 px-3 py-3 flex items-center truncate bg-white;}button.table-header-cell{@apply transition-colors duration-75 hover:text-main hover:bg-gray-50 focus:text-main focus:bg-gray-50;}ng-icon{@apply w-4 h-4;}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
44
52
  }
45
53
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InteractiveTableComponent, decorators: [{
46
54
  type: Component,
47
- args: [{ selector: 'gn-ui-interactive-table', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, NgIconComponent, TranslateModule], providers: [provideIcons({ iconoirNavArrowDown, iconoirNavArrowUp })], template: "<div class=\"grid w-full\" [ngStyle]=\"gridStyle\">\n <div class=\"contents w-full\">\n <ng-container *ngFor=\"let column of columns\">\n <button\n *ngIf=\"column.sortable\"\n type=\"button\"\n class=\"table-header-cell gap-1\"\n (click)=\"column.sortable && column.handleSortChange()\"\n >\n <ng-container *ngTemplateOutlet=\"column.header\"></ng-container>\n <div class=\"sort-button flex flex-col\" *ngIf=\"column.sortable\">\n <ng-icon\n class=\"text-gray-600 -mb-2\"\n [ngClass]=\"{ 'text-main': column.activeSort === 'asc' }\"\n name=\"iconoirNavArrowUp\"\n ></ng-icon>\n <ng-icon\n class=\"text-gray-600\"\n [ngClass]=\"{ 'text-main': column.activeSort === 'desc' }\"\n name=\"iconoirNavArrowDown\"\n ></ng-icon>\n </div>\n </button>\n <div *ngIf=\"!column.sortable\" class=\"table-header-cell\">\n <ng-container *ngTemplateOutlet=\"column.header\"></ng-container>\n </div>\n </ng-container>\n </div>\n <div\n class=\"contents text-gray-900 cursor-pointer group\"\n *ngFor=\"let item of items\"\n (click)=\"handleRowClick(item)\"\n data-cy=\"table-row\"\n [attr.data-cy-title]=\"item.title\"\n [title]=\"getItemTitle(item) | translate\"\n >\n <div\n class=\"relative h-0\"\n [ngStyle]=\"{ 'grid-column': 'span ' + this.columns.length }\"\n >\n <!-- this element is only used in keyboard navigation -->\n <button\n type=\"button\"\n class=\"absolute inset-x-0 h-[50px] bg-transparent pointer-events-none\"\n ></button>\n </div>\n <ng-container *ngFor=\"let column of columns\">\n <div\n class=\"table-row-cell px-3 py-1.5 flex items-center bg-white transition-colors duration-75 truncate border-b border-gray-200\"\n [ngClass]=\"{\n 'text-purple-light cursor-default':\n (!item.extras?.edit && !isDraftPage) || item.kind !== 'dataset',\n 'group-hover:text-main group-hover:bg-gray-50':\n (item.extras?.edit || isDraftPage) && item.kind === 'dataset',\n }\"\n >\n <ng-container\n *ngTemplateOutlet=\"column.cell; context: { $implicit: item }\"\n ></ng-container>\n </div>\n </ng-container>\n </div>\n</div>\n", styles: [".table-header-cell{@apply text-gray-700 px-3 py-3 flex items-center truncate bg-white;}button.table-header-cell{@apply transition-colors duration-75 hover:text-main hover:bg-gray-50 focus:text-main focus:bg-gray-50;}ng-icon{@apply w-4 h-4;}\n"] }]
55
+ args: [{ selector: 'gn-ui-interactive-table', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, NgIconComponent, TranslateModule], providers: [provideIcons({ iconoirNavArrowDown, iconoirNavArrowUp })], template: "<div class=\"grid w-full\" [ngStyle]=\"gridStyle\">\n <div class=\"contents w-full\">\n <ng-container *ngFor=\"let column of columns\">\n <button\n *ngIf=\"column.sortable\"\n type=\"button\"\n class=\"table-header-cell gap-1\"\n (click)=\"column.sortable && column.handleSortChange()\"\n >\n <ng-container *ngTemplateOutlet=\"column.header\"></ng-container>\n <div class=\"sort-button flex flex-col\" *ngIf=\"column.sortable\">\n <ng-icon\n class=\"text-gray-600 -mb-2\"\n [ngClass]=\"{ 'text-main': column.activeSort === 'asc' }\"\n name=\"iconoirNavArrowUp\"\n ></ng-icon>\n <ng-icon\n class=\"text-gray-600\"\n [ngClass]=\"{ 'text-main': column.activeSort === 'desc' }\"\n name=\"iconoirNavArrowDown\"\n ></ng-icon>\n </div>\n </button>\n <div *ngIf=\"!column.sortable\" class=\"table-header-cell\">\n <ng-container *ngTemplateOutlet=\"column.header\"></ng-container>\n </div>\n </ng-container>\n </div>\n <div\n class=\"contents text-gray-900 cursor-pointer group\"\n *ngFor=\"let item of items\"\n (click)=\"handleRowClick(item)\"\n data-cy=\"table-row\"\n [attr.data-cy-title]=\"item.title\"\n [title]=\"getItemTitle(item) | translate\"\n >\n <div\n class=\"relative h-0\"\n [ngStyle]=\"{ 'grid-column': 'span ' + this.columns.length }\"\n >\n <!-- this element is only used in keyboard navigation -->\n <button\n type=\"button\"\n class=\"absolute inset-x-0 h-[50px] bg-transparent pointer-events-none\"\n ></button>\n </div>\n <ng-container *ngFor=\"let column of columns\">\n <div\n class=\"table-row-cell px-3 py-1.5 flex items-center bg-white transition-colors duration-75 truncate border-b border-gray-200\"\n [ngClass]=\"{\n 'text-purple-light cursor-default':\n (canEditItem(item) | async) === false,\n 'group-hover:text-main group-hover:bg-gray-50':\n canEditItem(item) | async,\n }\"\n >\n <ng-container\n *ngTemplateOutlet=\"column.cell; context: { $implicit: item }\"\n ></ng-container>\n </div>\n </ng-container>\n </div>\n</div>\n", styles: [".table-header-cell{@apply text-gray-700 px-3 py-3 flex items-center truncate bg-white;}button.table-header-cell{@apply transition-colors duration-75 hover:text-main hover:bg-gray-50 focus:text-main focus:bg-gray-50;}ng-icon{@apply w-4 h-4;}\n"] }]
48
56
  }], propDecorators: { columns: [{
49
57
  type: ContentChildren,
50
58
  args: [InteractiveTableColumnComponent]
51
59
  }], items: [{
52
60
  type: Input
61
+ }], canEditItem: [{
62
+ type: Input
53
63
  }], isDraftPage: [{
54
64
  type: Input
55
65
  }], itemClick: [{
56
66
  type: Output
57
67
  }] } });
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3RpdmUtdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9sYXlvdXQvc3JjL2xpYi9pbnRlcmFjdGl2ZS10YWJsZS9pbnRlcmFjdGl2ZS10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2xheW91dC9zcmMvbGliL2ludGVyYWN0aXZlLXRhYmxlL2ludGVyYWN0aXZlLXRhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULGVBQWUsRUFDZixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sK0RBQStELENBQUE7QUFDL0csT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDOUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDMUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3JELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTs7OztBQUdoRSxNQUFNLENBQUMsMkJBQTJCLENBQUMsQ0FBQTtBQUNuQyxNQUFNLENBQUMsMkJBQTJCLENBQUMsQ0FBQTtBQVVuQyxNQUFNLE9BQU8seUJBQXlCO0lBVHRDO1FBYVcsVUFBSyxHQUFjLEVBQUUsQ0FBQTtRQUNyQixnQkFBVyxHQUFHLEtBQUssQ0FBQTtRQUNsQixjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQTtLQTRCbEQ7SUExQkMsSUFBSSxTQUFTO1FBQ1gsT0FBTztZQUNMLHVCQUF1QixFQUFFLElBQUksQ0FBQyxPQUFPO2lCQUNsQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUNkLE1BQU0sQ0FBQyxLQUFLO2dCQUNWLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSztnQkFDZCxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUk7b0JBQ1gsQ0FBQyxDQUFDLGlCQUFpQjtvQkFDbkIsQ0FBQyxDQUFDLHlCQUF5QixDQUNoQztpQkFDQSxJQUFJLENBQUMsR0FBRyxDQUFDO1NBQ2IsQ0FBQTtJQUNILENBQUM7SUFFRCxZQUFZLENBQUMsSUFBbUI7UUFDOUIsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3ZFLE9BQU8sMkJBQTJCLENBQUE7UUFDcEMsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNuQyxPQUFPLDJCQUEyQixDQUFBO1FBQ3BDLENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQTtJQUNYLENBQUM7SUFFRCxjQUFjLENBQUMsSUFBYTtRQUMxQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUMzQixDQUFDOytHQWpDVSx5QkFBeUI7bUdBQXpCLHlCQUF5QixtS0FGekIsQ0FBQyxZQUFZLENBQUMsRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxDQUFDLENBQUMsa0RBR3BELCtCQUErQiw2QkM3QmxELDQwRUErREEsMlNEdENZLFlBQVksMGxCQUFFLGVBQWUsNEdBQUUsZUFBZTs7NEZBRzdDLHlCQUF5QjtrQkFUckMsU0FBUzsrQkFDRSx5QkFBeUIsbUJBR2xCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGVBQWUsRUFBRSxlQUFlLENBQUMsYUFDOUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxDQUFDLENBQUM7OEJBSXJFLE9BQU87c0JBRE4sZUFBZTt1QkFBQywrQkFBK0I7Z0JBR3ZDLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNJLFNBQVM7c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgSW50ZXJhY3RpdmVUYWJsZUNvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4vaW50ZXJhY3RpdmUtdGFibGUtY29sdW1uL2ludGVyYWN0aXZlLXRhYmxlLWNvbHVtbi5jb21wb25lbnQnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBOZ0ljb25Db21wb25lbnQsIHByb3ZpZGVJY29ucyB9IGZyb20gJ0BuZy1pY29ucy9jb3JlJ1xuaW1wb3J0IHsgaWNvbm9pck5hdkFycm93RG93biwgaWNvbm9pck5hdkFycm93VXAgfSBmcm9tICdAbmctaWNvbnMvaWNvbm9pcidcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBtYXJrZXIgfSBmcm9tICdAYmllc2JqZXJnL25neC10cmFuc2xhdGUtZXh0cmFjdC1tYXJrZXInXG5pbXBvcnQgeyBDYXRhbG9nUmVjb3JkIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuXG5tYXJrZXIoJ2VkaXRvci5yZWNvcmQubG9jay5yZWFzb24nKVxubWFya2VyKCdlZGl0b3IucmVjb3JkLmxvY2suZm9ybWF0JylcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLWludGVyYWN0aXZlLXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ludGVyYWN0aXZlLXRhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaW50ZXJhY3RpdmUtdGFibGUuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTmdJY29uQ29tcG9uZW50LCBUcmFuc2xhdGVNb2R1bGVdLFxuICBwcm92aWRlcnM6IFtwcm92aWRlSWNvbnMoeyBpY29ub2lyTmF2QXJyb3dEb3duLCBpY29ub2lyTmF2QXJyb3dVcCB9KV0sXG59KVxuZXhwb3J0IGNsYXNzIEludGVyYWN0aXZlVGFibGVDb21wb25lbnQge1xuICBAQ29udGVudENoaWxkcmVuKEludGVyYWN0aXZlVGFibGVDb2x1bW5Db21wb25lbnQpXG4gIGNvbHVtbnM6IFF1ZXJ5TGlzdDxJbnRlcmFjdGl2ZVRhYmxlQ29sdW1uQ29tcG9uZW50PlxuXG4gIEBJbnB1dCgpIGl0ZW1zOiB1bmtub3duW10gPSBbXVxuICBASW5wdXQoKSBpc0RyYWZ0UGFnZSA9IGZhbHNlXG4gIEBPdXRwdXQoKSBpdGVtQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHVua25vd24+KClcblxuICBnZXQgZ3JpZFN0eWxlKCkge1xuICAgIHJldHVybiB7XG4gICAgICAnZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zJzogdGhpcy5jb2x1bW5zXG4gICAgICAgIC5tYXAoKGNvbHVtbikgPT5cbiAgICAgICAgICBjb2x1bW4ud2lkdGhcbiAgICAgICAgICAgID8gY29sdW1uLndpZHRoXG4gICAgICAgICAgICA6IGNvbHVtbi5ncm93XG4gICAgICAgICAgICAgID8gYG1pbm1heCgwcHgsMWZyKWBcbiAgICAgICAgICAgICAgOiBgbWlubWF4KDBweCxtYXgtY29udGVudClgXG4gICAgICAgIClcbiAgICAgICAgLmpvaW4oJyAnKSxcbiAgICB9XG4gIH1cblxuICBnZXRJdGVtVGl0bGUoaXRlbTogQ2F0YWxvZ1JlY29yZCkge1xuICAgIGlmICghaXRlbS5leHRyYXM/LmVkaXQgJiYgIXRoaXMuaXNEcmFmdFBhZ2UgJiYgaXRlbS5raW5kID09PSAnZGF0YXNldCcpIHtcbiAgICAgIHJldHVybiAnZWRpdG9yLnJlY29yZC5sb2NrLnJlYXNvbidcbiAgICB9IGVsc2UgaWYgKGl0ZW0ua2luZCAhPT0gJ2RhdGFzZXQnKSB7XG4gICAgICByZXR1cm4gJ2VkaXRvci5yZWNvcmQubG9jay5mb3JtYXQnXG4gICAgfVxuICAgIHJldHVybiAnJ1xuICB9XG5cbiAgaGFuZGxlUm93Q2xpY2soaXRlbTogdW5rbm93bikge1xuICAgIHRoaXMuaXRlbUNsaWNrLmVtaXQoaXRlbSlcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImdyaWQgdy1mdWxsXCIgW25nU3R5bGVdPVwiZ3JpZFN0eWxlXCI+XG4gIDxkaXYgY2xhc3M9XCJjb250ZW50cyB3LWZ1bGxcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uc1wiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICAqbmdJZj1cImNvbHVtbi5zb3J0YWJsZVwiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cInRhYmxlLWhlYWRlci1jZWxsIGdhcC0xXCJcbiAgICAgICAgKGNsaWNrKT1cImNvbHVtbi5zb3J0YWJsZSAmJiBjb2x1bW4uaGFuZGxlU29ydENoYW5nZSgpXCJcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbHVtbi5oZWFkZXJcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNvcnQtYnV0dG9uIGZsZXggZmxleC1jb2xcIiAqbmdJZj1cImNvbHVtbi5zb3J0YWJsZVwiPlxuICAgICAgICAgIDxuZy1pY29uXG4gICAgICAgICAgICBjbGFzcz1cInRleHQtZ3JheS02MDAgLW1iLTJcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAndGV4dC1tYWluJzogY29sdW1uLmFjdGl2ZVNvcnQgPT09ICdhc2MnIH1cIlxuICAgICAgICAgICAgbmFtZT1cImljb25vaXJOYXZBcnJvd1VwXCJcbiAgICAgICAgICA+PC9uZy1pY29uPlxuICAgICAgICAgIDxuZy1pY29uXG4gICAgICAgICAgICBjbGFzcz1cInRleHQtZ3JheS02MDBcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAndGV4dC1tYWluJzogY29sdW1uLmFjdGl2ZVNvcnQgPT09ICdkZXNjJyB9XCJcbiAgICAgICAgICAgIG5hbWU9XCJpY29ub2lyTmF2QXJyb3dEb3duXCJcbiAgICAgICAgICA+PC9uZy1pY29uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGRpdiAqbmdJZj1cIiFjb2x1bW4uc29ydGFibGVcIiBjbGFzcz1cInRhYmxlLWhlYWRlci1jZWxsXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb2x1bW4uaGVhZGVyXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICBjbGFzcz1cImNvbnRlbnRzIHRleHQtZ3JheS05MDAgY3Vyc29yLXBvaW50ZXIgZ3JvdXBcIlxuICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zXCJcbiAgICAoY2xpY2spPVwiaGFuZGxlUm93Q2xpY2soaXRlbSlcIlxuICAgIGRhdGEtY3k9XCJ0YWJsZS1yb3dcIlxuICAgIFthdHRyLmRhdGEtY3ktdGl0bGVdPVwiaXRlbS50aXRsZVwiXG4gICAgW3RpdGxlXT1cImdldEl0ZW1UaXRsZShpdGVtKSB8IHRyYW5zbGF0ZVwiXG4gID5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInJlbGF0aXZlIGgtMFwiXG4gICAgICBbbmdTdHlsZV09XCJ7ICdncmlkLWNvbHVtbic6ICdzcGFuICcgKyB0aGlzLmNvbHVtbnMubGVuZ3RoIH1cIlxuICAgID5cbiAgICAgIDwhLS0gdGhpcyBlbGVtZW50IGlzIG9ubHkgdXNlZCBpbiBrZXlib2FyZCBuYXZpZ2F0aW9uIC0tPlxuICAgICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJhYnNvbHV0ZSBpbnNldC14LTAgaC1bNTBweF0gYmctdHJhbnNwYXJlbnQgcG9pbnRlci1ldmVudHMtbm9uZVwiXG4gICAgICA+PC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnNcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJ0YWJsZS1yb3ctY2VsbCBweC0zIHB5LTEuNSBmbGV4IGl0ZW1zLWNlbnRlciBiZy13aGl0ZSB0cmFuc2l0aW9uLWNvbG9ycyBkdXJhdGlvbi03NSB0cnVuY2F0ZSBib3JkZXItYiBib3JkZXItZ3JheS0yMDBcIlxuICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgJ3RleHQtcHVycGxlLWxpZ2h0IGN1cnNvci1kZWZhdWx0JzpcbiAgICAgICAgICAgICghaXRlbS5leHRyYXM/LmVkaXQgJiYgIWlzRHJhZnRQYWdlKSB8fCBpdGVtLmtpbmQgIT09ICdkYXRhc2V0JyxcbiAgICAgICAgICAnZ3JvdXAtaG92ZXI6dGV4dC1tYWluIGdyb3VwLWhvdmVyOmJnLWdyYXktNTAnOlxuICAgICAgICAgICAgKGl0ZW0uZXh0cmFzPy5lZGl0IHx8IGlzRHJhZnRQYWdlKSAmJiBpdGVtLmtpbmQgPT09ICdkYXRhc2V0JyxcbiAgICAgICAgfVwiXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImNvbHVtbi5jZWxsOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogaXRlbSB9XCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3RpdmUtdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9sYXlvdXQvc3JjL2xpYi9pbnRlcmFjdGl2ZS10YWJsZS9pbnRlcmFjdGl2ZS10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2xheW91dC9zcmMvbGliL2ludGVyYWN0aXZlLXRhYmxlL2ludGVyYWN0aXZlLXRhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULGVBQWUsRUFDZixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sK0RBQStELENBQUE7QUFDL0csT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDOUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDMUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3JELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUVoRSxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFBOzs7O0FBRXJDLE1BQU0sQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFBO0FBQ3pDLE1BQU0sQ0FBQyw4QkFBOEIsQ0FBQyxDQUFBO0FBQ3RDLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFBO0FBVWxDLE1BQU0sT0FBTyx5QkFBeUI7SUFUdEM7UUFhVyxVQUFLLEdBQWMsRUFBRSxDQUFBO1FBQ3JCLGdCQUFXLEdBQTJDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNwRSxnQkFBVyxHQUFHLEtBQUssQ0FBQTtRQUNsQixjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQTtLQWdDbEQ7SUE5QkMsSUFBSSxTQUFTO1FBQ1gsT0FBTztZQUNMLHVCQUF1QixFQUFFLElBQUksQ0FBQyxPQUFPO2lCQUNsQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUNkLE1BQU0sQ0FBQyxLQUFLO2dCQUNWLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSztnQkFDZCxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUk7b0JBQ1gsQ0FBQyxDQUFDLGlCQUFpQjtvQkFDbkIsQ0FBQyxDQUFDLHlCQUF5QixDQUNoQztpQkFDQSxJQUFJLENBQUMsR0FBRyxDQUFDO1NBQ2IsQ0FBQTtJQUNILENBQUM7SUFFRCxZQUFZLENBQUMsSUFBbUI7UUFDOUIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN0QixJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQzVCLE9BQU8saUNBQWlDLENBQUE7WUFDMUMsQ0FBQztpQkFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLENBQUM7Z0JBQ3BDLE9BQU8sOEJBQThCLENBQUE7WUFDdkMsQ0FBQztpQkFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQztnQkFDOUIsT0FBTywwQkFBMEIsQ0FBQTtZQUNuQyxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFBO0lBQ1gsQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUFhO1FBQzFCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQzNCLENBQUM7K0dBdENVLHlCQUF5QjttR0FBekIseUJBQXlCLCtMQUZ6QixDQUFDLFlBQVksQ0FBQyxFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxrREFHcEQsK0JBQStCLDZCQy9CbEQsOHdFQStEQSwyU0RwQ1ksWUFBWSwrb0JBQUUsZUFBZSw0R0FBRSxlQUFlOzs0RkFHN0MseUJBQXlCO2tCQVRyQyxTQUFTOytCQUNFLHlCQUF5QixtQkFHbEIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsZUFBZSxFQUFFLGVBQWUsQ0FBQyxhQUM5QyxDQUFDLFlBQVksQ0FBQyxFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLENBQUMsQ0FBQzs4QkFJckUsT0FBTztzQkFETixlQUFlO3VCQUFDLCtCQUErQjtnQkFHdkMsS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDSSxTQUFTO3NCQUFsQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IEludGVyYWN0aXZlVGFibGVDb2x1bW5Db21wb25lbnQgfSBmcm9tICcuL2ludGVyYWN0aXZlLXRhYmxlLWNvbHVtbi9pbnRlcmFjdGl2ZS10YWJsZS1jb2x1bW4uY29tcG9uZW50J1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgTmdJY29uQ29tcG9uZW50LCBwcm92aWRlSWNvbnMgfSBmcm9tICdAbmctaWNvbnMvY29yZSdcbmltcG9ydCB7IGljb25vaXJOYXZBcnJvd0Rvd24sIGljb25vaXJOYXZBcnJvd1VwIH0gZnJvbSAnQG5nLWljb25zL2ljb25vaXInXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgbWFya2VyIH0gZnJvbSAnQGJpZXNiamVyZy9uZ3gtdHJhbnNsYXRlLWV4dHJhY3QtbWFya2VyJ1xuaW1wb3J0IHsgQ2F0YWxvZ1JlY29yZCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcydcblxubWFya2VyKCdlZGl0b3IucmVjb3JkLmxvY2sucmVzb3VyY2VUeXBlJylcbm1hcmtlcignZWRpdG9yLnJlY29yZC5sb2NrLmhhcnZlc3RlZCcpXG5tYXJrZXIoJ2VkaXRvci5yZWNvcmQubG9jay5vd25lcicpXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1pbnRlcmFjdGl2ZS10YWJsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnRlcmFjdGl2ZS10YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ludGVyYWN0aXZlLXRhYmxlLmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE5nSWNvbkNvbXBvbmVudCwgVHJhbnNsYXRlTW9kdWxlXSxcbiAgcHJvdmlkZXJzOiBbcHJvdmlkZUljb25zKHsgaWNvbm9pck5hdkFycm93RG93biwgaWNvbm9pck5hdkFycm93VXAgfSldLFxufSlcbmV4cG9ydCBjbGFzcyBJbnRlcmFjdGl2ZVRhYmxlQ29tcG9uZW50IHtcbiAgQENvbnRlbnRDaGlsZHJlbihJbnRlcmFjdGl2ZVRhYmxlQ29sdW1uQ29tcG9uZW50KVxuICBjb2x1bW5zOiBRdWVyeUxpc3Q8SW50ZXJhY3RpdmVUYWJsZUNvbHVtbkNvbXBvbmVudD5cblxuICBASW5wdXQoKSBpdGVtczogdW5rbm93bltdID0gW11cbiAgQElucHV0KCkgY2FuRWRpdEl0ZW06IChpdGVtOiB1bmtub3duKSA9PiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gKCkgPT4gb2YodHJ1ZSlcbiAgQElucHV0KCkgaXNEcmFmdFBhZ2UgPSBmYWxzZVxuICBAT3V0cHV0KCkgaXRlbUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjx1bmtub3duPigpXG5cbiAgZ2V0IGdyaWRTdHlsZSgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgJ2dyaWQtdGVtcGxhdGUtY29sdW1ucyc6IHRoaXMuY29sdW1uc1xuICAgICAgICAubWFwKChjb2x1bW4pID0+XG4gICAgICAgICAgY29sdW1uLndpZHRoXG4gICAgICAgICAgICA/IGNvbHVtbi53aWR0aFxuICAgICAgICAgICAgOiBjb2x1bW4uZ3Jvd1xuICAgICAgICAgICAgICA/IGBtaW5tYXgoMHB4LDFmcilgXG4gICAgICAgICAgICAgIDogYG1pbm1heCgwcHgsbWF4LWNvbnRlbnQpYFxuICAgICAgICApXG4gICAgICAgIC5qb2luKCcgJyksXG4gICAgfVxuICB9XG5cbiAgZ2V0SXRlbVRpdGxlKGl0ZW06IENhdGFsb2dSZWNvcmQpIHtcbiAgICBpZiAoIXRoaXMuaXNEcmFmdFBhZ2UpIHtcbiAgICAgIGlmIChpdGVtLmtpbmQgIT09ICdkYXRhc2V0Jykge1xuICAgICAgICByZXR1cm4gJ2VkaXRvci5yZWNvcmQubG9jay5yZXNvdXJjZVR5cGUnXG4gICAgICB9IGVsc2UgaWYgKGl0ZW0uZXh0cmFzPy5pc0hhcnZlc3RlZCkge1xuICAgICAgICByZXR1cm4gJ2VkaXRvci5yZWNvcmQubG9jay5oYXJ2ZXN0ZWQnXG4gICAgICB9IGVsc2UgaWYgKCFpdGVtLmV4dHJhcz8uZWRpdCkge1xuICAgICAgICByZXR1cm4gJ2VkaXRvci5yZWNvcmQubG9jay5vd25lcidcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuICcnXG4gIH1cblxuICBoYW5kbGVSb3dDbGljayhpdGVtOiB1bmtub3duKSB7XG4gICAgdGhpcy5pdGVtQ2xpY2suZW1pdChpdGVtKVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZ3JpZCB3LWZ1bGxcIiBbbmdTdHlsZV09XCJncmlkU3R5bGVcIj5cbiAgPGRpdiBjbGFzcz1cImNvbnRlbnRzIHctZnVsbFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb2x1bW5zXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgICpuZ0lmPVwiY29sdW1uLnNvcnRhYmxlXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwidGFibGUtaGVhZGVyLWNlbGwgZ2FwLTFcIlxuICAgICAgICAoY2xpY2spPVwiY29sdW1uLnNvcnRhYmxlICYmIGNvbHVtbi5oYW5kbGVTb3J0Q2hhbmdlKClcIlxuICAgICAgPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29sdW1uLmhlYWRlclwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic29ydC1idXR0b24gZmxleCBmbGV4LWNvbFwiICpuZ0lmPVwiY29sdW1uLnNvcnRhYmxlXCI+XG4gICAgICAgICAgPG5nLWljb25cbiAgICAgICAgICAgIGNsYXNzPVwidGV4dC1ncmF5LTYwMCAtbWItMlwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICd0ZXh0LW1haW4nOiBjb2x1bW4uYWN0aXZlU29ydCA9PT0gJ2FzYycgfVwiXG4gICAgICAgICAgICBuYW1lPVwiaWNvbm9pck5hdkFycm93VXBcIlxuICAgICAgICAgID48L25nLWljb24+XG4gICAgICAgICAgPG5nLWljb25cbiAgICAgICAgICAgIGNsYXNzPVwidGV4dC1ncmF5LTYwMFwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICd0ZXh0LW1haW4nOiBjb2x1bW4uYWN0aXZlU29ydCA9PT0gJ2Rlc2MnIH1cIlxuICAgICAgICAgICAgbmFtZT1cImljb25vaXJOYXZBcnJvd0Rvd25cIlxuICAgICAgICAgID48L25nLWljb24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9idXR0b24+XG4gICAgICA8ZGl2ICpuZ0lmPVwiIWNvbHVtbi5zb3J0YWJsZVwiIGNsYXNzPVwidGFibGUtaGVhZGVyLWNlbGxcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbHVtbi5oZWFkZXJcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiY29udGVudHMgdGV4dC1ncmF5LTkwMCBjdXJzb3ItcG9pbnRlciBncm91cFwiXG4gICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXNcIlxuICAgIChjbGljayk9XCJoYW5kbGVSb3dDbGljayhpdGVtKVwiXG4gICAgZGF0YS1jeT1cInRhYmxlLXJvd1wiXG4gICAgW2F0dHIuZGF0YS1jeS10aXRsZV09XCJpdGVtLnRpdGxlXCJcbiAgICBbdGl0bGVdPVwiZ2V0SXRlbVRpdGxlKGl0ZW0pIHwgdHJhbnNsYXRlXCJcbiAgPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwicmVsYXRpdmUgaC0wXCJcbiAgICAgIFtuZ1N0eWxlXT1cInsgJ2dyaWQtY29sdW1uJzogJ3NwYW4gJyArIHRoaXMuY29sdW1ucy5sZW5ndGggfVwiXG4gICAgPlxuICAgICAgPCEtLSB0aGlzIGVsZW1lbnQgaXMgb25seSB1c2VkIGluIGtleWJvYXJkIG5hdmlnYXRpb24gLS0+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cImFic29sdXRlIGluc2V0LXgtMCBoLVs1MHB4XSBiZy10cmFuc3BhcmVudCBwb2ludGVyLWV2ZW50cy1ub25lXCJcbiAgICAgID48L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uc1wiPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInRhYmxlLXJvdy1jZWxsIHB4LTMgcHktMS41IGZsZXggaXRlbXMtY2VudGVyIGJnLXdoaXRlIHRyYW5zaXRpb24tY29sb3JzIGR1cmF0aW9uLTc1IHRydW5jYXRlIGJvcmRlci1iIGJvcmRlci1ncmF5LTIwMFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAndGV4dC1wdXJwbGUtbGlnaHQgY3Vyc29yLWRlZmF1bHQnOlxuICAgICAgICAgICAgKGNhbkVkaXRJdGVtKGl0ZW0pIHwgYXN5bmMpID09PSBmYWxzZSxcbiAgICAgICAgICAnZ3JvdXAtaG92ZXI6dGV4dC1tYWluIGdyb3VwLWhvdmVyOmJnLWdyYXktNTAnOlxuICAgICAgICAgICAgY2FuRWRpdEl0ZW0oaXRlbSkgfCBhc3luYyxcbiAgICAgICAgfVwiXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImNvbHVtbi5jZWxsOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogaXRlbSB9XCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -1,43 +1,29 @@
1
1
  import { ChangeDetectorRef, Component, ElementRef, Input, ViewChild, NgZone, } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import { provideIcons, NgIconComponent } from '@ng-icons/core';
4
- import { iconoirExpand, iconoirReduce } from '@ng-icons/iconoir';
4
+ import { iconoirExpand } from '@ng-icons/iconoir';
5
5
  import { TranslateModule } from '@ngx-translate/core';
6
6
  import { MatButtonModule } from '@angular/material/button';
7
- import { OverlayModule, ViewportRuler, } from '@angular/cdk/overlay';
7
+ import { CdkScrollable, OverlayModule, } from '@angular/cdk/overlay';
8
8
  import { ButtonComponent } from '../../../../../../libs/ui/inputs/src';
9
+ import { CellPopinComponent } from '../cell-popin/cell-popin.component';
9
10
  import * as i0 from "@angular/core";
10
- import * as i1 from "@angular/cdk/overlay";
11
- import * as i2 from "@angular/common";
11
+ import * as i1 from "@angular/common";
12
12
  export class TruncatedTextComponent {
13
- constructor(cd, ngZone, viewportRuler) {
13
+ constructor(cd, ngZone) {
14
14
  this.cd = cd;
15
15
  this.ngZone = ngZone;
16
- this.viewportRuler = viewportRuler;
17
16
  this.text = '';
18
17
  this.extraClass = '';
19
18
  this.isTextTruncated = false;
20
- this.isOpen = false;
21
- this.overlayPosition = {
22
- originX: 'end',
23
- originY: 'top',
24
- overlayX: 'end',
25
- overlayY: 'top',
26
- };
27
19
  this.resizeObserver = new ResizeObserver(() => {
28
20
  this.ngZone.run(() => this.checkTextTruncation());
29
21
  });
30
22
  this.mutationObserver = new MutationObserver(() => {
31
23
  this.ngZone.run(() => {
32
24
  this.checkTextTruncation();
33
- this.close();
34
25
  });
35
26
  });
36
- this.viewportSubscription = this.viewportRuler.change().subscribe(() => {
37
- if (this.isOpen) {
38
- this.updateOverlayPosition();
39
- }
40
- });
41
27
  }
42
28
  ngAfterViewInit() {
43
29
  const element = this.textElement.nativeElement;
@@ -52,39 +38,14 @@ export class TruncatedTextComponent {
52
38
  ngOnDestroy() {
53
39
  this.resizeObserver?.disconnect();
54
40
  this.mutationObserver?.disconnect();
55
- this.viewportSubscription?.unsubscribe();
56
- this.close();
57
- }
58
- toggleOverlay() {
59
- this.isOpen = !this.isOpen;
60
- if (this.isOpen) {
61
- this.updateOverlayPosition();
62
- }
63
- }
64
- updateOverlayPosition() {
65
- const element = this.textElement.nativeElement;
66
- const rect = element.getBoundingClientRect();
67
- const viewportWidth = this.viewportRuler.getViewportSize().width;
68
- const isMobile = viewportWidth < 640;
69
- const overlayWidth = isMobile ? 190 : 320;
70
- const isNearLeftEdge = rect.left < overlayWidth;
71
- this.overlayPosition = {
72
- originX: isNearLeftEdge ? 'start' : 'end',
73
- originY: 'top',
74
- overlayX: isNearLeftEdge ? 'start' : 'end',
75
- overlayY: 'top',
76
- };
77
- }
78
- close() {
79
- this.isOpen = false;
80
41
  }
81
42
  checkTextTruncation() {
82
43
  const element = this.textElement.nativeElement;
83
44
  this.isTextTruncated = element.scrollWidth > element.clientWidth;
84
45
  this.cd.detectChanges();
85
46
  }
86
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TruncatedTextComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i1.ViewportRuler }], target: i0.ɵɵFactoryTarget.Component }); }
87
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TruncatedTextComponent, isStandalone: true, selector: "gn-ui-truncated-text", inputs: { text: "text", extraClass: "extraClass" }, providers: [provideIcons({ iconoirExpand, iconoirReduce })], viewQueries: [{ propertyName: "textElement", first: true, predicate: ["textElement"], descendants: true }], ngImport: i0, template: "<div\n class=\"flex items-center justify-between w-full gap-2\"\n cdkOverlayOrigin\n [class]=\"extraClass\"\n #trigger=\"cdkOverlayOrigin\"\n>\n <span #textElement class=\"truncate\">\n {{ text }}\n </span>\n <gn-ui-button\n *ngIf=\"isTextTruncated\"\n type=\"outline\"\n extraClass=\"w-10 h-8 border rounded-lg\"\n (buttonClick)=\"toggleOverlay()\"\n >\n <ng-icon name=\"iconoirExpand\" size=\"24\"> </ng-icon>\n </gn-ui-button>\n\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"isOpen\"\n [cdkConnectedOverlayPositions]=\"[overlayPosition]\"\n cdkConnectedOverlayPush\n [cdkConnectedOverlayWidth]=\"'auto'\"\n [cdkConnectedOverlayFlexibleDimensions]=\"true\"\n [cdkConnectedOverlayGrowAfterOpen]=\"true\"\n (detach)=\"close()\"\n >\n <div class=\"bg-white shadow-lg border border-gray-300 flex\">\n <div class=\"sm:w-64 xs:w-32\">\n <p class=\"m-2\">{{ text }}</p>\n </div>\n <gn-ui-button\n class=\"m-2 flex-shrink-0\"\n type=\"light\"\n (buttonClick)=\"close()\"\n extraClass=\"w-10 h-8 px-1 bg-white\"\n >\n <ng-icon name=\"iconoirReduce\" size=\"24\"> </ng-icon>\n </gn-ui-button>\n </div>\n </ng-template>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: OverlayModule }, { kind: "directive", type: i1.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i1.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }] }); }
47
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TruncatedTextComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
48
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TruncatedTextComponent, isStandalone: true, selector: "gn-ui-truncated-text", inputs: { text: "text", extraClass: "extraClass", scrollContainer: "scrollContainer", cdkScrollContainer: "cdkScrollContainer" }, providers: [provideIcons({ iconoirExpand })], viewQueries: [{ propertyName: "textElement", first: true, predicate: ["textElement"], descendants: true }], ngImport: i0, template: "<gn-ui-cell-popin\n #popinRef\n [activePopin]=\"isTextTruncated\"\n [scrollContainer]=\"scrollContainer\"\n [cdkScrollContainer]=\"cdkScrollContainer\"\n>\n <div\n cellContent\n class=\"flex items-center justify-between w-full gap-2\"\n [class]=\"extraClass\"\n >\n <span #textElement class=\"truncate py-3 px-2\">\n {{ text }}\n </span>\n <gn-ui-button\n *ngIf=\"isTextTruncated\"\n type=\"outline\"\n extraClass=\"w-10 h-8 border rounded-lg mr-2\"\n (buttonClick)=\"popinRef.openOverlay()\"\n >\n <ng-icon name=\"iconoirExpand\" size=\"24\"> </ng-icon>\n </gn-ui-button>\n </div>\n <div popinContent class=\"sm:w-64 xs:w-32 py-4 pl-6 pr-9\">\n <p>{{ text }}</p>\n </div>\n</gn-ui-cell-popin>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: OverlayModule }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: CellPopinComponent, selector: "gn-ui-cell-popin", inputs: ["extraClass", "cdkScrollContainer", "scrollContainer", "activePopin"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }] }); }
88
49
  }
89
50
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TruncatedTextComponent, decorators: [{
90
51
  type: Component,
@@ -94,14 +55,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
94
55
  MatButtonModule,
95
56
  OverlayModule,
96
57
  ButtonComponent,
58
+ CellPopinComponent,
97
59
  NgIconComponent,
98
- ], providers: [provideIcons({ iconoirExpand, iconoirReduce })], template: "<div\n class=\"flex items-center justify-between w-full gap-2\"\n cdkOverlayOrigin\n [class]=\"extraClass\"\n #trigger=\"cdkOverlayOrigin\"\n>\n <span #textElement class=\"truncate\">\n {{ text }}\n </span>\n <gn-ui-button\n *ngIf=\"isTextTruncated\"\n type=\"outline\"\n extraClass=\"w-10 h-8 border rounded-lg\"\n (buttonClick)=\"toggleOverlay()\"\n >\n <ng-icon name=\"iconoirExpand\" size=\"24\"> </ng-icon>\n </gn-ui-button>\n\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"isOpen\"\n [cdkConnectedOverlayPositions]=\"[overlayPosition]\"\n cdkConnectedOverlayPush\n [cdkConnectedOverlayWidth]=\"'auto'\"\n [cdkConnectedOverlayFlexibleDimensions]=\"true\"\n [cdkConnectedOverlayGrowAfterOpen]=\"true\"\n (detach)=\"close()\"\n >\n <div class=\"bg-white shadow-lg border border-gray-300 flex\">\n <div class=\"sm:w-64 xs:w-32\">\n <p class=\"m-2\">{{ text }}</p>\n </div>\n <gn-ui-button\n class=\"m-2 flex-shrink-0\"\n type=\"light\"\n (buttonClick)=\"close()\"\n extraClass=\"w-10 h-8 px-1 bg-white\"\n >\n <ng-icon name=\"iconoirReduce\" size=\"24\"> </ng-icon>\n </gn-ui-button>\n </div>\n </ng-template>\n</div>\n" }]
99
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i1.ViewportRuler }], propDecorators: { text: [{
60
+ ], providers: [provideIcons({ iconoirExpand })], template: "<gn-ui-cell-popin\n #popinRef\n [activePopin]=\"isTextTruncated\"\n [scrollContainer]=\"scrollContainer\"\n [cdkScrollContainer]=\"cdkScrollContainer\"\n>\n <div\n cellContent\n class=\"flex items-center justify-between w-full gap-2\"\n [class]=\"extraClass\"\n >\n <span #textElement class=\"truncate py-3 px-2\">\n {{ text }}\n </span>\n <gn-ui-button\n *ngIf=\"isTextTruncated\"\n type=\"outline\"\n extraClass=\"w-10 h-8 border rounded-lg mr-2\"\n (buttonClick)=\"popinRef.openOverlay()\"\n >\n <ng-icon name=\"iconoirExpand\" size=\"24\"> </ng-icon>\n </gn-ui-button>\n </div>\n <div popinContent class=\"sm:w-64 xs:w-32 py-4 pl-6 pr-9\">\n <p>{{ text }}</p>\n </div>\n</gn-ui-cell-popin>\n" }]
61
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.NgZone }], propDecorators: { text: [{
100
62
  type: Input
101
63
  }], extraClass: [{
102
64
  type: Input
65
+ }], scrollContainer: [{
66
+ type: Input
67
+ }], cdkScrollContainer: [{
68
+ type: Input
103
69
  }], textElement: [{
104
70
  type: ViewChild,
105
71
  args: ['textElement']
106
72
  }] } });
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1bmNhdGVkLXRleHQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9sYXlvdXQvc3JjL2xpYi90cnVuY2F0ZWQtdGV4dC90cnVuY2F0ZWQtdGV4dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2xheW91dC9zcmMvbGliL3RydW5jYXRlZC10ZXh0L3RydW5jYXRlZC10ZXh0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBRUwsU0FBUyxFQUNULE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUM5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFDMUQsT0FBTyxFQUNMLGFBQWEsRUFDYixhQUFhLEdBRWQsTUFBTSxzQkFBc0IsQ0FBQTtBQUM3QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUE7Ozs7QUFrQnRFLE1BQU0sT0FBTyxzQkFBc0I7SUFpQmpDLFlBQ21CLEVBQXFCLEVBQ3JCLE1BQWMsRUFDZCxhQUE0QjtRQUY1QixPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2Qsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFuQnRDLFNBQUksR0FBRyxFQUFFLENBQUE7UUFDVCxlQUFVLEdBQUcsRUFBRSxDQUFBO1FBR3hCLG9CQUFlLEdBQUcsS0FBSyxDQUFBO1FBQ3ZCLFdBQU0sR0FBRyxLQUFLLENBQUE7UUFDZCxvQkFBZSxHQUFzQjtZQUNuQyxPQUFPLEVBQUUsS0FBSztZQUNkLE9BQU8sRUFBRSxLQUFLO1lBQ2QsUUFBUSxFQUFFLEtBQUs7WUFDZixRQUFRLEVBQUUsS0FBSztTQUNoQixDQUFBO1FBVUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBQyxHQUFHLEVBQUU7WUFDNUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUMsQ0FBQTtRQUNuRCxDQUFDLENBQUMsQ0FBQTtRQUVGLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLGdCQUFnQixDQUFDLEdBQUcsRUFBRTtZQUNoRCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7Z0JBQ25CLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFBO2dCQUMxQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUE7WUFDZCxDQUFDLENBQUMsQ0FBQTtRQUNKLENBQUMsQ0FBQyxDQUFBO1FBRUYsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNyRSxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDaEIsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUE7WUFDOUIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELGVBQWU7UUFDYixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQTtRQUM5QyxJQUFJLENBQUMsY0FBYyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUNyQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUU7WUFDcEQsVUFBVSxFQUFFLElBQUk7WUFDaEIsU0FBUyxFQUFFLElBQUk7WUFDZixPQUFPLEVBQUUsSUFBSTtTQUNkLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFBO0lBQzVCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGNBQWMsRUFBRSxVQUFVLEVBQUUsQ0FBQTtRQUNqQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLENBQUE7UUFDbkMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLFdBQVcsRUFBRSxDQUFBO1FBQ3hDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQTtJQUNkLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUE7UUFDMUIsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUE7UUFDOUIsQ0FBQztJQUNILENBQUM7SUFFTyxxQkFBcUI7UUFDM0IsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUE7UUFDOUMsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLHFCQUFxQixFQUFFLENBQUE7UUFDNUMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxLQUFLLENBQUE7UUFDaEUsTUFBTSxRQUFRLEdBQUcsYUFBYSxHQUFHLEdBQUcsQ0FBQTtRQUNwQyxNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFBO1FBQ3pDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFBO1FBRS9DLElBQUksQ0FBQyxlQUFlLEdBQUc7WUFDckIsT0FBTyxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQ3pDLE9BQU8sRUFBRSxLQUFLO1lBQ2QsUUFBUSxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQzFDLFFBQVEsRUFBRSxLQUFLO1NBQ2hCLENBQUE7SUFDSCxDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFBO0lBQ3JCLENBQUM7SUFFTyxtQkFBbUI7UUFDekIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUE7UUFFOUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUE7UUFDaEUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQTtJQUN6QixDQUFDOytHQTFGVSxzQkFBc0I7bUdBQXRCLHNCQUFzQix1SEFKdEIsQ0FBQyxZQUFZLENBQUMsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQyxzSUNsQzdELG15Q0E0Q0EsMkNEakJJLFlBQVksa0lBQ1osZUFBZSw4QkFDZixlQUFlLDhCQUNmLGFBQWEsMnJDQUNiLGVBQWUsK0hBQ2YsZUFBZTs7NEZBTU4sc0JBQXNCO2tCQWZsQyxTQUFTOytCQUNFLHNCQUFzQixjQUNwQixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixlQUFlO3dCQUNmLGVBQWU7cUJBQ2hCLGFBQ1UsQ0FBQyxZQUFZLENBQUMsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQzt1SUFLbEQsSUFBSTtzQkFBWixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRW9CLFdBQVc7c0JBQXBDLFNBQVM7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIFZpZXdDaGlsZCxcbiAgTmdab25lLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgcHJvdmlkZUljb25zLCBOZ0ljb25Db21wb25lbnQgfSBmcm9tICdAbmctaWNvbnMvY29yZSdcbmltcG9ydCB7IGljb25vaXJFeHBhbmQsIGljb25vaXJSZWR1Y2UgfSBmcm9tICdAbmctaWNvbnMvaWNvbm9pcidcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nXG5pbXBvcnQge1xuICBPdmVybGF5TW9kdWxlLFxuICBWaWV3cG9ydFJ1bGVyLFxuICBDb25uZWN0ZWRQb3NpdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknXG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2lucHV0cy9zcmMnXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS10cnVuY2F0ZWQtdGV4dCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBPdmVybGF5TW9kdWxlLFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBOZ0ljb25Db21wb25lbnQsXG4gIF0sXG4gIHByb3ZpZGVyczogW3Byb3ZpZGVJY29ucyh7IGljb25vaXJFeHBhbmQsIGljb25vaXJSZWR1Y2UgfSldLFxuICB0ZW1wbGF0ZVVybDogJy4vdHJ1bmNhdGVkLXRleHQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZXM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBUcnVuY2F0ZWRUZXh0Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgdGV4dCA9ICcnXG4gIEBJbnB1dCgpIGV4dHJhQ2xhc3MgPSAnJ1xuXG4gIEBWaWV3Q2hpbGQoJ3RleHRFbGVtZW50JykgdGV4dEVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+XG4gIGlzVGV4dFRydW5jYXRlZCA9IGZhbHNlXG4gIGlzT3BlbiA9IGZhbHNlXG4gIG92ZXJsYXlQb3NpdGlvbjogQ29ubmVjdGVkUG9zaXRpb24gPSB7XG4gICAgb3JpZ2luWDogJ2VuZCcsXG4gICAgb3JpZ2luWTogJ3RvcCcsXG4gICAgb3ZlcmxheVg6ICdlbmQnLFxuICAgIG92ZXJsYXlZOiAndG9wJyxcbiAgfVxuICBwcml2YXRlIHJlYWRvbmx5IHJlc2l6ZU9ic2VydmVyOiBSZXNpemVPYnNlcnZlclxuICBwcml2YXRlIHJlYWRvbmx5IG11dGF0aW9uT2JzZXJ2ZXI6IE11dGF0aW9uT2JzZXJ2ZXJcbiAgcHJpdmF0ZSByZWFkb25seSB2aWV3cG9ydFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSByZWFkb25seSBuZ1pvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHZpZXdwb3J0UnVsZXI6IFZpZXdwb3J0UnVsZXJcbiAgKSB7XG4gICAgdGhpcy5yZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PiB7XG4gICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4gdGhpcy5jaGVja1RleHRUcnVuY2F0aW9uKCkpXG4gICAgfSlcblxuICAgIHRoaXMubXV0YXRpb25PYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKCgpID0+IHtcbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgIHRoaXMuY2hlY2tUZXh0VHJ1bmNhdGlvbigpXG4gICAgICAgIHRoaXMuY2xvc2UoKVxuICAgICAgfSlcbiAgICB9KVxuXG4gICAgdGhpcy52aWV3cG9ydFN1YnNjcmlwdGlvbiA9IHRoaXMudmlld3BvcnRSdWxlci5jaGFuZ2UoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuaXNPcGVuKSB7XG4gICAgICAgIHRoaXMudXBkYXRlT3ZlcmxheVBvc2l0aW9uKClcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLnRleHRFbGVtZW50Lm5hdGl2ZUVsZW1lbnRcbiAgICB0aGlzLnJlc2l6ZU9ic2VydmVyPy5vYnNlcnZlKGVsZW1lbnQpXG4gICAgdGhpcy5tdXRhdGlvbk9ic2VydmVyPy5vYnNlcnZlKGVsZW1lbnQucGFyZW50RWxlbWVudCwge1xuICAgICAgYXR0cmlidXRlczogdHJ1ZSxcbiAgICAgIGNoaWxkTGlzdDogdHJ1ZSxcbiAgICAgIHN1YnRyZWU6IHRydWUsXG4gICAgfSlcbiAgICB0aGlzLmNoZWNrVGV4dFRydW5jYXRpb24oKVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5yZXNpemVPYnNlcnZlcj8uZGlzY29ubmVjdCgpXG4gICAgdGhpcy5tdXRhdGlvbk9ic2VydmVyPy5kaXNjb25uZWN0KClcbiAgICB0aGlzLnZpZXdwb3J0U3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpXG4gICAgdGhpcy5jbG9zZSgpXG4gIH1cblxuICB0b2dnbGVPdmVybGF5KCkge1xuICAgIHRoaXMuaXNPcGVuID0gIXRoaXMuaXNPcGVuXG4gICAgaWYgKHRoaXMuaXNPcGVuKSB7XG4gICAgICB0aGlzLnVwZGF0ZU92ZXJsYXlQb3NpdGlvbigpXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVPdmVybGF5UG9zaXRpb24oKSB7XG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMudGV4dEVsZW1lbnQubmF0aXZlRWxlbWVudFxuICAgIGNvbnN0IHJlY3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgY29uc3Qgdmlld3BvcnRXaWR0aCA9IHRoaXMudmlld3BvcnRSdWxlci5nZXRWaWV3cG9ydFNpemUoKS53aWR0aFxuICAgIGNvbnN0IGlzTW9iaWxlID0gdmlld3BvcnRXaWR0aCA8IDY0MFxuICAgIGNvbnN0IG92ZXJsYXlXaWR0aCA9IGlzTW9iaWxlID8gMTkwIDogMzIwXG4gICAgY29uc3QgaXNOZWFyTGVmdEVkZ2UgPSByZWN0LmxlZnQgPCBvdmVybGF5V2lkdGhcblxuICAgIHRoaXMub3ZlcmxheVBvc2l0aW9uID0ge1xuICAgICAgb3JpZ2luWDogaXNOZWFyTGVmdEVkZ2UgPyAnc3RhcnQnIDogJ2VuZCcsXG4gICAgICBvcmlnaW5ZOiAndG9wJyxcbiAgICAgIG92ZXJsYXlYOiBpc05lYXJMZWZ0RWRnZSA/ICdzdGFydCcgOiAnZW5kJyxcbiAgICAgIG92ZXJsYXlZOiAndG9wJyxcbiAgICB9XG4gIH1cblxuICBjbG9zZSgpIHtcbiAgICB0aGlzLmlzT3BlbiA9IGZhbHNlXG4gIH1cblxuICBwcml2YXRlIGNoZWNrVGV4dFRydW5jYXRpb24oKSB7XG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMudGV4dEVsZW1lbnQubmF0aXZlRWxlbWVudFxuXG4gICAgdGhpcy5pc1RleHRUcnVuY2F0ZWQgPSBlbGVtZW50LnNjcm9sbFdpZHRoID4gZWxlbWVudC5jbGllbnRXaWR0aFxuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpXG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gdy1mdWxsIGdhcC0yXCJcbiAgY2RrT3ZlcmxheU9yaWdpblxuICBbY2xhc3NdPVwiZXh0cmFDbGFzc1wiXG4gICN0cmlnZ2VyPVwiY2RrT3ZlcmxheU9yaWdpblwiXG4+XG4gIDxzcGFuICN0ZXh0RWxlbWVudCBjbGFzcz1cInRydW5jYXRlXCI+XG4gICAge3sgdGV4dCB9fVxuICA8L3NwYW4+XG4gIDxnbi11aS1idXR0b25cbiAgICAqbmdJZj1cImlzVGV4dFRydW5jYXRlZFwiXG4gICAgdHlwZT1cIm91dGxpbmVcIlxuICAgIGV4dHJhQ2xhc3M9XCJ3LTEwIGgtOCBib3JkZXIgcm91bmRlZC1sZ1wiXG4gICAgKGJ1dHRvbkNsaWNrKT1cInRvZ2dsZU92ZXJsYXkoKVwiXG4gID5cbiAgICA8bmctaWNvbiBuYW1lPVwiaWNvbm9pckV4cGFuZFwiIHNpemU9XCIyNFwiPiA8L25nLWljb24+XG4gIDwvZ24tdWktYnV0dG9uPlxuXG4gIDxuZy10ZW1wbGF0ZVxuICAgIGNka0Nvbm5lY3RlZE92ZXJsYXlcbiAgICBbY2RrQ29ubmVjdGVkT3ZlcmxheU9yaWdpbl09XCJ0cmlnZ2VyXCJcbiAgICBbY2RrQ29ubmVjdGVkT3ZlcmxheU9wZW5dPVwiaXNPcGVuXCJcbiAgICBbY2RrQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uc109XCJbb3ZlcmxheVBvc2l0aW9uXVwiXG4gICAgY2RrQ29ubmVjdGVkT3ZlcmxheVB1c2hcbiAgICBbY2RrQ29ubmVjdGVkT3ZlcmxheVdpZHRoXT1cIidhdXRvJ1wiXG4gICAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlGbGV4aWJsZURpbWVuc2lvbnNdPVwidHJ1ZVwiXG4gICAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlHcm93QWZ0ZXJPcGVuXT1cInRydWVcIlxuICAgIChkZXRhY2gpPVwiY2xvc2UoKVwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwiYmctd2hpdGUgc2hhZG93LWxnIGJvcmRlciBib3JkZXItZ3JheS0zMDAgZmxleFwiPlxuICAgICAgPGRpdiBjbGFzcz1cInNtOnctNjQgeHM6dy0zMlwiPlxuICAgICAgICA8cCBjbGFzcz1cIm0tMlwiPnt7IHRleHQgfX08L3A+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxnbi11aS1idXR0b25cbiAgICAgICAgY2xhc3M9XCJtLTIgZmxleC1zaHJpbmstMFwiXG4gICAgICAgIHR5cGU9XCJsaWdodFwiXG4gICAgICAgIChidXR0b25DbGljayk9XCJjbG9zZSgpXCJcbiAgICAgICAgZXh0cmFDbGFzcz1cInctMTAgaC04IHB4LTEgYmctd2hpdGVcIlxuICAgICAgPlxuICAgICAgICA8bmctaWNvbiBuYW1lPVwiaWNvbm9pclJlZHVjZVwiIHNpemU9XCIyNFwiPiA8L25nLWljb24+XG4gICAgICA8L2duLXVpLWJ1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1bmNhdGVkLXRleHQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9sYXlvdXQvc3JjL2xpYi90cnVuY2F0ZWQtdGV4dC90cnVuY2F0ZWQtdGV4dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2xheW91dC9zcmMvbGliL3RydW5jYXRlZC10ZXh0L3RydW5jYXRlZC10ZXh0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBRUwsU0FBUyxFQUNULE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUM5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUMxRCxPQUFPLEVBQ0wsYUFBYSxFQUNiLGFBQWEsR0FHZCxNQUFNLHNCQUFzQixDQUFBO0FBQzdCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQTtBQUN0RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQTs7O0FBa0J2RSxNQUFNLE9BQU8sc0JBQXNCO0lBYWpDLFlBQ21CLEVBQXFCLEVBQ3JCLE1BQWM7UUFEZCxPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBZHhCLFNBQUksR0FBRyxFQUFFLENBQUE7UUFDVCxlQUFVLEdBQUcsRUFBRSxDQUFBO1FBTXhCLG9CQUFlLEdBQUcsS0FBSyxDQUFBO1FBU3JCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQUMsR0FBRyxFQUFFO1lBQzVDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLENBQUE7UUFDbkQsQ0FBQyxDQUFDLENBQUE7UUFFRixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUU7WUFDaEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO2dCQUNuQixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQTtZQUM1QixDQUFDLENBQUMsQ0FBQTtRQUNKLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELGVBQWU7UUFDYixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQTtRQUM5QyxJQUFJLENBQUMsY0FBYyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUNyQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUU7WUFDcEQsVUFBVSxFQUFFLElBQUk7WUFDaEIsU0FBUyxFQUFFLElBQUk7WUFDZixPQUFPLEVBQUUsSUFBSTtTQUNkLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFBO0lBQzVCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGNBQWMsRUFBRSxVQUFVLEVBQUUsQ0FBQTtRQUNqQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLENBQUE7SUFDckMsQ0FBQztJQUVPLG1CQUFtQjtRQUN6QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQTtRQUU5QyxJQUFJLENBQUMsZUFBZSxHQUFHLE9BQU8sQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQTtRQUNoRSxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFBO0lBQ3pCLENBQUM7K0dBakRVLHNCQUFzQjttR0FBdEIsc0JBQXNCLHFNQUp0QixDQUFDLFlBQVksQ0FBQyxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUMsc0lDcEM5QywydkJBMkJBLDJDRENJLFlBQVksa0lBQ1osZUFBZSw4QkFDZixlQUFlLDhCQUNmLGFBQWEsK0JBQ2IsZUFBZSwrSEFDZixrQkFBa0IsNklBQ2xCLGVBQWU7OzRGQU1OLHNCQUFzQjtrQkFoQmxDLFNBQVM7K0JBQ0Usc0JBQXNCLGNBQ3BCLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixhQUFhO3dCQUNiLGVBQWU7d0JBQ2Ysa0JBQWtCO3dCQUNsQixlQUFlO3FCQUNoQixhQUNVLENBQUMsWUFBWSxDQUFDLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQzsyR0FLbkMsSUFBSTtzQkFBWixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBRW9CLFdBQVc7c0JBQXBDLFNBQVM7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIFZpZXdDaGlsZCxcbiAgTmdab25lLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgcHJvdmlkZUljb25zLCBOZ0ljb25Db21wb25lbnQgfSBmcm9tICdAbmctaWNvbnMvY29yZSdcbmltcG9ydCB7IGljb25vaXJFeHBhbmQgfSBmcm9tICdAbmctaWNvbnMvaWNvbm9pcidcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nXG5pbXBvcnQge1xuICBDZGtTY3JvbGxhYmxlLFxuICBPdmVybGF5TW9kdWxlLFxuICBWaWV3cG9ydFJ1bGVyLFxuICBDb25uZWN0ZWRQb3NpdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknXG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2lucHV0cy9zcmMnXG5pbXBvcnQgeyBDZWxsUG9waW5Db21wb25lbnQgfSBmcm9tICcuLi9jZWxsLXBvcGluL2NlbGwtcG9waW4uY29tcG9uZW50J1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS10cnVuY2F0ZWQtdGV4dCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBPdmVybGF5TW9kdWxlLFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBDZWxsUG9waW5Db21wb25lbnQsXG4gICAgTmdJY29uQ29tcG9uZW50LFxuICBdLFxuICBwcm92aWRlcnM6IFtwcm92aWRlSWNvbnMoeyBpY29ub2lyRXhwYW5kIH0pXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3RydW5jYXRlZC10ZXh0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgVHJ1bmNhdGVkVGV4dENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHRleHQgPSAnJ1xuICBASW5wdXQoKSBleHRyYUNsYXNzID0gJydcbiAgQElucHV0KCkgc2Nyb2xsQ29udGFpbmVyITogRWxlbWVudFJlZlxuICBASW5wdXQoKSBjZGtTY3JvbGxDb250YWluZXIhOiBDZGtTY3JvbGxhYmxlXG5cbiAgQFZpZXdDaGlsZCgndGV4dEVsZW1lbnQnKSB0ZXh0RWxlbWVudDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD5cblxuICBpc1RleHRUcnVuY2F0ZWQgPSBmYWxzZVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgcmVzaXplT2JzZXJ2ZXI6IFJlc2l6ZU9ic2VydmVyXG4gIHByaXZhdGUgcmVhZG9ubHkgbXV0YXRpb25PYnNlcnZlcjogTXV0YXRpb25PYnNlcnZlclxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbmdab25lOiBOZ1pvbmVcbiAgKSB7XG4gICAgdGhpcy5yZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PiB7XG4gICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4gdGhpcy5jaGVja1RleHRUcnVuY2F0aW9uKCkpXG4gICAgfSlcblxuICAgIHRoaXMubXV0YXRpb25PYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKCgpID0+IHtcbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgIHRoaXMuY2hlY2tUZXh0VHJ1bmNhdGlvbigpXG4gICAgICB9KVxuICAgIH0pXG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMudGV4dEVsZW1lbnQubmF0aXZlRWxlbWVudFxuICAgIHRoaXMucmVzaXplT2JzZXJ2ZXI/Lm9ic2VydmUoZWxlbWVudClcbiAgICB0aGlzLm11dGF0aW9uT2JzZXJ2ZXI/Lm9ic2VydmUoZWxlbWVudC5wYXJlbnRFbGVtZW50LCB7XG4gICAgICBhdHRyaWJ1dGVzOiB0cnVlLFxuICAgICAgY2hpbGRMaXN0OiB0cnVlLFxuICAgICAgc3VidHJlZTogdHJ1ZSxcbiAgICB9KVxuICAgIHRoaXMuY2hlY2tUZXh0VHJ1bmNhdGlvbigpXG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnJlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KClcbiAgICB0aGlzLm11dGF0aW9uT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKVxuICB9XG5cbiAgcHJpdmF0ZSBjaGVja1RleHRUcnVuY2F0aW9uKCkge1xuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLnRleHRFbGVtZW50Lm5hdGl2ZUVsZW1lbnRcblxuICAgIHRoaXMuaXNUZXh0VHJ1bmNhdGVkID0gZWxlbWVudC5zY3JvbGxXaWR0aCA+IGVsZW1lbnQuY2xpZW50V2lkdGhcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKVxuICB9XG59XG4iLCI8Z24tdWktY2VsbC1wb3BpblxuICAjcG9waW5SZWZcbiAgW2FjdGl2ZVBvcGluXT1cImlzVGV4dFRydW5jYXRlZFwiXG4gIFtzY3JvbGxDb250YWluZXJdPVwic2Nyb2xsQ29udGFpbmVyXCJcbiAgW2Nka1Njcm9sbENvbnRhaW5lcl09XCJjZGtTY3JvbGxDb250YWluZXJcIlxuPlxuICA8ZGl2XG4gICAgY2VsbENvbnRlbnRcbiAgICBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiB3LWZ1bGwgZ2FwLTJcIlxuICAgIFtjbGFzc109XCJleHRyYUNsYXNzXCJcbiAgPlxuICAgIDxzcGFuICN0ZXh0RWxlbWVudCBjbGFzcz1cInRydW5jYXRlIHB5LTMgcHgtMlwiPlxuICAgICAge3sgdGV4dCB9fVxuICAgIDwvc3Bhbj5cbiAgICA8Z24tdWktYnV0dG9uXG4gICAgICAqbmdJZj1cImlzVGV4dFRydW5jYXRlZFwiXG4gICAgICB0eXBlPVwib3V0bGluZVwiXG4gICAgICBleHRyYUNsYXNzPVwidy0xMCBoLTggYm9yZGVyIHJvdW5kZWQtbGcgbXItMlwiXG4gICAgICAoYnV0dG9uQ2xpY2spPVwicG9waW5SZWYub3Blbk92ZXJsYXkoKVwiXG4gICAgPlxuICAgICAgPG5nLWljb24gbmFtZT1cImljb25vaXJFeHBhbmRcIiBzaXplPVwiMjRcIj4gPC9uZy1pY29uPlxuICAgIDwvZ24tdWktYnV0dG9uPlxuICA8L2Rpdj5cbiAgPGRpdiBwb3BpbkNvbnRlbnQgY2xhc3M9XCJzbTp3LTY0IHhzOnctMzIgcHktNCBwbC02IHByLTlcIj5cbiAgICA8cD57eyB0ZXh0IH19PC9wPlxuICA8L2Rpdj5cbjwvZ24tdWktY2VsbC1wb3Bpbj5cbiJdfQ==
@@ -1,9 +1,9 @@
1
1
  import { NgModule } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import { TranslateModule } from '@ngx-translate/core';
4
+ import { NgIconComponent } from '@ng-icons/core';
4
5
  import { StickyHeaderComponent } from './sticky-header/sticky-header.component';
5
6
  import { AnchorLinkDirective } from './anchor-link/anchor-link.directive';
6
- import { NgIconComponent } from '@ng-icons/core';
7
7
  import * as i0 from "@angular/core";
8
8
  import * as i1 from "@ngx-translate/core";
9
9
  export class UiLayoutModule {
@@ -20,4 +20,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
20
20
  exports: [StickyHeaderComponent, AnchorLinkDirective],
21
21
  }]
22
22
  }] });
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktbGF5b3V0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvbGF5b3V0L3NyYy9saWIvdWktbGF5b3V0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDckQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUE7QUFDL0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUE7QUFDekUsT0FBTyxFQUFFLGVBQWUsRUFBd0IsTUFBTSxnQkFBZ0IsQ0FBQTs7O0FBUXRFLE1BQU0sT0FBTyxjQUFjOytHQUFkLGNBQWM7Z0hBQWQsY0FBYyxpQkFIVixxQkFBcUIsRUFBRSxtQkFBbUIsYUFGL0MsWUFBWSxzQkFBOEIsZUFBZSxhQUd6RCxxQkFBcUIsRUFBRSxtQkFBbUI7Z0hBRXpDLGNBQWMsWUFMZixZQUFZLEVBQUUsZUFBZSxDQUFDLFFBQVEsRUFBRSxFQUFFLGVBQWU7OzRGQUt4RCxjQUFjO2tCQU4xQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxlQUFlLENBQUMsUUFBUSxFQUFFLEVBQUUsZUFBZSxDQUFDO29CQUNwRSxTQUFTLEVBQUUsRUFBRTtvQkFDYixZQUFZLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSxtQkFBbUIsQ0FBQztvQkFDMUQsT0FBTyxFQUFFLENBQUMscUJBQXFCLEVBQUUsbUJBQW1CLENBQUM7aUJBQ3REIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7IFN0aWNreUhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vc3RpY2t5LWhlYWRlci9zdGlja3ktaGVhZGVyLmNvbXBvbmVudCdcbmltcG9ydCB7IEFuY2hvckxpbmtEaXJlY3RpdmUgfSBmcm9tICcuL2FuY2hvci1saW5rL2FuY2hvci1saW5rLmRpcmVjdGl2ZSdcbmltcG9ydCB7IE5nSWNvbkNvbXBvbmVudCwgcHJvdmlkZU5nSWNvbnNDb25maWcgfSBmcm9tICdAbmctaWNvbnMvY29yZSdcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVHJhbnNsYXRlTW9kdWxlLmZvckNoaWxkKCksIE5nSWNvbkNvbXBvbmVudF0sXG4gIHByb3ZpZGVyczogW10sXG4gIGRlY2xhcmF0aW9uczogW1N0aWNreUhlYWRlckNvbXBvbmVudCwgQW5jaG9yTGlua0RpcmVjdGl2ZV0sXG4gIGV4cG9ydHM6IFtTdGlja3lIZWFkZXJDb21wb25lbnQsIEFuY2hvckxpbmtEaXJlY3RpdmVdLFxufSlcbmV4cG9ydCBjbGFzcyBVaUxheW91dE1vZHVsZSB7fVxuIl19
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktbGF5b3V0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvbGF5b3V0L3NyYy9saWIvdWktbGF5b3V0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ2hELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFBO0FBQy9FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFBOzs7QUFRekUsTUFBTSxPQUFPLGNBQWM7K0dBQWQsY0FBYztnSEFBZCxjQUFjLGlCQUhWLHFCQUFxQixFQUFFLG1CQUFtQixhQUYvQyxZQUFZLHNCQUE4QixlQUFlLGFBR3pELHFCQUFxQixFQUFFLG1CQUFtQjtnSEFFekMsY0FBYyxZQUxmLFlBQVksRUFBRSxlQUFlLENBQUMsUUFBUSxFQUFFLEVBQUUsZUFBZTs7NEZBS3hELGNBQWM7a0JBTjFCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGVBQWUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxlQUFlLENBQUM7b0JBQ3BFLFNBQVMsRUFBRSxFQUFFO29CQUNiLFlBQVksRUFBRSxDQUFDLHFCQUFxQixFQUFFLG1CQUFtQixDQUFDO29CQUMxRCxPQUFPLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSxtQkFBbUIsQ0FBQztpQkFDdEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgTmdJY29uQ29tcG9uZW50IH0gZnJvbSAnQG5nLWljb25zL2NvcmUnXG5pbXBvcnQgeyBTdGlja3lIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuL3N0aWNreS1oZWFkZXIvc3RpY2t5LWhlYWRlci5jb21wb25lbnQnXG5pbXBvcnQgeyBBbmNob3JMaW5rRGlyZWN0aXZlIH0gZnJvbSAnLi9hbmNob3ItbGluay9hbmNob3ItbGluay5kaXJlY3RpdmUnXG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZS5mb3JDaGlsZCgpLCBOZ0ljb25Db21wb25lbnRdLFxuICBwcm92aWRlcnM6IFtdLFxuICBkZWNsYXJhdGlvbnM6IFtTdGlja3lIZWFkZXJDb21wb25lbnQsIEFuY2hvckxpbmtEaXJlY3RpdmVdLFxuICBleHBvcnRzOiBbU3RpY2t5SGVhZGVyQ29tcG9uZW50LCBBbmNob3JMaW5rRGlyZWN0aXZlXSxcbn0pXG5leHBvcnQgY2xhc3MgVWlMYXlvdXRNb2R1bGUge31cbiJdfQ==
@@ -41,7 +41,7 @@ export class ActionMenuComponent {
41
41
  this.cdr.markForCheck();
42
42
  }
43
43
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ActionMenuComponent, deps: [{ token: i1.MatDialog }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
44
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ActionMenuComponent, isStandalone: true, selector: "gn-ui-action-menu", inputs: { canDuplicate: "canDuplicate", canDelete: "canDelete", page: "page" }, outputs: { duplicate: "duplicate", delete: "delete", closeActionMenu: "closeActionMenu", rollback: "rollback", switch: "switch" }, viewQueries: [{ propertyName: "trigger", first: true, predicate: MatMenuTrigger, descendants: true }], ngImport: i0, template: "<ng-container [ngSwitch]=\"sectionDisplayed\">\n <ng-container *ngSwitchCase=\"'mainMenu'\">\n <div\n data-test=\"mainMenuSection\"\n class=\"mt-2 border border-gray-100 p-2 flex items-center bg-white shadow-2xl rounded-2xl\"\n >\n <ul class=\"flex flex-col gap-2 w-full\">\n <gn-ui-button\n *ngIf=\"page === 'main'\"\n type=\"light\"\n extraClass=\"flex flex-row items-center gap-2 w-full justify-start\"\n (buttonClick)=\"duplicate.emit()\"\n [disabled]=\"!canDuplicate\"\n data-test=\"record-menu-duplicate-button\"\n >\n <span *ngIf=\"canDuplicate\" translate>record.action.duplicate</span>\n <span *ngIf=\"!canDuplicate\" translate\n >record.action.duplicating</span\n ></gn-ui-button\n >\n <gn-ui-button\n *ngIf=\"page === 'record'\"\n type=\"light\"\n extraClass=\"flex flex-row items-center gap-2 w-full justify-start\"\n (buttonClick)=\"switch.emit()\"\n data-test=\"record-menu-switch-button\"\n ><span translate>record.action.switchLang</span></gn-ui-button\n >\n <gn-ui-button\n type=\"light\"\n extraClass=\"flex flex-row items-center gap-2 w-full justify-start\"\n (buttonClick)=\"displayDeleteMenu()\"\n [disabled]=\"!canDelete\"\n data-test=\"record-menu-delete-button\"\n ><span *ngIf=\"page !== 'draft'\" translate>record.action.delete</span>\n <span *ngIf=\"page === 'draft'\" translate\n >record.action.rollback</span\n ></gn-ui-button\n >\n </ul>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'deleteMenu'\">\n <div\n data-test=\"deleteMenuSection\"\n class=\"w-72 p-6 flex flex-col gap-3 mt-2 border border-gray-100 bg-white shadow-2xl rounded-2xl\"\n >\n <span class=\"text-lg font-bold text-center\">{{\n 'editor.record.delete.confirmation.title' | translate\n }}</span>\n <span class=\"text-center\">{{\n 'editor.record.delete.confirmation.message' | translate\n }}</span>\n <div class=\"flex flex-row gap-8 justify-center\">\n <gn-ui-button\n (buttonClick)=\"delete.emit()\"\n cdkFocusInitial\n type=\"primary\"\n data-cy=\"confirm-button\"\n [style.--gn-ui-button-width]=\"'100px'\"\n >{{\n 'editor.record.delete.confirmation.confirmText' | translate\n }}</gn-ui-button\n >\n <gn-ui-button\n [style.--gn-ui-button-width]=\"'100px'\"\n (buttonClick)=\"closeActionMenu.emit()\"\n >{{\n 'editor.record.delete.confirmation.cancelText' | translate\n }}</gn-ui-button\n >\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'rollbackMenu'\">\n <div\n data-test=\"rollbackMenuSection\"\n class=\"w-80 p-6 flex flex-col gap-3 mt-2 border border-gray-100 bg-white shadow-2xl rounded-2xl\"\n >\n <span class=\"text-lg font-bold text-center\">{{\n 'editor.record.undo.confirmation.title' | translate\n }}</span>\n <span class=\"text-center\">{{\n 'editor.record.undo.confirmation.message' | translate\n }}</span>\n <div class=\"flex flex-row gap-8 justify-center\">\n <gn-ui-button\n (buttonClick)=\"rollback.emit()\"\n cdkFocusInitial\n type=\"primary\"\n data-cy=\"confirm-button\"\n [style.--gn-ui-button-width]=\"'120px'\"\n >{{\n 'editor.record.undo.confirmation.confirmText' | translate\n }}</gn-ui-button\n >\n <gn-ui-button\n [style.--gn-ui-button-width]=\"'120px'\"\n (buttonClick)=\"closeActionMenu.emit()\"\n >{{\n 'editor.record.undo.confirmation.cancelText' | translate\n }}</gn-ui-button\n >\n </div>\n </div>\n </ng-container>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "ngmodule", type: MatDialogModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "directive", type: i3.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }] }); }
44
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ActionMenuComponent, isStandalone: true, selector: "gn-ui-action-menu", inputs: { canDuplicate: "canDuplicate", isDuplicating: "isDuplicating", canDelete: "canDelete", page: "page" }, outputs: { duplicate: "duplicate", delete: "delete", closeActionMenu: "closeActionMenu", rollback: "rollback", switch: "switch" }, viewQueries: [{ propertyName: "trigger", first: true, predicate: MatMenuTrigger, descendants: true }], ngImport: i0, template: "<ng-container [ngSwitch]=\"sectionDisplayed\">\n <ng-container *ngSwitchCase=\"'mainMenu'\">\n <div\n data-test=\"mainMenuSection\"\n class=\"mt-2 border border-gray-100 p-2 flex items-center bg-white shadow-2xl rounded-2xl\"\n >\n <ul class=\"flex flex-col gap-2 w-full\">\n <gn-ui-button\n *ngIf=\"page === 'main'\"\n type=\"light\"\n extraClass=\"flex flex-row items-center gap-2 w-full justify-start\"\n (buttonClick)=\"duplicate.emit()\"\n [disabled]=\"!canDuplicate\"\n data-test=\"record-menu-duplicate-button\"\n >\n <span *ngIf=\"isDuplicating; else notDuplicating\" translate\n >record.action.duplicating</span\n >\n <ng-template #notDuplicating>\n <span translate>record.action.duplicate</span>\n </ng-template>\n </gn-ui-button>\n <gn-ui-button\n *ngIf=\"page === 'record'\"\n type=\"light\"\n extraClass=\"flex flex-row items-center gap-2 w-full justify-start\"\n (buttonClick)=\"switch.emit()\"\n data-test=\"record-menu-switch-button\"\n ><span translate>record.action.switchLang</span></gn-ui-button\n >\n <gn-ui-button\n type=\"light\"\n extraClass=\"flex flex-row items-center gap-2 w-full justify-start\"\n (buttonClick)=\"displayDeleteMenu()\"\n [disabled]=\"!canDelete\"\n data-test=\"record-menu-delete-button\"\n ><span *ngIf=\"page !== 'draft'\" translate>record.action.delete</span>\n <span *ngIf=\"page === 'draft'\" translate\n >record.action.rollback</span\n ></gn-ui-button\n >\n </ul>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'deleteMenu'\">\n <div\n data-test=\"deleteMenuSection\"\n class=\"w-72 p-6 flex flex-col gap-3 mt-2 border border-gray-100 bg-white shadow-2xl rounded-2xl\"\n >\n <span class=\"text-lg font-bold text-center\">{{\n 'editor.record.delete.confirmation.title' | translate\n }}</span>\n <span class=\"text-center\">{{\n 'editor.record.delete.confirmation.message' | translate\n }}</span>\n <div class=\"flex flex-row gap-8 justify-center\">\n <gn-ui-button\n (buttonClick)=\"delete.emit()\"\n cdkFocusInitial\n type=\"primary\"\n data-cy=\"confirm-button\"\n [style.--gn-ui-button-width]=\"'100px'\"\n >{{\n 'editor.record.delete.confirmation.confirmText' | translate\n }}</gn-ui-button\n >\n <gn-ui-button\n [style.--gn-ui-button-width]=\"'100px'\"\n (buttonClick)=\"closeActionMenu.emit()\"\n >{{\n 'editor.record.delete.confirmation.cancelText' | translate\n }}</gn-ui-button\n >\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'rollbackMenu'\">\n <div\n data-test=\"rollbackMenuSection\"\n class=\"w-80 p-6 flex flex-col gap-3 mt-2 border border-gray-100 bg-white shadow-2xl rounded-2xl\"\n >\n <span class=\"text-lg font-bold text-center\">{{\n 'editor.record.undo.confirmation.title' | translate\n }}</span>\n <span class=\"text-center\">{{\n 'editor.record.undo.confirmation.message' | translate\n }}</span>\n <div class=\"flex flex-row gap-8 justify-center\">\n <gn-ui-button\n (buttonClick)=\"rollback.emit()\"\n cdkFocusInitial\n type=\"primary\"\n data-cy=\"confirm-button\"\n [style.--gn-ui-button-width]=\"'120px'\"\n >{{\n 'editor.record.undo.confirmation.confirmText' | translate\n }}</gn-ui-button\n >\n <gn-ui-button\n [style.--gn-ui-button-width]=\"'120px'\"\n (buttonClick)=\"closeActionMenu.emit()\"\n >{{\n 'editor.record.undo.confirmation.cancelText' | translate\n }}</gn-ui-button\n >\n </div>\n </div>\n </ng-container>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "ngmodule", type: MatDialogModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "directive", type: i3.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }] }); }
45
45
  }
46
46
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ActionMenuComponent, decorators: [{
47
47
  type: Component,
@@ -52,9 +52,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
52
52
  MatDialogModule,
53
53
  ConfirmationDialogComponent,
54
54
  TranslateModule,
55
- ], template: "<ng-container [ngSwitch]=\"sectionDisplayed\">\n <ng-container *ngSwitchCase=\"'mainMenu'\">\n <div\n data-test=\"mainMenuSection\"\n class=\"mt-2 border border-gray-100 p-2 flex items-center bg-white shadow-2xl rounded-2xl\"\n >\n <ul class=\"flex flex-col gap-2 w-full\">\n <gn-ui-button\n *ngIf=\"page === 'main'\"\n type=\"light\"\n extraClass=\"flex flex-row items-center gap-2 w-full justify-start\"\n (buttonClick)=\"duplicate.emit()\"\n [disabled]=\"!canDuplicate\"\n data-test=\"record-menu-duplicate-button\"\n >\n <span *ngIf=\"canDuplicate\" translate>record.action.duplicate</span>\n <span *ngIf=\"!canDuplicate\" translate\n >record.action.duplicating</span\n ></gn-ui-button\n >\n <gn-ui-button\n *ngIf=\"page === 'record'\"\n type=\"light\"\n extraClass=\"flex flex-row items-center gap-2 w-full justify-start\"\n (buttonClick)=\"switch.emit()\"\n data-test=\"record-menu-switch-button\"\n ><span translate>record.action.switchLang</span></gn-ui-button\n >\n <gn-ui-button\n type=\"light\"\n extraClass=\"flex flex-row items-center gap-2 w-full justify-start\"\n (buttonClick)=\"displayDeleteMenu()\"\n [disabled]=\"!canDelete\"\n data-test=\"record-menu-delete-button\"\n ><span *ngIf=\"page !== 'draft'\" translate>record.action.delete</span>\n <span *ngIf=\"page === 'draft'\" translate\n >record.action.rollback</span\n ></gn-ui-button\n >\n </ul>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'deleteMenu'\">\n <div\n data-test=\"deleteMenuSection\"\n class=\"w-72 p-6 flex flex-col gap-3 mt-2 border border-gray-100 bg-white shadow-2xl rounded-2xl\"\n >\n <span class=\"text-lg font-bold text-center\">{{\n 'editor.record.delete.confirmation.title' | translate\n }}</span>\n <span class=\"text-center\">{{\n 'editor.record.delete.confirmation.message' | translate\n }}</span>\n <div class=\"flex flex-row gap-8 justify-center\">\n <gn-ui-button\n (buttonClick)=\"delete.emit()\"\n cdkFocusInitial\n type=\"primary\"\n data-cy=\"confirm-button\"\n [style.--gn-ui-button-width]=\"'100px'\"\n >{{\n 'editor.record.delete.confirmation.confirmText' | translate\n }}</gn-ui-button\n >\n <gn-ui-button\n [style.--gn-ui-button-width]=\"'100px'\"\n (buttonClick)=\"closeActionMenu.emit()\"\n >{{\n 'editor.record.delete.confirmation.cancelText' | translate\n }}</gn-ui-button\n >\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'rollbackMenu'\">\n <div\n data-test=\"rollbackMenuSection\"\n class=\"w-80 p-6 flex flex-col gap-3 mt-2 border border-gray-100 bg-white shadow-2xl rounded-2xl\"\n >\n <span class=\"text-lg font-bold text-center\">{{\n 'editor.record.undo.confirmation.title' | translate\n }}</span>\n <span class=\"text-center\">{{\n 'editor.record.undo.confirmation.message' | translate\n }}</span>\n <div class=\"flex flex-row gap-8 justify-center\">\n <gn-ui-button\n (buttonClick)=\"rollback.emit()\"\n cdkFocusInitial\n type=\"primary\"\n data-cy=\"confirm-button\"\n [style.--gn-ui-button-width]=\"'120px'\"\n >{{\n 'editor.record.undo.confirmation.confirmText' | translate\n }}</gn-ui-button\n >\n <gn-ui-button\n [style.--gn-ui-button-width]=\"'120px'\"\n (buttonClick)=\"closeActionMenu.emit()\"\n >{{\n 'editor.record.undo.confirmation.cancelText' | translate\n }}</gn-ui-button\n >\n </div>\n </div>\n </ng-container>\n</ng-container>\n" }]
55
+ ], template: "<ng-container [ngSwitch]=\"sectionDisplayed\">\n <ng-container *ngSwitchCase=\"'mainMenu'\">\n <div\n data-test=\"mainMenuSection\"\n class=\"mt-2 border border-gray-100 p-2 flex items-center bg-white shadow-2xl rounded-2xl\"\n >\n <ul class=\"flex flex-col gap-2 w-full\">\n <gn-ui-button\n *ngIf=\"page === 'main'\"\n type=\"light\"\n extraClass=\"flex flex-row items-center gap-2 w-full justify-start\"\n (buttonClick)=\"duplicate.emit()\"\n [disabled]=\"!canDuplicate\"\n data-test=\"record-menu-duplicate-button\"\n >\n <span *ngIf=\"isDuplicating; else notDuplicating\" translate\n >record.action.duplicating</span\n >\n <ng-template #notDuplicating>\n <span translate>record.action.duplicate</span>\n </ng-template>\n </gn-ui-button>\n <gn-ui-button\n *ngIf=\"page === 'record'\"\n type=\"light\"\n extraClass=\"flex flex-row items-center gap-2 w-full justify-start\"\n (buttonClick)=\"switch.emit()\"\n data-test=\"record-menu-switch-button\"\n ><span translate>record.action.switchLang</span></gn-ui-button\n >\n <gn-ui-button\n type=\"light\"\n extraClass=\"flex flex-row items-center gap-2 w-full justify-start\"\n (buttonClick)=\"displayDeleteMenu()\"\n [disabled]=\"!canDelete\"\n data-test=\"record-menu-delete-button\"\n ><span *ngIf=\"page !== 'draft'\" translate>record.action.delete</span>\n <span *ngIf=\"page === 'draft'\" translate\n >record.action.rollback</span\n ></gn-ui-button\n >\n </ul>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'deleteMenu'\">\n <div\n data-test=\"deleteMenuSection\"\n class=\"w-72 p-6 flex flex-col gap-3 mt-2 border border-gray-100 bg-white shadow-2xl rounded-2xl\"\n >\n <span class=\"text-lg font-bold text-center\">{{\n 'editor.record.delete.confirmation.title' | translate\n }}</span>\n <span class=\"text-center\">{{\n 'editor.record.delete.confirmation.message' | translate\n }}</span>\n <div class=\"flex flex-row gap-8 justify-center\">\n <gn-ui-button\n (buttonClick)=\"delete.emit()\"\n cdkFocusInitial\n type=\"primary\"\n data-cy=\"confirm-button\"\n [style.--gn-ui-button-width]=\"'100px'\"\n >{{\n 'editor.record.delete.confirmation.confirmText' | translate\n }}</gn-ui-button\n >\n <gn-ui-button\n [style.--gn-ui-button-width]=\"'100px'\"\n (buttonClick)=\"closeActionMenu.emit()\"\n >{{\n 'editor.record.delete.confirmation.cancelText' | translate\n }}</gn-ui-button\n >\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'rollbackMenu'\">\n <div\n data-test=\"rollbackMenuSection\"\n class=\"w-80 p-6 flex flex-col gap-3 mt-2 border border-gray-100 bg-white shadow-2xl rounded-2xl\"\n >\n <span class=\"text-lg font-bold text-center\">{{\n 'editor.record.undo.confirmation.title' | translate\n }}</span>\n <span class=\"text-center\">{{\n 'editor.record.undo.confirmation.message' | translate\n }}</span>\n <div class=\"flex flex-row gap-8 justify-center\">\n <gn-ui-button\n (buttonClick)=\"rollback.emit()\"\n cdkFocusInitial\n type=\"primary\"\n data-cy=\"confirm-button\"\n [style.--gn-ui-button-width]=\"'120px'\"\n >{{\n 'editor.record.undo.confirmation.confirmText' | translate\n }}</gn-ui-button\n >\n <gn-ui-button\n [style.--gn-ui-button-width]=\"'120px'\"\n (buttonClick)=\"closeActionMenu.emit()\"\n >{{\n 'editor.record.undo.confirmation.cancelText' | translate\n }}</gn-ui-button\n >\n </div>\n </div>\n </ng-container>\n</ng-container>\n" }]
56
56
  }], ctorParameters: () => [{ type: i1.MatDialog }, { type: i0.ChangeDetectorRef }], propDecorators: { canDuplicate: [{
57
57
  type: Input
58
+ }], isDuplicating: [{
59
+ type: Input
58
60
  }], canDelete: [{
59
61
  type: Input
60
62
  }], page: [{
@@ -73,4 +75,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
73
75
  type: ViewChild,
74
76
  args: [MatMenuTrigger]
75
77
  }] } });
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9zZWFyY2gvc3JjL2xpYi9yZXN1bHRzLXRhYmxlL2FjdGlvbi1tZW51L2FjdGlvbi1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvc2VhcmNoL3NyYy9saWIvcmVzdWx0cy10YWJsZS9hY3Rpb24tbWVudS9hY3Rpb24tbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFDckUsT0FBTyxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUN0RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQTtBQUN2RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUNBQXlDLENBQUE7QUFDekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFBOzs7OztBQWtCckQsTUFBTSxPQUFPLG1CQUFtQjtJQWM5QixZQUNTLE1BQWlCLEVBQ2hCLEdBQXNCO1FBRHZCLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDaEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFmdkIsaUJBQVksR0FBRyxJQUFJLENBQUE7UUFDbkIsY0FBUyxHQUFHLElBQUksQ0FBQTtRQUVmLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFBO1FBQ3BDLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFBO1FBQ2pDLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQTtRQUMxQyxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQTtRQUNuQyxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQTtRQUkzQyxxQkFBZ0IsR0FBbUIsVUFBVSxDQUFBO0lBSzFDLENBQUM7SUFFSixlQUFlO1FBQ2IsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFVBQVUsQ0FBQTtRQUNsQyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFBO0lBQ3pCLENBQUM7SUFFRCxpQkFBaUI7UUFDZixRQUFRLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNsQixLQUFLLE9BQU87Z0JBQ1YsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGNBQWMsQ0FBQTtnQkFDdEMsTUFBSztZQUNQLEtBQUssUUFBUTtnQkFDWCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFBO2dCQUNsQixNQUFLO1lBQ1AsS0FBSyxNQUFNLENBQUM7WUFDWjtnQkFDRSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsWUFBWSxDQUFBO1FBQ3hDLENBQUM7UUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFBO0lBQ3pCLENBQUM7K0dBckNVLG1CQUFtQjttR0FBbkIsbUJBQW1CLHlVQVVuQixjQUFjLGdEQ3pDM0IsNDhIQTJHQSx5RERwRkksWUFBWSwrVEFDWixlQUFlLDhIQUNmLGFBQWEsOEJBQ2IsZUFBZSw4QkFFZixlQUFlOzs0RkFHTixtQkFBbUI7a0JBZC9CLFNBQVM7K0JBQ0UsbUJBQW1CLGNBR2pCLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixlQUFlO3dCQUNmLDJCQUEyQjt3QkFDM0IsZUFBZTtxQkFDaEI7OEdBR1EsWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDSSxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNO2dCQUVvQixPQUFPO3NCQUFqQyxTQUFTO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJ1xuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSwgTWF0TWVudVRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51J1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9lbGVtZW50cy9zcmMnXG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2lucHV0cy9zcmMnXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuXG50eXBlIEFjdGlvbk1lbnVQYWdlID0gJ21haW5NZW51JyB8ICdkZWxldGVNZW51JyB8ICdyb2xsYmFja01lbnUnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLWFjdGlvbi1tZW51JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FjdGlvbi1tZW51LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYWN0aW9uLW1lbnUuY29tcG9uZW50LmNzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBNYXRNZW51TW9kdWxlLFxuICAgIE1hdERpYWxvZ01vZHVsZSxcbiAgICBDb25maXJtYXRpb25EaWFsb2dDb21wb25lbnQsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBY3Rpb25NZW51Q29tcG9uZW50IHtcbiAgQElucHV0KCkgY2FuRHVwbGljYXRlID0gdHJ1ZVxuICBASW5wdXQoKSBjYW5EZWxldGUgPSB0cnVlXG4gIEBJbnB1dCgpIHBhZ2U6ICdkcmFmdCcgfCAnbWFpbicgfCAncmVjb3JkJ1xuICBAT3V0cHV0KCkgZHVwbGljYXRlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpXG4gIEBPdXRwdXQoKSBkZWxldGUgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KClcbiAgQE91dHB1dCgpIGNsb3NlQWN0aW9uTWVudSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKVxuICBAT3V0cHV0KCkgcm9sbGJhY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KClcbiAgQE91dHB1dCgpIHN3aXRjaCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKVxuXG4gIEBWaWV3Q2hpbGQoTWF0TWVudVRyaWdnZXIpIHRyaWdnZXI6IE1hdE1lbnVUcmlnZ2VyXG5cbiAgc2VjdGlvbkRpc3BsYXllZDogQWN0aW9uTWVudVBhZ2UgPSAnbWFpbk1lbnUnXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGRpYWxvZzogTWF0RGlhbG9nLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHt9XG5cbiAgZGlzcGxheU1haW5NZW51KCkge1xuICAgIHRoaXMuc2VjdGlvbkRpc3BsYXllZCA9ICdtYWluTWVudSdcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKVxuICB9XG5cbiAgZGlzcGxheURlbGV0ZU1lbnUoKSB7XG4gICAgc3dpdGNoICh0aGlzLnBhZ2UpIHtcbiAgICAgIGNhc2UgJ2RyYWZ0JzpcbiAgICAgICAgdGhpcy5zZWN0aW9uRGlzcGxheWVkID0gJ3JvbGxiYWNrTWVudSdcbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgJ3JlY29yZCc6XG4gICAgICAgIHRoaXMuZGVsZXRlLmVtaXQoKVxuICAgICAgICBicmVha1xuICAgICAgY2FzZSAnbWFpbic6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aGlzLnNlY3Rpb25EaXNwbGF5ZWQgPSAnZGVsZXRlTWVudSdcbiAgICB9XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKClcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwic2VjdGlvbkRpc3BsYXllZFwiPlxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInbWFpbk1lbnUnXCI+XG4gICAgPGRpdlxuICAgICAgZGF0YS10ZXN0PVwibWFpbk1lbnVTZWN0aW9uXCJcbiAgICAgIGNsYXNzPVwibXQtMiBib3JkZXIgYm9yZGVyLWdyYXktMTAwIHAtMiBmbGV4IGl0ZW1zLWNlbnRlciBiZy13aGl0ZSBzaGFkb3ctMnhsIHJvdW5kZWQtMnhsXCJcbiAgICA+XG4gICAgICA8dWwgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0yIHctZnVsbFwiPlxuICAgICAgICA8Z24tdWktYnV0dG9uXG4gICAgICAgICAgKm5nSWY9XCJwYWdlID09PSAnbWFpbidcIlxuICAgICAgICAgIHR5cGU9XCJsaWdodFwiXG4gICAgICAgICAgZXh0cmFDbGFzcz1cImZsZXggZmxleC1yb3cgaXRlbXMtY2VudGVyIGdhcC0yIHctZnVsbCBqdXN0aWZ5LXN0YXJ0XCJcbiAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwiZHVwbGljYXRlLmVtaXQoKVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFjYW5EdXBsaWNhdGVcIlxuICAgICAgICAgIGRhdGEtdGVzdD1cInJlY29yZC1tZW51LWR1cGxpY2F0ZS1idXR0b25cIlxuICAgICAgICA+XG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJjYW5EdXBsaWNhdGVcIiB0cmFuc2xhdGU+cmVjb3JkLmFjdGlvbi5kdXBsaWNhdGU8L3NwYW4+XG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCIhY2FuRHVwbGljYXRlXCIgdHJhbnNsYXRlXG4gICAgICAgICAgICA+cmVjb3JkLmFjdGlvbi5kdXBsaWNhdGluZzwvc3BhblxuICAgICAgICAgID48L2duLXVpLWJ1dHRvblxuICAgICAgICA+XG4gICAgICAgIDxnbi11aS1idXR0b25cbiAgICAgICAgICAqbmdJZj1cInBhZ2UgPT09ICdyZWNvcmQnXCJcbiAgICAgICAgICB0eXBlPVwibGlnaHRcIlxuICAgICAgICAgIGV4dHJhQ2xhc3M9XCJmbGV4IGZsZXgtcm93IGl0ZW1zLWNlbnRlciBnYXAtMiB3LWZ1bGwganVzdGlmeS1zdGFydFwiXG4gICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cInN3aXRjaC5lbWl0KClcIlxuICAgICAgICAgIGRhdGEtdGVzdD1cInJlY29yZC1tZW51LXN3aXRjaC1idXR0b25cIlxuICAgICAgICAgID48c3BhbiB0cmFuc2xhdGU+cmVjb3JkLmFjdGlvbi5zd2l0Y2hMYW5nPC9zcGFuPjwvZ24tdWktYnV0dG9uXG4gICAgICAgID5cbiAgICAgICAgPGduLXVpLWJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJsaWdodFwiXG4gICAgICAgICAgZXh0cmFDbGFzcz1cImZsZXggZmxleC1yb3cgaXRlbXMtY2VudGVyIGdhcC0yIHctZnVsbCBqdXN0aWZ5LXN0YXJ0XCJcbiAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwiZGlzcGxheURlbGV0ZU1lbnUoKVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFjYW5EZWxldGVcIlxuICAgICAgICAgIGRhdGEtdGVzdD1cInJlY29yZC1tZW51LWRlbGV0ZS1idXR0b25cIlxuICAgICAgICAgID48c3BhbiAqbmdJZj1cInBhZ2UgIT09ICdkcmFmdCdcIiB0cmFuc2xhdGU+cmVjb3JkLmFjdGlvbi5kZWxldGU8L3NwYW4+XG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJwYWdlID09PSAnZHJhZnQnXCIgdHJhbnNsYXRlXG4gICAgICAgICAgICA+cmVjb3JkLmFjdGlvbi5yb2xsYmFjazwvc3BhblxuICAgICAgICAgID48L2duLXVpLWJ1dHRvblxuICAgICAgICA+XG4gICAgICA8L3VsPlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2RlbGV0ZU1lbnUnXCI+XG4gICAgPGRpdlxuICAgICAgZGF0YS10ZXN0PVwiZGVsZXRlTWVudVNlY3Rpb25cIlxuICAgICAgY2xhc3M9XCJ3LTcyIHAtNiBmbGV4IGZsZXgtY29sIGdhcC0zIG10LTIgYm9yZGVyIGJvcmRlci1ncmF5LTEwMCBiZy13aGl0ZSBzaGFkb3ctMnhsIHJvdW5kZWQtMnhsXCJcbiAgICA+XG4gICAgICA8c3BhbiBjbGFzcz1cInRleHQtbGcgZm9udC1ib2xkIHRleHQtY2VudGVyXCI+e3tcbiAgICAgICAgJ2VkaXRvci5yZWNvcmQuZGVsZXRlLmNvbmZpcm1hdGlvbi50aXRsZScgfCB0cmFuc2xhdGVcbiAgICAgIH19PC9zcGFuPlxuICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPnt7XG4gICAgICAgICdlZGl0b3IucmVjb3JkLmRlbGV0ZS5jb25maXJtYXRpb24ubWVzc2FnZScgfCB0cmFuc2xhdGVcbiAgICAgIH19PC9zcGFuPlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgZ2FwLTgganVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgPGduLXVpLWJ1dHRvblxuICAgICAgICAgIChidXR0b25DbGljayk9XCJkZWxldGUuZW1pdCgpXCJcbiAgICAgICAgICBjZGtGb2N1c0luaXRpYWxcbiAgICAgICAgICB0eXBlPVwicHJpbWFyeVwiXG4gICAgICAgICAgZGF0YS1jeT1cImNvbmZpcm0tYnV0dG9uXCJcbiAgICAgICAgICBbc3R5bGUuLS1nbi11aS1idXR0b24td2lkdGhdPVwiJzEwMHB4J1wiXG4gICAgICAgICAgPnt7XG4gICAgICAgICAgICAnZWRpdG9yLnJlY29yZC5kZWxldGUuY29uZmlybWF0aW9uLmNvbmZpcm1UZXh0JyB8IHRyYW5zbGF0ZVxuICAgICAgICAgIH19PC9nbi11aS1idXR0b25cbiAgICAgICAgPlxuICAgICAgICA8Z24tdWktYnV0dG9uXG4gICAgICAgICAgW3N0eWxlLi0tZ24tdWktYnV0dG9uLXdpZHRoXT1cIicxMDBweCdcIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJjbG9zZUFjdGlvbk1lbnUuZW1pdCgpXCJcbiAgICAgICAgICA+e3tcbiAgICAgICAgICAgICdlZGl0b3IucmVjb3JkLmRlbGV0ZS5jb25maXJtYXRpb24uY2FuY2VsVGV4dCcgfCB0cmFuc2xhdGVcbiAgICAgICAgICB9fTwvZ24tdWktYnV0dG9uXG4gICAgICAgID5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3JvbGxiYWNrTWVudSdcIj5cbiAgICA8ZGl2XG4gICAgICBkYXRhLXRlc3Q9XCJyb2xsYmFja01lbnVTZWN0aW9uXCJcbiAgICAgIGNsYXNzPVwidy04MCBwLTYgZmxleCBmbGV4LWNvbCBnYXAtMyBtdC0yIGJvcmRlciBib3JkZXItZ3JheS0xMDAgYmctd2hpdGUgc2hhZG93LTJ4bCByb3VuZGVkLTJ4bFwiXG4gICAgPlxuICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWxnIGZvbnQtYm9sZCB0ZXh0LWNlbnRlclwiPnt7XG4gICAgICAgICdlZGl0b3IucmVjb3JkLnVuZG8uY29uZmlybWF0aW9uLnRpdGxlJyB8IHRyYW5zbGF0ZVxuICAgICAgfX08L3NwYW4+XG4gICAgICA8c3BhbiBjbGFzcz1cInRleHQtY2VudGVyXCI+e3tcbiAgICAgICAgJ2VkaXRvci5yZWNvcmQudW5kby5jb25maXJtYXRpb24ubWVzc2FnZScgfCB0cmFuc2xhdGVcbiAgICAgIH19PC9zcGFuPlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgZ2FwLTgganVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgPGduLXVpLWJ1dHRvblxuICAgICAgICAgIChidXR0b25DbGljayk9XCJyb2xsYmFjay5lbWl0KClcIlxuICAgICAgICAgIGNka0ZvY3VzSW5pdGlhbFxuICAgICAgICAgIHR5cGU9XCJwcmltYXJ5XCJcbiAgICAgICAgICBkYXRhLWN5PVwiY29uZmlybS1idXR0b25cIlxuICAgICAgICAgIFtzdHlsZS4tLWduLXVpLWJ1dHRvbi13aWR0aF09XCInMTIwcHgnXCJcbiAgICAgICAgICA+e3tcbiAgICAgICAgICAgICdlZGl0b3IucmVjb3JkLnVuZG8uY29uZmlybWF0aW9uLmNvbmZpcm1UZXh0JyB8IHRyYW5zbGF0ZVxuICAgICAgICAgIH19PC9nbi11aS1idXR0b25cbiAgICAgICAgPlxuICAgICAgICA8Z24tdWktYnV0dG9uXG4gICAgICAgICAgW3N0eWxlLi0tZ24tdWktYnV0dG9uLXdpZHRoXT1cIicxMjBweCdcIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJjbG9zZUFjdGlvbk1lbnUuZW1pdCgpXCJcbiAgICAgICAgICA+e3tcbiAgICAgICAgICAgICdlZGl0b3IucmVjb3JkLnVuZG8uY29uZmlybWF0aW9uLmNhbmNlbFRleHQnIHwgdHJhbnNsYXRlXG4gICAgICAgICAgfX08L2duLXVpLWJ1dHRvblxuICAgICAgICA+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9zZWFyY2gvc3JjL2xpYi9yZXN1bHRzLXRhYmxlL2FjdGlvbi1tZW51L2FjdGlvbi1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvc2VhcmNoL3NyYy9saWIvcmVzdWx0cy10YWJsZS9hY3Rpb24tbWVudS9hY3Rpb24tbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFDckUsT0FBTyxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUN0RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQTtBQUN2RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUNBQXlDLENBQUE7QUFDekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFBOzs7OztBQWtCckQsTUFBTSxPQUFPLG1CQUFtQjtJQWU5QixZQUNTLE1BQWlCLEVBQ2hCLEdBQXNCO1FBRHZCLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDaEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFoQnZCLGlCQUFZLEdBQUcsSUFBSSxDQUFBO1FBRW5CLGNBQVMsR0FBRyxJQUFJLENBQUE7UUFFZixjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQTtRQUNwQyxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQTtRQUNqQyxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUE7UUFDMUMsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUE7UUFDbkMsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUE7UUFJM0MscUJBQWdCLEdBQW1CLFVBQVUsQ0FBQTtJQUsxQyxDQUFDO0lBRUosZUFBZTtRQUNiLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxVQUFVLENBQUE7UUFDbEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQTtJQUN6QixDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsUUFBUSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDbEIsS0FBSyxPQUFPO2dCQUNWLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxjQUFjLENBQUE7Z0JBQ3RDLE1BQUs7WUFDUCxLQUFLLFFBQVE7Z0JBQ1gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQTtnQkFDbEIsTUFBSztZQUNQLEtBQUssTUFBTSxDQUFDO1lBQ1o7Z0JBQ0UsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFlBQVksQ0FBQTtRQUN4QyxDQUFDO1FBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQTtJQUN6QixDQUFDOytHQXRDVSxtQkFBbUI7bUdBQW5CLG1CQUFtQix5V0FXbkIsY0FBYyxnREMxQzNCLCtnSUE2R0EseUREdEZJLFlBQVksK1RBQ1osZUFBZSw4SEFDZixhQUFhLDhCQUNiLGVBQWUsOEJBRWYsZUFBZTs7NEZBR04sbUJBQW1CO2tCQWQvQixTQUFTOytCQUNFLG1CQUFtQixjQUdqQixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZiwyQkFBMkI7d0JBQzNCLGVBQWU7cUJBQ2hCOzhHQUdRLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDSSxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNO2dCQUVvQixPQUFPO3NCQUFqQyxTQUFTO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJ1xuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSwgTWF0TWVudVRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51J1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9lbGVtZW50cy9zcmMnXG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2lucHV0cy9zcmMnXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuXG50eXBlIEFjdGlvbk1lbnVQYWdlID0gJ21haW5NZW51JyB8ICdkZWxldGVNZW51JyB8ICdyb2xsYmFja01lbnUnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLWFjdGlvbi1tZW51JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FjdGlvbi1tZW51LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYWN0aW9uLW1lbnUuY29tcG9uZW50LmNzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBNYXRNZW51TW9kdWxlLFxuICAgIE1hdERpYWxvZ01vZHVsZSxcbiAgICBDb25maXJtYXRpb25EaWFsb2dDb21wb25lbnQsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBY3Rpb25NZW51Q29tcG9uZW50IHtcbiAgQElucHV0KCkgY2FuRHVwbGljYXRlID0gdHJ1ZVxuICBASW5wdXQoKSBpc0R1cGxpY2F0aW5nOiBib29sZWFuXG4gIEBJbnB1dCgpIGNhbkRlbGV0ZSA9IHRydWVcbiAgQElucHV0KCkgcGFnZTogJ2RyYWZ0JyB8ICdtYWluJyB8ICdyZWNvcmQnXG4gIEBPdXRwdXQoKSBkdXBsaWNhdGUgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KClcbiAgQE91dHB1dCgpIGRlbGV0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKVxuICBAT3V0cHV0KCkgY2xvc2VBY3Rpb25NZW51ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpXG4gIEBPdXRwdXQoKSByb2xsYmFjayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKVxuICBAT3V0cHV0KCkgc3dpdGNoID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpXG5cbiAgQFZpZXdDaGlsZChNYXRNZW51VHJpZ2dlcikgdHJpZ2dlcjogTWF0TWVudVRyaWdnZXJcblxuICBzZWN0aW9uRGlzcGxheWVkOiBBY3Rpb25NZW51UGFnZSA9ICdtYWluTWVudSdcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICkge31cblxuICBkaXNwbGF5TWFpbk1lbnUoKSB7XG4gICAgdGhpcy5zZWN0aW9uRGlzcGxheWVkID0gJ21haW5NZW51J1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpXG4gIH1cblxuICBkaXNwbGF5RGVsZXRlTWVudSgpIHtcbiAgICBzd2l0Y2ggKHRoaXMucGFnZSkge1xuICAgICAgY2FzZSAnZHJhZnQnOlxuICAgICAgICB0aGlzLnNlY3Rpb25EaXNwbGF5ZWQgPSAncm9sbGJhY2tNZW51J1xuICAgICAgICBicmVha1xuICAgICAgY2FzZSAncmVjb3JkJzpcbiAgICAgICAgdGhpcy5kZWxldGUuZW1pdCgpXG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlICdtYWluJzpcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRoaXMuc2VjdGlvbkRpc3BsYXllZCA9ICdkZWxldGVNZW51J1xuICAgIH1cbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKVxuICB9XG59XG4iLCI8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJzZWN0aW9uRGlzcGxheWVkXCI+XG4gIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidtYWluTWVudSdcIj5cbiAgICA8ZGl2XG4gICAgICBkYXRhLXRlc3Q9XCJtYWluTWVudVNlY3Rpb25cIlxuICAgICAgY2xhc3M9XCJtdC0yIGJvcmRlciBib3JkZXItZ3JheS0xMDAgcC0yIGZsZXggaXRlbXMtY2VudGVyIGJnLXdoaXRlIHNoYWRvdy0yeGwgcm91bmRlZC0yeGxcIlxuICAgID5cbiAgICAgIDx1bCBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTIgdy1mdWxsXCI+XG4gICAgICAgIDxnbi11aS1idXR0b25cbiAgICAgICAgICAqbmdJZj1cInBhZ2UgPT09ICdtYWluJ1wiXG4gICAgICAgICAgdHlwZT1cImxpZ2h0XCJcbiAgICAgICAgICBleHRyYUNsYXNzPVwiZmxleCBmbGV4LXJvdyBpdGVtcy1jZW50ZXIgZ2FwLTIgdy1mdWxsIGp1c3RpZnktc3RhcnRcIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJkdXBsaWNhdGUuZW1pdCgpXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIWNhbkR1cGxpY2F0ZVwiXG4gICAgICAgICAgZGF0YS10ZXN0PVwicmVjb3JkLW1lbnUtZHVwbGljYXRlLWJ1dHRvblwiXG4gICAgICAgID5cbiAgICAgICAgICA8c3BhbiAqbmdJZj1cImlzRHVwbGljYXRpbmc7IGVsc2Ugbm90RHVwbGljYXRpbmdcIiB0cmFuc2xhdGVcbiAgICAgICAgICAgID5yZWNvcmQuYWN0aW9uLmR1cGxpY2F0aW5nPC9zcGFuXG4gICAgICAgICAgPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm90RHVwbGljYXRpbmc+XG4gICAgICAgICAgICA8c3BhbiB0cmFuc2xhdGU+cmVjb3JkLmFjdGlvbi5kdXBsaWNhdGU8L3NwYW4+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9nbi11aS1idXR0b24+XG4gICAgICAgIDxnbi11aS1idXR0b25cbiAgICAgICAgICAqbmdJZj1cInBhZ2UgPT09ICdyZWNvcmQnXCJcbiAgICAgICAgICB0eXBlPVwibGlnaHRcIlxuICAgICAgICAgIGV4dHJhQ2xhc3M9XCJmbGV4IGZsZXgtcm93IGl0ZW1zLWNlbnRlciBnYXAtMiB3LWZ1bGwganVzdGlmeS1zdGFydFwiXG4gICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cInN3aXRjaC5lbWl0KClcIlxuICAgICAgICAgIGRhdGEtdGVzdD1cInJlY29yZC1tZW51LXN3aXRjaC1idXR0b25cIlxuICAgICAgICAgID48c3BhbiB0cmFuc2xhdGU+cmVjb3JkLmFjdGlvbi5zd2l0Y2hMYW5nPC9zcGFuPjwvZ24tdWktYnV0dG9uXG4gICAgICAgID5cbiAgICAgICAgPGduLXVpLWJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJsaWdodFwiXG4gICAgICAgICAgZXh0cmFDbGFzcz1cImZsZXggZmxleC1yb3cgaXRlbXMtY2VudGVyIGdhcC0yIHctZnVsbCBqdXN0aWZ5LXN0YXJ0XCJcbiAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwiZGlzcGxheURlbGV0ZU1lbnUoKVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFjYW5EZWxldGVcIlxuICAgICAgICAgIGRhdGEtdGVzdD1cInJlY29yZC1tZW51LWRlbGV0ZS1idXR0b25cIlxuICAgICAgICAgID48c3BhbiAqbmdJZj1cInBhZ2UgIT09ICdkcmFmdCdcIiB0cmFuc2xhdGU+cmVjb3JkLmFjdGlvbi5kZWxldGU8L3NwYW4+XG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJwYWdlID09PSAnZHJhZnQnXCIgdHJhbnNsYXRlXG4gICAgICAgICAgICA+cmVjb3JkLmFjdGlvbi5yb2xsYmFjazwvc3BhblxuICAgICAgICAgID48L2duLXVpLWJ1dHRvblxuICAgICAgICA+XG4gICAgICA8L3VsPlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2RlbGV0ZU1lbnUnXCI+XG4gICAgPGRpdlxuICAgICAgZGF0YS10ZXN0PVwiZGVsZXRlTWVudVNlY3Rpb25cIlxuICAgICAgY2xhc3M9XCJ3LTcyIHAtNiBmbGV4IGZsZXgtY29sIGdhcC0zIG10LTIgYm9yZGVyIGJvcmRlci1ncmF5LTEwMCBiZy13aGl0ZSBzaGFkb3ctMnhsIHJvdW5kZWQtMnhsXCJcbiAgICA+XG4gICAgICA8c3BhbiBjbGFzcz1cInRleHQtbGcgZm9udC1ib2xkIHRleHQtY2VudGVyXCI+e3tcbiAgICAgICAgJ2VkaXRvci5yZWNvcmQuZGVsZXRlLmNvbmZpcm1hdGlvbi50aXRsZScgfCB0cmFuc2xhdGVcbiAgICAgIH19PC9zcGFuPlxuICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPnt7XG4gICAgICAgICdlZGl0b3IucmVjb3JkLmRlbGV0ZS5jb25maXJtYXRpb24ubWVzc2FnZScgfCB0cmFuc2xhdGVcbiAgICAgIH19PC9zcGFuPlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgZ2FwLTgganVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgPGduLXVpLWJ1dHRvblxuICAgICAgICAgIChidXR0b25DbGljayk9XCJkZWxldGUuZW1pdCgpXCJcbiAgICAgICAgICBjZGtGb2N1c0luaXRpYWxcbiAgICAgICAgICB0eXBlPVwicHJpbWFyeVwiXG4gICAgICAgICAgZGF0YS1jeT1cImNvbmZpcm0tYnV0dG9uXCJcbiAgICAgICAgICBbc3R5bGUuLS1nbi11aS1idXR0b24td2lkdGhdPVwiJzEwMHB4J1wiXG4gICAgICAgICAgPnt7XG4gICAgICAgICAgICAnZWRpdG9yLnJlY29yZC5kZWxldGUuY29uZmlybWF0aW9uLmNvbmZpcm1UZXh0JyB8IHRyYW5zbGF0ZVxuICAgICAgICAgIH19PC9nbi11aS1idXR0b25cbiAgICAgICAgPlxuICAgICAgICA8Z24tdWktYnV0dG9uXG4gICAgICAgICAgW3N0eWxlLi0tZ24tdWktYnV0dG9uLXdpZHRoXT1cIicxMDBweCdcIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJjbG9zZUFjdGlvbk1lbnUuZW1pdCgpXCJcbiAgICAgICAgICA+e3tcbiAgICAgICAgICAgICdlZGl0b3IucmVjb3JkLmRlbGV0ZS5jb25maXJtYXRpb24uY2FuY2VsVGV4dCcgfCB0cmFuc2xhdGVcbiAgICAgICAgICB9fTwvZ24tdWktYnV0dG9uXG4gICAgICAgID5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3JvbGxiYWNrTWVudSdcIj5cbiAgICA8ZGl2XG4gICAgICBkYXRhLXRlc3Q9XCJyb2xsYmFja01lbnVTZWN0aW9uXCJcbiAgICAgIGNsYXNzPVwidy04MCBwLTYgZmxleCBmbGV4LWNvbCBnYXAtMyBtdC0yIGJvcmRlciBib3JkZXItZ3JheS0xMDAgYmctd2hpdGUgc2hhZG93LTJ4bCByb3VuZGVkLTJ4bFwiXG4gICAgPlxuICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWxnIGZvbnQtYm9sZCB0ZXh0LWNlbnRlclwiPnt7XG4gICAgICAgICdlZGl0b3IucmVjb3JkLnVuZG8uY29uZmlybWF0aW9uLnRpdGxlJyB8IHRyYW5zbGF0ZVxuICAgICAgfX08L3NwYW4+XG4gICAgICA8c3BhbiBjbGFzcz1cInRleHQtY2VudGVyXCI+e3tcbiAgICAgICAgJ2VkaXRvci5yZWNvcmQudW5kby5jb25maXJtYXRpb24ubWVzc2FnZScgfCB0cmFuc2xhdGVcbiAgICAgIH19PC9zcGFuPlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgZ2FwLTgganVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgPGduLXVpLWJ1dHRvblxuICAgICAgICAgIChidXR0b25DbGljayk9XCJyb2xsYmFjay5lbWl0KClcIlxuICAgICAgICAgIGNka0ZvY3VzSW5pdGlhbFxuICAgICAgICAgIHR5cGU9XCJwcmltYXJ5XCJcbiAgICAgICAgICBkYXRhLWN5PVwiY29uZmlybS1idXR0b25cIlxuICAgICAgICAgIFtzdHlsZS4tLWduLXVpLWJ1dHRvbi13aWR0aF09XCInMTIwcHgnXCJcbiAgICAgICAgICA+e3tcbiAgICAgICAgICAgICdlZGl0b3IucmVjb3JkLnVuZG8uY29uZmlybWF0aW9uLmNvbmZpcm1UZXh0JyB8IHRyYW5zbGF0ZVxuICAgICAgICAgIH19PC9nbi11aS1idXR0b25cbiAgICAgICAgPlxuICAgICAgICA8Z24tdWktYnV0dG9uXG4gICAgICAgICAgW3N0eWxlLi0tZ24tdWktYnV0dG9uLXdpZHRoXT1cIicxMjBweCdcIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJjbG9zZUFjdGlvbk1lbnUuZW1pdCgpXCJcbiAgICAgICAgICA+e3tcbiAgICAgICAgICAgICdlZGl0b3IucmVjb3JkLnVuZG8uY29uZmlybWF0aW9uLmNhbmNlbFRleHQnIHwgdHJhbnNsYXRlXG4gICAgICAgICAgfX08L2duLXVpLWJ1dHRvblxuICAgICAgICA+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==