geonetwork-ui 2.4.1-dev.9ee0df3df → 2.4.1-dev.a28bdabc1

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 (121) hide show
  1. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.converter.mjs +4 -3
  2. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +5 -2
  3. package/esm2022/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.mjs +1 -1
  4. package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +27 -16
  5. package/esm2022/libs/common/domain/src/lib/repository/records-repository.interface.mjs +1 -1
  6. package/esm2022/libs/data-access/gn4/src/openapi/api/records.api.service.mjs +7 -1
  7. package/esm2022/libs/feature/editor/src/lib/+state/editor.actions.mjs +3 -1
  8. package/esm2022/libs/feature/editor/src/lib/+state/editor.effects.mjs +18 -14
  9. package/esm2022/libs/feature/editor/src/lib/+state/editor.facade.mjs +15 -5
  10. package/esm2022/libs/feature/editor/src/lib/+state/editor.reducer.mjs +10 -4
  11. package/esm2022/libs/feature/editor/src/lib/+state/editor.selectors.mjs +6 -5
  12. package/esm2022/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.mjs +57 -10
  13. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.mjs +36 -23
  14. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.mjs +7 -12
  15. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.mjs +8 -12
  16. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.mjs +6 -12
  17. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.mjs +3 -3
  18. package/esm2022/libs/feature/editor/src/lib/services/editor.service.mjs +9 -5
  19. package/esm2022/libs/feature/search/src/lib/results-table/results-table-container.component.mjs +3 -4
  20. package/esm2022/libs/ui/dataviz/src/lib/figure/figure.component.mjs +3 -3
  21. package/esm2022/libs/ui/inputs/src/lib/file-input/file-input.component.mjs +4 -4
  22. package/esm2022/libs/ui/layout/src/lib/interactive-table/interactive-table.component.mjs +9 -4
  23. package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +10 -10
  24. package/esm2022/libs/util/shared/src/lib/links/link-utils.mjs +40 -1
  25. package/esm2022/translations/de.json +29 -6
  26. package/esm2022/translations/en.json +13 -9
  27. package/esm2022/translations/es.json +27 -4
  28. package/esm2022/translations/fr.json +13 -9
  29. package/esm2022/translations/it.json +243 -218
  30. package/esm2022/translations/nl.json +27 -4
  31. package/esm2022/translations/pt.json +27 -4
  32. package/fesm2022/geonetwork-ui.mjs +883 -616
  33. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  34. package/libs/api/metadata-converter/src/lib/gn4/gn4.converter.d.ts.map +1 -1
  35. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
  36. package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts +1 -0
  37. package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts.map +1 -1
  38. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts +4 -3
  39. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts.map +1 -1
  40. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts +4 -3
  41. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts.map +1 -1
  42. package/libs/data-access/gn4/src/openapi/api/records.api.service.d.ts +3 -0
  43. package/libs/data-access/gn4/src/openapi/api/records.api.service.d.ts.map +1 -1
  44. package/libs/feature/editor/src/lib/+state/editor.actions.d.ts +10 -2
  45. package/libs/feature/editor/src/lib/+state/editor.actions.d.ts.map +1 -1
  46. package/libs/feature/editor/src/lib/+state/editor.effects.d.ts +6 -2
  47. package/libs/feature/editor/src/lib/+state/editor.effects.d.ts.map +1 -1
  48. package/libs/feature/editor/src/lib/+state/editor.facade.d.ts +5 -2
  49. package/libs/feature/editor/src/lib/+state/editor.facade.d.ts.map +1 -1
  50. package/libs/feature/editor/src/lib/+state/editor.reducer.d.ts +2 -1
  51. package/libs/feature/editor/src/lib/+state/editor.reducer.d.ts.map +1 -1
  52. package/libs/feature/editor/src/lib/+state/editor.selectors.d.ts +2 -1
  53. package/libs/feature/editor/src/lib/+state/editor.selectors.d.ts.map +1 -1
  54. package/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.d.ts +16 -5
  55. package/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.d.ts.map +1 -1
  56. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.d.ts +4 -4
  57. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.d.ts.map +1 -1
  58. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.d.ts +1 -4
  59. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.d.ts.map +1 -1
  60. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.d.ts +2 -5
  61. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.d.ts.map +1 -1
  62. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.d.ts +1 -4
  63. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.d.ts.map +1 -1
  64. package/libs/feature/editor/src/lib/services/editor.service.d.ts +1 -1
  65. package/libs/feature/editor/src/lib/services/editor.service.d.ts.map +1 -1
  66. package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts +0 -1
  67. package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts.map +1 -1
  68. package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts +1 -1
  69. package/libs/ui/inputs/src/lib/file-input/file-input.component.d.ts +1 -1
  70. package/libs/ui/inputs/src/lib/file-input/file-input.component.d.ts.map +1 -1
  71. package/libs/ui/layout/src/lib/interactive-table/interactive-table.component.d.ts +2 -1
  72. package/libs/ui/layout/src/lib/interactive-table/interactive-table.component.d.ts.map +1 -1
  73. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts +3 -3
  74. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts.map +1 -1
  75. package/libs/util/shared/src/lib/links/link-utils.d.ts +2 -1
  76. package/libs/util/shared/src/lib/links/link-utils.d.ts.map +1 -1
  77. package/package.json +1 -1
  78. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.converter.ts +4 -3
  79. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +8 -1
  80. package/src/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.ts +1 -0
  81. package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +53 -27
  82. package/src/libs/common/domain/src/lib/repository/records-repository.interface.ts +5 -4
  83. package/src/libs/common/fixtures/src/lib/elasticsearch/full-response.fixtures.ts +2 -2
  84. package/src/libs/common/fixtures/src/lib/elasticsearch/search-responses.fixtures.ts +16 -16
  85. package/src/libs/common/fixtures/src/lib/records.fixtures.ts +163 -0
  86. package/src/libs/data-access/gn4/src/openapi/api/records.api.service.ts +24 -4
  87. package/src/libs/feature/editor/src/lib/+state/editor.actions.ts +10 -1
  88. package/src/libs/feature/editor/src/lib/+state/editor.effects.ts +57 -31
  89. package/src/libs/feature/editor/src/lib/+state/editor.facade.ts +15 -9
  90. package/src/libs/feature/editor/src/lib/+state/editor.reducer.ts +18 -12
  91. package/src/libs/feature/editor/src/lib/+state/editor.selectors.ts +13 -8
  92. package/src/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.html +38 -7
  93. package/src/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.ts +62 -3
  94. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.html +1 -1
  95. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.ts +31 -19
  96. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.html +1 -10
  97. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.ts +1 -7
  98. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.html +11 -20
  99. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.ts +5 -10
  100. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.html +0 -9
  101. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.ts +2 -8
  102. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html +2 -2
  103. package/src/libs/feature/editor/src/lib/services/editor.service.ts +18 -16
  104. package/src/libs/feature/search/src/lib/results-table/results-table-container.component.html +0 -1
  105. package/src/libs/feature/search/src/lib/results-table/results-table-container.component.ts +0 -3
  106. package/src/libs/ui/dataviz/src/lib/figure/figure.component.html +1 -0
  107. package/src/libs/ui/inputs/src/lib/file-input/file-input.component.ts +1 -1
  108. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.html +12 -1
  109. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.ts +4 -6
  110. package/src/libs/ui/search/src/lib/results-table/results-table.component.html +23 -6
  111. package/src/libs/ui/search/src/lib/results-table/results-table.component.ts +6 -6
  112. package/src/libs/util/shared/src/lib/links/link-utils.ts +51 -1
  113. package/tailwind.base.config.js +2 -0
  114. package/translations/de.json +29 -6
  115. package/translations/en.json +13 -9
  116. package/translations/es.json +27 -4
  117. package/translations/fr.json +13 -9
  118. package/translations/it.json +243 -218
  119. package/translations/nl.json +27 -4
  120. package/translations/pt.json +27 -4
  121. package/translations/sk.json +27 -4
@@ -18,10 +18,10 @@ export class FileInputComponent {
18
18
  }
19
19
  constructor(cd) {
20
20
  this.cd = cd;
21
- this.disabled = false;
22
21
  this.fileChange = new EventEmitter();
23
22
  this.urlChange = new EventEmitter();
24
23
  this.uploadCancel = new EventEmitter();
24
+ this.disabled = false;
25
25
  this.dragFilesOver = false;
26
26
  }
27
27
  getPrimaryText() {
@@ -96,13 +96,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
96
96
  type: Input
97
97
  }], uploadProgress: [{
98
98
  type: Input
99
- }], disabled: [{
100
- type: Input
101
99
  }], fileChange: [{
102
100
  type: Output
103
101
  }], urlChange: [{
104
102
  type: Output
105
103
  }], uploadCancel: [{
106
104
  type: Output
105
+ }], disabled: [{
106
+ type: Input
107
107
  }] } });
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2lucHV0cy9zcmMvbGliL2ZpbGUtaW5wdXQvZmlsZS1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2lucHV0cy9zcmMvbGliL2ZpbGUtaW5wdXQvZmlsZS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFBO0FBQzdFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQUM1RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQTtBQUN2RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDckQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHlDQUF5QyxDQUFBO0FBQ2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFBO0FBQ3BFLE9BQU8sRUFDTCxlQUFlLEVBQ2YsWUFBWSxFQUNaLG9CQUFvQixHQUNyQixNQUFNLGdCQUFnQixDQUFBO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1CQUFtQixDQUFBOzs7OztBQTJCMUUsTUFBTSxPQUFPLGtCQUFrQjtJQVU3QixJQUFJLGtCQUFrQjtRQUNwQixPQUFPLElBQUksQ0FBQyxjQUFjLEtBQUssU0FBUyxDQUFBO0lBQzFDLENBQUM7SUFFRCxZQUFv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QUFuQixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJ1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnXG5pbXBvcnQgeyBGaWxlc0Ryb3BEaXJlY3RpdmUgfSBmcm9tICcuLi9maWxlcy1kcm9wL2ZpbGVzLWRyb3AuZGlyZWN0aXZlJ1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7IG1hcmtlciB9IGZyb20gJ0BiaWVzYmplcmcvbmd4LXRyYW5zbGF0ZS1leHRyYWN0LW1hcmtlcidcbmltcG9ydCB7IFVybElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vdXJsLWlucHV0L3VybC1pbnB1dC5jb21wb25lbnQnXG5pbXBvcnQge1xuICBOZ0ljb25Db21wb25lbnQsXG4gIHByb3ZpZGVJY29ucyxcbiAgcHJvdmlkZU5nSWNvbnNDb25maWcsXG59IGZyb20gJ0BuZy1pY29ucy9jb3JlJ1xuaW1wb3J0IHsgaWNvbm9pckNsb3VkVXBsb2FkLCBpY29ub2lyRnJhbWVQbHVzSW4gfSBmcm9tICdAbmctaWNvbnMvaWNvbm9pcidcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktZmlsZS1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9maWxlLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmlsZS1pbnB1dC5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBGaWxlc0Ryb3BEaXJlY3RpdmUsXG4gICAgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBVcmxJbnB1dENvbXBvbmVudCxcbiAgICBOZ0ljb25Db21wb25lbnQsXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHByb3ZpZGVJY29ucyh7XG4gICAgICBpY29ub2lyQ2xvdWRVcGxvYWQsXG4gICAgICBpY29ub2lyRnJhbWVQbHVzSW4sXG4gICAgfSksXG4gICAgcHJvdmlkZU5nSWNvbnNDb25maWcoe1xuICAgICAgc2l6ZTogJzEuNWVtJyxcbiAgICB9KSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRmlsZUlucHV0Q29tcG9uZW50IHtcbiAgQElucHV0KCkgbWF4U2l6ZU1COiBudW1iZXJcbiAgQElucHV0KCkgdXBsb2FkUHJvZ3Jlc3M/OiBudW1iZXJcbiAgQElucHV0KCkgZGlzYWJsZWQ/ID0gZmFsc2VcbiAgQE91dHB1dCgpIGZpbGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxGaWxlPiA9IG5ldyBFdmVudEVtaXR0ZXIoKVxuICBAT3V0cHV0KCkgdXJsQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKVxuICBAT3V0cHV0KCkgdXBsb2FkQ2FuY2VsOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKClcblxuICBkcmFnRmlsZXNPdmVyID0gZmFsc2VcblxuICBnZXQgaXNVcGxvYWRJblByb2dyZXNzKCkge1xuICAgIHJldHVybiB0aGlzLnVwbG9hZFByb2dyZXNzICE9PSB1bmRlZmluZWRcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIGdldFByaW1hcnlUZXh0KCkge1xuICAgIGlmICh0aGlzLnVwbG9hZFByb2dyZXNzKSB7XG4gICAgICByZXR1cm4gbWFya2VyKCdpbnB1dC5maWxlLnVwbG9hZFByb2dyZXNzTGFiZWwnKVxuICAgIH1cbiAgICByZXR1cm4gbWFya2VyKCdpbnB1dC5maWxlLnNlbGVjdEZpbGVMYWJlbCcpXG4gIH1cblxuICBnZXRTZWNvbmRhcnlUZXh0KCkge1xuICAgIGlmICh0aGlzLnVwbG9hZFByb2dyZXNzKSB7XG4gICAgICByZXR1cm4gbWFya2VyKCdpbnB1dC5maWxlLnVwbG9hZFByb2dyZXNzQ2FuY2VsJylcbiAgICB9XG4gICAgcmV0dXJuIG1hcmtlcignaW5wdXQuZmlsZS5kcm9wRmlsZUxhYmVsJylcbiAgfVxuXG4gIGhhbmRsZURyYWdGaWxlc092ZXIoZHJhZ0ZpbGVzT3ZlcjogYm9vbGVhbikge1xuICAgIHRoaXMuZHJhZ0ZpbGVzT3ZlciA9IGRyYWdGaWxlc092ZXJcbiAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpXG4gIH1cblxuICBoYW5kbGVEcm9wRmlsZXMoZmlsZXM6IEZpbGVbXSkge1xuICAgIGlmIChmaWxlcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmZpbGVDaGFuZ2UuZW1pdChmaWxlc1swXSlcbiAgICB9XG4gIH1cblxuICBoYW5kbGVGaWxlSW5wdXQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgdGhpcy5oYW5kbGVEcm9wRmlsZXMoQXJyYXkuZnJvbSgoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLmZpbGVzKSlcbiAgfVxuXG4gIGhhbmRsZVVybENoYW5nZSh1cmw6IHN0cmluZyB8IG51bGwpIHtcbiAgICBpZiAoIXVybCkgcmV0dXJuXG4gICAgdGhpcy51cmxDaGFuZ2UuZW1pdCh1cmwpXG4gIH1cblxuICBoYW5kbGVTZWNvbmRhcnlUZXh0Q2xpY2soZXZlbnQ6IEV2ZW50KSB7XG4gICAgaWYgKHRoaXMudXBsb2FkUHJvZ3Jlc3MpIHtcbiAgICAgIHRoaXMuaGFuZGxlQ2FuY2VsKClcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICB9XG4gIH1cblxuICBoYW5kbGVDYW5jZWwoKSB7XG4gICAgdGhpcy51cGxvYWRDYW5jZWwuZW1pdCgpXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ3LWZ1bGwgZmxleCBmbGV4LWNvbCBnYXAtWzE2cHhdXCI+XG4gIDxsYWJlbFxuICAgIGduVWlGaWxlc0Ryb3BcbiAgICBjbGFzcz1cImZsZXgtMSBib3JkZXItMiBib3JkZXItZGFzaGVkIHJvdW5kZWQtbGcgcC02IGZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGdhcC00IHRyYW5zaXRpb24tY29sb3JzIGR1cmF0aW9uLTEwMFwiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgJ2JvcmRlci1wcmltYXJ5LWxpZ2h0ZXIgYmctcHJpbWFyeS13aGl0ZSc6IGRyYWdGaWxlc092ZXIsXG4gICAgICAnYm9yZGVyLWdyYXktMzAwJzogIWRyYWdGaWxlc092ZXIsXG4gICAgICAnY3Vyc29yLXBvaW50ZXIgaG92ZXI6Ym9yZGVyLWdyYXktNTAwJzogIWlzVXBsb2FkSW5Qcm9ncmVzcyAmJiAhZGlzYWJsZWQsXG4gICAgICAnY3Vyc29yLW5vdC1hbGxvd2VkJzogZGlzYWJsZWQsXG4gICAgfVwiXG4gICAgW2F0dHIudGFiaW5kZXhdPVwiaXNVcGxvYWRJblByb2dyZXNzIHx8IGRpc2FibGVkID8gbnVsbCA6IDBcIlxuICAgIChkcmFnRmlsZXNPdmVyKT1cImhhbmRsZURyYWdGaWxlc092ZXIoJGV2ZW50KVwiXG4gICAgKGRyb3BGaWxlcyk9XCJoYW5kbGVEcm9wRmlsZXMoJGV2ZW50KVwiXG4gICAgKGtleWRvd24uZW50ZXIpPVwiZmlsZUlucHV0LmNsaWNrKClcIlxuICA+XG4gICAgPGlucHV0XG4gICAgICAjZmlsZUlucHV0XG4gICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICBjbGFzcz1cImhpZGRlblwiXG4gICAgICAoY2hhbmdlKT1cImhhbmRsZUZpbGVJbnB1dCgkZXZlbnQpXCJcbiAgICAgIFtkaXNhYmxlZF09XCJpc1VwbG9hZEluUHJvZ3Jlc3MgfHwgZGlzYWJsZWRcIlxuICAgIC8+XG5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInctMTQgaC0xNCByb3VuZGVkLW1kIGJnLWdyYXktNTAgZ3JpZFwiXG4gICAgICAqbmdJZj1cIiFpc1VwbG9hZEluUHJvZ3Jlc3NcIlxuICAgID5cbiAgICAgIDxuZy1pY29uXG4gICAgICAgICpuZ0lmPVwiIWRyYWdGaWxlc092ZXJcIlxuICAgICAgICBjbGFzcz1cInBsYWNlLXNlbGYtY2VudGVyIHRleHQtcHJpbWFyeVwiXG4gICAgICAgIG5hbWU9XCJpY29ub2lyQ2xvdWRVcGxvYWRcIlxuICAgICAgPjwvbmctaWNvbj5cbiAgICAgIDxuZy1pY29uXG4gICAgICAgICpuZ0lmPVwiZHJhZ0ZpbGVzT3ZlclwiXG4gICAgICAgIGNsYXNzPVwicGxhY2Utc2VsZi1jZW50ZXIgdGV4dC1wcmltYXJ5XCJcbiAgICAgICAgbmFtZT1cImljb25vaXJGcmFtZVBsdXNJblwiXG4gICAgICA+PC9uZy1pY29uPlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwiaXNVcGxvYWRJblByb2dyZXNzXCJcbiAgICAgIGNsYXNzPVwidy0xNCBoLTE0IGdyaWQgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHJlbGF0aXZlXCJcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTEwMCBhYnNvbHV0ZVwiPlxuICAgICAgICA8bWF0LXByb2dyZXNzLXNwaW5uZXJcbiAgICAgICAgICBjbGFzcz1cInBsYWNlLXNlbGYtY2VudGVyXCJcbiAgICAgICAgICBbZGlhbWV0ZXJdPVwiNTZcIlxuICAgICAgICAgIG1vZGU9XCJkZXRlcm1pbmF0ZVwiXG4gICAgICAgICAgW3ZhbHVlXT1cIjEwMFwiXG4gICAgICAgID48L21hdC1wcm9ncmVzcy1zcGlubmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dC1wcmltYXJ5IGFic29sdXRlXCI+XG4gICAgICAgIDxtYXQtcHJvZ3Jlc3Mtc3Bpbm5lclxuICAgICAgICAgIGNsYXNzPVwicGxhY2Utc2VsZi1jZW50ZXJcIlxuICAgICAgICAgIFtkaWFtZXRlcl09XCI1NlwiXG4gICAgICAgICAgbW9kZT1cImRldGVybWluYXRlXCJcbiAgICAgICAgICBbdmFsdWVdPVwidXBsb2FkUHJvZ3Jlc3NcIlxuICAgICAgICA+PC9tYXQtcHJvZ3Jlc3Mtc3Bpbm5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXNtIHRleHQtbWFpbiBmb250LWJvbGRcIj57eyB1cGxvYWRQcm9ncmVzcyB9fSU8L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIGdhcC0xXCI+XG4gICAgICA8cCBjbGFzcz1cImZvbnQtbWVkaXVtXCI+XG4gICAgICAgIHt7IGdldFByaW1hcnlUZXh0KCkgfCB0cmFuc2xhdGU6IHsgc2l6ZU1COiBtYXhTaXplTUIudG9GaXhlZCgwKSB9IH19XG4gICAgICA8L3A+XG4gICAgICA8cFxuICAgICAgICBjbGFzcz1cInRleHQtc21cIlxuICAgICAgICBbY2xhc3NdPVwiXG4gICAgICAgICAgaXNVcGxvYWRJblByb2dyZXNzXG4gICAgICAgICAgICA/ICdmb250LWJvbGQgdGV4dC1wcmltYXJ5IGN1cnNvci1wb2ludGVyJ1xuICAgICAgICAgICAgOiAnZm9udC1tZWRpdW0gdGV4dC1ncmF5LTUwMCdcbiAgICAgICAgXCJcbiAgICAgICAgKGNsaWNrKT1cImhhbmRsZVNlY29uZGFyeVRleHRDbGljaygkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgICAge3sgZ2V0U2Vjb25kYXJ5VGV4dCgpIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L3A+XG4gICAgPC9kaXY+XG4gICAgPHAgY2xhc3M9XCJ3LWZ1bGwgZmxleCBmbGV4LXJvdyBpdGVtcy1jZW50ZXIganVzdGlmeS1zdHJldGNoIGdhcC1bMTZweF1cIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiYm9yZGVyLWIgYm9yZGVyLWdyYXktMzAwIGdyb3dcIj48L3NwYW4+XG4gICAgICA8c3BhbiBjbGFzcz1cInRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1ncmF5LTUwMCBvci1pbnB1dC11cmxcIiB0cmFuc2xhdGU+XG4gICAgICAgIGlucHV0LmZpbGUub3JJbnB1dFVybDwvc3BhblxuICAgICAgPlxuICAgICAgPHNwYW4gY2xhc3M9XCJib3JkZXItYiBib3JkZXItZ3JheS0zMDAgZ3Jvd1wiPjwvc3Bhbj5cbiAgICA8L3A+XG4gICAgPGduLXVpLXVybC1pbnB1dFxuICAgICAgY2xhc3M9XCJ3LWZ1bGxcIlxuICAgICAgW2Rpc2FibGVkXT1cImlzVXBsb2FkSW5Qcm9ncmVzcyB8fCBkaXNhYmxlZFwiXG4gICAgICAodXBsb2FkQ2xpY2spPVwiaGFuZGxlVXJsQ2hhbmdlKCRldmVudClcIlxuICAgID48L2duLXVpLXVybC1pbnB1dD5cbiAgPC9sYWJlbD5cbjwvZGl2PlxuIl19
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2lucHV0cy9zcmMvbGliL2ZpbGUtaW5wdXQvZmlsZS1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2lucHV0cy9zcmMvbGliL2ZpbGUtaW5wdXQvZmlsZS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFBO0FBQzdFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQUM1RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQTtBQUN2RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDckQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHlDQUF5QyxDQUFBO0FBQ2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFBO0FBQ3BFLE9BQU8sRUFDTCxlQUFlLEVBQ2YsWUFBWSxFQUNaLG9CQUFvQixHQUNyQixNQUFNLGdCQUFnQixDQUFBO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1CQUFtQixDQUFBOzs7OztBQTJCMUUsTUFBTSxPQUFPLGtCQUFrQjtJQVU3QixJQUFJLGtCQUFrQjtRQUNwQixPQUFPLElBQUksQ0FBQyxjQUFjLEtBQUssU0FBUyxDQUFBO0lBQzFDLENBQUM7SUFFRCxZQUFvQixFQUFxQjtRQUFyQixPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQVgvQixlQUFVLEdBQXVCLElBQUksWUFBWSxFQUFFLENBQUE7UUFDbkQsY0FBUyxHQUF5QixJQUFJLFlBQVksRUFBRSxDQUFBO1FBQ3BELGlCQUFZLEdBQXVCLElBQUksWUFBWSxFQUFFLENBQUE7UUFDdEQsYUFBUSxHQUFJLEtBQUssQ0FBQTtRQUUxQixrQkFBYSxHQUFHLEtBQUssQ0FBQTtJQU11QixDQUFDO0lBRTdDLGNBQWM7UUFDWixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN4QixPQUFPLE1BQU0sQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFBO1FBQ2pELENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQyxDQUFBO0lBQzdDLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN4QixPQUFPLE1BQU0sQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFBO1FBQ2xELENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFBO0lBQzNDLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxhQUFzQjtRQUN4QyxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQTtRQUNsQyxJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFBO0lBQ3hCLENBQUM7SUFFRCxlQUFlLENBQUMsS0FBYTtRQUMzQixJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDaEMsQ0FBQztJQUNILENBQUM7SUFFRCxlQUFlLENBQUMsS0FBWTtRQUMxQixJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUUsS0FBSyxDQUFDLE1BQTJCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtJQUM1RSxDQUFDO0lBRUQsZUFBZSxDQUFDLEdBQWtCO1FBQ2hDLElBQUksQ0FBQyxHQUFHO1lBQUUsT0FBTTtRQUNoQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUMxQixDQUFDO0lBRUQsd0JBQXdCLENBQUMsS0FBWTtRQUNuQyxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUE7WUFDbkIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFBO1FBQ3hCLENBQUM7SUFDSCxDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDMUIsQ0FBQzsrR0EzRFUsa0JBQWtCO21HQUFsQixrQkFBa0Isd1BBVmxCO1lBQ1QsWUFBWSxDQUFDO2dCQUNYLGtCQUFrQjtnQkFDbEIsa0JBQWtCO2FBQ25CLENBQUM7WUFDRixvQkFBb0IsQ0FBQztnQkFDbkIsSUFBSSxFQUFFLE9BQU87YUFDZCxDQUFDO1NBQ0gsMEJDN0NILDIvRkEwRkEsNkhEN0RJLFlBQVksaU9BRVosa0JBQWtCLG9HQUNsQix3QkFBd0Isa09BQ3hCLGVBQWUsbU9BQ2YsaUJBQWlCLHVMQUNqQixlQUFlOzs0RkFZTixrQkFBa0I7a0JBekI5QixTQUFTOytCQUNFLGtCQUFrQixtQkFHWCx1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLGVBQWU7d0JBQ2Ysa0JBQWtCO3dCQUNsQix3QkFBd0I7d0JBQ3hCLGVBQWU7d0JBQ2YsaUJBQWlCO3dCQUNqQixlQUFlO3FCQUNoQixhQUNVO3dCQUNULFlBQVksQ0FBQzs0QkFDWCxrQkFBa0I7NEJBQ2xCLGtCQUFrQjt5QkFDbkIsQ0FBQzt3QkFDRixvQkFBb0IsQ0FBQzs0QkFDbkIsSUFBSSxFQUFFLE9BQU87eUJBQ2QsQ0FBQztxQkFDSDtzRkFHUSxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0ksVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0UsUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJ1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnXG5pbXBvcnQgeyBGaWxlc0Ryb3BEaXJlY3RpdmUgfSBmcm9tICcuLi9maWxlcy1kcm9wL2ZpbGVzLWRyb3AuZGlyZWN0aXZlJ1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7IG1hcmtlciB9IGZyb20gJ0BiaWVzYmplcmcvbmd4LXRyYW5zbGF0ZS1leHRyYWN0LW1hcmtlcidcbmltcG9ydCB7IFVybElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vdXJsLWlucHV0L3VybC1pbnB1dC5jb21wb25lbnQnXG5pbXBvcnQge1xuICBOZ0ljb25Db21wb25lbnQsXG4gIHByb3ZpZGVJY29ucyxcbiAgcHJvdmlkZU5nSWNvbnNDb25maWcsXG59IGZyb20gJ0BuZy1pY29ucy9jb3JlJ1xuaW1wb3J0IHsgaWNvbm9pckNsb3VkVXBsb2FkLCBpY29ub2lyRnJhbWVQbHVzSW4gfSBmcm9tICdAbmctaWNvbnMvaWNvbm9pcidcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktZmlsZS1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9maWxlLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmlsZS1pbnB1dC5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBGaWxlc0Ryb3BEaXJlY3RpdmUsXG4gICAgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBVcmxJbnB1dENvbXBvbmVudCxcbiAgICBOZ0ljb25Db21wb25lbnQsXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHByb3ZpZGVJY29ucyh7XG4gICAgICBpY29ub2lyQ2xvdWRVcGxvYWQsXG4gICAgICBpY29ub2lyRnJhbWVQbHVzSW4sXG4gICAgfSksXG4gICAgcHJvdmlkZU5nSWNvbnNDb25maWcoe1xuICAgICAgc2l6ZTogJzEuNWVtJyxcbiAgICB9KSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRmlsZUlucHV0Q29tcG9uZW50IHtcbiAgQElucHV0KCkgbWF4U2l6ZU1COiBudW1iZXJcbiAgQElucHV0KCkgdXBsb2FkUHJvZ3Jlc3M/OiBudW1iZXJcbiAgQE91dHB1dCgpIGZpbGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxGaWxlPiA9IG5ldyBFdmVudEVtaXR0ZXIoKVxuICBAT3V0cHV0KCkgdXJsQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKVxuICBAT3V0cHV0KCkgdXBsb2FkQ2FuY2VsOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKClcbiAgQElucHV0KCkgZGlzYWJsZWQ/ID0gZmFsc2VcblxuICBkcmFnRmlsZXNPdmVyID0gZmFsc2VcblxuICBnZXQgaXNVcGxvYWRJblByb2dyZXNzKCkge1xuICAgIHJldHVybiB0aGlzLnVwbG9hZFByb2dyZXNzICE9PSB1bmRlZmluZWRcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIGdldFByaW1hcnlUZXh0KCkge1xuICAgIGlmICh0aGlzLnVwbG9hZFByb2dyZXNzKSB7XG4gICAgICByZXR1cm4gbWFya2VyKCdpbnB1dC5maWxlLnVwbG9hZFByb2dyZXNzTGFiZWwnKVxuICAgIH1cbiAgICByZXR1cm4gbWFya2VyKCdpbnB1dC5maWxlLnNlbGVjdEZpbGVMYWJlbCcpXG4gIH1cblxuICBnZXRTZWNvbmRhcnlUZXh0KCkge1xuICAgIGlmICh0aGlzLnVwbG9hZFByb2dyZXNzKSB7XG4gICAgICByZXR1cm4gbWFya2VyKCdpbnB1dC5maWxlLnVwbG9hZFByb2dyZXNzQ2FuY2VsJylcbiAgICB9XG4gICAgcmV0dXJuIG1hcmtlcignaW5wdXQuZmlsZS5kcm9wRmlsZUxhYmVsJylcbiAgfVxuXG4gIGhhbmRsZURyYWdGaWxlc092ZXIoZHJhZ0ZpbGVzT3ZlcjogYm9vbGVhbikge1xuICAgIHRoaXMuZHJhZ0ZpbGVzT3ZlciA9IGRyYWdGaWxlc092ZXJcbiAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpXG4gIH1cblxuICBoYW5kbGVEcm9wRmlsZXMoZmlsZXM6IEZpbGVbXSkge1xuICAgIGlmIChmaWxlcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmZpbGVDaGFuZ2UuZW1pdChmaWxlc1swXSlcbiAgICB9XG4gIH1cblxuICBoYW5kbGVGaWxlSW5wdXQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgdGhpcy5oYW5kbGVEcm9wRmlsZXMoQXJyYXkuZnJvbSgoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLmZpbGVzKSlcbiAgfVxuXG4gIGhhbmRsZVVybENoYW5nZSh1cmw6IHN0cmluZyB8IG51bGwpIHtcbiAgICBpZiAoIXVybCkgcmV0dXJuXG4gICAgdGhpcy51cmxDaGFuZ2UuZW1pdCh1cmwpXG4gIH1cblxuICBoYW5kbGVTZWNvbmRhcnlUZXh0Q2xpY2soZXZlbnQ6IEV2ZW50KSB7XG4gICAgaWYgKHRoaXMudXBsb2FkUHJvZ3Jlc3MpIHtcbiAgICAgIHRoaXMuaGFuZGxlQ2FuY2VsKClcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICB9XG4gIH1cblxuICBoYW5kbGVDYW5jZWwoKSB7XG4gICAgdGhpcy51cGxvYWRDYW5jZWwuZW1pdCgpXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ3LWZ1bGwgZmxleCBmbGV4LWNvbCBnYXAtWzE2cHhdXCI+XG4gIDxsYWJlbFxuICAgIGduVWlGaWxlc0Ryb3BcbiAgICBjbGFzcz1cImZsZXgtMSBib3JkZXItMiBib3JkZXItZGFzaGVkIHJvdW5kZWQtbGcgcC02IGZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGdhcC00IHRyYW5zaXRpb24tY29sb3JzIGR1cmF0aW9uLTEwMFwiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgJ2JvcmRlci1wcmltYXJ5LWxpZ2h0ZXIgYmctcHJpbWFyeS13aGl0ZSc6IGRyYWdGaWxlc092ZXIsXG4gICAgICAnYm9yZGVyLWdyYXktMzAwJzogIWRyYWdGaWxlc092ZXIsXG4gICAgICAnY3Vyc29yLXBvaW50ZXIgaG92ZXI6Ym9yZGVyLWdyYXktNTAwJzogIWlzVXBsb2FkSW5Qcm9ncmVzcyAmJiAhZGlzYWJsZWQsXG4gICAgICAnY3Vyc29yLW5vdC1hbGxvd2VkJzogZGlzYWJsZWQsXG4gICAgfVwiXG4gICAgW2F0dHIudGFiaW5kZXhdPVwiaXNVcGxvYWRJblByb2dyZXNzIHx8IGRpc2FibGVkID8gbnVsbCA6IDBcIlxuICAgIChkcmFnRmlsZXNPdmVyKT1cImhhbmRsZURyYWdGaWxlc092ZXIoJGV2ZW50KVwiXG4gICAgKGRyb3BGaWxlcyk9XCJoYW5kbGVEcm9wRmlsZXMoJGV2ZW50KVwiXG4gICAgKGtleWRvd24uZW50ZXIpPVwiZmlsZUlucHV0LmNsaWNrKClcIlxuICA+XG4gICAgPGlucHV0XG4gICAgICAjZmlsZUlucHV0XG4gICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICBjbGFzcz1cImhpZGRlblwiXG4gICAgICAoY2hhbmdlKT1cImhhbmRsZUZpbGVJbnB1dCgkZXZlbnQpXCJcbiAgICAgIFtkaXNhYmxlZF09XCJpc1VwbG9hZEluUHJvZ3Jlc3MgfHwgZGlzYWJsZWRcIlxuICAgIC8+XG5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInctMTQgaC0xNCByb3VuZGVkLW1kIGJnLWdyYXktNTAgZ3JpZFwiXG4gICAgICAqbmdJZj1cIiFpc1VwbG9hZEluUHJvZ3Jlc3NcIlxuICAgID5cbiAgICAgIDxuZy1pY29uXG4gICAgICAgICpuZ0lmPVwiIWRyYWdGaWxlc092ZXJcIlxuICAgICAgICBjbGFzcz1cInBsYWNlLXNlbGYtY2VudGVyIHRleHQtcHJpbWFyeVwiXG4gICAgICAgIG5hbWU9XCJpY29ub2lyQ2xvdWRVcGxvYWRcIlxuICAgICAgPjwvbmctaWNvbj5cbiAgICAgIDxuZy1pY29uXG4gICAgICAgICpuZ0lmPVwiZHJhZ0ZpbGVzT3ZlclwiXG4gICAgICAgIGNsYXNzPVwicGxhY2Utc2VsZi1jZW50ZXIgdGV4dC1wcmltYXJ5XCJcbiAgICAgICAgbmFtZT1cImljb25vaXJGcmFtZVBsdXNJblwiXG4gICAgICA+PC9uZy1pY29uPlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwiaXNVcGxvYWRJblByb2dyZXNzXCJcbiAgICAgIGNsYXNzPVwidy0xNCBoLTE0IGdyaWQgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHJlbGF0aXZlXCJcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTEwMCBhYnNvbHV0ZVwiPlxuICAgICAgICA8bWF0LXByb2dyZXNzLXNwaW5uZXJcbiAgICAgICAgICBjbGFzcz1cInBsYWNlLXNlbGYtY2VudGVyXCJcbiAgICAgICAgICBbZGlhbWV0ZXJdPVwiNTZcIlxuICAgICAgICAgIG1vZGU9XCJkZXRlcm1pbmF0ZVwiXG4gICAgICAgICAgW3ZhbHVlXT1cIjEwMFwiXG4gICAgICAgID48L21hdC1wcm9ncmVzcy1zcGlubmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dC1wcmltYXJ5IGFic29sdXRlXCI+XG4gICAgICAgIDxtYXQtcHJvZ3Jlc3Mtc3Bpbm5lclxuICAgICAgICAgIGNsYXNzPVwicGxhY2Utc2VsZi1jZW50ZXJcIlxuICAgICAgICAgIFtkaWFtZXRlcl09XCI1NlwiXG4gICAgICAgICAgbW9kZT1cImRldGVybWluYXRlXCJcbiAgICAgICAgICBbdmFsdWVdPVwidXBsb2FkUHJvZ3Jlc3NcIlxuICAgICAgICA+PC9tYXQtcHJvZ3Jlc3Mtc3Bpbm5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXNtIHRleHQtbWFpbiBmb250LWJvbGRcIj57eyB1cGxvYWRQcm9ncmVzcyB9fSU8L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIGdhcC0xXCI+XG4gICAgICA8cCBjbGFzcz1cImZvbnQtbWVkaXVtXCI+XG4gICAgICAgIHt7IGdldFByaW1hcnlUZXh0KCkgfCB0cmFuc2xhdGU6IHsgc2l6ZU1COiBtYXhTaXplTUIudG9GaXhlZCgwKSB9IH19XG4gICAgICA8L3A+XG4gICAgICA8cFxuICAgICAgICBjbGFzcz1cInRleHQtc21cIlxuICAgICAgICBbY2xhc3NdPVwiXG4gICAgICAgICAgaXNVcGxvYWRJblByb2dyZXNzXG4gICAgICAgICAgICA/ICdmb250LWJvbGQgdGV4dC1wcmltYXJ5IGN1cnNvci1wb2ludGVyJ1xuICAgICAgICAgICAgOiAnZm9udC1tZWRpdW0gdGV4dC1ncmF5LTUwMCdcbiAgICAgICAgXCJcbiAgICAgICAgKGNsaWNrKT1cImhhbmRsZVNlY29uZGFyeVRleHRDbGljaygkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgICAge3sgZ2V0U2Vjb25kYXJ5VGV4dCgpIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L3A+XG4gICAgPC9kaXY+XG4gICAgPHAgY2xhc3M9XCJ3LWZ1bGwgZmxleCBmbGV4LXJvdyBpdGVtcy1jZW50ZXIganVzdGlmeS1zdHJldGNoIGdhcC1bMTZweF1cIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiYm9yZGVyLWIgYm9yZGVyLWdyYXktMzAwIGdyb3dcIj48L3NwYW4+XG4gICAgICA8c3BhbiBjbGFzcz1cInRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1ncmF5LTUwMCBvci1pbnB1dC11cmxcIiB0cmFuc2xhdGU+XG4gICAgICAgIGlucHV0LmZpbGUub3JJbnB1dFVybDwvc3BhblxuICAgICAgPlxuICAgICAgPHNwYW4gY2xhc3M9XCJib3JkZXItYiBib3JkZXItZ3JheS0zMDAgZ3Jvd1wiPjwvc3Bhbj5cbiAgICA8L3A+XG4gICAgPGduLXVpLXVybC1pbnB1dFxuICAgICAgY2xhc3M9XCJ3LWZ1bGxcIlxuICAgICAgW2Rpc2FibGVkXT1cImlzVXBsb2FkSW5Qcm9ncmVzcyB8fCBkaXNhYmxlZFwiXG4gICAgICAodXBsb2FkQ2xpY2spPVwiaGFuZGxlVXJsQ2hhbmdlKCRldmVudClcIlxuICAgID48L2duLXVpLXVybC1pbnB1dD5cbiAgPC9sYWJlbD5cbjwvZGl2PlxuIl19
@@ -1,13 +1,16 @@
1
1
  import { ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, Input, Output, QueryList, } from '@angular/core';
2
2
  import { InteractiveTableColumnComponent } from './interactive-table-column/interactive-table-column.component';
3
3
  import { CommonModule } from '@angular/common';
4
- import { NgIconComponent, provideIcons, } from '@ng-icons/core';
4
+ import { NgIconComponent, provideIcons } from '@ng-icons/core';
5
5
  import { iconoirNavArrowDown, iconoirNavArrowUp } from '@ng-icons/iconoir';
6
+ import { TranslateModule } from '@ngx-translate/core';
6
7
  import * as i0 from "@angular/core";
7
8
  import * as i1 from "@angular/common";
9
+ import * as i2 from "@ngx-translate/core";
8
10
  export class InteractiveTableComponent {
9
11
  constructor() {
10
12
  this.items = [];
13
+ this.isDraftPage = false;
11
14
  this.itemClick = new EventEmitter();
12
15
  }
13
16
  get gridStyle() {
@@ -25,17 +28,19 @@ export class InteractiveTableComponent {
25
28
  this.itemClick.emit(item);
26
29
  }
27
30
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InteractiveTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
28
- 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" }, 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 >\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 group-hover:text-main group-hover:bg-gray-50 border-b border-gray-200\"\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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
31
+ 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 [title]=\"\n !item.extras?.edit && !isDraftPage\n ? ('editor.record.lock.reason' | translate)\n : ''\n \"\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,\n 'group-hover:text-main group-hover:bg-gray-50':\n item.extras?.edit || isDraftPage,\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 }); }
29
32
  }
30
33
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InteractiveTableComponent, decorators: [{
31
34
  type: Component,
32
- args: [{ selector: 'gn-ui-interactive-table', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, InteractiveTableColumnComponent, NgIconComponent], 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 >\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 group-hover:text-main group-hover:bg-gray-50 border-b border-gray-200\"\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"] }]
35
+ 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 [title]=\"\n !item.extras?.edit && !isDraftPage\n ? ('editor.record.lock.reason' | translate)\n : ''\n \"\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,\n 'group-hover:text-main group-hover:bg-gray-50':\n item.extras?.edit || isDraftPage,\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"] }]
33
36
  }], propDecorators: { columns: [{
34
37
  type: ContentChildren,
35
38
  args: [InteractiveTableColumnComponent]
36
39
  }], items: [{
37
40
  type: Input
41
+ }], isDraftPage: [{
42
+ type: Input
38
43
  }], itemClick: [{
39
44
  type: Output
40
45
  }] } });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3RpdmUtdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9sYXlvdXQvc3JjL2xpYi9pbnRlcmFjdGl2ZS10YWJsZS9pbnRlcmFjdGl2ZS10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2xheW91dC9zcmMvbGliL2ludGVyYWN0aXZlLXRhYmxlL2ludGVyYWN0aXZlLXRhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULGVBQWUsRUFDZixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sK0RBQStELENBQUE7QUFDL0csT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFDTCxlQUFlLEVBQ2YsWUFBWSxHQUViLE1BQU0sZ0JBQWdCLENBQUE7QUFDdkIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUE7OztBQVcxRSxNQUFNLE9BQU8seUJBQXlCO0lBVHRDO1FBYVcsVUFBSyxHQUFjLEVBQUUsQ0FBQTtRQUNwQixjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQTtLQW1CbEQ7SUFqQkMsSUFBSSxTQUFTO1FBQ1gsT0FBTztZQUNMLHVCQUF1QixFQUFFLElBQUksQ0FBQyxPQUFPO2lCQUNsQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUNkLE1BQU0sQ0FBQyxLQUFLO2dCQUNWLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSztnQkFDZCxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUk7b0JBQ1gsQ0FBQyxDQUFDLGlCQUFpQjtvQkFDbkIsQ0FBQyxDQUFDLHlCQUF5QixDQUNoQztpQkFDQSxJQUFJLENBQUMsR0FBRyxDQUFDO1NBQ2IsQ0FBQTtJQUNILENBQUM7SUFFRCxjQUFjLENBQUMsSUFBYTtRQUMxQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUMzQixDQUFDOytHQXZCVSx5QkFBeUI7bUdBQXpCLHlCQUF5Qix1SUFGekIsQ0FBQyxZQUFZLENBQUMsRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxDQUFDLENBQUMsa0RBR3BELCtCQUErQiw2QkM1QmxELHcvREF1REEsMlNEL0JZLFlBQVksMGxCQUFtQyxlQUFlOzs0RkFHN0QseUJBQXlCO2tCQVRyQyxTQUFTOytCQUNFLHlCQUF5QixtQkFHbEIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsK0JBQStCLEVBQUUsZUFBZSxDQUFDLGFBQzlELENBQUMsWUFBWSxDQUFDLEVBQUUsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDOzhCQUlyRSxPQUFPO3NCQUROLGVBQWU7dUJBQUMsK0JBQStCO2dCQUd2QyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0ksU0FBUztzQkFBbEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBJbnRlcmFjdGl2ZVRhYmxlQ29sdW1uQ29tcG9uZW50IH0gZnJvbSAnLi9pbnRlcmFjdGl2ZS10YWJsZS1jb2x1bW4vaW50ZXJhY3RpdmUtdGFibGUtY29sdW1uLmNvbXBvbmVudCdcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7XG4gIE5nSWNvbkNvbXBvbmVudCxcbiAgcHJvdmlkZUljb25zLFxuICBwcm92aWRlTmdJY29uc0NvbmZpZyxcbn0gZnJvbSAnQG5nLWljb25zL2NvcmUnXG5pbXBvcnQgeyBpY29ub2lyTmF2QXJyb3dEb3duLCBpY29ub2lyTmF2QXJyb3dVcCB9IGZyb20gJ0BuZy1pY29ucy9pY29ub2lyJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1pbnRlcmFjdGl2ZS10YWJsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnRlcmFjdGl2ZS10YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ludGVyYWN0aXZlLXRhYmxlLmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEludGVyYWN0aXZlVGFibGVDb2x1bW5Db21wb25lbnQsIE5nSWNvbkNvbXBvbmVudF0sXG4gIHByb3ZpZGVyczogW3Byb3ZpZGVJY29ucyh7IGljb25vaXJOYXZBcnJvd0Rvd24sIGljb25vaXJOYXZBcnJvd1VwIH0pXSxcbn0pXG5leHBvcnQgY2xhc3MgSW50ZXJhY3RpdmVUYWJsZUNvbXBvbmVudCB7XG4gIEBDb250ZW50Q2hpbGRyZW4oSW50ZXJhY3RpdmVUYWJsZUNvbHVtbkNvbXBvbmVudClcbiAgY29sdW1uczogUXVlcnlMaXN0PEludGVyYWN0aXZlVGFibGVDb2x1bW5Db21wb25lbnQ+XG5cbiAgQElucHV0KCkgaXRlbXM6IHVua25vd25bXSA9IFtdXG4gIEBPdXRwdXQoKSBpdGVtQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHVua25vd24+KClcblxuICBnZXQgZ3JpZFN0eWxlKCkge1xuICAgIHJldHVybiB7XG4gICAgICAnZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zJzogdGhpcy5jb2x1bW5zXG4gICAgICAgIC5tYXAoKGNvbHVtbikgPT5cbiAgICAgICAgICBjb2x1bW4ud2lkdGhcbiAgICAgICAgICAgID8gY29sdW1uLndpZHRoXG4gICAgICAgICAgICA6IGNvbHVtbi5ncm93XG4gICAgICAgICAgICAgID8gYG1pbm1heCgwcHgsMWZyKWBcbiAgICAgICAgICAgICAgOiBgbWlubWF4KDBweCxtYXgtY29udGVudClgXG4gICAgICAgIClcbiAgICAgICAgLmpvaW4oJyAnKSxcbiAgICB9XG4gIH1cblxuICBoYW5kbGVSb3dDbGljayhpdGVtOiB1bmtub3duKSB7XG4gICAgdGhpcy5pdGVtQ2xpY2suZW1pdChpdGVtKVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZ3JpZCB3LWZ1bGxcIiBbbmdTdHlsZV09XCJncmlkU3R5bGVcIj5cbiAgPGRpdiBjbGFzcz1cImNvbnRlbnRzIHctZnVsbFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb2x1bW5zXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgICpuZ0lmPVwiY29sdW1uLnNvcnRhYmxlXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwidGFibGUtaGVhZGVyLWNlbGwgZ2FwLTFcIlxuICAgICAgICAoY2xpY2spPVwiY29sdW1uLnNvcnRhYmxlICYmIGNvbHVtbi5oYW5kbGVTb3J0Q2hhbmdlKClcIlxuICAgICAgPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29sdW1uLmhlYWRlclwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic29ydC1idXR0b24gZmxleCBmbGV4LWNvbFwiICpuZ0lmPVwiY29sdW1uLnNvcnRhYmxlXCI+XG4gICAgICAgICAgPG5nLWljb25cbiAgICAgICAgICAgIGNsYXNzPVwidGV4dC1ncmF5LTYwMCAtbWItMlwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICd0ZXh0LW1haW4nOiBjb2x1bW4uYWN0aXZlU29ydCA9PT0gJ2FzYycgfVwiXG4gICAgICAgICAgICBuYW1lPVwiaWNvbm9pck5hdkFycm93VXBcIlxuICAgICAgICAgID48L25nLWljb24+XG4gICAgICAgICAgPG5nLWljb25cbiAgICAgICAgICAgIGNsYXNzPVwidGV4dC1ncmF5LTYwMFwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICd0ZXh0LW1haW4nOiBjb2x1bW4uYWN0aXZlU29ydCA9PT0gJ2Rlc2MnIH1cIlxuICAgICAgICAgICAgbmFtZT1cImljb25vaXJOYXZBcnJvd0Rvd25cIlxuICAgICAgICAgID48L25nLWljb24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9idXR0b24+XG4gICAgICA8ZGl2ICpuZ0lmPVwiIWNvbHVtbi5zb3J0YWJsZVwiIGNsYXNzPVwidGFibGUtaGVhZGVyLWNlbGxcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbHVtbi5oZWFkZXJcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiY29udGVudHMgdGV4dC1ncmF5LTkwMCBjdXJzb3ItcG9pbnRlciBncm91cFwiXG4gICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXNcIlxuICAgIChjbGljayk9XCJoYW5kbGVSb3dDbGljayhpdGVtKVwiXG4gICAgZGF0YS1jeT1cInRhYmxlLXJvd1wiXG4gID5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInJlbGF0aXZlIGgtMFwiXG4gICAgICBbbmdTdHlsZV09XCJ7ICdncmlkLWNvbHVtbic6ICdzcGFuICcgKyB0aGlzLmNvbHVtbnMubGVuZ3RoIH1cIlxuICAgID5cbiAgICAgIDwhLS0gdGhpcyBlbGVtZW50IGlzIG9ubHkgdXNlZCBpbiBrZXlib2FyZCBuYXZpZ2F0aW9uIC0tPlxuICAgICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJhYnNvbHV0ZSBpbnNldC14LTAgaC1bNTBweF0gYmctdHJhbnNwYXJlbnQgcG9pbnRlci1ldmVudHMtbm9uZVwiXG4gICAgICA+PC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnNcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJ0YWJsZS1yb3ctY2VsbCBweC0zIHB5LTEuNSBmbGV4IGl0ZW1zLWNlbnRlciBiZy13aGl0ZSB0cmFuc2l0aW9uLWNvbG9ycyBkdXJhdGlvbi03NSB0cnVuY2F0ZSBncm91cC1ob3Zlcjp0ZXh0LW1haW4gZ3JvdXAtaG92ZXI6YmctZ3JheS01MCBib3JkZXItYiBib3JkZXItZ3JheS0yMDBcIlxuICAgICAgPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb2x1bW4uY2VsbDsgY29udGV4dDogeyAkaW1wbGljaXQ6IGl0ZW0gfVwiXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3RpdmUtdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9sYXlvdXQvc3JjL2xpYi9pbnRlcmFjdGl2ZS10YWJsZS9pbnRlcmFjdGl2ZS10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2xheW91dC9zcmMvbGliL2ludGVyYWN0aXZlLXRhYmxlL2ludGVyYWN0aXZlLXRhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULGVBQWUsRUFDZixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sK0RBQStELENBQUE7QUFDL0csT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDOUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDMUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFBOzs7O0FBV3JELE1BQU0sT0FBTyx5QkFBeUI7SUFUdEM7UUFhVyxVQUFLLEdBQWMsRUFBRSxDQUFBO1FBQ3JCLGdCQUFXLEdBQUcsS0FBSyxDQUFBO1FBQ2xCLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFBO0tBbUJsRDtJQWpCQyxJQUFJLFNBQVM7UUFDWCxPQUFPO1lBQ0wsdUJBQXVCLEVBQUUsSUFBSSxDQUFDLE9BQU87aUJBQ2xDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQ2QsTUFBTSxDQUFDLEtBQUs7Z0JBQ1YsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLO2dCQUNkLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSTtvQkFDWCxDQUFDLENBQUMsaUJBQWlCO29CQUNuQixDQUFDLENBQUMseUJBQXlCLENBQ2hDO2lCQUNBLElBQUksQ0FBQyxHQUFHLENBQUM7U0FDYixDQUFBO0lBQ0gsQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUFhO1FBQzFCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQzNCLENBQUM7K0dBeEJVLHlCQUF5QjttR0FBekIseUJBQXlCLG1LQUZ6QixDQUFDLFlBQVksQ0FBQyxFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxrREFHcEQsK0JBQStCLDZCQ3pCbEQsOHpFQWtFQSwyU0Q3Q1ksWUFBWSwwbEJBQUUsZUFBZSw0R0FBRSxlQUFlOzs0RkFHN0MseUJBQXlCO2tCQVRyQyxTQUFTOytCQUNFLHlCQUF5QixtQkFHbEIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsZUFBZSxFQUFFLGVBQWUsQ0FBQyxhQUM5QyxDQUFDLFlBQVksQ0FBQyxFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLENBQUMsQ0FBQzs4QkFJckUsT0FBTztzQkFETixlQUFlO3VCQUFDLCtCQUErQjtnQkFHdkMsS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0ksU0FBUztzQkFBbEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBJbnRlcmFjdGl2ZVRhYmxlQ29sdW1uQ29tcG9uZW50IH0gZnJvbSAnLi9pbnRlcmFjdGl2ZS10YWJsZS1jb2x1bW4vaW50ZXJhY3RpdmUtdGFibGUtY29sdW1uLmNvbXBvbmVudCdcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IE5nSWNvbkNvbXBvbmVudCwgcHJvdmlkZUljb25zIH0gZnJvbSAnQG5nLWljb25zL2NvcmUnXG5pbXBvcnQgeyBpY29ub2lyTmF2QXJyb3dEb3duLCBpY29ub2lyTmF2QXJyb3dVcCB9IGZyb20gJ0BuZy1pY29ucy9pY29ub2lyJ1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktaW50ZXJhY3RpdmUtdGFibGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vaW50ZXJhY3RpdmUtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pbnRlcmFjdGl2ZS10YWJsZS5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBOZ0ljb25Db21wb25lbnQsIFRyYW5zbGF0ZU1vZHVsZV0sXG4gIHByb3ZpZGVyczogW3Byb3ZpZGVJY29ucyh7IGljb25vaXJOYXZBcnJvd0Rvd24sIGljb25vaXJOYXZBcnJvd1VwIH0pXSxcbn0pXG5leHBvcnQgY2xhc3MgSW50ZXJhY3RpdmVUYWJsZUNvbXBvbmVudCB7XG4gIEBDb250ZW50Q2hpbGRyZW4oSW50ZXJhY3RpdmVUYWJsZUNvbHVtbkNvbXBvbmVudClcbiAgY29sdW1uczogUXVlcnlMaXN0PEludGVyYWN0aXZlVGFibGVDb2x1bW5Db21wb25lbnQ+XG5cbiAgQElucHV0KCkgaXRlbXM6IHVua25vd25bXSA9IFtdXG4gIEBJbnB1dCgpIGlzRHJhZnRQYWdlID0gZmFsc2VcbiAgQE91dHB1dCgpIGl0ZW1DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8dW5rbm93bj4oKVxuXG4gIGdldCBncmlkU3R5bGUoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICdncmlkLXRlbXBsYXRlLWNvbHVtbnMnOiB0aGlzLmNvbHVtbnNcbiAgICAgICAgLm1hcCgoY29sdW1uKSA9PlxuICAgICAgICAgIGNvbHVtbi53aWR0aFxuICAgICAgICAgICAgPyBjb2x1bW4ud2lkdGhcbiAgICAgICAgICAgIDogY29sdW1uLmdyb3dcbiAgICAgICAgICAgICAgPyBgbWlubWF4KDBweCwxZnIpYFxuICAgICAgICAgICAgICA6IGBtaW5tYXgoMHB4LG1heC1jb250ZW50KWBcbiAgICAgICAgKVxuICAgICAgICAuam9pbignICcpLFxuICAgIH1cbiAgfVxuXG4gIGhhbmRsZVJvd0NsaWNrKGl0ZW06IHVua25vd24pIHtcbiAgICB0aGlzLml0ZW1DbGljay5lbWl0KGl0ZW0pXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJncmlkIHctZnVsbFwiIFtuZ1N0eWxlXT1cImdyaWRTdHlsZVwiPlxuICA8ZGl2IGNsYXNzPVwiY29udGVudHMgdy1mdWxsXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnNcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgKm5nSWY9XCJjb2x1bW4uc29ydGFibGVcIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJ0YWJsZS1oZWFkZXItY2VsbCBnYXAtMVwiXG4gICAgICAgIChjbGljayk9XCJjb2x1bW4uc29ydGFibGUgJiYgY29sdW1uLmhhbmRsZVNvcnRDaGFuZ2UoKVwiXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb2x1bW4uaGVhZGVyXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzb3J0LWJ1dHRvbiBmbGV4IGZsZXgtY29sXCIgKm5nSWY9XCJjb2x1bW4uc29ydGFibGVcIj5cbiAgICAgICAgICA8bmctaWNvblxuICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LWdyYXktNjAwIC1tYi0yXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ3RleHQtbWFpbic6IGNvbHVtbi5hY3RpdmVTb3J0ID09PSAnYXNjJyB9XCJcbiAgICAgICAgICAgIG5hbWU9XCJpY29ub2lyTmF2QXJyb3dVcFwiXG4gICAgICAgICAgPjwvbmctaWNvbj5cbiAgICAgICAgICA8bmctaWNvblxuICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LWdyYXktNjAwXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ3RleHQtbWFpbic6IGNvbHVtbi5hY3RpdmVTb3J0ID09PSAnZGVzYycgfVwiXG4gICAgICAgICAgICBuYW1lPVwiaWNvbm9pck5hdkFycm93RG93blwiXG4gICAgICAgICAgPjwvbmctaWNvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxkaXYgKm5nSWY9XCIhY29sdW1uLnNvcnRhYmxlXCIgY2xhc3M9XCJ0YWJsZS1oZWFkZXItY2VsbFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29sdW1uLmhlYWRlclwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuICA8ZGl2XG4gICAgY2xhc3M9XCJjb250ZW50cyB0ZXh0LWdyYXktOTAwIGN1cnNvci1wb2ludGVyIGdyb3VwXCJcbiAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1wiXG4gICAgKGNsaWNrKT1cImhhbmRsZVJvd0NsaWNrKGl0ZW0pXCJcbiAgICBkYXRhLWN5PVwidGFibGUtcm93XCJcbiAgICBbdGl0bGVdPVwiXG4gICAgICAhaXRlbS5leHRyYXM/LmVkaXQgJiYgIWlzRHJhZnRQYWdlXG4gICAgICAgID8gKCdlZGl0b3IucmVjb3JkLmxvY2sucmVhc29uJyB8IHRyYW5zbGF0ZSlcbiAgICAgICAgOiAnJ1xuICAgIFwiXG4gID5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInJlbGF0aXZlIGgtMFwiXG4gICAgICBbbmdTdHlsZV09XCJ7ICdncmlkLWNvbHVtbic6ICdzcGFuICcgKyB0aGlzLmNvbHVtbnMubGVuZ3RoIH1cIlxuICAgID5cbiAgICAgIDwhLS0gdGhpcyBlbGVtZW50IGlzIG9ubHkgdXNlZCBpbiBrZXlib2FyZCBuYXZpZ2F0aW9uIC0tPlxuICAgICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJhYnNvbHV0ZSBpbnNldC14LTAgaC1bNTBweF0gYmctdHJhbnNwYXJlbnQgcG9pbnRlci1ldmVudHMtbm9uZVwiXG4gICAgICA+PC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnNcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJ0YWJsZS1yb3ctY2VsbCBweC0zIHB5LTEuNSBmbGV4IGl0ZW1zLWNlbnRlciBiZy13aGl0ZSB0cmFuc2l0aW9uLWNvbG9ycyBkdXJhdGlvbi03NSB0cnVuY2F0ZSBib3JkZXItYiBib3JkZXItZ3JheS0yMDBcIlxuICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgJ3RleHQtcHVycGxlLWxpZ2h0IGN1cnNvci1kZWZhdWx0JzpcbiAgICAgICAgICAgICFpdGVtLmV4dHJhcz8uZWRpdCAmJiAhaXNEcmFmdFBhZ2UsXG4gICAgICAgICAgJ2dyb3VwLWhvdmVyOnRleHQtbWFpbiBncm91cC1ob3ZlcjpiZy1ncmF5LTUwJzpcbiAgICAgICAgICAgIGl0ZW0uZXh0cmFzPy5lZGl0IHx8IGlzRHJhZnRQYWdlLFxuICAgICAgICB9XCJcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29sdW1uLmNlbGw7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtIH1cIlxuICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -6,8 +6,8 @@ import { formatUserInfo, getBadgeColor, getFileFormat, getFormatPriority, } from
6
6
  import { TranslateModule } from '@ngx-translate/core';
7
7
  import { ActionMenuComponent } from './action-menu/action-menu.component';
8
8
  import { NgIconComponent, provideIcons } from '@ng-icons/core';
9
- import { iconoirUser } from '@ng-icons/iconoir';
10
- import { CdkConnectedOverlay, CdkOverlayOrigin, Overlay, } from '@angular/cdk/overlay';
9
+ import { iconoirUser, iconoirLock } from '@ng-icons/iconoir';
10
+ import { CdkOverlayOrigin, Overlay, } from '@angular/cdk/overlay';
11
11
  import { TemplatePortal } from '@angular/cdk/portal';
12
12
  import { matMoreVert } from '@ng-icons/material-icons/baseline';
13
13
  import * as i0 from "@angular/core";
@@ -27,8 +27,8 @@ export class ResultsTableComponent {
27
27
  this.sortOrder = null;
28
28
  this.hasDraft = () => false;
29
29
  this.canDuplicate = () => true;
30
- this.isUnsavedDraft = () => true;
31
30
  this.canDelete = () => true;
31
+ this.isDraftPage = false;
32
32
  // emits the column (field) as well as the order
33
33
  this.sortByChange = new EventEmitter();
34
34
  this.recordClick = new EventEmitter();
@@ -102,7 +102,8 @@ export class ResultsTableComponent {
102
102
  return getBadgeColor(format);
103
103
  }
104
104
  handleRecordClick(item) {
105
- this.recordClick.emit(item);
105
+ if (item?.extras?.edit || this.isDraftPage)
106
+ this.recordClick.emit(item);
106
107
  }
107
108
  handleDuplicate(item) {
108
109
  this.duplicateRecord.emit(item);
@@ -135,7 +136,7 @@ export class ResultsTableComponent {
135
136
  this.recordsSelectedChange.emit([[record], selected]);
136
137
  }
137
138
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResultsTableComponent, deps: [{ token: i1.Overlay }, { token: i0.ViewContainerRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
138
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ResultsTableComponent, isStandalone: true, selector: "gn-ui-results-table", inputs: { records: "records", selectedRecordsIdentifiers: "selectedRecordsIdentifiers", sortOrder: "sortOrder", hasDraft: "hasDraft", canDuplicate: "canDuplicate", isUnsavedDraft: "isUnsavedDraft", canDelete: "canDelete" }, outputs: { sortByChange: "sortByChange", recordClick: "recordClick", duplicateRecord: "duplicateRecord", deleteRecord: "deleteRecord", recordsSelectedChange: "recordsSelectedChange" }, providers: [provideIcons({ iconoirUser, matMoreVert })], viewQueries: [{ propertyName: "actionMenuButtons", predicate: ["actionMenuButton"], descendants: true, read: ElementRef }], ngImport: i0, template: "<gn-ui-interactive-table\n [items]=\"records\"\n (itemClick)=\"handleRecordClick($event)\"\n>\n <!-- SELECTED COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'3rem'\">\n <ng-template #cell let-item>\n <gn-ui-checkbox\n [checked]=\"isChecked(item)\"\n (changed)=\"handleRecordSelectedChange($event, item)\"\n class=\"-m-2\"\n type=\"default\"\n ></gn-ui-checkbox>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- TITLE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [grow]=\"true\"\n [activeSort]=\"isSortedBy('resourceTitleObject.default.keyword')\"\n (sortChange)=\"setSortBy('resourceTitleObject.default.keyword', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.title</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex flex-row items-center gap-2 max-w-full font-semibold\">\n <span data-cy=\"resultItemTitle\" class=\"overflow-hidden text-ellipsis\">{{\n item.title\n }}</span>\n <gn-ui-badge\n *ngIf=\"hasDraft(item)\"\n [style.--gn-ui-badge-padding]=\"'0.2em 0.6em'\"\n [style.--gn-ui-badge-text-size]=\"'12px'\"\n [style.--gn-ui-badge-text-color]=\"'#3d2006'\"\n [style.--gn-ui-badge-background-color]=\"'#ffbc7b'\"\n [style.--gn-ui-badge-rounded]=\"'4px'\"\n >\n <span translate>dashboard.records.hasDraft</span>\n </gn-ui-badge>\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- FORMATS COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'9rem'\">\n <ng-template #header>\n <span translate>record.metadata.formats</span>\n </ng-template>\n <ng-template #cell let-item>\n <div\n class=\"flex justify-start items-center gap-2 font-medium\"\n *ngIf=\"getRecordFormats(item) as formats\"\n [title]=\"formats.join(', ')\"\n >\n <span\n class=\"badge-btn min-w-[45px] text-xs text-gray-900 px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[0])\"\n *ngIf=\"formats[0]\"\n >\n {{ formats[0] }}\n </span>\n <span\n class=\"badge-btn min-w-[45px] text-xs text-gray-900 px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[1])\"\n *ngIf=\"formats[1]\"\n >\n {{ formats[1] }}\n </span>\n <div class=\"shrink-0 text-xs\" *ngIf=\"formats.slice(2).length > 0\">\n <span>+{{ formats.slice(2).length }}</span>\n </div>\n </div>\n <div *ngIf=\"!getRecordFormats(item)\"></div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- OWNER COLUMN -->\n <gn-ui-interactive-table-column\n [width]=\"'9rem'\"\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('recordOwner')\"\n (sortChange)=\"setSortBy('recordOwner', $event)\"\n >\n <ng-template #header>\n <span translate>search.filters.user</span>\n </ng-template>\n <ng-template #cell let-item>\n <ng-icon name=\"iconoirUser\" size=\"16px\"></ng-icon>\n <span data-cy=\"ownerInfo\" class=\"text-xs\">{{\n formatUserInfo(item.extras?.ownerInfo)\n }}</span>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- STATUS COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'6rem'\">\n <ng-template #header>\n <span translate>record.metadata.status</span>\n </ng-template>\n <ng-template #cell let-item>\n <span class=\"text-xs\">\n {{\n (isUnsavedDraft(item)\n ? 'record.metadata.status.notPublished'\n : 'record.metadata.status.published'\n ) | translate\n }}</span\n >\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- UPDATE DATE COLUMN -->\n <gn-ui-interactive-table-column\n [width]=\"'8rem'\"\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('changeDate')\"\n (sortChange)=\"setSortBy('changeDate', $event)\"\n >\n <ng-template #header>\n <span translate>search.filters.changeDate</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex text-left w-full text-xs\">\n {{ isUnsavedDraft(item) ? '-' : dateToString(item.recordUpdated) }}\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- ACTION MENU COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header> </ng-template>\n <ng-template #cell let-item>\n <gn-ui-button\n cdkOverlayOrigin\n #actionMenuButton\n (buttonClick)=\"openActionMenu(item, template)\"\n type=\"light\"\n data-test=\"record-menu-button\"\n >\n <ng-icon name=\"matMoreVert\"></ng-icon>\n </gn-ui-button>\n <ng-template #template>\n <gn-ui-action-menu\n [canDuplicate]=\"canDuplicate(item)\"\n [canDelete]=\"canDelete(item)\"\n (duplicate)=\"handleDuplicate(item)\"\n (delete)=\"handleDelete(item)\"\n (closeActionMenu)=\"closeActionMenu()\"\n >\n </gn-ui-action-menu>\n </ng-template>\n </ng-template>\n </gn-ui-interactive-table-column>\n</gn-ui-interactive-table>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: UiInputsModule }, { kind: "component", type: i3.ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: i4.CheckboxComponent, selector: "gn-ui-checkbox", inputs: ["type", "checked", "indeterminate"], outputs: ["changed"] }, { kind: "component", type: i5.BadgeComponent, selector: "gn-ui-badge", inputs: ["clickable", "removable"], outputs: ["badgeRemoveClicked"] }, { kind: "component", type: InteractiveTableComponent, selector: "gn-ui-interactive-table", inputs: ["items"], outputs: ["itemClick"] }, { kind: "component", type: InteractiveTableColumnComponent, selector: "gn-ui-interactive-table-column", inputs: ["grow", "width", "sortable", "activeSort"], outputs: ["sortChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }, { kind: "directive", type: i6.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: ActionMenuComponent, selector: "gn-ui-action-menu", inputs: ["canDuplicate", "canDelete"], outputs: ["duplicate", "delete", "closeActionMenu"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }] }); }
139
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ResultsTableComponent, isStandalone: true, selector: "gn-ui-results-table", inputs: { records: "records", selectedRecordsIdentifiers: "selectedRecordsIdentifiers", sortOrder: "sortOrder", hasDraft: "hasDraft", canDuplicate: "canDuplicate", canDelete: "canDelete", isDraftPage: "isDraftPage" }, outputs: { sortByChange: "sortByChange", recordClick: "recordClick", duplicateRecord: "duplicateRecord", deleteRecord: "deleteRecord", recordsSelectedChange: "recordsSelectedChange" }, providers: [provideIcons({ iconoirUser, iconoirLock, matMoreVert })], viewQueries: [{ propertyName: "actionMenuButtons", predicate: ["actionMenuButton"], descendants: true, read: ElementRef }], ngImport: i0, template: "<gn-ui-interactive-table\n [items]=\"records\"\n [isDraftPage]=\"isDraftPage\"\n (itemClick)=\"handleRecordClick($event)\"\n>\n <!-- SELECTED COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'3rem'\">\n <ng-template #cell let-item let-i=\"index\">\n <ng-icon\n name=\"iconoirLock\"\n class=\"text-purple\"\n *ngIf=\"!item.extras?.edit && !isDraftPage\"\n ></ng-icon>\n <gn-ui-checkbox\n *ngIf=\"item.extras?.edit || isDraftPage\"\n [checked]=\"isChecked(item)\"\n (changed)=\"handleRecordSelectedChange($event, item)\"\n class=\"-m-2\"\n type=\"default\"\n ></gn-ui-checkbox>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- TITLE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [grow]=\"true\"\n [activeSort]=\"isSortedBy('resourceTitleObject.default.keyword')\"\n (sortChange)=\"setSortBy('resourceTitleObject.default.keyword', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.title</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex flex-row items-center gap-2 max-w-full font-semibold\">\n <span data-cy=\"resultItemTitle\" class=\"overflow-hidden text-ellipsis\">{{\n item.title\n }}</span>\n <gn-ui-badge\n *ngIf=\"hasDraft(item)\"\n [style.--gn-ui-badge-padding]=\"'0.2em 0.6em'\"\n [style.--gn-ui-badge-text-size]=\"'12px'\"\n [style.--gn-ui-badge-text-color]=\"'#3d2006'\"\n [style.--gn-ui-badge-background-color]=\"'#ffbc7b'\"\n [style.--gn-ui-badge-rounded]=\"'4px'\"\n >\n <span translate>dashboard.records.hasDraft</span>\n </gn-ui-badge>\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- FORMATS COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'9rem'\">\n <ng-template #header>\n <span translate>record.metadata.formats</span>\n </ng-template>\n <ng-template #cell let-item>\n <div\n class=\"flex justify-start items-center gap-2 font-medium\"\n *ngIf=\"getRecordFormats(item) as formats\"\n [title]=\"formats.join(', ')\"\n >\n <span\n class=\"badge-btn min-w-[45px] text-xs text-gray-900 px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[0])\"\n *ngIf=\"formats[0]\"\n >\n {{ formats[0] }}\n </span>\n <span\n class=\"badge-btn min-w-[45px] text-xs text-gray-900 px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[1])\"\n *ngIf=\"formats[1]\"\n >\n {{ formats[1] }}\n </span>\n <div class=\"shrink-0 text-xs\" *ngIf=\"formats.slice(2).length > 0\">\n <span>+{{ formats.slice(2).length }}</span>\n </div>\n </div>\n <div *ngIf=\"!getRecordFormats(item)\"></div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- OWNER COLUMN -->\n <gn-ui-interactive-table-column\n [width]=\"'9rem'\"\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('recordOwner')\"\n (sortChange)=\"setSortBy('recordOwner', $event)\"\n >\n <ng-template #header>\n <span translate>search.filters.user</span>\n </ng-template>\n <ng-template #cell let-item>\n <ng-icon name=\"iconoirUser\" size=\"16px\"></ng-icon>\n <span data-cy=\"ownerInfo\" class=\"text-xs\">{{\n formatUserInfo(item.extras?.ownerInfo)\n }}</span>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- STATUS COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'6rem'\">\n <ng-template #header>\n <span translate>record.metadata.status</span>\n </ng-template>\n <ng-template #cell let-item>\n <span class=\"text-xs\">\n {{\n (item.extras?.['isPublishedToAll']\n ? 'record.metadata.status.published'\n : 'record.metadata.status.notPublished'\n ) | translate\n }}</span\n >\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- UPDATE DATE COLUMN -->\n <gn-ui-interactive-table-column\n [width]=\"'8rem'\"\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('changeDate')\"\n (sortChange)=\"setSortBy('changeDate', $event)\"\n >\n <ng-template #header>\n <span translate>search.filters.changeDate</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex text-left w-full text-xs\">\n {{\n item.extras?.['isPublishedToAll']\n ? dateToString(item.recordUpdated)\n : '-'\n }}\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- ACTION MENU COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header> </ng-template>\n <ng-template #cell let-item>\n <gn-ui-button\n cdkOverlayOrigin\n #actionMenuButton\n (buttonClick)=\"openActionMenu(item, template)\"\n type=\"light\"\n data-test=\"record-menu-button\"\n [disabled]=\"!item.extras?.edit && !isDraftPage\"\n >\n <ng-icon\n [ngClass]=\"{\n 'text-purple-light': !item.extras?.edit && !isDraftPage,\n }\"\n name=\"matMoreVert\"\n ></ng-icon>\n </gn-ui-button>\n <ng-template #template>\n <gn-ui-action-menu\n [canDuplicate]=\"canDuplicate(item)\"\n [canDelete]=\"canDelete(item)\"\n (duplicate)=\"handleDuplicate(item)\"\n (delete)=\"handleDelete(item)\"\n (closeActionMenu)=\"closeActionMenu()\"\n >\n </gn-ui-action-menu>\n </ng-template>\n </ng-template>\n </gn-ui-interactive-table-column>\n</gn-ui-interactive-table>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: UiInputsModule }, { kind: "component", type: i3.ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: i4.CheckboxComponent, selector: "gn-ui-checkbox", inputs: ["type", "checked", "indeterminate"], outputs: ["changed"] }, { kind: "component", type: i5.BadgeComponent, selector: "gn-ui-badge", inputs: ["clickable", "removable"], outputs: ["badgeRemoveClicked"] }, { kind: "component", type: InteractiveTableComponent, selector: "gn-ui-interactive-table", inputs: ["items", "isDraftPage"], outputs: ["itemClick"] }, { kind: "component", type: InteractiveTableColumnComponent, selector: "gn-ui-interactive-table-column", inputs: ["grow", "width", "sortable", "activeSort"], outputs: ["sortChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }, { kind: "directive", type: i6.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: ActionMenuComponent, selector: "gn-ui-action-menu", inputs: ["canDuplicate", "canDelete"], outputs: ["duplicate", "delete", "closeActionMenu"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }] }); }
139
140
  }
140
141
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResultsTableComponent, decorators: [{
141
142
  type: Component,
@@ -149,8 +150,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
149
150
  ActionMenuComponent,
150
151
  NgIconComponent,
151
152
  CdkOverlayOrigin,
152
- CdkConnectedOverlay,
153
- ], providers: [provideIcons({ iconoirUser, matMoreVert })], template: "<gn-ui-interactive-table\n [items]=\"records\"\n (itemClick)=\"handleRecordClick($event)\"\n>\n <!-- SELECTED COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'3rem'\">\n <ng-template #cell let-item>\n <gn-ui-checkbox\n [checked]=\"isChecked(item)\"\n (changed)=\"handleRecordSelectedChange($event, item)\"\n class=\"-m-2\"\n type=\"default\"\n ></gn-ui-checkbox>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- TITLE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [grow]=\"true\"\n [activeSort]=\"isSortedBy('resourceTitleObject.default.keyword')\"\n (sortChange)=\"setSortBy('resourceTitleObject.default.keyword', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.title</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex flex-row items-center gap-2 max-w-full font-semibold\">\n <span data-cy=\"resultItemTitle\" class=\"overflow-hidden text-ellipsis\">{{\n item.title\n }}</span>\n <gn-ui-badge\n *ngIf=\"hasDraft(item)\"\n [style.--gn-ui-badge-padding]=\"'0.2em 0.6em'\"\n [style.--gn-ui-badge-text-size]=\"'12px'\"\n [style.--gn-ui-badge-text-color]=\"'#3d2006'\"\n [style.--gn-ui-badge-background-color]=\"'#ffbc7b'\"\n [style.--gn-ui-badge-rounded]=\"'4px'\"\n >\n <span translate>dashboard.records.hasDraft</span>\n </gn-ui-badge>\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- FORMATS COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'9rem'\">\n <ng-template #header>\n <span translate>record.metadata.formats</span>\n </ng-template>\n <ng-template #cell let-item>\n <div\n class=\"flex justify-start items-center gap-2 font-medium\"\n *ngIf=\"getRecordFormats(item) as formats\"\n [title]=\"formats.join(', ')\"\n >\n <span\n class=\"badge-btn min-w-[45px] text-xs text-gray-900 px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[0])\"\n *ngIf=\"formats[0]\"\n >\n {{ formats[0] }}\n </span>\n <span\n class=\"badge-btn min-w-[45px] text-xs text-gray-900 px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[1])\"\n *ngIf=\"formats[1]\"\n >\n {{ formats[1] }}\n </span>\n <div class=\"shrink-0 text-xs\" *ngIf=\"formats.slice(2).length > 0\">\n <span>+{{ formats.slice(2).length }}</span>\n </div>\n </div>\n <div *ngIf=\"!getRecordFormats(item)\"></div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- OWNER COLUMN -->\n <gn-ui-interactive-table-column\n [width]=\"'9rem'\"\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('recordOwner')\"\n (sortChange)=\"setSortBy('recordOwner', $event)\"\n >\n <ng-template #header>\n <span translate>search.filters.user</span>\n </ng-template>\n <ng-template #cell let-item>\n <ng-icon name=\"iconoirUser\" size=\"16px\"></ng-icon>\n <span data-cy=\"ownerInfo\" class=\"text-xs\">{{\n formatUserInfo(item.extras?.ownerInfo)\n }}</span>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- STATUS COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'6rem'\">\n <ng-template #header>\n <span translate>record.metadata.status</span>\n </ng-template>\n <ng-template #cell let-item>\n <span class=\"text-xs\">\n {{\n (isUnsavedDraft(item)\n ? 'record.metadata.status.notPublished'\n : 'record.metadata.status.published'\n ) | translate\n }}</span\n >\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- UPDATE DATE COLUMN -->\n <gn-ui-interactive-table-column\n [width]=\"'8rem'\"\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('changeDate')\"\n (sortChange)=\"setSortBy('changeDate', $event)\"\n >\n <ng-template #header>\n <span translate>search.filters.changeDate</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex text-left w-full text-xs\">\n {{ isUnsavedDraft(item) ? '-' : dateToString(item.recordUpdated) }}\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- ACTION MENU COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header> </ng-template>\n <ng-template #cell let-item>\n <gn-ui-button\n cdkOverlayOrigin\n #actionMenuButton\n (buttonClick)=\"openActionMenu(item, template)\"\n type=\"light\"\n data-test=\"record-menu-button\"\n >\n <ng-icon name=\"matMoreVert\"></ng-icon>\n </gn-ui-button>\n <ng-template #template>\n <gn-ui-action-menu\n [canDuplicate]=\"canDuplicate(item)\"\n [canDelete]=\"canDelete(item)\"\n (duplicate)=\"handleDuplicate(item)\"\n (delete)=\"handleDelete(item)\"\n (closeActionMenu)=\"closeActionMenu()\"\n >\n </gn-ui-action-menu>\n </ng-template>\n </ng-template>\n </gn-ui-interactive-table-column>\n</gn-ui-interactive-table>\n" }]
153
+ ], providers: [provideIcons({ iconoirUser, iconoirLock, matMoreVert })], template: "<gn-ui-interactive-table\n [items]=\"records\"\n [isDraftPage]=\"isDraftPage\"\n (itemClick)=\"handleRecordClick($event)\"\n>\n <!-- SELECTED COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'3rem'\">\n <ng-template #cell let-item let-i=\"index\">\n <ng-icon\n name=\"iconoirLock\"\n class=\"text-purple\"\n *ngIf=\"!item.extras?.edit && !isDraftPage\"\n ></ng-icon>\n <gn-ui-checkbox\n *ngIf=\"item.extras?.edit || isDraftPage\"\n [checked]=\"isChecked(item)\"\n (changed)=\"handleRecordSelectedChange($event, item)\"\n class=\"-m-2\"\n type=\"default\"\n ></gn-ui-checkbox>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- TITLE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [grow]=\"true\"\n [activeSort]=\"isSortedBy('resourceTitleObject.default.keyword')\"\n (sortChange)=\"setSortBy('resourceTitleObject.default.keyword', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.title</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex flex-row items-center gap-2 max-w-full font-semibold\">\n <span data-cy=\"resultItemTitle\" class=\"overflow-hidden text-ellipsis\">{{\n item.title\n }}</span>\n <gn-ui-badge\n *ngIf=\"hasDraft(item)\"\n [style.--gn-ui-badge-padding]=\"'0.2em 0.6em'\"\n [style.--gn-ui-badge-text-size]=\"'12px'\"\n [style.--gn-ui-badge-text-color]=\"'#3d2006'\"\n [style.--gn-ui-badge-background-color]=\"'#ffbc7b'\"\n [style.--gn-ui-badge-rounded]=\"'4px'\"\n >\n <span translate>dashboard.records.hasDraft</span>\n </gn-ui-badge>\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- FORMATS COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'9rem'\">\n <ng-template #header>\n <span translate>record.metadata.formats</span>\n </ng-template>\n <ng-template #cell let-item>\n <div\n class=\"flex justify-start items-center gap-2 font-medium\"\n *ngIf=\"getRecordFormats(item) as formats\"\n [title]=\"formats.join(', ')\"\n >\n <span\n class=\"badge-btn min-w-[45px] text-xs text-gray-900 px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[0])\"\n *ngIf=\"formats[0]\"\n >\n {{ formats[0] }}\n </span>\n <span\n class=\"badge-btn min-w-[45px] text-xs text-gray-900 px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[1])\"\n *ngIf=\"formats[1]\"\n >\n {{ formats[1] }}\n </span>\n <div class=\"shrink-0 text-xs\" *ngIf=\"formats.slice(2).length > 0\">\n <span>+{{ formats.slice(2).length }}</span>\n </div>\n </div>\n <div *ngIf=\"!getRecordFormats(item)\"></div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- OWNER COLUMN -->\n <gn-ui-interactive-table-column\n [width]=\"'9rem'\"\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('recordOwner')\"\n (sortChange)=\"setSortBy('recordOwner', $event)\"\n >\n <ng-template #header>\n <span translate>search.filters.user</span>\n </ng-template>\n <ng-template #cell let-item>\n <ng-icon name=\"iconoirUser\" size=\"16px\"></ng-icon>\n <span data-cy=\"ownerInfo\" class=\"text-xs\">{{\n formatUserInfo(item.extras?.ownerInfo)\n }}</span>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- STATUS COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'6rem'\">\n <ng-template #header>\n <span translate>record.metadata.status</span>\n </ng-template>\n <ng-template #cell let-item>\n <span class=\"text-xs\">\n {{\n (item.extras?.['isPublishedToAll']\n ? 'record.metadata.status.published'\n : 'record.metadata.status.notPublished'\n ) | translate\n }}</span\n >\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- UPDATE DATE COLUMN -->\n <gn-ui-interactive-table-column\n [width]=\"'8rem'\"\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('changeDate')\"\n (sortChange)=\"setSortBy('changeDate', $event)\"\n >\n <ng-template #header>\n <span translate>search.filters.changeDate</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex text-left w-full text-xs\">\n {{\n item.extras?.['isPublishedToAll']\n ? dateToString(item.recordUpdated)\n : '-'\n }}\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- ACTION MENU COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header> </ng-template>\n <ng-template #cell let-item>\n <gn-ui-button\n cdkOverlayOrigin\n #actionMenuButton\n (buttonClick)=\"openActionMenu(item, template)\"\n type=\"light\"\n data-test=\"record-menu-button\"\n [disabled]=\"!item.extras?.edit && !isDraftPage\"\n >\n <ng-icon\n [ngClass]=\"{\n 'text-purple-light': !item.extras?.edit && !isDraftPage,\n }\"\n name=\"matMoreVert\"\n ></ng-icon>\n </gn-ui-button>\n <ng-template #template>\n <gn-ui-action-menu\n [canDuplicate]=\"canDuplicate(item)\"\n [canDelete]=\"canDelete(item)\"\n (duplicate)=\"handleDuplicate(item)\"\n (delete)=\"handleDelete(item)\"\n (closeActionMenu)=\"closeActionMenu()\"\n >\n </gn-ui-action-menu>\n </ng-template>\n </ng-template>\n </gn-ui-interactive-table-column>\n</gn-ui-interactive-table>\n" }]
154
154
  }], ctorParameters: () => [{ type: i1.Overlay }, { type: i0.ViewContainerRef }, { type: i0.ChangeDetectorRef }], propDecorators: { records: [{
155
155
  type: Input
156
156
  }], selectedRecordsIdentifiers: [{
@@ -161,10 +161,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
161
161
  type: Input
162
162
  }], canDuplicate: [{
163
163
  type: Input
164
- }], isUnsavedDraft: [{
165
- type: Input
166
164
  }], canDelete: [{
167
165
  type: Input
166
+ }], isDraftPage: [{
167
+ type: Input
168
168
  }], sortByChange: [{
169
169
  type: Output
170
170
  }], recordClick: [{
@@ -179,4 +179,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
179
179
  type: ViewChildren,
180
180
  args: ['actionMenuButton', { read: ElementRef }]
181
181
  }] } });
182
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdWx0cy10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL3NlYXJjaC9zcmMvbGliL3Jlc3VsdHMtdGFibGUvcmVzdWx0cy10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL3NlYXJjaC9zcmMvbGliL3Jlc3VsdHMtdGFibGUvcmVzdWx0cy10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxZQUFZLEVBQ1osZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFBO0FBTXRCLE9BQU8sRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0NBQXNDLENBQUE7QUFDckYsT0FBTyxFQUNMLCtCQUErQixFQUMvQix5QkFBeUIsR0FDMUIsTUFBTSxzQ0FBc0MsQ0FBQTtBQUM3QyxPQUFPLEVBRUwsY0FBYyxFQUNkLGFBQWEsRUFDYixhQUFhLEVBQ2IsaUJBQWlCLEdBQ2xCLE1BQU0sd0NBQXdDLENBQUE7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3JELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFBO0FBQ3pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDOUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQy9DLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsZ0JBQWdCLEVBQ2hCLE9BQU8sR0FFUixNQUFNLHNCQUFzQixDQUFBO0FBQzdCLE9B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cUJBQXFCO3NCQUE5QixNQUFNO2dCQUtQLGlCQUFpQjtzQkFEaEIsWUFBWTt1QkFBQyxrQkFBa0IsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgVmlld0NoaWxkcmVuLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQ2F0YWxvZ1JlY29yZCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcbmltcG9ydCB7XG4gIEZpZWxkU29ydCxcbiAgU29ydEJ5RmllbGQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3NlYXJjaCdcbmltcG9ydCB7IEJhZGdlQ29tcG9uZW50LCBVaUlucHV0c01vZHVsZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvaW5wdXRzL3NyYydcbmltcG9ydCB7XG4gIEludGVyYWN0aXZlVGFibGVDb2x1bW5Db21wb25lbnQsXG4gIEludGVyYWN0aXZlVGFibGVDb21wb25lbnQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvbGF5b3V0L3NyYydcbmltcG9ydCB7XG4gIEZpbGVGb3JtYXQsXG4gIGZvcm1hdFVzZXJJbmZvLFxuICBnZXRCYWRnZUNvbG9yLFxuICBnZXRGaWxlRm9ybWF0LFxuICBnZXRGb3JtYXRQcmlvcml0eSxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL3NoYXJlZC9zcmMnXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgQWN0aW9uTWVudUNvbXBvbmVudCB9IGZyb20gJy4vYWN0aW9uLW1lbnUvYWN0aW9uLW1lbnUuY29tcG9uZW50J1xuaW1wb3J0IHsgTmdJY29uQ29tcG9uZW50LCBwcm92aWRlSWNvbnMgfSBmcm9tICdAbmctaWNvbnMvY29yZSdcbmltcG9ydCB7IGljb25vaXJVc2VyIH0gZnJvbSAnQG5nLWljb25zL2ljb25vaXInXG5pbXBvcnQge1xuICBDZGtDb25uZWN0ZWRPdmVybGF5LFxuICBDZGtPdmVybGF5T3JpZ2luLFxuICBPdmVybGF5LFxuICBPdmVybGF5UmVmLFxufSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSdcbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCdcbmltcG9ydCB7IG1hdE1vcmVWZXJ0IH0gZnJvbSAnQG5nLWljb25zL21hdGVyaWFsLWljb25zL2Jhc2VsaW5lJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1yZXN1bHRzLXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Jlc3VsdHMtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yZXN1bHRzLXRhYmxlLmNvbXBvbmVudC5jc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBVaUlucHV0c01vZHVsZSxcbiAgICBJbnRlcmFjdGl2ZVRhYmxlQ29tcG9uZW50LFxuICAgIEludGVyYWN0aXZlVGFibGVDb2x1bW5Db21wb25lbnQsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIEJhZGdlQ29tcG9uZW50LFxuICAgIEFjdGlvbk1lbnVDb21wb25lbnQsXG4gICAgTmdJY29uQ29tcG9uZW50LFxuICAgIENka092ZXJsYXlPcmlnaW4sXG4gICAgQ2RrQ29ubmVjdGVkT3ZlcmxheSxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbcHJvdmlkZUljb25zKHsgaWNvbm9pclVzZXIsIG1hdE1vcmVWZXJ0IH0pXSxcbn0pXG5leHBvcnQgY2xhc3MgUmVzdWx0c1RhYmxlQ29tcG9uZW50IHtcbiAgQElucHV0KCkgcmVjb3JkczogQ2F0YWxvZ1JlY29yZFtdID0gW11cbiAgQElucHV0KCkgc2VsZWN0ZWRSZWNvcmRzSWRlbnRpZmllcnM6IHN0cmluZ1tdID0gW11cbiAgQElucHV0KCkgc29ydE9yZGVyOiBTb3J0QnlGaWVsZCA9IG51bGxcbiAgQElucHV0KCkgaGFzRHJhZnQ6IChyZWNvcmQ6IENhdGFsb2dSZWNvcmQpID0+IGJvb2xlYW4gPSAoKSA9PiBmYWxzZVxuICBASW5wdXQoKSBjYW5EdXBsaWNhdGU6IChyZWNvcmQ6IENhdGFsb2dSZWNvcmQpID0+IGJvb2xlYW4gPSAoKSA9PiB0cnVlXG4gIEBJbnB1dCgpIGlzVW5zYXZlZERyYWZ0OiAocmVjb3JkOiBDYXRhbG9nUmVjb3JkKSA9PiBib29sZWFuID0gKCkgPT4gdHJ1ZVxuICBASW5wdXQoKSBjYW5EZWxldGU6IChyZWNvcmQ6IENhdGFsb2dSZWNvcmQpID0+IGJvb2xlYW4gPSAoKSA9PiB0cnVlXG5cbiAgLy8gZW1pdHMgdGhlIGNvbHVtbiAoZmllbGQpIGFzIHdlbGwgYXMgdGhlIG9yZGVyXG4gIEBPdXRwdXQoKSBzb3J0QnlDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFtzdHJpbmcsICdhc2MnIHwgJ2Rlc2MnXT4oKVxuICBAT3V0cHV0KCkgcmVjb3JkQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPENhdGFsb2dSZWNvcmQ+KClcbiAgQE91dHB1dCgpIGR1cGxpY2F0ZVJlY29yZCA9IG5ldyBFdmVudEVtaXR0ZXI8Q2F0YWxvZ1JlY29yZD4oKVxuICBAT3V0cHV0KCkgZGVsZXRlUmVjb3JkID0gbmV3IEV2ZW50RW1pdHRlcjxDYXRhbG9nUmVjb3JkPigpXG4gIEBPdXRwdXQoKSByZWNvcmRzU2VsZWN0ZWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFxuICAgIFtDYXRhbG9nUmVjb3JkW10sIGJvb2xlYW5dXG4gID4oKVxuXG4gIEBWaWV3Q2hpbGRyZW4oJ2FjdGlvbk1lbnVCdXR0b24nLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgYWN0aW9uTWVudUJ1dHRvbnMhOiBRdWVyeUxpc3Q8RWxlbWVudFJlZj5cbiAgcHJpdmF0ZSBvdmVybGF5UmVmITogT3ZlcmxheVJlZlxuXG4gIGlzQWN0aW9uTWVudU9wZW4gPSBmYWxzZVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSxcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICkge31cblxuICBvcGVuQWN0aW9uTWVudShpdGVtLCB0ZW1wbGF0ZSkge1xuICAgIHRoaXMuaXNBY3Rpb25NZW51T3BlbiA9IHRydWVcbiAgICBjb25zdCBpbmRleCA9IHRoaXMucmVjb3Jkcy5pbmRleE9mKGl0ZW0pXG4gICAgY29uc3QgYnV0dG9uRWxlbWVudCA9IHRoaXMuYWN0aW9uTWVudUJ1dHRvbnMudG9BcnJheSgpW2luZGV4XVxuXG4gICAgY29uc3QgcG9zaXRpb25TdHJhdGVneSA9IHRoaXMub3ZlcmxheVxuICAgICAgLnBvc2l0aW9uKClcbiAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKGJ1dHRvbkVsZW1lbnQpXG4gICAgICAud2l0aEZsZXhpYmxlRGltZW5zaW9ucyh0cnVlKVxuICAgICAgLndpdGhQdXNoKHRydWUpXG4gICAgICAud2l0aFBvc2l0aW9ucyhbXG4gICAgICAgIHtcbiAgICAgICAgICBvcmlnaW5YOiAnZW5kJyxcbiAgICAgICAgICBvcmlnaW5ZOiAnYm90dG9tJyxcbiAgICAgICAgICBvdmVybGF5WDogJ2VuZCcsXG4gICAgICAgICAgb3ZlcmxheVk6ICd0b3AnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgb3JpZ2luWDogJ2VuZCcsXG4gICAgICAgICAgb3JpZ2luWTogJ3RvcCcsXG4gICAgICAgICAgb3ZlcmxheVg6ICdlbmQnLFxuICAgICAgICAgIG92ZXJsYXlZOiAnYm90dG9tJyxcbiAgICAgICAgfSxcbiAgICAgIF0pXG5cbiAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKHtcbiAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgYmFja2Ryb3BDbGFzczogJ2Nkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wJyxcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHBvc2l0aW9uU3RyYXRlZ3ksXG4gICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMucmVwb3NpdGlvbigpLFxuICAgIH0pXG5cbiAgICBjb25zdCBwb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwodGVtcGxhdGUsIHRoaXMudmlld0NvbnRhaW5lclJlZilcblxuICAgIHRoaXMub3ZlcmxheVJlZi5hdHRhY2gocG9ydGFsKVxuXG4gICAgdGhpcy5vdmVybGF5UmVmLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5jbG9zZUFjdGlvbk1lbnUoKVxuICAgIH0pXG4gIH1cblxuICBjbG9zZUFjdGlvbk1lbnUoKSB7XG4gICAgaWYgKHRoaXMub3ZlcmxheVJlZikge1xuICAgICAgdGhpcy5pc0FjdGlvbk1lbnVPcGVuID0gZmFsc2VcbiAgICAgIHRoaXMub3ZlcmxheVJlZi5kaXNwb3NlKClcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpXG4gICAgfVxuICB9XG5cbiAgZGF0ZVRvU3RyaW5nKGRhdGU6IERhdGUpOiBzdHJpbmcge1xuICAgIHJldHVybiBkYXRlPy50b0xvY2FsZURhdGVTdHJpbmcodW5kZWZpbmVkLCB7XG4gICAgICB5ZWFyOiAnbnVtZXJpYycsXG4gICAgICBtb250aDogJ2xvbmcnLFxuICAgICAgZGF5OiAnbnVtZXJpYycsXG4gICAgICB0aW1lWm9uZTogJ1VUQycsXG4gICAgfSlcbiAgfVxuXG4gIGdldFJlY29yZEZvcm1hdHMocmVjb3JkOiBDYXRhbG9nUmVjb3JkKTogRmlsZUZvcm1hdFtdIHtcbiAgICBpZiAocmVjb3JkLmtpbmQgPT09ICdzZXJ2aWNlJyB8fCAhKCdvbmxpbmVSZXNvdXJjZXMnIGluIHJlY29yZCkpIHtcbiAgICAgIHJldHVybiBbXVxuICAgIH1cbiAgICBjb25zdCBmb3JtYXRzID0gQXJyYXkuZnJvbShcbiAgICAgIG5ldyBTZXQoXG4gICAgICAgIHJlY29yZC5vbmxpbmVSZXNvdXJjZXMubWFwKChvbmxpbmVSZXNvdXJjZSkgPT5cbiAgICAgICAgICBnZXRGaWxlRm9ybWF0KG9ubGluZVJlc291cmNlKVxuICAgICAgICApXG4gICAgICApXG4gICAgKS5maWx0ZXIoKGZvcm1hdCkgPT4gISFmb3JtYXQpXG4gICAgZm9ybWF0cy5zb3J0KChhLCBiKSA9PiBnZXRGb3JtYXRQcmlvcml0eShiKSAtIGdldEZvcm1hdFByaW9yaXR5KGEpKVxuICAgIHJldHVybiBmb3JtYXRzXG4gIH1cblxuICBmb3JtYXRVc2VySW5mbyh1c2VySW5mbzogc3RyaW5nIHwgdW5rbm93bik6IHN0cmluZyB7XG4gICAgcmV0dXJuIGZvcm1hdFVzZXJJbmZvKHVzZXJJbmZvKVxuICB9XG5cbiAgZ2V0QmFkZ2VDb2xvcihmb3JtYXQ6IEZpbGVGb3JtYXQpOiBzdHJpbmcge1xuICAgIHJldHVybiBnZXRCYWRnZUNvbG9yKGZvcm1hdClcbiAgfVxuXG4gIGhhbmRsZVJlY29yZENsaWNrKGl0ZW06IHVua25vd24pIHtcbiAgICB0aGlzLnJlY29yZENsaWNrLmVtaXQoaXRlbSBhcyBDYXRhbG9nUmVjb3JkKVxuICB9XG5cbiAgaGFuZGxlRHVwbGljYXRlKGl0ZW06IHVua25vd24pIHtcbiAgICB0aGlzLmR1cGxpY2F0ZVJlY29yZC5lbWl0KGl0ZW0gYXMgQ2F0YWxvZ1JlY29yZClcbiAgfVxuXG4gIGhhbmRsZURlbGV0ZShpdGVtOiB1bmtub3duKSB7XG4gICAgdGhpcy5kZWxldGVSZWNvcmQuZW1pdChpdGVtIGFzIENhdGFsb2dSZWNvcmQpXG4gICAgdGhpcy5jbG9zZUFjdGlvbk1lbnUoKVxuICB9XG5cbiAgc2V0U29ydEJ5KGNvbDogc3RyaW5nLCBvcmRlcjogJ2FzYycgfCAnZGVzYycpIHtcbiAgICB0aGlzLnNvcnRCeUNoYW5nZS5lbWl0KFtjb2wsIG9yZGVyXSlcbiAgfVxuXG4gIGlzU29ydGVkQnkoY29sOiBzdHJpbmcpOiAnZGVzYycgfCAnYXNjJyB8IG51bGwge1xuICAgIGlmICghdGhpcy5zb3J0T3JkZXIpIHtcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuICAgIGNvbnN0IHNvcnRBcnJheSA9IEFycmF5LmlzQXJyYXkodGhpcy5zb3J0T3JkZXJbMF0pXG4gICAgICA/ICh0aGlzLnNvcnRPcmRlciBhcyBGaWVsZFNvcnRbXSlcbiAgICAgIDogKFt0aGlzLnNvcnRPcmRlcl0gYXMgRmllbGRTb3J0W10pXG4gICAgZm9yIChjb25zdCBzb3J0IG9mIHNvcnRBcnJheSkge1xuICAgICAgaWYgKHNvcnRbMV0gPT09IGNvbCkge1xuICAgICAgICByZXR1cm4gc29ydFswXVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgaXNDaGVja2VkKHJlY29yZDogQ2F0YWxvZ1JlY29yZCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkUmVjb3Jkc0lkZW50aWZpZXJzLmluY2x1ZGVzKHJlY29yZC51bmlxdWVJZGVudGlmaWVyKVxuICB9XG5cbiAgaGFuZGxlUmVjb3JkU2VsZWN0ZWRDaGFuZ2Uoc2VsZWN0ZWQ6IGJvb2xlYW4sIHJlY29yZDogQ2F0YWxvZ1JlY29yZCkge1xuICAgIHRoaXMucmVjb3Jkc1NlbGVjdGVkQ2hhbmdlLmVtaXQoW1tyZWNvcmRdLCBzZWxlY3RlZF0pXG4gIH1cbn1cbiIsIjxnbi11aS1pbnRlcmFjdGl2ZS10YWJsZVxuICBbaXRlbXNdPVwicmVjb3Jkc1wiXG4gIChpdGVtQ2xpY2spPVwiaGFuZGxlUmVjb3JkQ2xpY2soJGV2ZW50KVwiXG4+XG4gIDwhLS0gU0VMRUNURUQgQ09MVU1OIC0tPlxuICA8Z24tdWktaW50ZXJhY3RpdmUtdGFibGUtY29sdW1uIFt3aWR0aF09XCInM3JlbSdcIj5cbiAgICA8bmctdGVtcGxhdGUgI2NlbGwgbGV0LWl0ZW0+XG4gICAgICA8Z24tdWktY2hlY2tib3hcbiAgICAgICAgW2NoZWNrZWRdPVwiaXNDaGVja2VkKGl0ZW0pXCJcbiAgICAgICAgKGNoYW5nZWQpPVwiaGFuZGxlUmVjb3JkU2VsZWN0ZWRDaGFuZ2UoJGV2ZW50LCBpdGVtKVwiXG4gICAgICAgIGNsYXNzPVwiLW0tMlwiXG4gICAgICAgIHR5cGU9XCJkZWZhdWx0XCJcbiAgICAgID48L2duLXVpLWNoZWNrYm94PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZ24tdWktaW50ZXJhY3RpdmUtdGFibGUtY29sdW1uPlxuXG4gIDwhLS0gVElUTEUgQ09MVU1OIC0tPlxuICA8Z24tdWktaW50ZXJhY3RpdmUtdGFibGUtY29sdW1uXG4gICAgW3NvcnRhYmxlXT1cInRydWVcIlxuICAgIFtncm93XT1cInRydWVcIlxuICAgIFthY3RpdmVTb3J0XT1cImlzU29ydGVkQnkoJ3Jlc291cmNlVGl0bGVPYmplY3QuZGVmYXVsdC5rZXl3b3JkJylcIlxuICAgIChzb3J0Q2hhbmdlKT1cInNldFNvcnRCeSgncmVzb3VyY2VUaXRsZU9iamVjdC5kZWZhdWx0LmtleXdvcmQnLCAkZXZlbnQpXCJcbiAgPlxuICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGVyPlxuICAgICAgPHNwYW4gdHJhbnNsYXRlPnJlY29yZC5tZXRhZGF0YS50aXRsZTwvc3Bhbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjY2VsbCBsZXQtaXRlbT5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGl0ZW1zLWNlbnRlciBnYXAtMiBtYXgtdy1mdWxsIGZvbnQtc2VtaWJvbGRcIj5cbiAgICAgICAgPHNwYW4gZGF0YS1jeT1cInJlc3VsdEl0ZW1UaXRsZVwiIGNsYXNzPVwib3ZlcmZsb3ctaGlkZGVuIHRleHQtZWxsaXBzaXNcIj57e1xuICAgICAgICAgIGl0ZW0udGl0bGVcbiAgICAgICAgfX08L3NwYW4+XG4gICAgICAgIDxnbi11aS1iYWRnZVxuICAgICAgICAgICpuZ0lmPVwiaGFzRHJhZnQoaXRlbSlcIlxuICAgICAgICAgIFtzdHlsZS4tLWduLXVpLWJhZGdlLXBhZGRpbmddPVwiJzAuMmVtIDAuNmVtJ1wiXG4gICAgICAgICAgW3N0eWxlLi0tZ24tdWktYmFkZ2UtdGV4dC1zaXplXT1cIicxMnB4J1wiXG4gICAgICAgICAgW3N0eWxlLi0tZ24tdWktYmFkZ2UtdGV4dC1jb2xvcl09XCInIzNkMjAwNidcIlxuICAgICAgICAgIFtzdHlsZS4tLWduLXVpLWJhZGdlLWJhY2tncm91bmQtY29sb3JdPVwiJyNmZmJjN2InXCJcbiAgICAgICAgICBbc3R5bGUuLS1nbi11aS1iYWRnZS1yb3VuZGVkXT1cIic0cHgnXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxzcGFuIHRyYW5zbGF0ZT5kYXNoYm9hcmQucmVjb3Jkcy5oYXNEcmFmdDwvc3Bhbj5cbiAgICAgICAgPC9nbi11aS1iYWRnZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZ24tdWktaW50ZXJhY3RpdmUtdGFibGUtY29sdW1uPlxuXG4gIDwhLS0gRk9STUFUUyBDT0xVTU4gLS0+XG4gIDxnbi11aS1pbnRlcmFjdGl2ZS10YWJsZS1jb2x1bW4gW3dpZHRoXT1cIic5cmVtJ1wiPlxuICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGVyPlxuICAgICAgPHNwYW4gdHJhbnNsYXRlPnJlY29yZC5tZXRhZGF0YS5mb3JtYXRzPC9zcGFuPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNjZWxsIGxldC1pdGVtPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImZsZXgganVzdGlmeS1zdGFydCBpdGVtcy1jZW50ZXIgZ2FwLTIgZm9udC1tZWRpdW1cIlxuICAgICAgICAqbmdJZj1cImdldFJlY29yZEZvcm1hdHMoaXRlbSkgYXMgZm9ybWF0c1wiXG4gICAgICAgIFt0aXRsZV09XCJmb3JtYXRzLmpvaW4oJywgJylcIlxuICAgICAgPlxuICAgICAgICA8c3BhblxuICAgICAgICAgIGNsYXNzPVwiYmFkZ2UtYnRuIG1pbi13LVs0NXB4XSB0ZXh0LXhzIHRleHQtZ3JheS05MDAgcHgtMiBzaHJpbmstMFwiXG4gICAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiZ2V0QmFkZ2VDb2xvcihmb3JtYXRzWzBdKVwiXG4gICAgICAgICAgKm5nSWY9XCJmb3JtYXRzWzBdXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGZvcm1hdHNbMF0gfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhblxuICAgICAgICAgIGNsYXNzPVwiYmFkZ2UtYnRuIG1pbi13LVs0NXB4XSB0ZXh0LXhzIHRleHQtZ3JheS05MDAgcHgtMiBzaHJpbmstMFwiXG4gICAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiZ2V0QmFkZ2VDb2xvcihmb3JtYXRzWzFdKVwiXG4gICAgICAgICAgKm5nSWY9XCJmb3JtYXRzWzFdXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGZvcm1hdHNbMV0gfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2hyaW5rLTAgdGV4dC14c1wiICpuZ0lmPVwiZm9ybWF0cy5zbGljZSgyKS5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgPHNwYW4+K3t7IGZvcm1hdHMuc2xpY2UoMikubGVuZ3RoIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cIiFnZXRSZWNvcmRGb3JtYXRzKGl0ZW0pXCI+PC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9nbi11aS1pbnRlcmFjdGl2ZS10YWJsZS1jb2x1bW4+XG5cbiAgPCEtLSBPV05FUiBDT0xVTU4gLS0+XG4gIDxnbi11aS1pbnRlcmFjdGl2ZS10YWJsZS1jb2x1bW5cbiAgICBbd2lkdGhdPVwiJzlyZW0nXCJcbiAgICBbc29ydGFibGVdPVwidHJ1ZVwiXG4gICAgW2FjdGl2ZVNvcnRdPVwiaXNTb3J0ZWRCeSgncmVjb3JkT3duZXInKVwiXG4gICAgKHNvcnRDaGFuZ2UpPVwic2V0U29ydEJ5KCdyZWNvcmRPd25lcicsICRldmVudClcIlxuICA+XG4gICAgPG5nLXRlbXBsYXRlICNoZWFkZXI+XG4gICAgICA8c3BhbiB0cmFuc2xhdGU+c2VhcmNoLmZpbHRlcnMudXNlcjwvc3Bhbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjY2VsbCBsZXQtaXRlbT5cbiAgICAgIDxuZy1pY29uIG5hbWU9XCJpY29ub2lyVXNlclwiIHNpemU9XCIxNnB4XCI+PC9uZy1pY29uPlxuICAgICAgPHNwYW4gZGF0YS1jeT1cIm93bmVySW5mb1wiIGNsYXNzPVwidGV4dC14c1wiPnt7XG4gICAgICAgIGZvcm1hdFVzZXJJbmZvKGl0ZW0uZXh0cmFzPy5vd25lckluZm8pXG4gICAgICB9fTwvc3Bhbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2duLXVpLWludGVyYWN0aXZlLXRhYmxlLWNvbHVtbj5cblxuICA8IS0tIFNUQVRVUyBDT0xVTU4gLS0+XG4gIDxnbi11aS1pbnRlcmFjdGl2ZS10YWJsZS1jb2x1bW4gW3dpZHRoXT1cIic2cmVtJ1wiPlxuICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGVyPlxuICAgICAgPHNwYW4gdHJhbnNsYXRlPnJlY29yZC5tZXRhZGF0YS5zdGF0dXM8L3NwYW4+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI2NlbGwgbGV0LWl0ZW0+XG4gICAgICA8c3BhbiBjbGFzcz1cInRleHQteHNcIj5cbiAgICAgICAge3tcbiAgICAgICAgICAoaXNVbnNhdmVkRHJhZnQoaXRlbSlcbiAgICAgICAgICAgID8gJ3JlY29yZC5tZXRhZGF0YS5zdGF0dXMubm90UHVibGlzaGVkJ1xuICAgICAgICAgICAgOiAncmVjb3JkLm1ldGFkYXRhLnN0YXR1cy5wdWJsaXNoZWQnXG4gICAgICAgICAgKSB8IHRyYW5zbGF0ZVxuICAgICAgICB9fTwvc3BhblxuICAgICAgPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZ24tdWktaW50ZXJhY3RpdmUtdGFibGUtY29sdW1uPlxuXG4gIDwhLS0gVVBEQVRFIERBVEUgQ09MVU1OIC0tPlxuICA8Z24tdWktaW50ZXJhY3RpdmUtdGFibGUtY29sdW1uXG4gICAgW3dpZHRoXT1cIic4cmVtJ1wiXG4gICAgW3NvcnRhYmxlXT1cInRydWVcIlxuICAgIFthY3RpdmVTb3J0XT1cImlzU29ydGVkQnkoJ2NoYW5nZURhdGUnKVwiXG4gICAgKHNvcnRDaGFuZ2UpPVwic2V0U29ydEJ5KCdjaGFuZ2VEYXRlJywgJGV2ZW50KVwiXG4gID5cbiAgICA8bmctdGVtcGxhdGUgI2hlYWRlcj5cbiAgICAgIDxzcGFuIHRyYW5zbGF0ZT5zZWFyY2guZmlsdGVycy5jaGFuZ2VEYXRlPC9zcGFuPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNjZWxsIGxldC1pdGVtPlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggdGV4dC1sZWZ0IHctZnVsbCB0ZXh0LXhzXCI+XG4gICAgICAgIHt7IGlzVW5zYXZlZERyYWZ0KGl0ZW0pID8gJy0nIDogZGF0ZVRvU3RyaW5nKGl0ZW0ucmVjb3JkVXBkYXRlZCkgfX1cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZ24tdWktaW50ZXJhY3RpdmUtdGFibGUtY29sdW1uPlxuXG4gIDwhLS0gQUNUSU9OIE1FTlUgQ09MVU1OIC0tPlxuICA8Z24tdWktaW50ZXJhY3RpdmUtdGFibGUtY29sdW1uPlxuICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGVyPiA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjY2VsbCBsZXQtaXRlbT5cbiAgICAgIDxnbi11aS1idXR0b25cbiAgICAgICAgY2RrT3ZlcmxheU9yaWdpblxuICAgICAgICAjYWN0aW9uTWVudUJ1dHRvblxuICAgICAgICAoYnV0dG9uQ2xpY2spPVwib3BlbkFjdGlvbk1lbnUoaXRlbSwgdGVtcGxhdGUpXCJcbiAgICAgICAgdHlwZT1cImxpZ2h0XCJcbiAgICAgICAgZGF0YS10ZXN0PVwicmVjb3JkLW1lbnUtYnV0dG9uXCJcbiAgICAgID5cbiAgICAgICAgPG5nLWljb24gbmFtZT1cIm1hdE1vcmVWZXJ0XCI+PC9uZy1pY29uPlxuICAgICAgPC9nbi11aS1idXR0b24+XG4gICAgICA8bmctdGVtcGxhdGUgI3RlbXBsYXRlPlxuICAgICAgICA8Z24tdWktYWN0aW9uLW1lbnVcbiAgICAgICAgICBbY2FuRHVwbGljYXRlXT1cImNhbkR1cGxpY2F0ZShpdGVtKVwiXG4gICAgICAgICAgW2NhbkRlbGV0ZV09XCJjYW5EZWxldGUoaXRlbSlcIlxuICAgICAgICAgIChkdXBsaWNhdGUpPVwiaGFuZGxlRHVwbGljYXRlKGl0ZW0pXCJcbiAgICAgICAgICAoZGVsZXRlKT1cImhhbmRsZURlbGV0ZShpdGVtKVwiXG4gICAgICAgICAgKGNsb3NlQWN0aW9uTWVudSk9XCJjbG9zZUFjdGlvbk1lbnUoKVwiXG4gICAgICAgID5cbiAgICAgICAgPC9nbi11aS1hY3Rpb24tbWVudT5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9nbi11aS1pbnRlcmFjdGl2ZS10YWJsZS1jb2x1bW4+XG48L2duLXVpLWludGVyYWN0aXZlLXRhYmxlPlxuIl19
182
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdWx0cy10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL3NlYXJjaC9zcmMvbGliL3Jlc3VsdHMtdGFibGUvcmVzdWx0cy10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL3NlYXJjaC9zcmMvbGliL3Jlc3VsdHMtdGFibGUvcmVzdWx0cy10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxZQUFZLEVBQ1osZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFBO0FBTXRCLE9BQU8sRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0NBQXNDLENBQUE7QUFDckYsT0FBTyxFQUNMLCtCQUErQixFQUMvQix5QkFBeUIsR0FDMUIsTUFBTSxzQ0FBc0MsQ0FBQTtBQUM3QyxPQUFPLEVBRUwsY0FBYyxFQUNkLGFBQWEsRUFDYixhQUFhLEVBQ2IsaUJBQWlCLEdBQ2xCLE1BQU0sd0NBQXdDLENBQUE7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3JELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFBO0FBQ3pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDOUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUM1RCxPQUFPLEVBRUwsZ0JBQWdCLEVBQ2hCLE9BQU8sR0FFUixNQUFNLHNCQUFzQixDQUFBO0FBQzdCLE9BQU8s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QUFlO3NCQUF4QixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0cscUJBQXFCO3NCQUE5QixNQUFNO2dCQUtQLGlCQUFpQjtzQkFEaEIsWUFBWTt1QkFBQyxrQkFBa0IsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgVmlld0NoaWxkcmVuLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQ2F0YWxvZ1JlY29yZCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcbmltcG9ydCB7XG4gIEZpZWxkU29ydCxcbiAgU29ydEJ5RmllbGQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3NlYXJjaCdcbmltcG9ydCB7IEJhZGdlQ29tcG9uZW50LCBVaUlucHV0c01vZHVsZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvaW5wdXRzL3NyYydcbmltcG9ydCB7XG4gIEludGVyYWN0aXZlVGFibGVDb2x1bW5Db21wb25lbnQsXG4gIEludGVyYWN0aXZlVGFibGVDb21wb25lbnQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvbGF5b3V0L3NyYydcbmltcG9ydCB7XG4gIEZpbGVGb3JtYXQsXG4gIGZvcm1hdFVzZXJJbmZvLFxuICBnZXRCYWRnZUNvbG9yLFxuICBnZXRGaWxlRm9ybWF0LFxuICBnZXRGb3JtYXRQcmlvcml0eSxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL3NoYXJlZC9zcmMnXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgQWN0aW9uTWVudUNvbXBvbmVudCB9IGZyb20gJy4vYWN0aW9uLW1lbnUvYWN0aW9uLW1lbnUuY29tcG9uZW50J1xuaW1wb3J0IHsgTmdJY29uQ29tcG9uZW50LCBwcm92aWRlSWNvbnMgfSBmcm9tICdAbmctaWNvbnMvY29yZSdcbmltcG9ydCB7IGljb25vaXJVc2VyLCBpY29ub2lyTG9jayB9IGZyb20gJ0BuZy1pY29ucy9pY29ub2lyJ1xuaW1wb3J0IHtcbiAgQ2RrQ29ubmVjdGVkT3ZlcmxheSxcbiAgQ2RrT3ZlcmxheU9yaWdpbixcbiAgT3ZlcmxheSxcbiAgT3ZlcmxheVJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknXG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnXG5pbXBvcnQgeyBtYXRNb3JlVmVydCB9IGZyb20gJ0BuZy1pY29ucy9tYXRlcmlhbC1pY29ucy9iYXNlbGluZSdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktcmVzdWx0cy10YWJsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZXN1bHRzLXRhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmVzdWx0cy10YWJsZS5jb21wb25lbnQuY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgVWlJbnB1dHNNb2R1bGUsXG4gICAgSW50ZXJhY3RpdmVUYWJsZUNvbXBvbmVudCxcbiAgICBJbnRlcmFjdGl2ZVRhYmxlQ29sdW1uQ29tcG9uZW50LFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBCYWRnZUNvbXBvbmVudCxcbiAgICBBY3Rpb25NZW51Q29tcG9uZW50LFxuICAgIE5nSWNvbkNvbXBvbmVudCxcbiAgICBDZGtPdmVybGF5T3JpZ2luLFxuICBdLFxuICBwcm92aWRlcnM6IFtwcm92aWRlSWNvbnMoeyBpY29ub2lyVXNlciwgaWNvbm9pckxvY2ssIG1hdE1vcmVWZXJ0IH0pXSxcbn0pXG5leHBvcnQgY2xhc3MgUmVzdWx0c1RhYmxlQ29tcG9uZW50IHtcbiAgQElucHV0KCkgcmVjb3JkczogQ2F0YWxvZ1JlY29yZFtdID0gW11cbiAgQElucHV0KCkgc2VsZWN0ZWRSZWNvcmRzSWRlbnRpZmllcnM6IHN0cmluZ1tdID0gW11cbiAgQElucHV0KCkgc29ydE9yZGVyOiBTb3J0QnlGaWVsZCA9IG51bGxcbiAgQElucHV0KCkgaGFzRHJhZnQ6IChyZWNvcmQ6IENhdGFsb2dSZWNvcmQpID0+IGJvb2xlYW4gPSAoKSA9PiBmYWxzZVxuICBASW5wdXQoKSBjYW5EdXBsaWNhdGU6IChyZWNvcmQ6IENhdGFsb2dSZWNvcmQpID0+IGJvb2xlYW4gPSAoKSA9PiB0cnVlXG4gIEBJbnB1dCgpIGNhbkRlbGV0ZTogKHJlY29yZDogQ2F0YWxvZ1JlY29yZCkgPT4gYm9vbGVhbiA9ICgpID0+IHRydWVcbiAgQElucHV0KCkgaXNEcmFmdFBhZ2UgPSBmYWxzZVxuXG4gIC8vIGVtaXRzIHRoZSBjb2x1bW4gKGZpZWxkKSBhcyB3ZWxsIGFzIHRoZSBvcmRlclxuICBAT3V0cHV0KCkgc29ydEJ5Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxbc3RyaW5nLCAnYXNjJyB8ICdkZXNjJ10+KClcbiAgQE91dHB1dCgpIHJlY29yZENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxDYXRhbG9nUmVjb3JkPigpXG4gIEBPdXRwdXQoKSBkdXBsaWNhdGVSZWNvcmQgPSBuZXcgRXZlbnRFbWl0dGVyPENhdGFsb2dSZWNvcmQ+KClcbiAgQE91dHB1dCgpIGRlbGV0ZVJlY29yZCA9IG5ldyBFdmVudEVtaXR0ZXI8Q2F0YWxvZ1JlY29yZD4oKVxuICBAT3V0cHV0KCkgcmVjb3Jkc1NlbGVjdGVkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxcbiAgICBbQ2F0YWxvZ1JlY29yZFtdLCBib29sZWFuXVxuICA+KClcblxuICBAVmlld0NoaWxkcmVuKCdhY3Rpb25NZW51QnV0dG9uJywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gIGFjdGlvbk1lbnVCdXR0b25zITogUXVlcnlMaXN0PEVsZW1lbnRSZWY+XG4gIHByaXZhdGUgb3ZlcmxheVJlZiE6IE92ZXJsYXlSZWZcblxuICBpc0FjdGlvbk1lbnVPcGVuID0gZmFsc2VcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHt9XG5cbiAgb3BlbkFjdGlvbk1lbnUoaXRlbSwgdGVtcGxhdGUpIHtcbiAgICB0aGlzLmlzQWN0aW9uTWVudU9wZW4gPSB0cnVlXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLnJlY29yZHMuaW5kZXhPZihpdGVtKVxuICAgIGNvbnN0IGJ1dHRvbkVsZW1lbnQgPSB0aGlzLmFjdGlvbk1lbnVCdXR0b25zLnRvQXJyYXkoKVtpbmRleF1cblxuICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXlcbiAgICAgIC5wb3NpdGlvbigpXG4gICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyhidXR0b25FbGVtZW50KVxuICAgICAgLndpdGhGbGV4aWJsZURpbWVuc2lvbnModHJ1ZSlcbiAgICAgIC53aXRoUHVzaCh0cnVlKVxuICAgICAgLndpdGhQb3NpdGlvbnMoW1xuICAgICAgICB7XG4gICAgICAgICAgb3JpZ2luWDogJ2VuZCcsXG4gICAgICAgICAgb3JpZ2luWTogJ2JvdHRvbScsXG4gICAgICAgICAgb3ZlcmxheVg6ICdlbmQnLFxuICAgICAgICAgIG92ZXJsYXlZOiAndG9wJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG9yaWdpblg6ICdlbmQnLFxuICAgICAgICAgIG9yaWdpblk6ICd0b3AnLFxuICAgICAgICAgIG92ZXJsYXlYOiAnZW5kJyxcbiAgICAgICAgICBvdmVybGF5WTogJ2JvdHRvbScsXG4gICAgICAgIH0sXG4gICAgICBdKVxuXG4gICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZSh7XG4gICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgIGJhY2tkcm9wQ2xhc3M6ICdjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCcsXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5OiBwb3NpdGlvblN0cmF0ZWd5LFxuICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKSxcbiAgICB9KVxuXG4gICAgY29uc3QgcG9ydGFsID0gbmV3IFRlbXBsYXRlUG9ydGFsKHRlbXBsYXRlLCB0aGlzLnZpZXdDb250YWluZXJSZWYpXG5cbiAgICB0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKHBvcnRhbClcblxuICAgIHRoaXMub3ZlcmxheVJlZi5iYWNrZHJvcENsaWNrKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuY2xvc2VBY3Rpb25NZW51KClcbiAgICB9KVxuICB9XG5cbiAgY2xvc2VBY3Rpb25NZW51KCkge1xuICAgIGlmICh0aGlzLm92ZXJsYXlSZWYpIHtcbiAgICAgIHRoaXMuaXNBY3Rpb25NZW51T3BlbiA9IGZhbHNlXG4gICAgICB0aGlzLm92ZXJsYXlSZWYuZGlzcG9zZSgpXG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKVxuICAgIH1cbiAgfVxuXG4gIGRhdGVUb1N0cmluZyhkYXRlOiBEYXRlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZGF0ZT8udG9Mb2NhbGVEYXRlU3RyaW5nKHVuZGVmaW5lZCwge1xuICAgICAgeWVhcjogJ251bWVyaWMnLFxuICAgICAgbW9udGg6ICdsb25nJyxcbiAgICAgIGRheTogJ251bWVyaWMnLFxuICAgICAgdGltZVpvbmU6ICdVVEMnLFxuICAgIH0pXG4gIH1cblxuICBnZXRSZWNvcmRGb3JtYXRzKHJlY29yZDogQ2F0YWxvZ1JlY29yZCk6IEZpbGVGb3JtYXRbXSB7XG4gICAgaWYgKHJlY29yZC5raW5kID09PSAnc2VydmljZScgfHwgISgnb25saW5lUmVzb3VyY2VzJyBpbiByZWNvcmQpKSB7XG4gICAgICByZXR1cm4gW11cbiAgICB9XG4gICAgY29uc3QgZm9ybWF0cyA9IEFycmF5LmZyb20oXG4gICAgICBuZXcgU2V0KFxuICAgICAgICByZWNvcmQub25saW5lUmVzb3VyY2VzLm1hcCgob25saW5lUmVzb3VyY2UpID0+XG4gICAgICAgICAgZ2V0RmlsZUZvcm1hdChvbmxpbmVSZXNvdXJjZSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgICkuZmlsdGVyKChmb3JtYXQpID0+ICEhZm9ybWF0KVxuICAgIGZvcm1hdHMuc29ydCgoYSwgYikgPT4gZ2V0Rm9ybWF0UHJpb3JpdHkoYikgLSBnZXRGb3JtYXRQcmlvcml0eShhKSlcbiAgICByZXR1cm4gZm9ybWF0c1xuICB9XG5cbiAgZm9ybWF0VXNlckluZm8odXNlckluZm86IHN0cmluZyB8IHVua25vd24pOiBzdHJpbmcge1xuICAgIHJldHVybiBmb3JtYXRVc2VySW5mbyh1c2VySW5mbylcbiAgfVxuXG4gIGdldEJhZGdlQ29sb3IoZm9ybWF0OiBGaWxlRm9ybWF0KTogc3RyaW5nIHtcbiAgICByZXR1cm4gZ2V0QmFkZ2VDb2xvcihmb3JtYXQpXG4gIH1cblxuICBoYW5kbGVSZWNvcmRDbGljayhpdGVtOiBDYXRhbG9nUmVjb3JkKSB7XG4gICAgaWYgKGl0ZW0/LmV4dHJhcz8uZWRpdCB8fCB0aGlzLmlzRHJhZnRQYWdlKVxuICAgICAgdGhpcy5yZWNvcmRDbGljay5lbWl0KGl0ZW0gYXMgQ2F0YWxvZ1JlY29yZClcbiAgfVxuXG4gIGhhbmRsZUR1cGxpY2F0ZShpdGVtOiB1bmtub3duKSB7XG4gICAgdGhpcy5kdXBsaWNhdGVSZWNvcmQuZW1pdChpdGVtIGFzIENhdGFsb2dSZWNvcmQpXG4gIH1cblxuICBoYW5kbGVEZWxldGUoaXRlbTogdW5rbm93bikge1xuICAgIHRoaXMuZGVsZXRlUmVjb3JkLmVtaXQoaXRlbSBhcyBDYXRhbG9nUmVjb3JkKVxuICAgIHRoaXMuY2xvc2VBY3Rpb25NZW51KClcbiAgfVxuXG4gIHNldFNvcnRCeShjb2w6IHN0cmluZywgb3JkZXI6ICdhc2MnIHwgJ2Rlc2MnKSB7XG4gICAgdGhpcy5zb3J0QnlDaGFuZ2UuZW1pdChbY29sLCBvcmRlcl0pXG4gIH1cblxuICBpc1NvcnRlZEJ5KGNvbDogc3RyaW5nKTogJ2Rlc2MnIHwgJ2FzYycgfCBudWxsIHtcbiAgICBpZiAoIXRoaXMuc29ydE9yZGVyKSB7XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cbiAgICBjb25zdCBzb3J0QXJyYXkgPSBBcnJheS5pc0FycmF5KHRoaXMuc29ydE9yZGVyWzBdKVxuICAgICAgPyAodGhpcy5zb3J0T3JkZXIgYXMgRmllbGRTb3J0W10pXG4gICAgICA6IChbdGhpcy5zb3J0T3JkZXJdIGFzIEZpZWxkU29ydFtdKVxuICAgIGZvciAoY29uc3Qgc29ydCBvZiBzb3J0QXJyYXkpIHtcbiAgICAgIGlmIChzb3J0WzFdID09PSBjb2wpIHtcbiAgICAgICAgcmV0dXJuIHNvcnRbMF1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGlzQ2hlY2tlZChyZWNvcmQ6IENhdGFsb2dSZWNvcmQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZFJlY29yZHNJZGVudGlmaWVycy5pbmNsdWRlcyhyZWNvcmQudW5pcXVlSWRlbnRpZmllcilcbiAgfVxuXG4gIGhhbmRsZVJlY29yZFNlbGVjdGVkQ2hhbmdlKHNlbGVjdGVkOiBib29sZWFuLCByZWNvcmQ6IENhdGFsb2dSZWNvcmQpIHtcbiAgICB0aGlzLnJlY29yZHNTZWxlY3RlZENoYW5nZS5lbWl0KFtbcmVjb3JkXSwgc2VsZWN0ZWRdKVxuICB9XG59XG4iLCI8Z24tdWktaW50ZXJhY3RpdmUtdGFibGVcbiAgW2l0ZW1zXT1cInJlY29yZHNcIlxuICBbaXNEcmFmdFBhZ2VdPVwiaXNEcmFmdFBhZ2VcIlxuICAoaXRlbUNsaWNrKT1cImhhbmRsZVJlY29yZENsaWNrKCRldmVudClcIlxuPlxuICA8IS0tIFNFTEVDVEVEIENPTFVNTiAtLT5cbiAgPGduLXVpLWludGVyYWN0aXZlLXRhYmxlLWNvbHVtbiBbd2lkdGhdPVwiJzNyZW0nXCI+XG4gICAgPG5nLXRlbXBsYXRlICNjZWxsIGxldC1pdGVtIGxldC1pPVwiaW5kZXhcIj5cbiAgICAgIDxuZy1pY29uXG4gICAgICAgIG5hbWU9XCJpY29ub2lyTG9ja1wiXG4gICAgICAgIGNsYXNzPVwidGV4dC1wdXJwbGVcIlxuICAgICAgICAqbmdJZj1cIiFpdGVtLmV4dHJhcz8uZWRpdCAmJiAhaXNEcmFmdFBhZ2VcIlxuICAgICAgPjwvbmctaWNvbj5cbiAgICAgIDxnbi11aS1jaGVja2JveFxuICAgICAgICAqbmdJZj1cIml0ZW0uZXh0cmFzPy5lZGl0IHx8IGlzRHJhZnRQYWdlXCJcbiAgICAgICAgW2NoZWNrZWRdPVwiaXNDaGVja2VkKGl0ZW0pXCJcbiAgICAgICAgKGNoYW5nZWQpPVwiaGFuZGxlUmVjb3JkU2VsZWN0ZWRDaGFuZ2UoJGV2ZW50LCBpdGVtKVwiXG4gICAgICAgIGNsYXNzPVwiLW0tMlwiXG4gICAgICAgIHR5cGU9XCJkZWZhdWx0XCJcbiAgICAgID48L2duLXVpLWNoZWNrYm94PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZ24tdWktaW50ZXJhY3RpdmUtdGFibGUtY29sdW1uPlxuXG4gIDwhLS0gVElUTEUgQ09MVU1OIC0tPlxuICA8Z24tdWktaW50ZXJhY3RpdmUtdGFibGUtY29sdW1uXG4gICAgW3NvcnRhYmxlXT1cInRydWVcIlxuICAgIFtncm93XT1cInRydWVcIlxuICAgIFthY3RpdmVTb3J0XT1cImlzU29ydGVkQnkoJ3Jlc291cmNlVGl0bGVPYmplY3QuZGVmYXVsdC5rZXl3b3JkJylcIlxuICAgIChzb3J0Q2hhbmdlKT1cInNldFNvcnRCeSgncmVzb3VyY2VUaXRsZU9iamVjdC5kZWZhdWx0LmtleXdvcmQnLCAkZXZlbnQpXCJcbiAgPlxuICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGVyPlxuICAgICAgPHNwYW4gdHJhbnNsYXRlPnJlY29yZC5tZXRhZGF0YS50aXRsZTwvc3Bhbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjY2VsbCBsZXQtaXRlbT5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGl0ZW1zLWNlbnRlciBnYXAtMiBtYXgtdy1mdWxsIGZvbnQtc2VtaWJvbGRcIj5cbiAgICAgICAgPHNwYW4gZGF0YS1jeT1cInJlc3VsdEl0ZW1UaXRsZVwiIGNsYXNzPVwib3ZlcmZsb3ctaGlkZGVuIHRleHQtZWxsaXBzaXNcIj57e1xuICAgICAgICAgIGl0ZW0udGl0bGVcbiAgICAgICAgfX08L3NwYW4+XG4gICAgICAgIDxnbi11aS1iYWRnZVxuICAgICAgICAgICpuZ0lmPVwiaGFzRHJhZnQoaXRlbSlcIlxuICAgICAgICAgIFtzdHlsZS4tLWduLXVpLWJhZGdlLXBhZGRpbmddPVwiJzAuMmVtIDAuNmVtJ1wiXG4gICAgICAgICAgW3N0eWxlLi0tZ24tdWktYmFkZ2UtdGV4dC1zaXplXT1cIicxMnB4J1wiXG4gICAgICAgICAgW3N0eWxlLi0tZ24tdWktYmFkZ2UtdGV4dC1jb2xvcl09XCInIzNkMjAwNidcIlxuICAgICAgICAgIFtzdHlsZS4tLWduLXVpLWJhZGdlLWJhY2tncm91bmQtY29sb3JdPVwiJyNmZmJjN2InXCJcbiAgICAgICAgICBbc3R5bGUuLS1nbi11aS1iYWRnZS1yb3VuZGVkXT1cIic0cHgnXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxzcGFuIHRyYW5zbGF0ZT5kYXNoYm9hcmQucmVjb3Jkcy5oYXNEcmFmdDwvc3Bhbj5cbiAgICAgICAgPC9nbi11aS1iYWRnZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZ24tdWktaW50ZXJhY3RpdmUtdGFibGUtY29sdW1uPlxuXG4gIDwhLS0gRk9STUFUUyBDT0xVTU4gLS0+XG4gIDxnbi11aS1pbnRlcmFjdGl2ZS10YWJsZS1jb2x1bW4gW3dpZHRoXT1cIic5cmVtJ1wiPlxuICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGVyPlxuICAgICAgPHNwYW4gdHJhbnNsYXRlPnJlY29yZC5tZXRhZGF0YS5mb3JtYXRzPC9zcGFuPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNjZWxsIGxldC1pdGVtPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImZsZXgganVzdGlmeS1zdGFydCBpdGVtcy1jZW50ZXIgZ2FwLTIgZm9udC1tZWRpdW1cIlxuICAgICAgICAqbmdJZj1cImdldFJlY29yZEZvcm1hdHMoaXRlbSkgYXMgZm9ybWF0c1wiXG4gICAgICAgIFt0aXRsZV09XCJmb3JtYXRzLmpvaW4oJywgJylcIlxuICAgICAgPlxuICAgICAgICA8c3BhblxuICAgICAgICAgIGNsYXNzPVwiYmFkZ2UtYnRuIG1pbi13LVs0NXB4XSB0ZXh0LXhzIHRleHQtZ3JheS05MDAgcHgtMiBzaHJpbmstMFwiXG4gICAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiZ2V0QmFkZ2VDb2xvcihmb3JtYXRzWzBdKVwiXG4gICAgICAgICAgKm5nSWY9XCJmb3JtYXRzWzBdXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGZvcm1hdHNbMF0gfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhblxuICAgICAgICAgIGNsYXNzPVwiYmFkZ2UtYnRuIG1pbi13LVs0NXB4XSB0ZXh0LXhzIHRleHQtZ3JheS05MDAgcHgtMiBzaHJpbmstMFwiXG4gICAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiZ2V0QmFkZ2VDb2xvcihmb3JtYXRzWzFdKVwiXG4gICAgICAgICAgKm5nSWY9XCJmb3JtYXRzWzFdXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGZvcm1hdHNbMV0gfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2hyaW5rLTAgdGV4dC14c1wiICpuZ0lmPVwiZm9ybWF0cy5zbGljZSgyKS5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgPHNwYW4+K3t7IGZvcm1hdHMuc2xpY2UoMikubGVuZ3RoIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cIiFnZXRSZWNvcmRGb3JtYXRzKGl0ZW0pXCI+PC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9nbi11aS1pbnRlcmFjdGl2ZS10YWJsZS1jb2x1bW4+XG5cbiAgPCEtLSBPV05FUiBDT0xVTU4gLS0+XG4gIDxnbi11aS1pbnRlcmFjdGl2ZS10YWJsZS1jb2x1bW5cbiAgICBbd2lkdGhdPVwiJzlyZW0nXCJcbiAgICBbc29ydGFibGVdPVwidHJ1ZVwiXG4gICAgW2FjdGl2ZVNvcnRdPVwiaXNTb3J0ZWRCeSgncmVjb3JkT3duZXInKVwiXG4gICAgKHNvcnRDaGFuZ2UpPVwic2V0U29ydEJ5KCdyZWNvcmRPd25lcicsICRldmVudClcIlxuICA+XG4gICAgPG5nLXRlbXBsYXRlICNoZWFkZXI+XG4gICAgICA8c3BhbiB0cmFuc2xhdGU+c2VhcmNoLmZpbHRlcnMudXNlcjwvc3Bhbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjY2VsbCBsZXQtaXRlbT5cbiAgICAgIDxuZy1pY29uIG5hbWU9XCJpY29ub2lyVXNlclwiIHNpemU9XCIxNnB4XCI+PC9uZy1pY29uPlxuICAgICAgPHNwYW4gZGF0YS1jeT1cIm93bmVySW5mb1wiIGNsYXNzPVwidGV4dC14c1wiPnt7XG4gICAgICAgIGZvcm1hdFVzZXJJbmZvKGl0ZW0uZXh0cmFzPy5vd25lckluZm8pXG4gICAgICB9fTwvc3Bhbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2duLXVpLWludGVyYWN0aXZlLXRhYmxlLWNvbHVtbj5cblxuICA8IS0tIFNUQVRVUyBDT0xVTU4gLS0+XG4gIDxnbi11aS1pbnRlcmFjdGl2ZS10YWJsZS1jb2x1bW4gW3dpZHRoXT1cIic2cmVtJ1wiPlxuICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGVyPlxuICAgICAgPHNwYW4gdHJhbnNsYXRlPnJlY29yZC5tZXRhZGF0YS5zdGF0dXM8L3NwYW4+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI2NlbGwgbGV0LWl0ZW0+XG4gICAgICA8c3BhbiBjbGFzcz1cInRleHQteHNcIj5cbiAgICAgICAge3tcbiAgICAgICAgICAoaXRlbS5leHRyYXM/LlsnaXNQdWJsaXNoZWRUb0FsbCddXG4gICAgICAgICAgICA/ICdyZWNvcmQubWV0YWRhdGEuc3RhdHVzLnB1Ymxpc2hlZCdcbiAgICAgICAgICAgIDogJ3JlY29yZC5tZXRhZGF0YS5zdGF0dXMubm90UHVibGlzaGVkJ1xuICAgICAgICAgICkgfCB0cmFuc2xhdGVcbiAgICAgICAgfX08L3NwYW5cbiAgICAgID5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2duLXVpLWludGVyYWN0aXZlLXRhYmxlLWNvbHVtbj5cblxuICA8IS0tIFVQREFURSBEQVRFIENPTFVNTiAtLT5cbiAgPGduLXVpLWludGVyYWN0aXZlLXRhYmxlLWNvbHVtblxuICAgIFt3aWR0aF09XCInOHJlbSdcIlxuICAgIFtzb3J0YWJsZV09XCJ0cnVlXCJcbiAgICBbYWN0aXZlU29ydF09XCJpc1NvcnRlZEJ5KCdjaGFuZ2VEYXRlJylcIlxuICAgIChzb3J0Q2hhbmdlKT1cInNldFNvcnRCeSgnY2hhbmdlRGF0ZScsICRldmVudClcIlxuICA+XG4gICAgPG5nLXRlbXBsYXRlICNoZWFkZXI+XG4gICAgICA8c3BhbiB0cmFuc2xhdGU+c2VhcmNoLmZpbHRlcnMuY2hhbmdlRGF0ZTwvc3Bhbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjY2VsbCBsZXQtaXRlbT5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IHRleHQtbGVmdCB3LWZ1bGwgdGV4dC14c1wiPlxuICAgICAgICB7e1xuICAgICAgICAgIGl0ZW0uZXh0cmFzPy5bJ2lzUHVibGlzaGVkVG9BbGwnXVxuICAgICAgICAgICAgPyBkYXRlVG9TdHJpbmcoaXRlbS5yZWNvcmRVcGRhdGVkKVxuICAgICAgICAgICAgOiAnLSdcbiAgICAgICAgfX1cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZ24tdWktaW50ZXJhY3RpdmUtdGFibGUtY29sdW1uPlxuXG4gIDwhLS0gQUNUSU9OIE1FTlUgQ09MVU1OIC0tPlxuICA8Z24tdWktaW50ZXJhY3RpdmUtdGFibGUtY29sdW1uPlxuICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGVyPiA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjY2VsbCBsZXQtaXRlbT5cbiAgICAgIDxnbi11aS1idXR0b25cbiAgICAgICAgY2RrT3ZlcmxheU9yaWdpblxuICAgICAgICAjYWN0aW9uTWVudUJ1dHRvblxuICAgICAgICAoYnV0dG9uQ2xpY2spPVwib3BlbkFjdGlvbk1lbnUoaXRlbSwgdGVtcGxhdGUpXCJcbiAgICAgICAgdHlwZT1cImxpZ2h0XCJcbiAgICAgICAgZGF0YS10ZXN0PVwicmVjb3JkLW1lbnUtYnV0dG9uXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIiFpdGVtLmV4dHJhcz8uZWRpdCAmJiAhaXNEcmFmdFBhZ2VcIlxuICAgICAgPlxuICAgICAgICA8bmctaWNvblxuICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICd0ZXh0LXB1cnBsZS1saWdodCc6ICFpdGVtLmV4dHJhcz8uZWRpdCAmJiAhaXNEcmFmdFBhZ2UsXG4gICAgICAgICAgfVwiXG4gICAgICAgICAgbmFtZT1cIm1hdE1vcmVWZXJ0XCJcbiAgICAgICAgPjwvbmctaWNvbj5cbiAgICAgIDwvZ24tdWktYnV0dG9uPlxuICAgICAgPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZT5cbiAgICAgICAgPGduLXVpLWFjdGlvbi1tZW51XG4gICAgICAgICAgW2NhbkR1cGxpY2F0ZV09XCJjYW5EdXBsaWNhdGUoaXRlbSlcIlxuICAgICAgICAgIFtjYW5EZWxldGVdPVwiY2FuRGVsZXRlKGl0ZW0pXCJcbiAgICAgICAgICAoZHVwbGljYXRlKT1cImhhbmRsZUR1cGxpY2F0ZShpdGVtKVwiXG4gICAgICAgICAgKGRlbGV0ZSk9XCJoYW5kbGVEZWxldGUoaXRlbSlcIlxuICAgICAgICAgIChjbG9zZUFjdGlvbk1lbnUpPVwiY2xvc2VBY3Rpb25NZW51KClcIlxuICAgICAgICA+XG4gICAgICAgIDwvZ24tdWktYWN0aW9uLW1lbnU+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZ24tdWktaW50ZXJhY3RpdmUtdGFibGUtY29sdW1uPlxuPC9nbi11aS1pbnRlcmFjdGl2ZS10YWJsZT5cbiJdfQ==
@@ -1,4 +1,5 @@
1
1
  import { marker } from '@biesbjerg/ngx-translate-extract-marker';
2
+ import { OgcApiEndpoint, WfsEndpoint, WmsEndpoint, WmtsEndpoint, } from '@camptocamp/ogc-client';
2
3
  marker('downloads.wfs.featuretype.not.found');
3
4
  export const FORMATS = {
4
5
  csv: {
@@ -217,7 +218,45 @@ export function getLinkLabel(link) {
217
218
  const label = link.description || link.name;
218
219
  return format ? `${label} (${format})` : label;
219
220
  }
221
+ export async function getLayers(url, serviceProtocol) {
222
+ switch (serviceProtocol) {
223
+ case 'ogcFeatures': {
224
+ const layers = await new OgcApiEndpoint(url).allCollections;
225
+ return layers;
226
+ }
227
+ case 'wfs': {
228
+ const endpointWfs = new WfsEndpoint(url);
229
+ await endpointWfs.isReady();
230
+ return endpointWfs.getFeatureTypes();
231
+ }
232
+ case 'wms': {
233
+ const endpointWms = new WmsEndpoint(url);
234
+ await endpointWms.isReady();
235
+ return endpointWms
236
+ .getLayers()
237
+ .flatMap(wmsLayerFlatten)
238
+ .filter((l) => l.name);
239
+ }
240
+ case 'wmts': {
241
+ const endpointWmts = new WmtsEndpoint(url);
242
+ await endpointWmts.isReady();
243
+ return endpointWmts.getLayers();
244
+ }
245
+ default:
246
+ return undefined;
247
+ }
248
+ }
249
+ function wmsLayerFlatten(layerFull) {
250
+ const layer = {
251
+ title: layerFull.title,
252
+ name: layerFull.name,
253
+ abstract: layerFull.abstract,
254
+ };
255
+ return 'children' in layerFull && Array.isArray(layerFull.children)
256
+ ? [layer, ...layerFull.children.flatMap(wmsLayerFlatten)]
257
+ : [layer];
258
+ }
220
259
  export function getMimeTypeForFormat(format) {
221
260
  return format in FORMATS ? FORMATS[format.toLowerCase()].mimeTypes[0] : null;
222
261
  }
223
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9zaGFyZWQvc3JjL2xpYi9saW5rcy9saW5rLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUdoRSxNQUFNLENBQUMscUNBQXFDLENBQUMsQ0FBQTtBQUU3QyxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUc7SUFDckIsR0FBRyxFQUFFO1FBQ0gsVUFBVSxFQUFFLENBQUMsS0FBSyxDQUFDO1FBQ25CLFFBQVEsRUFBRSxDQUFDO1FBQ1gsS0FBSyxFQUFFLFNBQVM7UUFDaEIsU0FBUyxFQUFFLENBQUMsVUFBVSxFQUFFLGlCQUFpQixDQUFDO0tBQzNDO0lBQ0QsS0FBSyxFQUFFO1FBQ0wsVUFBVSxFQUFFO1lBQ1YsT0FBTztZQUNQLEtBQUs7WUFDTCxNQUFNO1lBQ04sVUFBVTtZQUNWLCtCQUErQjtTQUNoQztRQUNELFFBQVEsRUFBRSxDQUFDO1FBQ1gsS0FBSyxFQUFFLFNBQVM7UUFDaEIsU0FBUyxFQUFFO1lBQ1QsMEJBQTBCO1lBQzFCLG1FQUFtRTtTQUNwRTtLQUNGO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsVUFBVSxFQUFFLENBQUMsU0FBUyxDQUFDO1FBQ3ZCLFFBQVEsRUFBRSxDQUFDO1FBQ1gsS0FBSyxFQUFFLFNBQVM7UUFDaEIsU0FBUyxFQUFFLENBQUMsc0JBQXNCLEVBQUUsMEJBQTBCLENBQUM7S0FDaEU7SUFDRCxJQUFJLEVBQUU7UUFDSixVQUFVLEVBQUUsQ0FBQyxNQUFNLENBQUM7UUFDcEIsUUFBUSxFQUFFLENBQUM7UUFDWCxLQUFLLEVBQUUsU0FBUztRQUNoQixTQUFTLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztLQUNoQztJQUNELEdBQUcsRUFBRTtRQUNILFVBQVUsRUFBRSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsa0JB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LFFBQVEsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7b0JBQ25DLEtBQUssS0FBSzt3QkFDUixNQUFNLEdBQUcsS0FBSyxDQUFBO3dCQUNkLE1BQUs7b0JBQ1AsS0FBSyxLQUFLO3dCQUNSLE1BQU0sR0FBRyxLQUFLLENBQUE7d0JBQ2QsTUFBSztvQkFDUCxLQUFLLE1BQU07d0JBQ1QsTUFBTSxHQUFHLE1BQU0sQ0FBQTt3QkFDZixNQUFLO29CQUNQLEtBQUssVUFBVTt3QkFDYixNQUFNLEdBQUcsTUFBTSxDQUFBO3dCQUNmLE1BQUs7Z0JBQ1QsQ0FBQztZQUNILENBQUM7WUFDRCxNQUFLO1FBQ1A7WUFDRSxNQUFNLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ2hDLENBQUM7SUFDRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUE7SUFDM0MsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxLQUFLLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUE7QUFDaEQsQ0FBQztBQUVELE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxNQUFrQjtJQUNyRCxPQUFPLE1BQU0sSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQTtBQUM5RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWFya2VyIH0gZnJvbSAnQGJpZXNiamVyZy9uZ3gtdHJhbnNsYXRlLWV4dHJhY3QtbWFya2VyJ1xuaW1wb3J0IHsgRGF0YXNldE9ubGluZVJlc291cmNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuXG5tYXJrZXIoJ2Rvd25sb2Fkcy53ZnMuZmVhdHVyZXR5cGUubm90LmZvdW5kJylcblxuZXhwb3J0IGNvbnN0IEZPUk1BVFMgPSB7XG4gIGNzdjoge1xuICAgIGV4dGVuc2lvbnM6IFsnY3N2J10sXG4gICAgcHJpb3JpdHk6IDEsXG4gICAgY29sb3I6ICcjYTZkNmMwJyxcbiAgICBtaW1lVHlwZXM6IFsndGV4dC9jc3YnLCAnYXBwbGljYXRpb24vY3N2J10sXG4gIH0sXG4gIGV4Y2VsOiB7XG4gICAgZXh0ZW5zaW9uczogW1xuICAgICAgJ2V4Y2VsJyxcbiAgICAgICd4bHMnLFxuICAgICAgJ3hsc3gnLFxuICAgICAgJ21zLWV4Y2VsJyxcbiAgICAgICdvcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudCcsXG4gICAgXSxcbiAgICBwcmlvcml0eTogMixcbiAgICBjb2xvcjogJyNhY2M1ZTQnLFxuICAgIG1pbWVUeXBlczogW1xuICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbCcsXG4gICAgICAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQnLFxuICAgIF0sXG4gIH0sXG4gIGdlb2pzb246IHtcbiAgICBleHRlbnNpb25zOiBbJ2dlb2pzb24nXSxcbiAgICBwcmlvcml0eTogMyxcbiAgICBjb2xvcjogJyNiM2NkZTgnLFxuICAgIG1pbWVUeXBlczogWydhcHBsaWNhdGlvbi9nZW8ranNvbicsICdhcHBsaWNhdGlvbi92bmQuZ2VvK2pzb24nXSxcbiAgfSxcbiAganNvbjoge1xuICAgIGV4dGVuc2lvbnM6IFsnanNvbiddLFxuICAgIHByaW9yaXR5OiAzLFxuICAgIGNvbG9yOiAnI2IzY2RlOCcsXG4gICAgbWltZVR5cGVzOiBbJ2FwcGxpY2F0aW9uL2pzb24nXSxcbiAgfSxcbiAgc2hwOiB7XG4gICAgZXh0ZW5zaW9uczogWydzaHAnLCAnc2hhcGUnLCAnemlwcGVkLXNoYXBlZmlsZSddLFxuICAgIHByaW9yaXR5OiA0LFxuICAgIGNvbG9yOiAnI2IyZDhiYScsXG4gICAgbWltZVR5cGVzOiBbJ3gtZ2lzL3gtc2hhcGVmaWxlJ10sXG4gIH0sXG4gIGdtbDoge1xuICAgIGV4dGVuc2lvbnM6IFsnZ21sJ10sXG4gICAgcHJpb3JpdHk6IDUsXG4gICAgY29sb3I6ICcjZTNiM2U1JyxcbiAgICBtaW1lVHlwZXM6IFsnYXBwbGljYXRpb24vZ21sK3htbCcsICd0ZXh0L3htbDsgc3VidHlwZT1nbWwnXSxcbiAgfSxcbiAga21sOiB7XG4gICAgZXh0ZW5zaW9uczogWydrbWwnLCAna216J10sXG4gICAgcHJpb3JpdHk6IDYsXG4gICAgY29sb3I6ICcjYzFlNmEwJyxcbiAgICBtaW1lVHlwZXM6IFtcbiAgICAgICdhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWVhcnRoLmttbCt4bWwnLFxuICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5nb29nbGUtZWFydGgua216JyxcbiAgICBdLFxuICB9LFxuICBncGtnOiB7XG4gICAgZXh0ZW5zaW9uczogWydncGtnJywgJ2dlb3BhY2thZ2UnXSxcbiAgICBwcmlvcml0eTogNyxcbiAgICBjb2xvcjogJyNmN2NjZTYnLFxuICAgIG1pbWVUeXBlczogWydhcHBsaWNhdGlvbi9nZW9wYWNrYWdlK3NxbGl0ZTMnXSxcbiAgfSxcbiAgemlwOiB7XG4gICAgZXh0ZW5zaW9uczogWyd6aXAnLCAndGFyLmd6J10sXG4gICAgcHJpb3JpdHk6IDgsXG4gICAgY29sb3I6ICcjZmZlN2EzJyxcbiAgICBtaW1lVHlwZXM6IFsnYXBwbGljYXRpb24vemlwJywgJ2FwcGxpY2F0aW9uL3gtemlwJ10sXG4gIH0sXG4gIHBkZjoge1xuICAgIGV4dGVuc2lvbnM6IFsncGRmJ10sXG4gICAgcHJpb3JpdHk6IDksXG4gICAgY29sb3I6ICcjZjViMmEzJyxcbiAgICBtaW1lVHlwZXM6IFsnYXBwbGljYXRpb24vcGRmJ10sXG4gIH0sXG4gIGpwZzoge1xuICAgIGV4dGVuc2lvbnM6IFsnanBnJywgJ2pwZWcnLCAnamZpZicsICdwanBlZycsICdwanAnXSxcbiAgICBwcmlvcml0eTogOSxcbiAgICBjb2xvcjogJyNkMWMxZTknLFxuICAgIG1pbWVUeXBlczogWydpbWFnZS9qcGcnXSxcbiAgfSxcbiAgc3ZnOiB7XG4gICAgZXh0ZW5zaW9uczogWydzdmcnXSxcbiAgICBwcmlvcml0eTogMTAsXG4gICAgY29sb3I6ICcjZjNjMWM5JyxcbiAgICBtaW1lVHlwZXM6IFsnaW1hZ2Uvc3ZnK3htbCddLFxuICB9LFxuICBkeGY6IHtcbiAgICBleHRlbnNpb25zOiBbJ2R4ZiddLFxuICAgIHByaW9yaXR5OiAxMSxcbiAgICBjb2xvcjogJyNmNmNlYWMnLFxuICAgIG1pbWVUeXBlczogWydhcHBsaWNhdGlvbi94LWR4ZicsICdpbWFnZS94LWR4ZiddLFxuICB9LFxuICBodG1sOiB7XG4gICAgZXh0ZW5zaW9uczogWydodG1sJywgJ2h0bSddLFxuICAgIHByaW9yaXR5OiAxMixcbiAgICBjb2xvcjogJyNGRkYyQ0MnLFxuICAgIG1pbWVUeXBlczogWyd0ZXh0L2h0bWwnXSxcbiAgfSxcbiAgZmdiOiB7XG4gICAgZXh0ZW5zaW9uczogWydmZ2InLCAnZmxhdGdlb2J1ZiddLFxuICAgIHByaW9yaXR5OiAxMyxcbiAgICBjb2xvcjogJyNmZmU3YTMnLFxuICAgIG1pbWVUeXBlczogWydhcHBsaWNhdGlvbi9mbGF0Z2VvYnVmJ10sXG4gIH0sXG4gIGpzb25mZzoge1xuICAgIGV4dGVuc2lvbnM6IFsnanNvbmZnJywgJ2pzb25mZ2MnXSxcbiAgICBwcmlvcml0eTogMTQsXG4gICAgY29sb3I6ICcjZmZlN2EzJyxcbiAgICBtaW1lVHlwZXM6IFtcbiAgICAgICdhcHBsaWNhdGlvbi92bmQub2djLmZnK2pzb24nLFxuICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5vZ2MuZmcranNvbjtjb21wYXRpYmlsaXR5PWdlb2pzb24nLFxuICAgIF0sXG4gIH0sXG59IGFzIGNvbnN0XG5cbmV4cG9ydCB0eXBlIEZpbGVGb3JtYXQgPSBrZXlvZiB0eXBlb2YgRk9STUFUU1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9ybWF0UHJpb3JpdHkobGlua0Zvcm1hdDogRmlsZUZvcm1hdCk6IG51bWJlciB7XG4gIGZvciAoY29uc3QgZm9ybWF0IGluIEZPUk1BVFMpIHtcbiAgICBmb3IgKGNvbnN0IGV4dCBvZiBGT1JNQVRTW2Zvcm1hdF0uZXh0ZW5zaW9ucykge1xuICAgICAgaWYgKG5ldyBSZWdFeHAoYCR7ZXh0fWAsICdpJykudGVzdChsaW5rRm9ybWF0KSkge1xuICAgICAgICBpZiAoRk9STUFUU1tmb3JtYXRdLnByaW9yaXR5ID09PSAwKSByZXR1cm4gMFxuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoRk9STUFUUykubGVuZ3RoIC0gRk9STUFUU1tmb3JtYXRdLnByaW9yaXR5XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiAwXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRMaW5rUHJpb3JpdHkobGluazogRGF0YXNldE9ubGluZVJlc291cmNlKTogbnVtYmVyIHtcbiAgcmV0dXJuIGdldEZvcm1hdFByaW9yaXR5KGdldEZpbGVGb3JtYXQobGluaykpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGaWxlRm9ybWF0RnJvbVNlcnZpY2VPdXRwdXQoXG4gIHNlcnZpY2VPdXRwdXQ6IHN0cmluZ1xuKTogRmlsZUZvcm1hdCB8IG51bGwge1xuICBmdW5jdGlvbiBmb3JtYXRNYXRjaGVyKGZvcm1hdDogKHR5cGVvZiBGT1JNQVRTKVtGaWxlRm9ybWF0XSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IG91dHB1dCA9IHNlcnZpY2VPdXRwdXQudG9Mb3dlckNhc2UoKVxuICAgIHJldHVybiAoXG4gICAgICBmb3JtYXQuZXh0ZW5zaW9ucy5zb21lKChleHRlbnNpb246IHN0cmluZykgPT5cbiAgICAgICAgb3V0cHV0LmluY2x1ZGVzKGV4dGVuc2lvbilcbiAgICAgICkgfHxcbiAgICAgIGZvcm1hdC5taW1lVHlwZXMuc29tZSgobWltZVR5cGU6IHN0cmluZykgPT4gb3V0cHV0LmluY2x1ZGVzKG1pbWVUeXBlKSlcbiAgICApXG4gIH1cbiAgZm9yIChjb25zdCBmb3JtYXROYW1lIGluIEZPUk1BVFMpIHtcbiAgICBpZiAoZm9ybWF0TWF0Y2hlcihGT1JNQVRTW2Zvcm1hdE5hbWVdKSkge1xuICAgICAgcmV0dXJuIGZvcm1hdE5hbWUgYXMgRmlsZUZvcm1hdFxuICAgIH1cbiAgfVxuICByZXR1cm4gbnVsbFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RmlsZUZvcm1hdChsaW5rOiBEYXRhc2V0T25saW5lUmVzb3VyY2UpOiBGaWxlRm9ybWF0IHtcbiAgaWYgKCdtaW1lVHlwZScgaW4gbGluaykge1xuICAgIGNvbnN0IG1pbWVUeXBlRm9ybWF0ID0gbWltZVR5cGVUb0Zvcm1hdChsaW5rLm1pbWVUeXBlKVxuICAgIGlmIChtaW1lVHlwZUZvcm1hdCAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG1pbWVUeXBlRm9ybWF0XG4gICAgfVxuICB9XG4gIGZvciAoY29uc3QgZm9ybWF0IGluIEZPUk1BVFMpIHtcbiAgICBmb3IgKGNvbnN0IGFsaWFzIG9mIEZPUk1BVFNbZm9ybWF0XS5leHRlbnNpb25zKSB7XG4gICAgICBpZiAoY2hlY2tGaWxlRm9ybWF0KGxpbmssIGFsaWFzKSkgcmV0dXJuIGZvcm1hdCBhcyBGaWxlRm9ybWF0XG4gICAgICBpZiAoaXNGb3JtYXRJblF1ZXJ5UGFyYW0obGluaywgYWxpYXMpKSByZXR1cm4gZm9ybWF0IGFzIEZpbGVGb3JtYXRcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG51bGxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRm9ybWF0SW5RdWVyeVBhcmFtKFxuICBsaW5rOiBEYXRhc2V0T25saW5lUmVzb3VyY2UsXG4gIGFsaWFzOiBzdHJpbmdcbik6IGJvb2xlYW4ge1xuICBjb25zdCBxdWVyeVBhcmFtcyA9IGxpbmsudXJsLnNlYXJjaFBhcmFtc1xuICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBxdWVyeVBhcmFtcy5lbnRyaWVzKCkpIHtcbiAgICBpZiAoa2V5ID09PSAnZm9ybWF0JyB8fCBrZXkgPT09ICdmJykge1xuICAgICAgcmV0dXJuIHZhbHVlID09PSBhbGlhc1xuICAgIH1cbiAgfVxuICByZXR1cm4gZmFsc2Vcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1pbWVUeXBlVG9Gb3JtYXQobWltZVR5cGU6IHN0cmluZyk6IEZpbGVGb3JtYXQge1xuICBmb3IgKGNvbnN0IGZvcm1hdCBpbiBGT1JNQVRTKSB7XG4gICAgZm9yIChjb25zdCBtdCBvZiBGT1JNQVRTW2Zvcm1hdF0ubWltZVR5cGVzKSB7XG4gICAgICBpZiAobWltZVR5cGUgPT09IG10KSByZXR1cm4gZm9ybWF0IGFzIEZpbGVGb3JtYXRcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG51bGxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrRmlsZUZvcm1hdChcbiAgbGluazogRGF0YXNldE9ubGluZVJlc291cmNlLFxuICBmb3JtYXQ6IEZpbGVGb3JtYXRcbik6IGJvb2xlYW4ge1xuICByZXR1cm4gKFxuICAgICgnbmFtZScgaW4gbGluayAmJiBuZXcgUmVnRXhwKGBbLi9dJHtmb3JtYXR9YCwgJ2knKS50ZXN0KGxpbmsubmFtZSkpIHx8XG4gICAgKCd1cmwnIGluIGxpbmsgJiZcbiAgICAgIG5ldyBSZWdFeHAoYFsuL10ke2Zvcm1hdH1gLCAnaScpLnRlc3QobGluay51cmwudG9TdHJpbmcoKSkpXG4gIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEJhZGdlQ29sb3IobGlua0Zvcm1hdDogRmlsZUZvcm1hdCk6IHN0cmluZyB7XG4gIGZvciAoY29uc3QgZm9ybWF0IGluIEZPUk1BVFMpIHtcbiAgICBmb3IgKGNvbnN0IGFsaWFzIG9mIEZPUk1BVFNbZm9ybWF0XS5leHRlbnNpb25zKSB7XG4gICAgICBpZiAobmV3IFJlZ0V4cChgJHthbGlhc31gLCAnaScpLnRlc3QobGlua0Zvcm1hdCkpXG4gICAgICAgIHJldHVybiBGT1JNQVRTW2Zvcm1hdF0uY29sb3JcbiAgICB9XG4gIH1cbiAgcmV0dXJuICd2YXIoLS1jb2xvci1ncmF5LTcwMCknIC8vIERlZmF1bHQgY29sb3IgP1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TGlua0xhYmVsKGxpbms6IERhdGFzZXRPbmxpbmVSZXNvdXJjZSk6IHN0cmluZyB7XG4gIGxldCBmb3JtYXQgPSAnJ1xuICBzd2l0Y2ggKGxpbmsudHlwZSkge1xuICAgIGNhc2UgJ3NlcnZpY2UnOlxuICAgICAge1xuICAgICAgICBzd2l0Y2ggKGxpbmsuYWNjZXNzU2VydmljZVByb3RvY29sKSB7XG4gICAgICAgICAgY2FzZSAnd2ZzJzpcbiAgICAgICAgICAgIGZvcm1hdCA9ICdXRlMnXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIGNhc2UgJ3dtcyc6XG4gICAgICAgICAgICBmb3JtYXQgPSAnV01TJ1xuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICBjYXNlICd3bXRzJzpcbiAgICAgICAgICAgIGZvcm1hdCA9ICdXTVRTJ1xuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICBjYXNlICdlc3JpUmVzdCc6XG4gICAgICAgICAgICBmb3JtYXQgPSAnUkVTVCdcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGJyZWFrXG4gICAgZGVmYXVsdDpcbiAgICAgIGZvcm1hdCA9IGdldEZpbGVGb3JtYXQobGluaylcbiAgfVxuICBjb25zdCBsYWJlbCA9IGxpbmsuZGVzY3JpcHRpb24gfHwgbGluay5uYW1lXG4gIHJldHVybiBmb3JtYXQgPyBgJHtsYWJlbH0gKCR7Zm9ybWF0fSlgIDogbGFiZWxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE1pbWVUeXBlRm9yRm9ybWF0KGZvcm1hdDogRmlsZUZvcm1hdCk6IHN0cmluZyB8IG51bGwge1xuICByZXR1cm4gZm9ybWF0IGluIEZPUk1BVFMgPyBGT1JNQVRTW2Zvcm1hdC50b0xvd2VyQ2FzZSgpXS5taW1lVHlwZXNbMF0gOiBudWxsXG59XG4iXX0=
262
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9zaGFyZWQvc3JjL2xpYi9saW5rcy9saW5rLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUtoRSxPQUFPLEVBQ0wsY0FBYyxFQUNkLFdBQVcsRUFDWCxXQUFXLEVBQ1gsWUFBWSxHQUNiLE1BQU0sd0JBQXdCLENBQUE7QUFFL0IsTUFBTSxDQUFDLHFDQUFxQyxDQUFDLENBQUE7QUFFN0MsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHO0lBQ3JCLEdBQUcsRUFBRTtRQUNILFVBQVUsRUFBRSxDQUFDLEtBQUssQ0FBQztRQUNuQixRQUFRLEVBQUUsQ0FBQztRQUNYLEtBQUssRUFBRSxTQUFTO1FBQ2hCLFNBQVMsRUFBRSxDQUFDLFVBQVUsRUFBRSxpQkFBaUIsQ0FBQztLQUMzQztJQUNELEtBQUssRUFBRTtRQUNMLFVBQVUsRUFBRTtZQUNWLE9BQU87WUFDUCxLQUFLO1lBQ0wsTUFBTTtZQUNOLFVBQVU7WUFDViwrQkFBK0I7U0FDaEM7UUFDRCxRQUFRLEVBQUUsQ0FBQztRQUNYLEtBQUssRUFBRSxTQUFTO1FBQ2hCLFNBQVMsRUFBRTtZQUNULDBCQUEwQjtZQUMxQixtRUFBbUU7U0FDcEU7S0FDRjtJQUNELE9BQU8sRUFBRTtRQUNQLFVBQVUsRUFBRSxDQUFDLFNBQVMsQ0FBQztRQUN2QixRQUFRLEVBQUUsQ0FBQztRQUNYLEtBQUssRUFBRSxTQUFTO1FBQ2hCLFNBQVMsRUFBRSxDQUFDLHNCQUFzQixFQUFFLDBCQUEwQixDQUFDO0tBQ2hFO0lBQ0QsSUFBSSxFQUFFO1FBQ0osVUFBVSxFQUFFLENBQUMsTUFBTSxDQUFDO1FBQ3BCLFFBQVEsRUFBRSxDQUFDO1FBQ1gsS0FBSyxFQUFFLFNBQVM7UUFDaEIsU0FBUyxFQUFFLENBQUMsa0JB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QyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQTtBQUM5RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWFya2VyIH0gZnJvbSAnQGJpZXNiamVyZy9uZ3gtdHJhbnNsYXRlLWV4dHJhY3QtbWFya2VyJ1xuaW1wb3J0IHtcbiAgRGF0YXNldE9ubGluZVJlc291cmNlLFxuICBTZXJ2aWNlUHJvdG9jb2wsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcbmltcG9ydCB7XG4gIE9nY0FwaUVuZHBvaW50LFxuICBXZnNFbmRwb2ludCxcbiAgV21zRW5kcG9pbnQsXG4gIFdtdHNFbmRwb2ludCxcbn0gZnJvbSAnQGNhbXB0b2NhbXAvb2djLWNsaWVudCdcblxubWFya2VyKCdkb3dubG9hZHMud2ZzLmZlYXR1cmV0eXBlLm5vdC5mb3VuZCcpXG5cbmV4cG9ydCBjb25zdCBGT1JNQVRTID0ge1xuICBjc3Y6IHtcbiAgICBleHRlbnNpb25zOiBbJ2NzdiddLFxuICAgIHByaW9yaXR5OiAxLFxuICAgIGNvbG9yOiAnI2E2ZDZjMCcsXG4gICAgbWltZVR5cGVzOiBbJ3RleHQvY3N2JywgJ2FwcGxpY2F0aW9uL2NzdiddLFxuICB9LFxuICBleGNlbDoge1xuICAgIGV4dGVuc2lvbnM6IFtcbiAgICAgICdleGNlbCcsXG4gICAgICAneGxzJyxcbiAgICAgICd4bHN4JyxcbiAgICAgICdtcy1leGNlbCcsXG4gICAgICAnb3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQnLFxuICAgIF0sXG4gICAgcHJpb3JpdHk6IDIsXG4gICAgY29sb3I6ICcjYWNjNWU0JyxcbiAgICBtaW1lVHlwZXM6IFtcbiAgICAgICdhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwnLFxuICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0JyxcbiAgICBdLFxuICB9LFxuICBnZW9qc29uOiB7XG4gICAgZXh0ZW5zaW9uczogWydnZW9qc29uJ10sXG4gICAgcHJpb3JpdHk6IDMsXG4gICAgY29sb3I6ICcjYjNjZGU4JyxcbiAgICBtaW1lVHlwZXM6IFsnYXBwbGljYXRpb24vZ2VvK2pzb24nLCAnYXBwbGljYXRpb24vdm5kLmdlbytqc29uJ10sXG4gIH0sXG4gIGpzb246IHtcbiAgICBleHRlbnNpb25zOiBbJ2pzb24nXSxcbiAgICBwcmlvcml0eTogMyxcbiAgICBjb2xvcjogJyNiM2NkZTgnLFxuICAgIG1pbWVUeXBlczogWydhcHBsaWNhdGlvbi9qc29uJ10sXG4gIH0sXG4gIHNocDoge1xuICAgIGV4dGVuc2lvbnM6IFsnc2hwJywgJ3NoYXBlJywgJ3ppcHBlZC1zaGFwZWZpbGUnXSxcbiAgICBwcmlvcml0eTogNCxcbiAgICBjb2xvcjogJyNiMmQ4YmEnLFxuICAgIG1pbWVUeXBlczogWyd4LWdpcy94LXNoYXBlZmlsZSddLFxuICB9LFxuICBnbWw6IHtcbiAgICBleHRlbnNpb25zOiBbJ2dtbCddLFxuICAgIHByaW9yaXR5OiA1LFxuICAgIGNvbG9yOiAnI2UzYjNlNScsXG4gICAgbWltZVR5cGVzOiBbJ2FwcGxpY2F0aW9uL2dtbCt4bWwnLCAndGV4dC94bWw7IHN1YnR5cGU9Z21sJ10sXG4gIH0sXG4gIGttbDoge1xuICAgIGV4dGVuc2lvbnM6IFsna21sJywgJ2tteiddLFxuICAgIHByaW9yaXR5OiA2LFxuICAgIGNvbG9yOiAnI2MxZTZhMCcsXG4gICAgbWltZVR5cGVzOiBbXG4gICAgICAnYXBwbGljYXRpb24vdm5kLmdvb2dsZS1lYXJ0aC5rbWwreG1sJyxcbiAgICAgICdhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWVhcnRoLmtteicsXG4gICAgXSxcbiAgfSxcbiAgZ3BrZzoge1xuICAgIGV4dGVuc2lvbnM6IFsnZ3BrZycsICdnZW9wYWNrYWdlJ10sXG4gICAgcHJpb3JpdHk6IDcsXG4gICAgY29sb3I6ICcjZjdjY2U2JyxcbiAgICBtaW1lVHlwZXM6IFsnYXBwbGljYXRpb24vZ2VvcGFja2FnZStzcWxpdGUzJ10sXG4gIH0sXG4gIHppcDoge1xuICAgIGV4dGVuc2lvbnM6IFsnemlwJywgJ3Rhci5neiddLFxuICAgIHByaW9yaXR5OiA4LFxuICAgIGNvbG9yOiAnI2ZmZTdhMycsXG4gICAgbWltZVR5cGVzOiBbJ2FwcGxpY2F0aW9uL3ppcCcsICdhcHBsaWNhdGlvbi94LXppcCddLFxuICB9LFxuICBwZGY6IHtcbiAgICBleHRlbnNpb25zOiBbJ3BkZiddLFxuICAgIHByaW9yaXR5OiA5LFxuICAgIGNvbG9yOiAnI2Y1YjJhMycsXG4gICAgbWltZVR5cGVzOiBbJ2FwcGxpY2F0aW9uL3BkZiddLFxuICB9LFxuICBqcGc6IHtcbiAgICBleHRlbnNpb25zOiBbJ2pwZycsICdqcGVnJywgJ2pmaWYnLCAncGpwZWcnLCAncGpwJ10sXG4gICAgcHJpb3JpdHk6IDksXG4gICAgY29sb3I6ICcjZDFjMWU5JyxcbiAgICBtaW1lVHlwZXM6IFsnaW1hZ2UvanBnJ10sXG4gIH0sXG4gIHN2Zzoge1xuICAgIGV4dGVuc2lvbnM6IFsnc3ZnJ10sXG4gICAgcHJpb3JpdHk6IDEwLFxuICAgIGNvbG9yOiAnI2YzYzFjOScsXG4gICAgbWltZVR5cGVzOiBbJ2ltYWdlL3N2Zyt4bWwnXSxcbiAgfSxcbiAgZHhmOiB7XG4gICAgZXh0ZW5zaW9uczogWydkeGYnXSxcbiAgICBwcmlvcml0eTogMTEsXG4gICAgY29sb3I6ICcjZjZjZWFjJyxcbiAgICBtaW1lVHlwZXM6IFsnYXBwbGljYXRpb24veC1keGYnLCAnaW1hZ2UveC1keGYnXSxcbiAgfSxcbiAgaHRtbDoge1xuICAgIGV4dGVuc2lvbnM6IFsnaHRtbCcsICdodG0nXSxcbiAgICBwcmlvcml0eTogMTIsXG4gICAgY29sb3I6ICcjRkZGMkNDJyxcbiAgICBtaW1lVHlwZXM6IFsndGV4dC9odG1sJ10sXG4gIH0sXG4gIGZnYjoge1xuICAgIGV4dGVuc2lvbnM6IFsnZmdiJywgJ2ZsYXRnZW9idWYnXSxcbiAgICBwcmlvcml0eTogMTMsXG4gICAgY29sb3I6ICcjZmZlN2EzJyxcbiAgICBtaW1lVHlwZXM6IFsnYXBwbGljYXRpb24vZmxhdGdlb2J1ZiddLFxuICB9LFxuICBqc29uZmc6IHtcbiAgICBleHRlbnNpb25zOiBbJ2pzb25mZycsICdqc29uZmdjJ10sXG4gICAgcHJpb3JpdHk6IDE0LFxuICAgIGNvbG9yOiAnI2ZmZTdhMycsXG4gICAgbWltZVR5cGVzOiBbXG4gICAgICAnYXBwbGljYXRpb24vdm5kLm9nYy5mZytqc29uJyxcbiAgICAgICdhcHBsaWNhdGlvbi92bmQub2djLmZnK2pzb247Y29tcGF0aWJpbGl0eT1nZW9qc29uJyxcbiAgICBdLFxuICB9LFxufSBhcyBjb25zdFxuXG5leHBvcnQgdHlwZSBGaWxlRm9ybWF0ID0ga2V5b2YgdHlwZW9mIEZPUk1BVFNcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZvcm1hdFByaW9yaXR5KGxpbmtGb3JtYXQ6IEZpbGVGb3JtYXQpOiBudW1iZXIge1xuICBmb3IgKGNvbnN0IGZvcm1hdCBpbiBGT1JNQVRTKSB7XG4gICAgZm9yIChjb25zdCBleHQgb2YgRk9STUFUU1tmb3JtYXRdLmV4dGVuc2lvbnMpIHtcbiAgICAgIGlmIChuZXcgUmVnRXhwKGAke2V4dH1gLCAnaScpLnRlc3QobGlua0Zvcm1hdCkpIHtcbiAgICAgICAgaWYgKEZPUk1BVFNbZm9ybWF0XS5wcmlvcml0eSA9PT0gMCkgcmV0dXJuIDBcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKEZPUk1BVFMpLmxlbmd0aCAtIEZPUk1BVFNbZm9ybWF0XS5wcmlvcml0eVxuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gMFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TGlua1ByaW9yaXR5KGxpbms6IERhdGFzZXRPbmxpbmVSZXNvdXJjZSk6IG51bWJlciB7XG4gIHJldHVybiBnZXRGb3JtYXRQcmlvcml0eShnZXRGaWxlRm9ybWF0KGxpbmspKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RmlsZUZvcm1hdEZyb21TZXJ2aWNlT3V0cHV0KFxuICBzZXJ2aWNlT3V0cHV0OiBzdHJpbmdcbik6IEZpbGVGb3JtYXQgfCBudWxsIHtcbiAgZnVuY3Rpb24gZm9ybWF0TWF0Y2hlcihmb3JtYXQ6ICh0eXBlb2YgRk9STUFUUylbRmlsZUZvcm1hdF0pOiBib29sZWFuIHtcbiAgICBjb25zdCBvdXRwdXQgPSBzZXJ2aWNlT3V0cHV0LnRvTG93ZXJDYXNlKClcbiAgICByZXR1cm4gKFxuICAgICAgZm9ybWF0LmV4dGVuc2lvbnMuc29tZSgoZXh0ZW5zaW9uOiBzdHJpbmcpID0+XG4gICAgICAgIG91dHB1dC5pbmNsdWRlcyhleHRlbnNpb24pXG4gICAgICApIHx8XG4gICAgICBmb3JtYXQubWltZVR5cGVzLnNvbWUoKG1pbWVUeXBlOiBzdHJpbmcpID0+IG91dHB1dC5pbmNsdWRlcyhtaW1lVHlwZSkpXG4gICAgKVxuICB9XG4gIGZvciAoY29uc3QgZm9ybWF0TmFtZSBpbiBGT1JNQVRTKSB7XG4gICAgaWYgKGZvcm1hdE1hdGNoZXIoRk9STUFUU1tmb3JtYXROYW1lXSkpIHtcbiAgICAgIHJldHVybiBmb3JtYXROYW1lIGFzIEZpbGVGb3JtYXRcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG51bGxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZpbGVGb3JtYXQobGluazogRGF0YXNldE9ubGluZVJlc291cmNlKTogRmlsZUZvcm1hdCB7XG4gIGlmICgnbWltZVR5cGUnIGluIGxpbmspIHtcbiAgICBjb25zdCBtaW1lVHlwZUZvcm1hdCA9IG1pbWVUeXBlVG9Gb3JtYXQobGluay5taW1lVHlwZSlcbiAgICBpZiAobWltZVR5cGVGb3JtYXQgIT09IG51bGwpIHtcbiAgICAgIHJldHVybiBtaW1lVHlwZUZvcm1hdFxuICAgIH1cbiAgfVxuICBmb3IgKGNvbnN0IGZvcm1hdCBpbiBGT1JNQVRTKSB7XG4gICAgZm9yIChjb25zdCBhbGlhcyBvZiBGT1JNQVRTW2Zvcm1hdF0uZXh0ZW5zaW9ucykge1xuICAgICAgaWYgKGNoZWNrRmlsZUZvcm1hdChsaW5rLCBhbGlhcykpIHJldHVybiBmb3JtYXQgYXMgRmlsZUZvcm1hdFxuICAgICAgaWYgKGlzRm9ybWF0SW5RdWVyeVBhcmFtKGxpbmssIGFsaWFzKSkgcmV0dXJuIGZvcm1hdCBhcyBGaWxlRm9ybWF0XG4gICAgfVxuICB9XG4gIHJldHVybiBudWxsXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Zvcm1hdEluUXVlcnlQYXJhbShcbiAgbGluazogRGF0YXNldE9ubGluZVJlc291cmNlLFxuICBhbGlhczogc3RyaW5nXG4pOiBib29sZWFuIHtcbiAgY29uc3QgcXVlcnlQYXJhbXMgPSBsaW5rLnVybC5zZWFyY2hQYXJhbXNcbiAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgcXVlcnlQYXJhbXMuZW50cmllcygpKSB7XG4gICAgaWYgKGtleSA9PT0gJ2Zvcm1hdCcgfHwga2V5ID09PSAnZicpIHtcbiAgICAgIHJldHVybiB2YWx1ZSA9PT0gYWxpYXNcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGZhbHNlXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtaW1lVHlwZVRvRm9ybWF0KG1pbWVUeXBlOiBzdHJpbmcpOiBGaWxlRm9ybWF0IHtcbiAgZm9yIChjb25zdCBmb3JtYXQgaW4gRk9STUFUUykge1xuICAgIGZvciAoY29uc3QgbXQgb2YgRk9STUFUU1tmb3JtYXRdLm1pbWVUeXBlcykge1xuICAgICAgaWYgKG1pbWVUeXBlID09PSBtdCkgcmV0dXJuIGZvcm1hdCBhcyBGaWxlRm9ybWF0XG4gICAgfVxuICB9XG4gIHJldHVybiBudWxsXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjaGVja0ZpbGVGb3JtYXQoXG4gIGxpbms6IERhdGFzZXRPbmxpbmVSZXNvdXJjZSxcbiAgZm9ybWF0OiBGaWxlRm9ybWF0XG4pOiBib29sZWFuIHtcbiAgcmV0dXJuIChcbiAgICAoJ25hbWUnIGluIGxpbmsgJiYgbmV3IFJlZ0V4cChgWy4vXSR7Zm9ybWF0fWAsICdpJykudGVzdChsaW5rLm5hbWUpKSB8fFxuICAgICgndXJsJyBpbiBsaW5rICYmXG4gICAgICBuZXcgUmVnRXhwKGBbLi9dJHtmb3JtYXR9YCwgJ2knKS50ZXN0KGxpbmsudXJsLnRvU3RyaW5nKCkpKVxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRCYWRnZUNvbG9yKGxpbmtGb3JtYXQ6IEZpbGVGb3JtYXQpOiBzdHJpbmcge1xuICBmb3IgKGNvbnN0IGZvcm1hdCBpbiBGT1JNQVRTKSB7XG4gICAgZm9yIChjb25zdCBhbGlhcyBvZiBGT1JNQVRTW2Zvcm1hdF0uZXh0ZW5zaW9ucykge1xuICAgICAgaWYgKG5ldyBSZWdFeHAoYCR7YWxpYXN9YCwgJ2knKS50ZXN0KGxpbmtGb3JtYXQpKVxuICAgICAgICByZXR1cm4gRk9STUFUU1tmb3JtYXRdLmNvbG9yXG4gICAgfVxuICB9XG4gIHJldHVybiAndmFyKC0tY29sb3ItZ3JheS03MDApJyAvLyBEZWZhdWx0IGNvbG9yID9cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldExpbmtMYWJlbChsaW5rOiBEYXRhc2V0T25saW5lUmVzb3VyY2UpOiBzdHJpbmcge1xuICBsZXQgZm9ybWF0ID0gJydcbiAgc3dpdGNoIChsaW5rLnR5cGUpIHtcbiAgICBjYXNlICdzZXJ2aWNlJzpcbiAgICAgIHtcbiAgICAgICAgc3dpdGNoIChsaW5rLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCkge1xuICAgICAgICAgIGNhc2UgJ3dmcyc6XG4gICAgICAgICAgICBmb3JtYXQgPSAnV0ZTJ1xuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICBjYXNlICd3bXMnOlxuICAgICAgICAgICAgZm9ybWF0ID0gJ1dNUydcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgY2FzZSAnd210cyc6XG4gICAgICAgICAgICBmb3JtYXQgPSAnV01UUydcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgY2FzZSAnZXNyaVJlc3QnOlxuICAgICAgICAgICAgZm9ybWF0ID0gJ1JFU1QnXG4gICAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBicmVha1xuICAgIGRlZmF1bHQ6XG4gICAgICBmb3JtYXQgPSBnZXRGaWxlRm9ybWF0KGxpbmspXG4gIH1cbiAgY29uc3QgbGFiZWwgPSBsaW5rLmRlc2NyaXB0aW9uIHx8IGxpbmsubmFtZVxuICByZXR1cm4gZm9ybWF0ID8gYCR7bGFiZWx9ICgke2Zvcm1hdH0pYCA6IGxhYmVsXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRMYXllcnModXJsOiBzdHJpbmcsIHNlcnZpY2VQcm90b2NvbDogU2VydmljZVByb3RvY29sKSB7XG4gIHN3aXRjaCAoc2VydmljZVByb3RvY29sKSB7XG4gICAgY2FzZSAnb2djRmVhdHVyZXMnOiB7XG4gICAgICBjb25zdCBsYXllcnMgPSBhd2FpdCBuZXcgT2djQXBpRW5kcG9pbnQodXJsKS5hbGxDb2xsZWN0aW9uc1xuICAgICAgcmV0dXJuIGxheWVyc1xuICAgIH1cbiAgICBjYXNlICd3ZnMnOiB7XG4gICAgICBjb25zdCBlbmRwb2ludFdmcyA9IG5ldyBXZnNFbmRwb2ludCh1cmwpXG4gICAgICBhd2FpdCBlbmRwb2ludFdmcy5pc1JlYWR5KClcbiAgICAgIHJldHVybiBlbmRwb2ludFdmcy5nZXRGZWF0dXJlVHlwZXMoKVxuICAgIH1cbiAgICBjYXNlICd3bXMnOiB7XG4gICAgICBjb25zdCBlbmRwb2ludFdtcyA9IG5ldyBXbXNFbmRwb2ludCh1cmwpXG4gICAgICBhd2FpdCBlbmRwb2ludFdtcy5pc1JlYWR5KClcbiAgICAgIHJldHVybiBlbmRwb2ludFdtc1xuICAgICAgICAuZ2V0TGF5ZXJzKClcbiAgICAgICAgLmZsYXRNYXAod21zTGF5ZXJGbGF0dGVuKVxuICAgICAgICAuZmlsdGVyKChsKSA9PiBsLm5hbWUpXG4gICAgfVxuICAgIGNhc2UgJ3dtdHMnOiB7XG4gICAgICBjb25zdCBlbmRwb2ludFdtdHMgPSBuZXcgV210c0VuZHBvaW50KHVybClcbiAgICAgIGF3YWl0IGVuZHBvaW50V210cy5pc1JlYWR5KClcbiAgICAgIHJldHVybiBlbmRwb2ludFdtdHMuZ2V0TGF5ZXJzKClcbiAgICB9XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgfVxufVxuXG5mdW5jdGlvbiB3bXNMYXllckZsYXR0ZW4obGF5ZXJGdWxsKSB7XG4gIGNvbnN0IGxheWVyID0ge1xuICAgIHRpdGxlOiBsYXllckZ1bGwudGl0bGUsXG4gICAgbmFtZTogbGF5ZXJGdWxsLm5hbWUsXG4gICAgYWJzdHJhY3Q6IGxheWVyRnVsbC5hYnN0cmFjdCxcbiAgfVxuXG4gIHJldHVybiAnY2hpbGRyZW4nIGluIGxheWVyRnVsbCAmJiBBcnJheS5pc0FycmF5KGxheWVyRnVsbC5jaGlsZHJlbilcbiAgICA/IFtsYXllciwgLi4ubGF5ZXJGdWxsLmNoaWxkcmVuLmZsYXRNYXAod21zTGF5ZXJGbGF0dGVuKV1cbiAgICA6IFtsYXllcl1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE1pbWVUeXBlRm9yRm9ybWF0KGZvcm1hdDogRmlsZUZvcm1hdCk6IHN0cmluZyB8IG51bGwge1xuICByZXR1cm4gZm9ybWF0IGluIEZPUk1BVFMgPyBGT1JNQVRTW2Zvcm1hdC50b0xvd2VyQ2FzZSgpXS5taW1lVHlwZXNbMF0gOiBudWxsXG59XG4iXX0=