geonetwork-ui 2.7.0-dev.32f2d4483 → 2.7.0-dev.3914f8b7e

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 (167) hide show
  1. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/status.mapper.mjs +4 -1
  2. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +5 -1
  3. package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/constant.mjs +4 -6
  4. package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.mjs +47 -3
  5. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +32 -4
  6. package/esm2022/libs/common/domain/src/lib/model/dataviz/dataviz-configuration.model.mjs +1 -1
  7. package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +15 -1
  8. package/esm2022/libs/common/domain/src/lib/platform.service.interface.mjs +1 -1
  9. package/esm2022/libs/feature/dataviz/src/lib/chart-view/chart-view.component.mjs +10 -2
  10. package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +2 -2
  11. package/esm2022/libs/feature/editor/src/index.mjs +2 -1
  12. package/esm2022/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.mjs +80 -0
  13. package/esm2022/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.mjs +3 -3
  14. package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +1 -3
  15. package/esm2022/libs/feature/map/src/lib/utils/map-utils.service.mjs +3 -5
  16. package/esm2022/libs/feature/record/src/lib/data-view/data-view.component.mjs +31 -12
  17. package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +76 -27
  18. package/esm2022/libs/feature/record/src/lib/state/mdview.effects.mjs +4 -2
  19. package/esm2022/libs/feature/search/src/lib/state/reducer.mjs +5 -2
  20. package/esm2022/libs/ui/dataviz/src/lib/data-table/data-table.component.mjs +4 -3
  21. package/esm2022/libs/ui/elements/src/lib/api-card/api-card.component.mjs +3 -3
  22. package/esm2022/libs/ui/elements/src/lib/downloads-list/downloads-list.component.mjs +5 -4
  23. package/esm2022/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.mjs +5 -4
  24. package/esm2022/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.mjs +4 -4
  25. package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +21 -43
  26. package/esm2022/libs/ui/elements/src/lib/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.mjs +3 -4
  27. package/esm2022/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.mjs +5 -4
  28. package/esm2022/libs/ui/map/src/lib/components/map-legend/map-legend.component.mjs +2 -2
  29. package/esm2022/libs/util/app-config/src/lib/app-config.mjs +5 -1
  30. package/esm2022/libs/util/app-config/src/lib/model.mjs +1 -1
  31. package/esm2022/libs/util/shared/src/index.mjs +2 -2
  32. package/esm2022/libs/util/shared/src/lib/links/link-utils.mjs +12 -2
  33. package/esm2022/libs/util/shared/src/lib/record/index.mjs +3 -0
  34. package/esm2022/libs/util/shared/src/lib/record/quality-score.util.mjs +45 -0
  35. package/esm2022/libs/util/shared/src/lib/record/record.util.mjs +56 -0
  36. package/esm2022/libs/util/shared/src/lib/utils/geojson.mjs +58 -1
  37. package/esm2022/libs/util/shared/src/lib/utils/index.mjs +2 -1
  38. package/esm2022/libs/util/shared/src/lib/utils/mobile-screen.mjs +9 -0
  39. package/esm2022/translations/de.json +19 -1
  40. package/esm2022/translations/en.json +19 -1
  41. package/esm2022/translations/es.json +19 -1
  42. package/esm2022/translations/fr.json +20 -2
  43. package/esm2022/translations/it.json +19 -1
  44. package/esm2022/translations/nl.json +19 -1
  45. package/esm2022/translations/pt.json +19 -1
  46. package/esm2022/translations/sk.json +19 -1
  47. package/fesm2022/geonetwork-ui.mjs +2814 -2330
  48. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  49. package/libs/api/metadata-converter/src/lib/iso19139/utils/status.mapper.d.ts.map +1 -1
  50. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
  51. package/libs/api/repository/src/lib/gn4/elasticsearch/constant.d.ts.map +1 -1
  52. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts +1 -1
  53. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts.map +1 -1
  54. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +3 -0
  55. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
  56. package/libs/common/domain/src/lib/model/dataviz/dataviz-configuration.model.d.ts +1 -0
  57. package/libs/common/domain/src/lib/model/dataviz/dataviz-configuration.model.d.ts.map +1 -1
  58. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
  59. package/libs/common/domain/src/lib/platform.service.interface.d.ts +1 -0
  60. package/libs/common/domain/src/lib/platform.service.interface.d.ts.map +1 -1
  61. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts +3 -2
  62. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts.map +1 -1
  63. package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
  64. package/libs/feature/editor/src/index.d.ts +1 -0
  65. package/libs/feature/editor/src/index.d.ts.map +1 -1
  66. package/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.d.ts +19 -0
  67. package/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.d.ts.map +1 -0
  68. package/libs/feature/editor/src/lib/fields.config.d.ts.map +1 -1
  69. package/libs/feature/map/src/lib/utils/map-utils.service.d.ts +2 -2
  70. package/libs/feature/map/src/lib/utils/map-utils.service.d.ts.map +1 -1
  71. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts +8 -4
  72. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts.map +1 -1
  73. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts +12 -5
  74. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
  75. package/libs/feature/record/src/lib/state/mdview.effects.d.ts.map +1 -1
  76. package/libs/feature/search/src/lib/state/reducer.d.ts.map +1 -1
  77. package/libs/ui/dataviz/src/lib/data-table/data-table.component.d.ts.map +1 -1
  78. package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts +1 -0
  79. package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts.map +1 -1
  80. package/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.d.ts +1 -0
  81. package/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.d.ts.map +1 -1
  82. package/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.d.ts.map +1 -1
  83. package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts +7 -6
  84. package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts.map +1 -1
  85. package/libs/ui/elements/src/lib/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.d.ts.map +1 -1
  86. package/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.d.ts +1 -0
  87. package/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.d.ts.map +1 -1
  88. package/libs/util/app-config/src/lib/app-config.d.ts.map +1 -1
  89. package/libs/util/app-config/src/lib/model.d.ts +2 -0
  90. package/libs/util/app-config/src/lib/model.d.ts.map +1 -1
  91. package/libs/util/shared/src/index.d.ts +1 -1
  92. package/libs/util/shared/src/index.d.ts.map +1 -1
  93. package/libs/util/shared/src/lib/links/link-utils.d.ts +2 -1
  94. package/libs/util/shared/src/lib/links/link-utils.d.ts.map +1 -1
  95. package/libs/util/shared/src/lib/record/index.d.ts +3 -0
  96. package/libs/util/shared/src/lib/record/index.d.ts.map +1 -0
  97. package/libs/util/shared/src/lib/record/quality-score.util.d.ts +13 -0
  98. package/libs/util/shared/src/lib/record/quality-score.util.d.ts.map +1 -0
  99. package/libs/util/shared/src/lib/record/record.util.d.ts +3 -0
  100. package/libs/util/shared/src/lib/record/record.util.d.ts.map +1 -0
  101. package/libs/util/shared/src/lib/utils/geojson.d.ts +7 -2
  102. package/libs/util/shared/src/lib/utils/geojson.d.ts.map +1 -1
  103. package/libs/util/shared/src/lib/utils/index.d.ts +1 -0
  104. package/libs/util/shared/src/lib/utils/index.d.ts.map +1 -1
  105. package/libs/util/shared/src/lib/utils/mobile-screen.d.ts +2 -0
  106. package/libs/util/shared/src/lib/utils/mobile-screen.d.ts.map +1 -0
  107. package/package.json +11 -10
  108. package/src/libs/api/metadata-converter/src/lib/dcat-ap/utils/status.mapper.ts +3 -0
  109. package/src/libs/api/metadata-converter/src/lib/iso19139/utils/status.mapper.ts +3 -0
  110. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +4 -0
  111. package/src/libs/api/repository/src/lib/gn4/elasticsearch/constant.ts +3 -5
  112. package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +50 -3
  113. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +38 -4
  114. package/src/libs/common/domain/src/lib/model/dataviz/dataviz-configuration.model.ts +1 -0
  115. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +15 -0
  116. package/src/libs/common/domain/src/lib/platform.service.interface.ts +2 -0
  117. package/src/libs/common/fixtures/src/lib/editor/editor.fixtures.ts +0 -3
  118. package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.ts +10 -1
  119. package/src/libs/feature/dataviz/src/lib/service/data.service.ts +3 -1
  120. package/src/libs/feature/editor/src/index.ts +1 -0
  121. package/src/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.css +0 -0
  122. package/src/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.html +37 -0
  123. package/src/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.ts +90 -0
  124. package/src/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.html +2 -1
  125. package/src/libs/feature/editor/src/lib/fields.config.ts +0 -2
  126. package/src/libs/feature/map/src/lib/utils/map-utils.service.ts +8 -8
  127. package/src/libs/feature/record/src/lib/data-view/data-view.component.html +2 -0
  128. package/src/libs/feature/record/src/lib/data-view/data-view.component.ts +34 -15
  129. package/src/libs/feature/record/src/lib/map-view/map-view.component.html +5 -2
  130. package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +70 -23
  131. package/src/libs/feature/record/src/lib/state/mdview.effects.ts +5 -1
  132. package/src/libs/feature/search/src/lib/state/reducer.ts +4 -1
  133. package/src/libs/ui/dataviz/src/lib/data-table/data-table.component.ts +6 -1
  134. package/src/libs/ui/elements/src/lib/api-card/api-card.component.html +4 -1
  135. package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.html +12 -11
  136. package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.ts +7 -1
  137. package/src/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.html +4 -1
  138. package/src/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.ts +7 -1
  139. package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.html +1 -0
  140. package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.ts +5 -1
  141. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.html +1 -0
  142. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.ts +21 -54
  143. package/src/libs/ui/elements/src/lib/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.ts +2 -3
  144. package/src/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.html +7 -1
  145. package/src/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.ts +3 -1
  146. package/src/libs/ui/map/src/lib/components/map-legend/map-legend.component.ts +1 -1
  147. package/src/libs/util/app-config/src/lib/app-config.ts +4 -0
  148. package/src/libs/util/app-config/src/lib/model.ts +2 -0
  149. package/src/libs/util/shared/src/index.ts +1 -1
  150. package/src/libs/util/shared/src/lib/links/link-utils.ts +11 -1
  151. package/src/libs/util/shared/src/lib/record/index.ts +2 -0
  152. package/src/libs/util/shared/src/lib/record/quality-score.util.ts +69 -0
  153. package/src/libs/util/shared/src/lib/{record.util.ts → record/record.util.ts} +1 -1
  154. package/src/libs/util/shared/src/lib/utils/geojson.ts +72 -2
  155. package/src/libs/util/shared/src/lib/utils/index.ts +1 -0
  156. package/src/libs/util/shared/src/lib/utils/mobile-screen.ts +14 -0
  157. package/translations/de.json +19 -1
  158. package/translations/en.json +19 -1
  159. package/translations/es.json +19 -1
  160. package/translations/fr.json +20 -2
  161. package/translations/it.json +19 -1
  162. package/translations/nl.json +19 -1
  163. package/translations/pt.json +19 -1
  164. package/translations/sk.json +19 -1
  165. package/esm2022/libs/util/shared/src/lib/record.util.mjs +0 -56
  166. package/libs/util/shared/src/lib/record.util.d.ts +0 -3
  167. package/libs/util/shared/src/lib/record.util.d.ts.map +0 -1
@@ -69,6 +69,7 @@ export function loadAppConfig() {
69
69
  'web_component_embedder_url',
70
70
  'languages',
71
71
  'contact_email',
72
+ 'reuse_form_url',
72
73
  ], warnings, errors);
73
74
  if (parsedGlobalSection?.metadata_language) {
74
75
  parsedGlobalSection = checkMetadataLanguage(parsedGlobalSection, warnings);
@@ -89,6 +90,7 @@ export function loadAppConfig() {
89
90
  WEB_COMPONENT_EMBEDDER_URL: parsedGlobalSection.web_component_embedder_url,
90
91
  LANGUAGES: parsedGlobalSection.languages,
91
92
  CONTACT_EMAIL: parsedGlobalSection.contact_email,
93
+ REUSE_FORM_URL: parsedGlobalSection.reuse_form_url,
92
94
  };
93
95
  const parsedLayersSections = parseMultiConfigSection(parsed, 'map_layer', ['type'], ['name', 'url', 'data', 'styleUrl', 'accessToken'], warnings, errors);
94
96
  const parsedMapSection = parseConfigSection(parsed, 'map', [], [
@@ -152,6 +154,7 @@ export function loadAppConfig() {
152
154
  'filter_geometry_url',
153
155
  'search_preset',
154
156
  'advanced_filters',
157
+ 'limit',
155
158
  ], warnings, errors);
156
159
  const parsedSearchParams = parseMultiConfigSection(parsed, 'search_preset', ['name'], ['sort', 'filters'], warnings, errors);
157
160
  searchConfig =
@@ -167,6 +170,7 @@ export function loadAppConfig() {
167
170
  filters: param.filters,
168
171
  })),
169
172
  ADVANCED_FILTERS: parsedSearchSection.advanced_filters,
173
+ LIMIT: parsedSearchSection.limit,
170
174
  };
171
175
  const parsedMetadataQualitySection = parseConfigSection(parsed, 'metadata-quality', [], ['enabled'], warnings, errors);
172
176
  metadataQualityConfig =
@@ -209,4 +213,4 @@ export const TRANSLATE_WITH_OVERRIDES_CONFIG = {
209
213
  deps: [HttpClient],
210
214
  },
211
215
  };
212
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9hcHAtY29uZmlnL3NyYy9saWIvYXBwLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssSUFBSSxNQUFNLGFBQWEsQ0FBQTtBQUNuQyxPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLGtCQUFrQixFQUNsQix1QkFBdUIsRUFDdkIsOEJBQThCLEdBQy9CLE1BQU0sZUFBZSxDQUFBO0FBV3RCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUN4RSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQTtBQUNyRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDakQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sNkNBQTZDLENBQUE7QUFFOUYsTUFBTSxvQkFBb0IsR0FBRzs7OytJQUdrSCxDQUFBO0FBRS9JLElBQUksWUFBWSxHQUFpQixJQUFJLENBQUE7QUFFckMsTUFBTSxVQUFVLGVBQWU7SUFDN0IsSUFBSSxZQUFZLEtBQUssSUFBSTtRQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQTtJQUNoRSxPQUFPLFlBQVksQ0FBQTtBQUNyQixDQUFDO0FBRUQsSUFBSSxXQUFXLEdBQWdCLElBQUksQ0FBQTtBQUVuQyxNQUFNLFVBQVUsY0FBYztJQUM1QixJQUFJLFdBQVcsS0FBSyxJQUFJO1FBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO0lBQy9ELE9BQU8sV0FBVyxDQUFBO0FBQ3BCLENBQUM7QUFFRCxJQUFJLFNBQVMsR0FBYyxJQUFJLENBQUE7QUFFL0IsTUFBTSxVQUFVLG9CQUFvQjtJQUNsQyxPQUFPLFNBQVMsQ0FBQTtBQUNsQixDQUFDO0FBRUQsSUFBSSxZQUFZ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bXBvcnQge1xuICBjaGVja01ldGFkYXRhTGFuZ3VhZ2UsXG4gIHBhcnNlQ29uZmlnU2VjdGlvbixcbiAgcGFyc2VNdWx0aUNvbmZpZ1NlY3Rpb24sXG4gIHBhcnNlVHJhbnNsYXRpb25zQ29uZmlnU2VjdGlvbixcbn0gZnJvbSAnLi9wYXJzZS11dGlscydcbmltcG9ydCB7XG4gIEN1c3RvbVRyYW5zbGF0aW9ucyxcbiAgQ3VzdG9tVHJhbnNsYXRpb25zQWxsTGFuZ3VhZ2VzLFxuICBHbG9iYWxDb25maWcsXG4gIExheWVyQ29uZmlnLFxuICBNYXBDb25maWcsXG4gIE1ldGFkYXRhUXVhbGl0eUNvbmZpZyxcbiAgU2VhcmNoQ29uZmlnLFxuICBUaGVtZUNvbmZpZyxcbn0gZnJvbSAnLi9tb2RlbCdcbmltcG9ydCB7IFRyYW5zbGF0ZUNvbXBpbGVyLCBUcmFuc2xhdGVMb2FkZXIgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgVHJhbnNsYXRlTWVzc2FnZUZvcm1hdENvbXBpbGVyIH0gZnJvbSAnbmd4LXRyYW5zbGF0ZS1tZXNzYWdlZm9ybWF0LWNvbXBpbGVyJ1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJ1xuaW1wb3J0IHsgRmlsZVdpdGhPdmVycmlkZXNUcmFuc2xhdGVMb2FkZXIgfSBmcm9tICcuL2kxOG4vZmlsZS13aXRoLW92ZXJyaWRlcy50cmFuc2xhdGUubG9hZGVyJ1xuXG5jb25zdCBNSVNTSU5HX0NPTkZJR19FUlJPUiA9IGBBcHBsaWNhdGlvbiBjb25maWd1cmF0aW9uIHdhcyBub3QgaW5pdGlhbGl6ZWQgY29ycmVjdGx5LlxuVGhpcyBlcnJvciBtaWdodCBzaG93IHVwIGluIGNhc2Ugb2YgYW4gaW52YWxpZC9tYWxmb3JtZWQgY29uZmlndXJhdGlvbiBmaWxlLlxuXG5Ob3RlOiBtYWtlIHN1cmUgdGhhdCB5b3UgaGF2ZSBjYWxsZWQgXFxgbG9hZEFwcENvbmZpZ1xcYCBmcm9tICcuLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvYXBwLWNvbmZpZy9zcmMnIGJlZm9yZSBzdGFydGluZyB0aGUgQW5ndWxhciBhcHBsaWNhdGlvbi5gXG5cbmxldCBnbG9iYWxDb25maWc6IEdsb2JhbENvbmZpZyA9IG51bGxcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEdsb2JhbENvbmZpZygpOiBHbG9iYWxDb25maWcge1xuICBpZiAoZ2xvYmFsQ29uZmlnID09PSBudWxsKSB0aHJvdyBuZXcgRXJyb3IoTUlTU0lOR19DT05GSUdfRVJST1IpXG4gIHJldHVybiBnbG9iYWxDb25maWdcbn1cblxubGV0IHRoZW1lQ29uZmlnOiBUaGVtZUNvbmZpZyA9IG51bGxcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRoZW1lQ29uZmlnKCk6IFRoZW1lQ29uZmlnIHtcbiAgaWYgKHRoZW1lQ29uZmlnID09PSBudWxsKSB0aHJvdyBuZXcgRXJyb3IoTUlTU0lOR19DT05GSUdfRVJST1IpXG4gIHJldHVybiB0aGVtZUNvbmZpZ1xufVxuXG5sZXQgbWFwQ29uZmlnOiBNYXBDb25maWcgPSBudWxsXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRPcHRpb25hbE1hcENvbmZpZygpOiBNYXBDb25maWcgfCBudWxsIHtcbiAgcmV0dXJuIG1hcENvbmZpZ1xufVxuXG5sZXQgc2VhcmNoQ29uZmlnOiBTZWFyY2hDb25maWcgPSBudWxsXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRPcHRpb25hbFNlYXJjaENvbmZpZygpOiBTZWFyY2hDb25maWcgfCBudWxsIHtcbiAgcmV0dXJuIHNlYXJjaENvbmZpZ1xufVxuXG5sZXQgbWV0YWRhdGFRdWFsaXR5Q29uZmlnOiBNZXRhZGF0YVF1YWxpdHlDb25maWcgPSBudWxsXG5leHBvcnQgZnVuY3Rpb24gZ2V0TWV0YWRhdGFRdWFsaXR5Q29uZmlnKCk6IE1ldGFkYXRhUXVhbGl0eUNvbmZpZyB7XG4gIHJldHVybiAoXG4gICAgbWV0YWRhdGFRdWFsaXR5Q29uZmlnIHx8XG4gICAgKHtcbiAgICAgIEVOQUJMRUQ6IGZhbHNlLFxuICAgIH0gYXMgTWV0YWRhdGFRdWFsaXR5Q29uZmlnKVxuICApXG59XG5cbmxldCBjdXN0b21UcmFuc2xhdGlvbnM6IEN1c3RvbVRyYW5zbGF0aW9uc0FsbExhbmd1YWdlcyA9IG51bGxcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEN1c3RvbVRyYW5zbGF0aW9ucyhsYW5nQ29kZTogc3RyaW5nKTogQ3VzdG9tVHJhbnNsYXRpb25zIHtcbiAgaWYgKGN1c3RvbVRyYW5zbGF0aW9ucyA9PT0gbnVsbCkgdGhyb3cgbmV3IEVycm9yKE1JU1NJTkdfQ09ORklHX0VSUk9SKVxuICByZXR1cm4gbGFuZ0NvZGUgaW4gY3VzdG9tVHJhbnNsYXRpb25zID8gY3VzdG9tVHJhbnNsYXRpb25zW2xhbmdDb2RlXSA6IHt9XG59XG5cbmxldCBhcHBDb25maWdMb2FkZWQgPSBmYWxzZVxuXG5leHBvcnQgZnVuY3Rpb24gbG9hZEFwcENvbmZpZygpIHtcbiAgcmV0dXJuIGZldGNoKCdhc3NldHMvY29uZmlndXJhdGlvbi9kZWZhdWx0LnRvbWwnKVxuICAgIC50aGVuKChyZXNwKSA9PiB7XG4gICAgICBpZiAoIXJlc3Aub2spIHRocm93IG5ldyBFcnJvcignQ29uZmlndXJhdGlvbiBmaWxlIGNvdWxkIG5vdCBiZSBsb2FkZWQnKVxuICAgICAgcmV0dXJuIHJlc3AudGV4dCgpXG4gICAgfSlcbiAgICAudGhlbigoY29uZikgPT4ge1xuICAgICAgbGV0IHBhcnNlZFxuICAgICAgdHJ5IHtcbiAgICAgICAgcGFyc2VkID0gVE9NTC5wYXJzZShjb25mLCB7IGpvaW5lcjogJ1xcbicsIGJpZ2ludDogZmFsc2UgfSkgYXMgYW55XG4gICAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBBbiBlcnJvciBvY2N1cnJlZCB3aGVuIHBhcnNpbmcgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZTogJHtlLm1lc3NhZ2V9YFxuICAgICAgICApXG4gICAgICB9XG4gICAgICBjb25zdCBlcnJvcnMgPSBbXVxuICAgICAgY29uc3Qgd2FybmluZ3MgPSBbXVxuXG4gICAgICBsZXQgcGFyc2VkR2xvYmFsU2VjdGlvbiA9IHBhcnNlQ29uZmlnU2VjdGlvbihcbiAgICAgICAgcGFyc2VkLFxuICAgICAgICAnZ2xvYmFsJyxcbiAgICAgICAgWydnZW9uZXR3b3JrNF9hcGlfdXJsJ10sXG4gICAgICAgIFtcbiAgICAgICAgICAnZGF0YWh1Yl91cmwnLFxuICAgICAgICAgICdwcm94eV9wYXRoJyxcbiAgICAgICAgICAnbWV0YWRhdGFfbGFuZ3VhZ2UnLFxuICAgICAgICAgICdsb2dpbl91cmwnLFxuICAgICAgICAgICdsb2dvdXRfdXJsJyxcbiAgICAgICAgICAnc2V0dGluZ3NfdXJsJyxcbiAgICAgICAgICAnd2ViX2NvbXBvbmVudF9lbWJlZGRlcl91cmwnLFxuICAgICAgICAgICdsYW5ndWFnZXMnLFxuICAgICAgICAgICdjb250YWN0X2VtYWlsJyxcbiAgICAgICAgXSxcbiAgICAgICAgd2FybmluZ3MsXG4gICAgICAgIGVycm9yc1xuICAgICAgKVxuICAgICAgaWYgKHBhcnNlZEdsb2JhbFNlY3Rpb24/Lm1ldGFkYXRhX2xhbmd1YWdlKSB7XG4gICAgICAgIHBhcnNlZEdsb2JhbFNlY3Rpb24gPSBjaGVja01ldGFkYXRhTGFuZ3VhZ2UoXG4gICAgICAgICAgcGFyc2VkR2xvYmFsU2VjdGlvbixcbiAgICAgICAgICB3YXJuaW5nc1xuICAgICAgICApXG4gICAgICB9XG4gICAgICBnbG9iYWxDb25maWcgPVxuICAgICAgICBwYXJzZWRHbG9iYWxTZWN0aW9uID09PSBudWxsXG4gICAgICAgICAgPyBudWxsXG4gICAgICAgICAgOiAoe1xuICAgICAgICAgICAgICBHTjRfQVBJX1VSTDogcGFyc2VkR2xvYmFsU2VjdGlvbi5nZW9uZXR3b3JrNF9hcGlfdXJsLFxuICAgICAgICAgICAgICBEQVRBSFVCX1VSTDogcGFyc2VkR2xvYmFsU2VjdGlvbi5kYXRhaHViX3VybCxcbiAgICAgICAgICAgICAgUFJPWFlfUEFUSDogcGFyc2VkR2xvYmFsU2VjdGlvbi5wcm94eV9wYXRoLFxuICAgICAgICAgICAgICBNRVRBREFUQV9MQU5HVUFHRTogcGFyc2VkR2xvYmFsU2VjdGlvbi5tZXRhZGF0YV9sYW5ndWFnZVxuICAgICAgICAgICAgICAgID8gKFxuICAgICAgICAgICAgICAgICAgICBwYXJzZWRHbG9iYWxTZWN0aW9uLm1ldGFkYXRhX2xhbmd1YWdlIGFzIHN0cmluZ1xuICAgICAgICAgICAgICAgICAgKS50b0xvd2VyQ2FzZSgpXG4gICAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIExPR0lOX1VSTDogcGFyc2VkR2xvYmFsU2VjdGlvbi5sb2dpbl91cmwsXG4gICAgICAgICAgICAgIExPR09VVF9VUkw6IHBhcnNlZEdsb2JhbFNlY3Rpb24ubG9nb3V0X3VybCxcbiAgICAgICAgICAgICAgU0VUVElOR1NfVVJMOiBwYXJzZWRHbG9iYWxTZWN0aW9uLnNldHRpbmdzX3VybCxcbiAgICAgICAgICAgICAgV0VCX0NPTVBPTkVOVF9FTUJFRERFUl9VUkw6XG4gICAgICAgICAgICAgICAgcGFyc2VkR2xvYmFsU2VjdGlvbi53ZWJfY29tcG9uZW50X2VtYmVkZGVyX3VybCxcbiAgICAgICAgICAgICAgTEFOR1VBR0VTOiBwYXJzZWRHbG9iYWxTZWN0aW9uLmxhbmd1YWdlcyxcbiAgICAgICAgICAgICAgQ09OVEFDVF9FTUFJTDogcGFyc2VkR2xvYmFsU2VjdGlvbi5jb250YWN0X2VtYWlsLFxuICAgICAgICAgICAgfSBhcyBHbG9iYWxDb25maWcpXG5cbiAgICAgIGNvbnN0IHBhcnNlZExheWVyc1NlY3Rpb25zID0gcGFyc2VNdWx0aUNvbmZpZ1NlY3Rpb24oXG4gICAgICAgIHBhcnNlZCxcbiAgICAgICAgJ21hcF9sYXllcicsXG4gICAgICAgIFsndHlwZSddLFxuICAgICAgICBbJ25hbWUnLCAndXJsJywgJ2RhdGEnLCAnc3R5bGVVcmwnLCAnYWNjZXNzVG9rZW4nXSxcbiAgICAgICAgd2FybmluZ3MsXG4gICAgICAgIGVycm9yc1xuICAgICAgKVxuICAgICAgY29uc3QgcGFyc2VkTWFwU2VjdGlvbiA9IHBhcnNlQ29uZmlnU2VjdGlvbihcbiAgICAgICAgcGFyc2VkLFxuICAgICAgICAnbWFwJyxcbiAgICAgICAgW10sXG4gICAgICAgIFtcbiAgICAgICAgICAnbWF4X3pvb20nLFxuICAgICAgICAgICdkb19ub3RfdGlsZV93bXMnLFxuICAgICAgICAgICdtYXhfZXh0ZW50JyxcbiAgICAgICAgICAnbWF4X2ZlYXR1cmVfY291bnQnLFxuICAgICAgICAgICdiYXNlbGF5ZXInLFxuICAgICAgICAgICdkb19ub3RfdXNlX2RlZmF1bHRfYmFzZW1hcCcsXG4gICAgICAgICAgJ2V4dGVybmFsX3ZpZXdlcl91cmxfdGVtcGxhdGUnLFxuICAgICAgICAgICdleHRlcm5hbF92aWV3ZXJfb3Blbl9uZXdfdGFiJyxcbiAgICAgICAgXSxcbiAgICAgICAgd2FybmluZ3MsXG4gICAgICAgIGVycm9yc1xuICAgICAgKVxuICAgICAgbWFwQ29uZmlnID1cbiAgICAgICAgcGFyc2VkTWFwU2VjdGlvbiA9PT0gbnVsbCB8fCBwYXJzZWRMYXllcnNTZWN0aW9ucyA9PT0gbnVsbFxuICAgICAgICAgID8gbnVsbFxuICAgICAgICAgIDogKHtcbiAgICAgICAgICAgICAgTUFYX1pPT006IHBhcnNlZE1hcFNlY3Rpb24ubWF4X3pvb20sXG4gICAgICAgICAgICAgIERPX05PVF9USUxFX1dNUzogcGFyc2VkTWFwU2VjdGlvbi5kb19ub3RfdGlsZV93bXMsXG4gICAgICAgICAgICAgIE1BWF9FWFRFTlQ6IHBhcnNlZE1hcFNlY3Rpb24ubWF4X2V4dGVudCxcbiAgICAgICAgICAgICAgTUFYX0ZFQVRVUkVfQ09VTlQ6IHBhcnNlZE1hcFNlY3Rpb24ubWF4X2ZlYXR1cmVfY291bnQsXG4gICAgICAgICAgICAgIEVYVEVSTkFMX1ZJRVdFUl9VUkxfVEVNUExBVEU6XG4gICAgICAgICAgICAgICAgcGFyc2VkTWFwU2VjdGlvbi5leHRlcm5hbF92aWV3ZXJfdXJsX3RlbXBsYXRlLFxuICAgICAgICAgICAgICBFWFRFUk5BTF9WSUVXRVJfT1BFTl9ORVdfVEFCOlxuICAgICAgICAgICAgICAgIHBhcnNlZE1hcFNlY3Rpb24uZXh0ZXJuYWxfdmlld2VyX29wZW5fbmV3X3RhYixcbiAgICAgICAgICAgICAgRE9fTk9UX1VTRV9ERUZBVUxUX0JBU0VNQVA6XG4gICAgICAgICAgICAgICAgISFwYXJzZWRNYXBTZWN0aW9uLmRvX25vdF91c2VfZGVmYXVsdF9iYXNlbWFwLFxuICAgICAgICAgICAgICBNQVBfTEFZRVJTOiBwYXJzZWRMYXllcnNTZWN0aW9ucy5tYXAoXG4gICAgICAgICAgICAgICAgKG1hcF9sYXllcikgPT5cbiAgICAgICAgICAgICAgICAgICh7XG4gICAgICAgICAgICAgICAgICAgIFRZUEU6IG1hcF9sYXllci50eXBlLFxuICAgICAgICAgICAgICAgICAgICBVUkw6IG1hcF9sYXllci51cmwsXG4gICAgICAgICAgICAgICAgICAgIE5BTUU6IG1hcF9sYXllci5uYW1lLFxuICAgICAgICAgICAgICAgICAgICBEQVRBOiBtYXBfbGF5ZXIuZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgU1RZTEVfVVJMOiBtYXBfbGF5ZXIuc3R5bGVVcmwsXG4gICAgICAgICAgICAgICAgICAgIEFDQ0VTU19UT0tFTjogbWFwX2xheWVyLmFjY2Vzc1Rva2VuLFxuICAgICAgICAgICAgICAgICAgfSkgYXMgTGF5ZXJDb25maWdcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIH0gYXMgTWFwQ29uZmlnKVxuXG4gICAgICBjb25zdCBwYXJzZWRUaGVtZVNlY3Rpb24gPSBwYXJzZUNvbmZpZ1NlY3Rpb24oXG4gICAgICAgIHBhcnNlZCxcbiAgICAgICAgJ3RoZW1lJyxcbiAgICAgICAgWydwcmltYXJ5X2NvbG9yJywgJ3NlY29uZGFyeV9jb2xvcicsICdtYWluX2NvbG9yJywgJ2JhY2tncm91bmRfY29sb3InXSxcbiAgICAgICAgW1xuICAgICAgICAgICdoZWFkZXJfZm9yZWdyb3VuZF9jb2xvcicsXG4gICAgICAgICAgJ21haW5fZm9udCcsXG4gICAgICAgICAgJ3RpdGxlX2ZvbnQnLFxuICAgICAgICAgICdmb250c19zdHlsZXNoZWV0X3VybCcsXG4gICAgICAgICAgJ3RodW1ibmFpbF9wbGFjZWhvbGRlcicsXG4gICAgICAgICAgJ2hlYWRlcl9iYWNrZ3JvdW5kJyxcbiAgICAgICAgICAnZmF2aWNvbicsXG4gICAgICAgIF0sXG4gICAgICAgIHdhcm5pbmdzLFxuICAgICAgICBlcnJvcnNcbiAgICAgIClcbiAgICAgIHRoZW1lQ29uZmlnID1cbiAgICAgICAgcGFyc2VkVGhlbWVTZWN0aW9uID09PSBudWxsXG4gICAgICAgICAgPyBudWxsXG4gICAgICAgICAgOiAoe1xuICAgICAgICAgICAgICBQUklNQVJZX0NPTE9SOiBwYXJzZWRUaGVtZVNlY3Rpb24ucHJpbWFyeV9jb2xvcixcbiAgICAgICAgICAgICAgU0VDT05EQVJZX0NPTE9SOiBwYXJzZWRUaGVtZVNlY3Rpb24uc2Vjb25kYXJ5X2NvbG9yLFxuICAgICAgICAgICAgICBNQUlOX0NPTE9SOiBwYXJzZWRUaGVtZVNlY3Rpb24ubWFpbl9jb2xvcixcbiAgICAgICAgICAgICAgQkFDS0dST1VORF9DT0xPUjogcGFyc2VkVGhlbWVTZWN0aW9uLmJhY2tncm91bmRfY29sb3IsXG4gICAgICAgICAgICAgIEhFQURFUl9GT1JFR1JPVU5EX0NPTE9SOlxuICAgICAgICAgICAgICAgIHBhcnNlZFRoZW1lU2VjdGlvbi5oZWFkZXJfZm9yZWdyb3VuZF9jb2xvcixcbiAgICAgICAgICAgICAgVEhVTUJOQUlMX1BMQUNFSE9MREVSOiBwYXJzZWRUaGVtZVNlY3Rpb24udGh1bWJuYWlsX3BsYWNlaG9sZGVyLFxuICAgICAgICAgICAgICBIRUFERVJfQkFDS0dST1VORDogcGFyc2VkVGhlbWVTZWN0aW9uLmhlYWRlcl9iYWNrZ3JvdW5kLFxuICAgICAgICAgICAgICBUSVRMRV9GT05UOiBwYXJzZWRUaGVtZVNlY3Rpb24udGl0bGVfZm9udCxcbiAgICAgICAgICAgICAgTUFJTl9GT05UOiBwYXJzZWRUaGVtZVNlY3Rpb24ubWFpbl9mb250LFxuICAgICAgICAgICAgICBGT05UU19TVFlMRVNIRUVUX1VSTDogcGFyc2VkVGhlbWVTZWN0aW9uLmZvbnRzX3N0eWxlc2hlZXRfdXJsLFxuICAgICAgICAgICAgICBGQVZJQ09OOiBwYXJzZWRUaGVtZVNlY3Rpb24uZmF2aWNvbixcbiAgICAgICAgICAgIH0gYXMgVGhlbWVDb25maWcpXG5cbiAgICAgIGNvbnN0IHBhcnNlZFNlYXJjaFNlY3Rpb24gPSBwYXJzZUNvbmZpZ1NlY3Rpb24oXG4gICAgICAgIHBhcnNlZCxcbiAgICAgICAgJ3NlYXJjaCcsXG4gICAgICAgIFtdLFxuICAgICAgICBbXG4gICAgICAgICAgJ3JlY29yZF9raW5kX3F1aWNrX2ZpbHRlcicsXG4gICAgICAgICAgJ2ZpbHRlcl9nZW9tZXRyeV9kYXRhJyxcbiAgICAgICAgICAnZmlsdGVyX2dlb21ldHJ5X3VybCcsXG4gICAgICAgICAgJ3NlYXJjaF9wcmVzZXQnLFxuICAgICAgICAgICdhZHZhbmNlZF9maWx0ZXJzJyxcbiAgICAgICAgXSxcbiAgICAgICAgd2FybmluZ3MsXG4gICAgICAgIGVycm9yc1xuICAgICAgKVxuICAgICAgY29uc3QgcGFyc2VkU2VhcmNoUGFyYW1zID0gcGFyc2VNdWx0aUNvbmZpZ1NlY3Rpb24oXG4gICAgICAgIHBhcnNlZCxcbiAgICAgICAgJ3NlYXJjaF9wcmVzZXQnLFxuICAgICAgICBbJ25hbWUnXSxcbiAgICAgICAgWydzb3J0JywgJ2ZpbHRlcnMnXSxcbiAgICAgICAgd2FybmluZ3MsXG4gICAgICAgIGVycm9yc1xuICAgICAgKVxuICAgICAgc2VhcmNoQ29uZmlnID1cbiAgICAgICAgcGFyc2VkU2VhcmNoU2VjdGlvbiA9PT0gbnVsbFxuICAgICAgICAgID8gbnVsbFxuICAgICAgICAgIDogKHtcbiAgICAgICAgICAgICAgUkVDT1JEX0tJTkRfUVVJQ0tfRklMVEVSOlxuICAgICAgICAgICAgICAgIHBhcnNlZFNlYXJjaFNlY3Rpb24ucmVjb3JkX2tpbmRfcXVpY2tfZmlsdGVyLFxuICAgICAgICAgICAgICBGSUxURVJfR0VPTUVUUllfREFUQTogcGFyc2VkU2VhcmNoU2VjdGlvbi5maWx0ZXJfZ2VvbWV0cnlfZGF0YSxcbiAgICAgICAgICAgICAgRklMVEVSX0dFT01FVFJZX1VSTDogcGFyc2VkU2VhcmNoU2VjdGlvbi5maWx0ZXJfZ2VvbWV0cnlfdXJsLFxuICAgICAgICAgICAgICBTRUFSQ0hfUFJFU0VUOiBwYXJzZWRTZWFyY2hQYXJhbXMubWFwKChwYXJhbSkgPT4gKHtcbiAgICAgICAgICAgICAgICBzb3J0OiBwYXJhbS5zb3J0LFxuICAgICAgICAgICAgICAgIG5hbWU6IHBhcmFtLm5hbWUsXG4gICAgICAgICAgICAgICAgZmlsdGVyczogcGFyYW0uZmlsdGVycyxcbiAgICAgICAgICAgICAgfSkpLFxuICAgICAgICAgICAgICBBRFZBTkNFRF9GSUxURVJTOiBwYXJzZWRTZWFyY2hTZWN0aW9uLmFkdmFuY2VkX2ZpbHRlcnMsXG4gICAgICAgICAgICB9IGFzIFNlYXJjaENvbmZpZylcblxuICAgICAgY29uc3QgcGFyc2VkTWV0YWRhdGFRdWFsaXR5U2VjdGlvbiA9IHBhcnNlQ29uZmlnU2VjdGlvbihcbiAgICAgICAgcGFyc2VkLFxuICAgICAgICAnbWV0YWRhdGEtcXVhbGl0eScsXG4gICAgICAgIFtdLFxuICAgICAgICBbJ2VuYWJsZWQnXSxcbiAgICAgICAgd2FybmluZ3MsXG4gICAgICAgIGVycm9yc1xuICAgICAgKVxuICAgICAgbWV0YWRhdGFRdWFsaXR5Q29uZmlnID1cbiAgICAgICAgcGFyc2VkTWV0YWRhdGFRdWFsaXR5U2VjdGlvbiA9PT0gbnVsbFxuICAgICAgICAgID8gbnVsbFxuICAgICAgICAgIDogKHtcbiAgICAgICAgICAgICAgRU5BQkxFRDogcGFyc2VkTWV0YWRhdGFRdWFsaXR5U2VjdGlvbi5lbmFibGVkLFxuICAgICAgICAgICAgICBTT1JUQUJMRTogcGFyc2VkTWV0YWRhdGFRdWFsaXR5U2VjdGlvbi5zb3J0YWJsZSxcbiAgICAgICAgICAgIH0gYXMgTWV0YWRhdGFRdWFsaXR5Q29uZmlnKVxuXG4gICAgICBjdXN0b21UcmFuc2xhdGlvbnMgPSBwYXJzZVRyYW5zbGF0aW9uc0NvbmZpZ1NlY3Rpb24oXG4gICAgICAgIHBhcnNlZCxcbiAgICAgICAgJ3RyYW5zbGF0aW9ucydcbiAgICAgICkgYXMgQ3VzdG9tVHJhbnNsYXRpb25zQWxsTGFuZ3VhZ2VzXG5cbiAgICAgIGlmIChlcnJvcnMubGVuZ3RoKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgT25lIG9yIG1vcmUgbWFuZGF0b3J5IHNldHRpbmdzIHdlcmUgbWlzc2luZyBmcm9tIHRoZSBjb25maWd1cmF0aW9uIGZpbGUuXG4ke2Vycm9ycy5qb2luKCdcXG4nKX1gKVxuICAgICAgfSBlbHNlIGlmICh3YXJuaW5ncy5sZW5ndGgpIHtcbiAgICAgICAgY29uc29sZS53YXJuKGBPbmUgb3IgbW9yZSB1bmV4cGVjdGVkIHNldHRpbmdzIHdlcmUgZW5jb3VudGVyZWQgaW4gdGhlIGNvbmZpZ3VyYXRpb24gZmlsZS5cbiR7d2FybmluZ3Muam9pbignXFxuJyl9YClcbiAgICAgIH1cblxuICAgICAgYXBwQ29uZmlnTG9hZGVkID0gdHJ1ZVxuICAgIH0pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0NvbmZpZ0xvYWRlZCgpIHtcbiAgcmV0dXJuIGFwcENvbmZpZ0xvYWRlZFxufVxuXG5leHBvcnQgZnVuY3Rpb24gX3Jlc2V0KCkge1xuICBnbG9iYWxDb25maWcgPSBudWxsXG4gIHRoZW1lQ29uZmlnID0gbnVsbFxuICBjdXN0b21UcmFuc2xhdGlvbnMgPSBudWxsXG59XG5cbmV4cG9ydCBjb25zdCBUUkFOU0xBVEVfV0lUSF9PVkVSUklERVNfQ09ORklHID0ge1xuICBjb21waWxlcjoge1xuICAgIHByb3ZpZGU6IFRyYW5zbGF0ZUNvbXBpbGVyLFxuICAgIHVzZUNsYXNzOiBUcmFuc2xhdGVNZXNzYWdlRm9ybWF0Q29tcGlsZXIsXG4gIH0sXG4gIGxvYWRlcjoge1xuICAgIHByb3ZpZGU6IFRyYW5zbGF0ZUxvYWRlcixcbiAgICB1c2VGYWN0b3J5OiBmdW5jdGlvbiBIdHRwTG9hZGVyRmFjdG9yeShodHRwOiBIdHRwQ2xpZW50KSB7XG4gICAgICByZXR1cm4gbmV3IEZpbGVXaXRoT3ZlcnJpZGVzVHJhbnNsYXRlTG9hZGVyKGh0dHAsICcuL2Fzc2V0cy9pMThuLycpXG4gICAgfSxcbiAgICBkZXBzOiBbSHR0cENsaWVudF0sXG4gIH0sXG59XG4iXX0=
216
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9hcHAtY29uZmlnL3NyYy9saWIvYXBwLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssSUFBSSxNQUFNLGFBQWEsQ0FBQTtBQUNuQyxPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLGtCQUFrQixFQUNsQix1QkFBdUIsRUFDdkIsOEJBQThCLEdBQy9CLE1BQU0sZUFBZSxDQUFBO0FBV3RCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUN4RSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQTtBQUNyRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDakQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sNkNBQTZDLENBQUE7QUFFOUYsTUFBTSxvQkFBb0IsR0FBRzs7OytJQUdrSCxDQUFBO0FBRS9JLElBQUksWUFBWSxHQUFpQixJQUFJLENBQUE7QUFFckMsTUFBTSxVQUFVLGVBQWU7SUFDN0IsSUFBSSxZQUFZLEtBQUssSUFBSTtRQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQTtJQUNoRSxPQUFPLFlBQVksQ0FBQTtBQUNyQixDQUFDO0FBRUQsSUFBSSxXQUFXLEdBQWdCLElBQUksQ0FBQTtBQUVuQyxNQUFNLFVBQVUsY0FBYztJQUM1QixJQUFJLFdBQVcsS0FBSyxJQUFJO1FBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO0lBQy9ELE9BQU8sV0FBVyxDQUFBO0FBQ3BCLENBQUM7QUFFRCxJQUFJLFNBQVMsR0FBYyxJQUFJLENBQUE7QUFFL0IsTUFBTSxVQUFVLG9CQUFvQjtJQUNsQyxPQUFPLFNBQVMsQ0FBQTtBQUNsQixDQUFDO0FBRUQsSUFBSSxZQUFZ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LENBQUMsVUFBVSxDQUFDO0tBQ25CO0NBQ0YsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFRPTUwgZnJvbSAnQGx0ZC9qLXRvbWwnXG5pbXBvcnQge1xuICBjaGVja01ldGFkYXRhTGFuZ3VhZ2UsXG4gIHBhcnNlQ29uZmlnU2VjdGlvbixcbiAgcGFyc2VNdWx0aUNvbmZpZ1NlY3Rpb24sXG4gIHBhcnNlVHJhbnNsYXRpb25zQ29uZmlnU2VjdGlvbixcbn0gZnJvbSAnLi9wYXJzZS11dGlscydcbmltcG9ydCB7XG4gIEN1c3RvbVRyYW5zbGF0aW9ucyxcbiAgQ3VzdG9tVHJhbnNsYXRpb25zQWxsTGFuZ3VhZ2VzLFxuICBHbG9iYWxDb25maWcsXG4gIExheWVyQ29uZmlnLFxuICBNYXBDb25maWcsXG4gIE1ldGFkYXRhUXVhbGl0eUNvbmZpZyxcbiAgU2VhcmNoQ29uZmlnLFxuICBUaGVtZUNvbmZpZyxcbn0gZnJvbSAnLi9tb2RlbCdcbmltcG9ydCB7IFRyYW5zbGF0ZUNvbXBpbGVyLCBUcmFuc2xhdGVMb2FkZXIgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgVHJhbnNsYXRlTWVzc2FnZUZvcm1hdENvbXBpbGVyIH0gZnJvbSAnbmd4LXRyYW5zbGF0ZS1tZXNzYWdlZm9ybWF0LWNvbXBpbGVyJ1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJ1xuaW1wb3J0IHsgRmlsZVdpdGhPdmVycmlkZXNUcmFuc2xhdGVMb2FkZXIgfSBmcm9tICcuL2kxOG4vZmlsZS13aXRoLW92ZXJyaWRlcy50cmFuc2xhdGUubG9hZGVyJ1xuXG5jb25zdCBNSVNTSU5HX0NPTkZJR19FUlJPUiA9IGBBcHBsaWNhdGlvbiBjb25maWd1cmF0aW9uIHdhcyBub3QgaW5pdGlhbGl6ZWQgY29ycmVjdGx5LlxuVGhpcyBlcnJvciBtaWdodCBzaG93IHVwIGluIGNhc2Ugb2YgYW4gaW52YWxpZC9tYWxmb3JtZWQgY29uZmlndXJhdGlvbiBmaWxlLlxuXG5Ob3RlOiBtYWtlIHN1cmUgdGhhdCB5b3UgaGF2ZSBjYWxsZWQgXFxgbG9hZEFwcENvbmZpZ1xcYCBmcm9tICcuLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvYXBwLWNvbmZpZy9zcmMnIGJlZm9yZSBzdGFydGluZyB0aGUgQW5ndWxhciBhcHBsaWNhdGlvbi5gXG5cbmxldCBnbG9iYWxDb25maWc6IEdsb2JhbENvbmZpZyA9IG51bGxcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEdsb2JhbENvbmZpZygpOiBHbG9iYWxDb25maWcge1xuICBpZiAoZ2xvYmFsQ29uZmlnID09PSBudWxsKSB0aHJvdyBuZXcgRXJyb3IoTUlTU0lOR19DT05GSUdfRVJST1IpXG4gIHJldHVybiBnbG9iYWxDb25maWdcbn1cblxubGV0IHRoZW1lQ29uZmlnOiBUaGVtZUNvbmZpZyA9IG51bGxcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRoZW1lQ29uZmlnKCk6IFRoZW1lQ29uZmlnIHtcbiAgaWYgKHRoZW1lQ29uZmlnID09PSBudWxsKSB0aHJvdyBuZXcgRXJyb3IoTUlTU0lOR19DT05GSUdfRVJST1IpXG4gIHJldHVybiB0aGVtZUNvbmZpZ1xufVxuXG5sZXQgbWFwQ29uZmlnOiBNYXBDb25maWcgPSBudWxsXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRPcHRpb25hbE1hcENvbmZpZygpOiBNYXBDb25maWcgfCBudWxsIHtcbiAgcmV0dXJuIG1hcENvbmZpZ1xufVxuXG5sZXQgc2VhcmNoQ29uZmlnOiBTZWFyY2hDb25maWcgPSBudWxsXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRPcHRpb25hbFNlYXJjaENvbmZpZygpOiBTZWFyY2hDb25maWcgfCBudWxsIHtcbiAgcmV0dXJuIHNlYXJjaENvbmZpZ1xufVxuXG5sZXQgbWV0YWRhdGFRdWFsaXR5Q29uZmlnOiBNZXRhZGF0YVF1YWxpdHlDb25maWcgPSBudWxsXG5leHBvcnQgZnVuY3Rpb24gZ2V0TWV0YWRhdGFRdWFsaXR5Q29uZmlnKCk6IE1ldGFkYXRhUXVhbGl0eUNvbmZpZyB7XG4gIHJldHVybiAoXG4gICAgbWV0YWRhdGFRdWFsaXR5Q29uZmlnIHx8XG4gICAgKHtcbiAgICAgIEVOQUJMRUQ6IGZhbHNlLFxuICAgIH0gYXMgTWV0YWRhdGFRdWFsaXR5Q29uZmlnKVxuICApXG59XG5cbmxldCBjdXN0b21UcmFuc2xhdGlvbnM6IEN1c3RvbVRyYW5zbGF0aW9uc0FsbExhbmd1YWdlcyA9IG51bGxcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEN1c3RvbVRyYW5zbGF0aW9ucyhsYW5nQ29kZTogc3RyaW5nKTogQ3VzdG9tVHJhbnNsYXRpb25zIHtcbiAgaWYgKGN1c3RvbVRyYW5zbGF0aW9ucyA9PT0gbnVsbCkgdGhyb3cgbmV3IEVycm9yKE1JU1NJTkdfQ09ORklHX0VSUk9SKVxuICByZXR1cm4gbGFuZ0NvZGUgaW4gY3VzdG9tVHJhbnNsYXRpb25zID8gY3VzdG9tVHJhbnNsYXRpb25zW2xhbmdDb2RlXSA6IHt9XG59XG5cbmxldCBhcHBDb25maWdMb2FkZWQgPSBmYWxzZVxuXG5leHBvcnQgZnVuY3Rpb24gbG9hZEFwcENvbmZpZygpIHtcbiAgcmV0dXJuIGZldGNoKCdhc3NldHMvY29uZmlndXJhdGlvbi9kZWZhdWx0LnRvbWwnKVxuICAgIC50aGVuKChyZXNwKSA9PiB7XG4gICAgICBpZiAoIXJlc3Aub2spIHRocm93IG5ldyBFcnJvcignQ29uZmlndXJhdGlvbiBmaWxlIGNvdWxkIG5vdCBiZSBsb2FkZWQnKVxuICAgICAgcmV0dXJuIHJlc3AudGV4dCgpXG4gICAgfSlcbiAgICAudGhlbigoY29uZikgPT4ge1xuICAgICAgbGV0IHBhcnNlZFxuICAgICAgdHJ5IHtcbiAgICAgICAgcGFyc2VkID0gVE9NTC5wYXJzZShjb25mLCB7IGpvaW5lcjogJ1xcbicsIGJpZ2ludDogZmFsc2UgfSkgYXMgYW55XG4gICAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBBbiBlcnJvciBvY2N1cnJlZCB3aGVuIHBhcnNpbmcgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZTogJHtlLm1lc3NhZ2V9YFxuICAgICAgICApXG4gICAgICB9XG4gICAgICBjb25zdCBlcnJvcnMgPSBbXVxuICAgICAgY29uc3Qgd2FybmluZ3MgPSBbXVxuXG4gICAgICBsZXQgcGFyc2VkR2xvYmFsU2VjdGlvbiA9IHBhcnNlQ29uZmlnU2VjdGlvbihcbiAgICAgICAgcGFyc2VkLFxuICAgICAgICAnZ2xvYmFsJyxcbiAgICAgICAgWydnZW9uZXR3b3JrNF9hcGlfdXJsJ10sXG4gICAgICAgIFtcbiAgICAgICAgICAnZGF0YWh1Yl91cmwnLFxuICAgICAgICAgICdwcm94eV9wYXRoJyxcbiAgICAgICAgICAnbWV0YWRhdGFfbGFuZ3VhZ2UnLFxuICAgICAgICAgICdsb2dpbl91cmwnLFxuICAgICAgICAgICdsb2dvdXRfdXJsJyxcbiAgICAgICAgICAnc2V0dGluZ3NfdXJsJyxcbiAgICAgICAgICAnd2ViX2NvbXBvbmVudF9lbWJlZGRlcl91cmwnLFxuICAgICAgICAgICdsYW5ndWFnZXMnLFxuICAgICAgICAgICdjb250YWN0X2VtYWlsJyxcbiAgICAgICAgICAncmV1c2VfZm9ybV91cmwnLFxuICAgICAgICBdLFxuICAgICAgICB3YXJuaW5ncyxcbiAgICAgICAgZXJyb3JzXG4gICAgICApXG4gICAgICBpZiAocGFyc2VkR2xvYmFsU2VjdGlvbj8ubWV0YWRhdGFfbGFuZ3VhZ2UpIHtcbiAgICAgICAgcGFyc2VkR2xvYmFsU2VjdGlvbiA9IGNoZWNrTWV0YWRhdGFMYW5ndWFnZShcbiAgICAgICAgICBwYXJzZWRHbG9iYWxTZWN0aW9uLFxuICAgICAgICAgIHdhcm5pbmdzXG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIGdsb2JhbENvbmZpZyA9XG4gICAgICAgIHBhcnNlZEdsb2JhbFNlY3Rpb24gPT09IG51bGxcbiAgICAgICAgICA/IG51bGxcbiAgICAgICAgICA6ICh7XG4gICAgICAgICAgICAgIEdONF9BUElfVVJMOiBwYXJzZWRHbG9iYWxTZWN0aW9uLmdlb25ldHdvcms0X2FwaV91cmwsXG4gICAgICAgICAgICAgIERBVEFIVUJfVVJMOiBwYXJzZWRHbG9iYWxTZWN0aW9uLmRhdGFodWJfdXJsLFxuICAgICAgICAgICAgICBQUk9YWV9QQVRIOiBwYXJzZWRHbG9iYWxTZWN0aW9uLnByb3h5X3BhdGgsXG4gICAgICAgICAgICAgIE1FVEFEQVRBX0xBTkdVQUdFOiBwYXJzZWRHbG9iYWxTZWN0aW9uLm1ldGFkYXRhX2xhbmd1YWdlXG4gICAgICAgICAgICAgICAgPyAoXG4gICAgICAgICAgICAgICAgICAgIHBhcnNlZEdsb2JhbFNlY3Rpb24ubWV0YWRhdGFfbGFuZ3VhZ2UgYXMgc3RyaW5nXG4gICAgICAgICAgICAgICAgICApLnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgTE9HSU5fVVJMOiBwYXJzZWRHbG9iYWxTZWN0aW9uLmxvZ2luX3VybCxcbiAgICAgICAgICAgICAgTE9HT1VUX1VSTDogcGFyc2VkR2xvYmFsU2VjdGlvbi5sb2dvdXRfdXJsLFxuICAgICAgICAgICAgICBTRVRUSU5HU19VUkw6IHBhcnNlZEdsb2JhbFNlY3Rpb24uc2V0dGluZ3NfdXJsLFxuICAgICAgICAgICAgICBXRUJfQ09NUE9ORU5UX0VNQkVEREVSX1VSTDpcbiAgICAgICAgICAgICAgICBwYXJzZWRHbG9iYWxTZWN0aW9uLndlYl9jb21wb25lbnRfZW1iZWRkZXJfdXJsLFxuICAgICAgICAgICAgICBMQU5HVUFHRVM6IHBhcnNlZEdsb2JhbFNlY3Rpb24ubGFuZ3VhZ2VzLFxuICAgICAgICAgICAgICBDT05UQUNUX0VNQUlMOiBwYXJzZWRHbG9iYWxTZWN0aW9uLmNvbnRhY3RfZW1haWwsXG4gICAgICAgICAgICAgIFJFVVNFX0ZPUk1fVVJMOiBwYXJzZWRHbG9iYWxTZWN0aW9uLnJldXNlX2Zvcm1fdXJsLFxuICAgICAgICAgICAgfSBhcyBHbG9iYWxDb25maWcpXG5cbiAgICAgIGNvbnN0IHBhcnNlZExheWVyc1NlY3Rpb25zID0gcGFyc2VNdWx0aUNvbmZpZ1NlY3Rpb24oXG4gICAgICAgIHBhcnNlZCxcbiAgICAgICAgJ21hcF9sYXllcicsXG4gICAgICAgIFsndHlwZSddLFxuICAgICAgICBbJ25hbWUnLCAndXJsJywgJ2RhdGEnLCAnc3R5bGVVcmwnLCAnYWNjZXNzVG9rZW4nXSxcbiAgICAgICAgd2FybmluZ3MsXG4gICAgICAgIGVycm9yc1xuICAgICAgKVxuICAgICAgY29uc3QgcGFyc2VkTWFwU2VjdGlvbiA9IHBhcnNlQ29uZmlnU2VjdGlvbihcbiAgICAgICAgcGFyc2VkLFxuICAgICAgICAnbWFwJyxcbiAgICAgICAgW10sXG4gICAgICAgIFtcbiAgICAgICAgICAnbWF4X3pvb20nLFxuICAgICAgICAgICdkb19ub3RfdGlsZV93bXMnLFxuICAgICAgICAgICdtYXhfZXh0ZW50JyxcbiAgICAgICAgICAnbWF4X2ZlYXR1cmVfY291bnQnLFxuICAgICAgICAgICdiYXNlbGF5ZXInLFxuICAgICAgICAgICdkb19ub3RfdXNlX2RlZmF1bHRfYmFzZW1hcCcsXG4gICAgICAgICAgJ2V4dGVybmFsX3ZpZXdlcl91cmxfdGVtcGxhdGUnLFxuICAgICAgICAgICdleHRlcm5hbF92aWV3ZXJfb3Blbl9uZXdfdGFiJyxcbiAgICAgICAgXSxcbiAgICAgICAgd2FybmluZ3MsXG4gICAgICAgIGVycm9yc1xuICAgICAgKVxuICAgICAgbWFwQ29uZmlnID1cbiAgICAgICAgcGFyc2VkTWFwU2VjdGlvbiA9PT0gbnVsbCB8fCBwYXJzZWRMYXllcnNTZWN0aW9ucyA9PT0gbnVsbFxuICAgICAgICAgID8gbnVsbFxuICAgICAgICAgIDogKHtcbiAgICAgICAgICAgICAgTUFYX1pPT006IHBhcnNlZE1hcFNlY3Rpb24ubWF4X3pvb20sXG4gICAgICAgICAgICAgIERPX05PVF9USUxFX1dNUzogcGFyc2VkTWFwU2VjdGlvbi5kb19ub3RfdGlsZV93bXMsXG4gICAgICAgICAgICAgIE1BWF9FWFRFTlQ6IHBhcnNlZE1hcFNlY3Rpb24ubWF4X2V4dGVudCxcbiAgICAgICAgICAgICAgTUFYX0ZFQVRVUkVfQ09VTlQ6IHBhcnNlZE1hcFNlY3Rpb24ubWF4X2ZlYXR1cmVfY291bnQsXG4gICAgICAgICAgICAgIEVYVEVSTkFMX1ZJRVdFUl9VUkxfVEVNUExBVEU6XG4gICAgICAgICAgICAgICAgcGFyc2VkTWFwU2VjdGlvbi5leHRlcm5hbF92aWV3ZXJfdXJsX3RlbXBsYXRlLFxuICAgICAgICAgICAgICBFWFRFUk5BTF9WSUVXRVJfT1BFTl9ORVdfVEFCOlxuICAgICAgICAgICAgICAgIHBhcnNlZE1hcFNlY3Rpb24uZXh0ZXJuYWxfdmlld2VyX29wZW5fbmV3X3RhYixcbiAgICAgICAgICAgICAgRE9fTk9UX1VTRV9ERUZBVUxUX0JBU0VNQVA6XG4gICAgICAgICAgICAgICAgISFwYXJzZWRNYXBTZWN0aW9uLmRvX25vdF91c2VfZGVmYXVsdF9iYXNlbWFwLFxuICAgICAgICAgICAgICBNQVBfTEFZRVJTOiBwYXJzZWRMYXllcnNTZWN0aW9ucy5tYXAoXG4gICAgICAgICAgICAgICAgKG1hcF9sYXllcikgPT5cbiAgICAgICAgICAgICAgICAgICh7XG4gICAgICAgICAgICAgICAgICAgIFRZUEU6IG1hcF9sYXllci50eXBlLFxuICAgICAgICAgICAgICAgICAgICBVUkw6IG1hcF9sYXllci51cmwsXG4gICAgICAgICAgICAgICAgICAgIE5BTUU6IG1hcF9sYXllci5uYW1lLFxuICAgICAgICAgICAgICAgICAgICBEQVRBOiBtYXBfbGF5ZXIuZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgU1RZTEVfVVJMOiBtYXBfbGF5ZXIuc3R5bGVVcmwsXG4gICAgICAgICAgICAgICAgICAgIEFDQ0VTU19UT0tFTjogbWFwX2xheWVyLmFjY2Vzc1Rva2VuLFxuICAgICAgICAgICAgICAgICAgfSkgYXMgTGF5ZXJDb25maWdcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIH0gYXMgTWFwQ29uZmlnKVxuXG4gICAgICBjb25zdCBwYXJzZWRUaGVtZVNlY3Rpb24gPSBwYXJzZUNvbmZpZ1NlY3Rpb24oXG4gICAgICAgIHBhcnNlZCxcbiAgICAgICAgJ3RoZW1lJyxcbiAgICAgICAgWydwcmltYXJ5X2NvbG9yJywgJ3NlY29uZGFyeV9jb2xvcicsICdtYWluX2NvbG9yJywgJ2JhY2tncm91bmRfY29sb3InXSxcbiAgICAgICAgW1xuICAgICAgICAgICdoZWFkZXJfZm9yZWdyb3VuZF9jb2xvcicsXG4gICAgICAgICAgJ21haW5fZm9udCcsXG4gICAgICAgICAgJ3RpdGxlX2ZvbnQnLFxuICAgICAgICAgICdmb250c19zdHlsZXNoZWV0X3VybCcsXG4gICAgICAgICAgJ3RodW1ibmFpbF9wbGFjZWhvbGRlcicsXG4gICAgICAgICAgJ2hlYWRlcl9iYWNrZ3JvdW5kJyxcbiAgICAgICAgICAnZmF2aWNvbicsXG4gICAgICAgIF0sXG4gICAgICAgIHdhcm5pbmdzLFxuICAgICAgICBlcnJvcnNcbiAgICAgIClcbiAgICAgIHRoZW1lQ29uZmlnID1cbiAgICAgICAgcGFyc2VkVGhlbWVTZWN0aW9uID09PSBudWxsXG4gICAgICAgICAgPyBudWxsXG4gICAgICAgICAgOiAoe1xuICAgICAgICAgICAgICBQUklNQVJZX0NPTE9SOiBwYXJzZWRUaGVtZVNlY3Rpb24ucHJpbWFyeV9jb2xvcixcbiAgICAgICAgICAgICAgU0VDT05EQVJZX0NPTE9SOiBwYXJzZWRUaGVtZVNlY3Rpb24uc2Vjb25kYXJ5X2NvbG9yLFxuICAgICAgICAgICAgICBNQUlOX0NPTE9SOiBwYXJzZWRUaGVtZVNlY3Rpb24ubWFpbl9jb2xvcixcbiAgICAgICAgICAgICAgQkFDS0dST1VORF9DT0xPUjogcGFyc2VkVGhlbWVTZWN0aW9uLmJhY2tncm91bmRfY29sb3IsXG4gICAgICAgICAgICAgIEhFQURFUl9GT1JFR1JPVU5EX0NPTE9SOlxuICAgICAgICAgICAgICAgIHBhcnNlZFRoZW1lU2VjdGlvbi5oZWFkZXJfZm9yZWdyb3VuZF9jb2xvcixcbiAgICAgICAgICAgICAgVEhVTUJOQUlMX1BMQUNFSE9MREVSOiBwYXJzZWRUaGVtZVNlY3Rpb24udGh1bWJuYWlsX3BsYWNlaG9sZGVyLFxuICAgICAgICAgICAgICBIRUFERVJfQkFDS0dST1VORDogcGFyc2VkVGhlbWVTZWN0aW9uLmhlYWRlcl9iYWNrZ3JvdW5kLFxuICAgICAgICAgICAgICBUSVRMRV9GT05UOiBwYXJzZWRUaGVtZVNlY3Rpb24udGl0bGVfZm9udCxcbiAgICAgICAgICAgICAgTUFJTl9GT05UOiBwYXJzZWRUaGVtZVNlY3Rpb24ubWFpbl9mb250LFxuICAgICAgICAgICAgICBGT05UU19TVFlMRVNIRUVUX1VSTDogcGFyc2VkVGhlbWVTZWN0aW9uLmZvbnRzX3N0eWxlc2hlZXRfdXJsLFxuICAgICAgICAgICAgICBGQVZJQ09OOiBwYXJzZWRUaGVtZVNlY3Rpb24uZmF2aWNvbixcbiAgICAgICAgICAgIH0gYXMgVGhlbWVDb25maWcpXG5cbiAgICAgIGNvbnN0IHBhcnNlZFNlYXJjaFNlY3Rpb24gPSBwYXJzZUNvbmZpZ1NlY3Rpb24oXG4gICAgICAgIHBhcnNlZCxcbiAgICAgICAgJ3NlYXJjaCcsXG4gICAgICAgIFtdLFxuICAgICAgICBbXG4gICAgICAgICAgJ3JlY29yZF9raW5kX3F1aWNrX2ZpbHRlcicsXG4gICAgICAgICAgJ2ZpbHRlcl9nZW9tZXRyeV9kYXRhJyxcbiAgICAgICAgICAnZmlsdGVyX2dlb21ldHJ5X3VybCcsXG4gICAgICAgICAgJ3NlYXJjaF9wcmVzZXQnLFxuICAgICAgICAgICdhZHZhbmNlZF9maWx0ZXJzJyxcbiAgICAgICAgICAnbGltaXQnLFxuICAgICAgICBdLFxuICAgICAgICB3YXJuaW5ncyxcbiAgICAgICAgZXJyb3JzXG4gICAgICApXG4gICAgICBjb25zdCBwYXJzZWRTZWFyY2hQYXJhbXMgPSBwYXJzZU11bHRpQ29uZmlnU2VjdGlvbihcbiAgICAgICAgcGFyc2VkLFxuICAgICAgICAnc2VhcmNoX3ByZXNldCcsXG4gICAgICAgIFsnbmFtZSddLFxuICAgICAgICBbJ3NvcnQnLCAnZmlsdGVycyddLFxuICAgICAgICB3YXJuaW5ncyxcbiAgICAgICAgZXJyb3JzXG4gICAgICApXG4gICAgICBzZWFyY2hDb25maWcgPVxuICAgICAgICBwYXJzZWRTZWFyY2hTZWN0aW9uID09PSBudWxsXG4gICAgICAgICAgPyBudWxsXG4gICAgICAgICAgOiAoe1xuICAgICAgICAgICAgICBSRUNPUkRfS0lORF9RVUlDS19GSUxURVI6XG4gICAgICAgICAgICAgICAgcGFyc2VkU2VhcmNoU2VjdGlvbi5yZWNvcmRfa2luZF9xdWlja19maWx0ZXIsXG4gICAgICAgICAgICAgIEZJTFRFUl9HRU9NRVRSWV9EQVRBOiBwYXJzZWRTZWFyY2hTZWN0aW9uLmZpbHRlcl9nZW9tZXRyeV9kYXRhLFxuICAgICAgICAgICAgICBGSUxURVJfR0VPTUVUUllfVVJMOiBwYXJzZWRTZWFyY2hTZWN0aW9uLmZpbHRlcl9nZW9tZXRyeV91cmwsXG4gICAgICAgICAgICAgIFNFQVJDSF9QUkVTRVQ6IHBhcnNlZFNlYXJjaFBhcmFtcy5tYXAoKHBhcmFtKSA9PiAoe1xuICAgICAgICAgICAgICAgIHNvcnQ6IHBhcmFtLnNvcnQsXG4gICAgICAgICAgICAgICAgbmFtZTogcGFyYW0ubmFtZSxcbiAgICAgICAgICAgICAgICBmaWx0ZXJzOiBwYXJhbS5maWx0ZXJzLFxuICAgICAgICAgICAgICB9KSksXG4gICAgICAgICAgICAgIEFEVkFOQ0VEX0ZJTFRFUlM6IHBhcnNlZFNlYXJjaFNlY3Rpb24uYWR2YW5jZWRfZmlsdGVycyxcbiAgICAgICAgICAgICAgTElNSVQ6IHBhcnNlZFNlYXJjaFNlY3Rpb24ubGltaXQsXG4gICAgICAgICAgICB9IGFzIFNlYXJjaENvbmZpZylcblxuICAgICAgY29uc3QgcGFyc2VkTWV0YWRhdGFRdWFsaXR5U2VjdGlvbiA9IHBhcnNlQ29uZmlnU2VjdGlvbihcbiAgICAgICAgcGFyc2VkLFxuICAgICAgICAnbWV0YWRhdGEtcXVhbGl0eScsXG4gICAgICAgIFtdLFxuICAgICAgICBbJ2VuYWJsZWQnXSxcbiAgICAgICAgd2FybmluZ3MsXG4gICAgICAgIGVycm9yc1xuICAgICAgKVxuICAgICAgbWV0YWRhdGFRdWFsaXR5Q29uZmlnID1cbiAgICAgICAgcGFyc2VkTWV0YWRhdGFRdWFsaXR5U2VjdGlvbiA9PT0gbnVsbFxuICAgICAgICAgID8gbnVsbFxuICAgICAgICAgIDogKHtcbiAgICAgICAgICAgICAgRU5BQkxFRDogcGFyc2VkTWV0YWRhdGFRdWFsaXR5U2VjdGlvbi5lbmFibGVkLFxuICAgICAgICAgICAgICBTT1JUQUJMRTogcGFyc2VkTWV0YWRhdGFRdWFsaXR5U2VjdGlvbi5zb3J0YWJsZSxcbiAgICAgICAgICAgIH0gYXMgTWV0YWRhdGFRdWFsaXR5Q29uZmlnKVxuXG4gICAgICBjdXN0b21UcmFuc2xhdGlvbnMgPSBwYXJzZVRyYW5zbGF0aW9uc0NvbmZpZ1NlY3Rpb24oXG4gICAgICAgIHBhcnNlZCxcbiAgICAgICAgJ3RyYW5zbGF0aW9ucydcbiAgICAgICkgYXMgQ3VzdG9tVHJhbnNsYXRpb25zQWxsTGFuZ3VhZ2VzXG5cbiAgICAgIGlmIChlcnJvcnMubGVuZ3RoKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgT25lIG9yIG1vcmUgbWFuZGF0b3J5IHNldHRpbmdzIHdlcmUgbWlzc2luZyBmcm9tIHRoZSBjb25maWd1cmF0aW9uIGZpbGUuXG4ke2Vycm9ycy5qb2luKCdcXG4nKX1gKVxuICAgICAgfSBlbHNlIGlmICh3YXJuaW5ncy5sZW5ndGgpIHtcbiAgICAgICAgY29uc29sZS53YXJuKGBPbmUgb3IgbW9yZSB1bmV4cGVjdGVkIHNldHRpbmdzIHdlcmUgZW5jb3VudGVyZWQgaW4gdGhlIGNvbmZpZ3VyYXRpb24gZmlsZS5cbiR7d2FybmluZ3Muam9pbignXFxuJyl9YClcbiAgICAgIH1cblxuICAgICAgYXBwQ29uZmlnTG9hZGVkID0gdHJ1ZVxuICAgIH0pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0NvbmZpZ0xvYWRlZCgpIHtcbiAgcmV0dXJuIGFwcENvbmZpZ0xvYWRlZFxufVxuXG5leHBvcnQgZnVuY3Rpb24gX3Jlc2V0KCkge1xuICBnbG9iYWxDb25maWcgPSBudWxsXG4gIHRoZW1lQ29uZmlnID0gbnVsbFxuICBjdXN0b21UcmFuc2xhdGlvbnMgPSBudWxsXG59XG5cbmV4cG9ydCBjb25zdCBUUkFOU0xBVEVfV0lUSF9PVkVSUklERVNfQ09ORklHID0ge1xuICBjb21waWxlcjoge1xuICAgIHByb3ZpZGU6IFRyYW5zbGF0ZUNvbXBpbGVyLFxuICAgIHVzZUNsYXNzOiBUcmFuc2xhdGVNZXNzYWdlRm9ybWF0Q29tcGlsZXIsXG4gIH0sXG4gIGxvYWRlcjoge1xuICAgIHByb3ZpZGU6IFRyYW5zbGF0ZUxvYWRlcixcbiAgICB1c2VGYWN0b3J5OiBmdW5jdGlvbiBIdHRwTG9hZGVyRmFjdG9yeShodHRwOiBIdHRwQ2xpZW50KSB7XG4gICAgICByZXR1cm4gbmV3IEZpbGVXaXRoT3ZlcnJpZGVzVHJhbnNsYXRlTG9hZGVyKGh0dHAsICcuL2Fzc2V0cy9pMThuLycpXG4gICAgfSxcbiAgICBkZXBzOiBbSHR0cENsaWVudF0sXG4gIH0sXG59XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvYXBwLWNvbmZpZy9zcmMvbGliL21vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHZW9tZXRyeSB9IGZyb20gJ2dlb2pzb24nXG5cbmV4cG9ydCBpbnRlcmZhY2UgR2xvYmFsQ29uZmlnIHtcbiAgR040X0FQSV9VUkw6IHN0cmluZ1xuICBEQVRBSFVCX1VSTD86IHN0cmluZ1xuICBQUk9YWV9QQVRIPzogc3RyaW5nXG4gIE1FVEFEQVRBX0xBTkdVQUdFPzogc3RyaW5nXG4gIExPR0lOX1VSTD86IHN0cmluZ1xuICBMT0dPVVRfVVJMPzogc3RyaW5nXG4gIFNFVFRJTkdTX1VSTD86IHN0cmluZ1xuICBXRUJfQ09NUE9ORU5UX0VNQkVEREVSX1VSTD86IHN0cmluZ1xuICBMQU5HVUFHRVM/OiBzdHJpbmdbXVxuICBDT05UQUNUX0VNQUlMPzogc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGF5ZXJDb25maWcge1xuICBUWVBFOiAneHl6JyB8ICd3bXMnIHwgJ3dmcycgfCAnZ2VvanNvbicgfCAnbWFwbGlicmUtc3R5bGUnXG4gIFVSTD86IHN0cmluZ1xuICBOQU1FPzogc3RyaW5nXG4gIERBVEE/OiBzdHJpbmdcbiAgU1RZTEVfVVJMPzogc3RyaW5nXG4gIEFDQ0VTU19UT0tFTj86IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1hcENvbmZpZyB7XG4gIE1BWF9aT09NPzogbnVtYmVyXG4gIERPX05PVF9USUxFX1dNUzogYm9vbGVhblxuICBNQVhfRVhURU5UPzogW251bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlcl0gLy8gRXhwcmVzc2VkIGFzIFttaW54LCBtaW55LCBtYXh4LCBtYXh5XVxuICBNQVhfRkVBVFVSRV9DT1VOVD86IG51bWJlclxuICBFWFRFUk5BTF9WSUVXRVJfVVJMX1RFTVBMQVRFPzogc3RyaW5nXG4gIEVYVEVSTkFMX1ZJRVdFUl9PUEVOX05FV19UQUI/OiBib29sZWFuXG4gIERPX05PVF9VU0VfREVGQVVMVF9CQVNFTUFQOiBib29sZWFuXG4gIE1BUF9MQVlFUlM6IExheWVyQ29uZmlnW11cbn1cblxuZXhwb3J0IGludGVyZmFjZSBUaGVtZUNvbmZpZyB7XG4gIFBSSU1BUllfQ09MT1I6IHN0cmluZ1xuICBTRUNPTkRBUllfQ09MT1I6IHN0cmluZ1xuICBNQUlOX0NPTE9SOiBzdHJpbmdcbiAgQkFDS0dST1VORF9DT0xPUjogc3RyaW5nXG4gIEhFQURFUl9GT1JFR1JPVU5EX0NPTE9SOiBzdHJpbmdcbiAgSEVBREVSX0JBQ0tHUk9VTkQ6IHN0cmluZ1xuICBUSFVNQk5BSUxfUExBQ0VIT0xERVI6IHN0cmluZ1xuICBNQUlOX0ZPTlQ/OiBzdHJpbmdcbiAgVElUTEVfRk9OVD86IHN0cmluZ1xuICBGT05UU19TVFlMRVNIRUVUX1VSTD86IHN0cmluZ1xuICBGQVZJQ09OPzogc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoUHJlc2V0IHtcbiAgc29ydDogc3RyaW5nXG4gIG5hbWU6IHN0cmluZ1xuICBmaWx0ZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXSB8IHN0cmluZz5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZWFyY2hDb25maWcge1xuICBSRUNPUkRfS0lORF9RVUlDS19GSUxURVI/OiBib29sZWFuXG4gIEZJTFRFUl9HRU9NRVRSWV9VUkw/OiBzdHJpbmdcbiAgRklMVEVSX0dFT01FVFJZX0RBVEE/OiBzdHJpbmdcbiAgU0VBUkNIX1BSRVNFVD86IFNlYXJjaFByZXNldFtdXG4gIEFEVkFOQ0VEX0ZJTFRFUlM/OiBbXVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1ldGFkYXRhUXVhbGl0eUNvbmZpZyB7XG4gIEVOQUJMRUQ6IGJvb2xlYW5cbn1cblxuZXhwb3J0IHR5cGUgQ3VzdG9tVHJhbnNsYXRpb25zID0geyBbdHJhbnNsYXRpb25LZXk6IHN0cmluZ106IHN0cmluZyB9XG5leHBvcnQgdHlwZSBDdXN0b21UcmFuc2xhdGlvbnNBbGxMYW5ndWFnZXMgPSB7XG4gIFtsYW5nOiBzdHJpbmddOiBDdXN0b21UcmFuc2xhdGlvbnNcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZWFyY2hDb25maWcge1xuICBGSUxURVJfR0VPTUVUUlk/OiBHZW9tZXRyeVxufVxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvYXBwLWNvbmZpZy9zcmMvbGliL21vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHZW9tZXRyeSB9IGZyb20gJ2dlb2pzb24nXG5cbmV4cG9ydCBpbnRlcmZhY2UgR2xvYmFsQ29uZmlnIHtcbiAgR040X0FQSV9VUkw6IHN0cmluZ1xuICBEQVRBSFVCX1VSTD86IHN0cmluZ1xuICBQUk9YWV9QQVRIPzogc3RyaW5nXG4gIE1FVEFEQVRBX0xBTkdVQUdFPzogc3RyaW5nXG4gIExPR0lOX1VSTD86IHN0cmluZ1xuICBMT0dPVVRfVVJMPzogc3RyaW5nXG4gIFNFVFRJTkdTX1VSTD86IHN0cmluZ1xuICBXRUJfQ09NUE9ORU5UX0VNQkVEREVSX1VSTD86IHN0cmluZ1xuICBMQU5HVUFHRVM/OiBzdHJpbmdbXVxuICBDT05UQUNUX0VNQUlMPzogc3RyaW5nXG4gIFJFVVNFX0ZPUk1fVVJMPzogc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGF5ZXJDb25maWcge1xuICBUWVBFOiAneHl6JyB8ICd3bXMnIHwgJ3dmcycgfCAnZ2VvanNvbicgfCAnbWFwbGlicmUtc3R5bGUnXG4gIFVSTD86IHN0cmluZ1xuICBOQU1FPzogc3RyaW5nXG4gIERBVEE/OiBzdHJpbmdcbiAgU1RZTEVfVVJMPzogc3RyaW5nXG4gIEFDQ0VTU19UT0tFTj86IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1hcENvbmZpZyB7XG4gIE1BWF9aT09NPzogbnVtYmVyXG4gIERPX05PVF9USUxFX1dNUzogYm9vbGVhblxuICBNQVhfRVhURU5UPzogW251bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlcl0gLy8gRXhwcmVzc2VkIGFzIFttaW54LCBtaW55LCBtYXh4LCBtYXh5XVxuICBNQVhfRkVBVFVSRV9DT1VOVD86IG51bWJlclxuICBFWFRFUk5BTF9WSUVXRVJfVVJMX1RFTVBMQVRFPzogc3RyaW5nXG4gIEVYVEVSTkFMX1ZJRVdFUl9PUEVOX05FV19UQUI/OiBib29sZWFuXG4gIERPX05PVF9VU0VfREVGQVVMVF9CQVNFTUFQOiBib29sZWFuXG4gIE1BUF9MQVlFUlM6IExheWVyQ29uZmlnW11cbn1cblxuZXhwb3J0IGludGVyZmFjZSBUaGVtZUNvbmZpZyB7XG4gIFBSSU1BUllfQ09MT1I6IHN0cmluZ1xuICBTRUNPTkRBUllfQ09MT1I6IHN0cmluZ1xuICBNQUlOX0NPTE9SOiBzdHJpbmdcbiAgQkFDS0dST1VORF9DT0xPUjogc3RyaW5nXG4gIEhFQURFUl9GT1JFR1JPVU5EX0NPTE9SOiBzdHJpbmdcbiAgSEVBREVSX0JBQ0tHUk9VTkQ6IHN0cmluZ1xuICBUSFVNQk5BSUxfUExBQ0VIT0xERVI6IHN0cmluZ1xuICBNQUlOX0ZPTlQ/OiBzdHJpbmdcbiAgVElUTEVfRk9OVD86IHN0cmluZ1xuICBGT05UU19TVFlMRVNIRUVUX1VSTD86IHN0cmluZ1xuICBGQVZJQ09OPzogc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoUHJlc2V0IHtcbiAgc29ydDogc3RyaW5nXG4gIG5hbWU6IHN0cmluZ1xuICBmaWx0ZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXSB8IHN0cmluZz5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZWFyY2hDb25maWcge1xuICBSRUNPUkRfS0lORF9RVUlDS19GSUxURVI/OiBib29sZWFuXG4gIEZJTFRFUl9HRU9NRVRSWV9VUkw/OiBzdHJpbmdcbiAgRklMVEVSX0dFT01FVFJZX0RBVEE/OiBzdHJpbmdcbiAgU0VBUkNIX1BSRVNFVD86IFNlYXJjaFByZXNldFtdXG4gIEFEVkFOQ0VEX0ZJTFRFUlM/OiBbXVxuICBMSU1JVD86IG51bWJlclxufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1ldGFkYXRhUXVhbGl0eUNvbmZpZyB7XG4gIEVOQUJMRUQ6IGJvb2xlYW5cbn1cblxuZXhwb3J0IHR5cGUgQ3VzdG9tVHJhbnNsYXRpb25zID0geyBbdHJhbnNsYXRpb25LZXk6IHN0cmluZ106IHN0cmluZyB9XG5leHBvcnQgdHlwZSBDdXN0b21UcmFuc2xhdGlvbnNBbGxMYW5ndWFnZXMgPSB7XG4gIFtsYW5nOiBzdHJpbmddOiBDdXN0b21UcmFuc2xhdGlvbnNcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZWFyY2hDb25maWcge1xuICBGSUxURVJfR0VPTUVUUlk/OiBHZW9tZXRyeVxufVxuIl19
@@ -3,5 +3,5 @@ export * from './lib/utils';
3
3
  export * from './lib/links';
4
4
  export * from './lib/image-fallback.directive';
5
5
  export * from './lib/gn-ui-version';
6
- export * from './lib/record.util';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdCQUFnQixDQUFBO0FBQzlCLGNBQWMsYUFBYSxDQUFBO0FBQzNCLGNBQWMsYUFBYSxDQUFBO0FBQzNCLGNBQWMsZ0NBQWdDLENBQUE7QUFDOUMsY0FBYyxxQkFBcUIsQ0FBQTtBQUNuQyxjQUFjLG1CQUFtQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMnXG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscydcbmV4cG9ydCAqIGZyb20gJy4vbGliL2xpbmtzJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaW1hZ2UtZmFsbGJhY2suZGlyZWN0aXZlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZ24tdWktdmVyc2lvbidcbmV4cG9ydCAqIGZyb20gJy4vbGliL3JlY29yZC51dGlsJ1xuIl19
6
+ export * from './lib/record';
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdCQUFnQixDQUFBO0FBQzlCLGNBQWMsYUFBYSxDQUFBO0FBQzNCLGNBQWMsYUFBYSxDQUFBO0FBQzNCLGNBQWMsZ0NBQWdDLENBQUE7QUFDOUMsY0FBYyxxQkFBcUIsQ0FBQTtBQUNuQyxjQUFjLGNBQWMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbHMnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9saW5rcydcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ltYWdlLWZhbGxiYWNrLmRpcmVjdGl2ZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2duLXVpLXZlcnNpb24nXG5leHBvcnQgKiBmcm9tICcuL2xpYi9yZWNvcmQnXG4iXX0=
@@ -11,8 +11,8 @@ export const FORMATS = {
11
11
  excel: {
12
12
  extensions: [
13
13
  'excel',
14
- 'xls',
15
14
  'xlsx',
15
+ 'xls',
16
16
  'ms-excel',
17
17
  'openxmlformats-officedocument',
18
18
  ],
@@ -161,6 +161,8 @@ export function getFileFormat(link) {
161
161
  }
162
162
  export function isFormatInQueryParam(link, alias) {
163
163
  const queryParams = link.url.searchParams;
164
+ if (!queryParams)
165
+ return false;
164
166
  for (const [key, value] of queryParams.entries()) {
165
167
  if (key === 'format' || key === 'f') {
166
168
  return value === alias;
@@ -193,6 +195,14 @@ export function getBadgeColor(linkFormat) {
193
195
  }
194
196
  return 'var(--color-gray-700)'; // Default color ?
195
197
  }
198
+ export function getLinkId(link) {
199
+ const href = link.url.href ?? link.url;
200
+ return `${getLinkLabel(link)
201
+ .replace(/é/g, 'e')
202
+ .replace(/è/g, 'e')
203
+ .normalize('NFD')
204
+ .replace(/[\u0300-\u036f]/g, '')}-${href}`;
205
+ }
196
206
  export function getLinkLabel(link) {
197
207
  let format = '';
198
208
  switch (link.type) {
@@ -268,4 +278,4 @@ export function wmsLayerFlatten(layerFull) {
268
278
  export function getMimeTypeForFormat(format) {
269
279
  return format in FORMATS ? FORMATS[format.toLowerCase()].mimeTypes[0] : null;
270
280
  }
271
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9zaGFyZWQvc3JjL2xpYi9saW5rcy9saW5rLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQU1oRSxPQUFPLEVBQ0wsY0FBYyxFQUNkLFdBQVcsRUFDWCxXQUFXLEVBQ1gsWUFBWSxHQUNiLE1BQU0sd0JBQXdCLENBQUE7QUFFL0IsTUFBTSxDQUFDLHFDQUFxQyxDQUFDLENBQUE7QUFFN0MsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHO0lBQ3JCLEdBQUcsRUFBRTtRQUNILFVBQVUsRUFBRSxDQUFDLEtBQUssQ0FBQztRQUNuQixRQUFRLEVBQUUsQ0FBQztRQUNYLEtBQUssRUFBRSxTQUFTO1FBQ2hCLFNBQVMsRUFBRSxDQUFDLFVBQVUsRUFBRSxpQkFBaUIsQ0FBQztLQUMzQztJQUNELEtBQUssRUFBRTtRQUNMLFVBQVUsRUFBRTtZQUNWLE9BQU87WUFDUCxLQUFLO1lBQ0wsTUFBTTtZQUNOLFVBQVU7WUFDViwrQkFBK0I7U0FDaEM7UUFDRCxRQUFRLEVBQUUsQ0FBQztRQUNYLEtBQUssRUFBRSxTQUFTO1FBQ2hCLFNBQVMsRUFBRTtZQUNULDBCQUEwQjtZQUMxQixtRUFBbUU7U0FDcEU7S0FDRjtJQUNELE9BQU8sRUFBRTtRQUNQLFVBQVUsRUFBRSxDQUFDLFNBQVMsQ0FBQztRQUN2QixRQUFRLEVBQUUsQ0FBQztRQUNYLEtBQUssRUFBRSxTQUFTO1FBQ2hCLFNBQVMsRUFBRSxDQUFDLHNCQUFzQixFQUFFLDBCQUEwQixDQUFDO0tBQ2hFO0lBQ0QsSUFBSSxFQUFFO1FBQ0osVUFBVSxFQUFFLENBQUMsTUFBTSxDQUFDO1FBQ3BCLFFBQVEsRUFBRSxDQUFDO1FBQ1gsS0FBSyxFQUFFLFNBQVM7UUFDaEIsU0FBUyxFQUFFLENBQUMsa0JB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WSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFBO1lBQzFELE9BQU8sWUFBWSxDQUFDLFNBQVMsRUFBRSxDQUFBO1FBQ2pDLENBQUM7UUFDRDtZQUNFLE9BQU8sU0FBUyxDQUFBO0lBQ3BCLENBQUM7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLGVBQWUsQ0FBQyxTQUFTO0lBQ3ZDLE1BQU0sS0FBSyxHQUFHO1FBQ1osS0FBSyxFQUFFLFNBQVMsQ0FBQyxLQUFLO1FBQ3RCLElBQUksRUFBRSxTQUFTLENBQUMsSUFBSTtRQUNwQixRQUFRLEVBQUUsU0FBUyxDQUFDLFFBQVE7S0FDN0IsQ0FBQTtJQUVELE9BQU8sVUFBVSxJQUFJLFNBQVMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUM7UUFDakUsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDekQsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUE7QUFDYixDQUFDO0FBRUQsTUFBTSxVQUFVLG9CQUFvQixDQUFDLE1BQWtCO0lBQ3JELE9BQU8sTUFBTSxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBO0FBQzlFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtYXJrZXIgfSBmcm9tICdAYmllc2JqZXJnL25neC10cmFuc2xhdGUtZXh0cmFjdC1tYXJrZXInXG5pbXBvcnQge1xuICBEYXRhc2V0T25saW5lUmVzb3VyY2UsXG4gIFNlcnZpY2VPbmxpbmVSZXNvdXJjZSxcbiAgU2VydmljZVByb3RvY29sLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQge1xuICBPZ2NBcGlFbmRwb2ludCxcbiAgV2ZzRW5kcG9pbnQsXG4gIFdtc0VuZHBvaW50LFxuICBXbXRzRW5kcG9pbnQsXG59IGZyb20gJ0BjYW1wdG9jYW1wL29nYy1jbGllbnQnXG5cbm1hcmtlcignZG93bmxvYWRzLndmcy5mZWF0dXJldHlwZS5ub3QuZm91bmQnKVxuXG5leHBvcnQgY29uc3QgRk9STUFUUyA9IHtcbiAgY3N2OiB7XG4gICAgZXh0ZW5zaW9uczogWydjc3YnXSxcbiAgICBwcmlvcml0eTogMSxcbiAgICBjb2xvcjogJyNGNkE5MjQnLFxuICAgIG1pbWVUeXBlczogWyd0ZXh0L2NzdicsICdhcHBsaWNhdGlvbi9jc3YnXSxcbiAgfSxcbiAgZXhjZWw6IHtcbiAgICBleHRlbnNpb25zOiBbXG4gICAgICAnZXhjZWwnLFxuICAgICAgJ3hscycsXG4gICAgICAneGxzeCcsXG4gICAgICAnbXMtZXhjZWwnLFxuICAgICAgJ29wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50JyxcbiAgICBdLFxuICAgIHByaW9yaXR5OiAyLFxuICAgIGNvbG9yOiAnI0ZGREUxMCcsXG4gICAgbWltZVR5cGVzOiBbXG4gICAgICAnYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsJyxcbiAgICAgICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldCcsXG4gICAgXSxcbiAgfSxcbiAgZ2VvanNvbjoge1xuICAgIGV4dGVuc2lvbnM6IFsnZ2VvanNvbiddLFxuICAgIHByaW9yaXR5OiAzLFxuICAgIGNvbG9yOiAnIzI5M0M2RicsXG4gICAgbWltZVR5cGVzOiBbJ2FwcGxpY2F0aW9uL2dlbytqc29uJywgJ2FwcGxpY2F0aW9uL3ZuZC5nZW8ranNvbiddLFxuICB9LFxuICBqc29uOiB7XG4gICAgZXh0ZW5zaW9uczogWydqc29uJ10sXG4gICAgcHJpb3JpdHk6IDMsXG4gICAgY29sb3I6ICcjODREMEYwJyxcbiAgICBtaW1lVHlwZXM6IFsnYXBwbGljYXRpb24vanNvbiddLFxuICB9LFxuICBzaHA6IHtcbiAgICBleHRlbnNpb25zOiBbJ3NocCcsICdzaGFwZScsICd6aXBwZWQtc2hhcGVmaWxlJ10sXG4gICAgcHJpb3JpdHk6IDQsXG4gICAgY29sb3I6ICcjMDA5MDM2JyxcbiAgICBtaW1lVHlwZXM6IFsneC1naXMveC1zaGFwZWZpbGUnXSxcbiAgfSxcbiAgZ21sOiB7XG4gICAgZXh0ZW5zaW9uczogWydnbWwnXSxcbiAgICBwcmlvcml0eTogNSxcbiAgICBjb2xvcjogJyNFNzUxMTMnLFxuICAgIG1pbWVUeXBlczogWydhcHBsaWNhdGlvbi9nbWwreG1sJywgJ3RleHQveG1sOyBzdWJ0eXBlPWdtbCddLFxuICB9LFxuICBrbWw6IHtcbiAgICBleHRlbnNpb25zOiBbJ2ttbCcsICdrbXonXSxcbiAgICBwcmlvcml0eTogNixcbiAgICBjb2xvcjogJyNGNEI1RDAnLFxuICAgIG1pbWVUeXBlczogW1xuICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5nb29nbGUtZWFydGgua21sK3htbCcsXG4gICAgICAnYXBwbGljYXRpb24vdm5kLmdvb2dsZS1lYXJ0aC5rbXonLFxuICAgIF0sXG4gIH0sXG4gIGdwa2c6IHtcbiAgICBleHRlbnNpb25zOiBbJ2dwa2cnLCAnZ2VvcGFja2FnZSddLFxuICAgIHByaW9yaXR5OiA3LFxuICAgIGNvbG9yOiAnIzdENUQ5RicsXG4gICAgbWltZVR5cGVzOiBbJ2FwcGxpY2F0aW9uL2dlb3BhY2thZ2Urc3FsaXRlMyddLFxuICB9LFxuICB6aXA6IHtcbiAgICBleHRlbnNpb25zOiBbJ3ppcCcsICd0YXIuZ3onXSxcbiAgICBwcmlvcml0eTogOCxcbiAgICBjb2xvcjogJyNCMENCNTInLFxuICAgIG1pbWVUeXBlczogWydhcHBsaWNhdGlvbi96aXAnLCAnYXBwbGljYXRpb24veC16aXAnXSxcbiAgfSxcbiAgcGRmOiB7XG4gICAgZXh0ZW5zaW9uczogWydwZGYnXSxcbiAgICBwcmlvcml0eTogOSxcbiAgICBjb2xvcjogJyM0OTU3OUUnLFxuICAgIG1pbWVUeXBlczogWydhcHBsaWNhdGlvbi9wZGYnXSxcbiAgfSxcbiAganBnOiB7XG4gICAgZXh0ZW5zaW9uczogWydqcGcnLCAnanBlZycsICdqZmlmJywgJ3BqcGVnJywgJ3BqcCddLFxuICAgIHByaW9yaXR5OiA5LFxuICAgIGNvbG9yOiAnI0M0QTk4RicsXG4gICAgbWltZVR5cGVzOiBbJ2ltYWdlL2pwZyddLFxuICB9LFxuICBzdmc6IHtcbiAgICBleHRlbnNpb25zOiBbJ3N2ZyddLFxuICAgIHByaW9yaXR5OiAxMCxcbiAgICBjb2xvcjogJyNFQjZEODInLFxuICAgIG1pbWVUeXBlczogWydpbWFnZS9zdmcreG1sJ10sXG4gIH0sXG4gIGR4Zjoge1xuICAgIGV4dGVuc2lvbnM6IFsnZHhmJ10sXG4gICAgcHJpb3JpdHk6IDExLFxuICAgIGNvbG9yOiAnI0RDQ0QwMCcsXG4gICAgbWltZVR5cGVzOiBbJ2FwcGxpY2F0aW9uL3gtZHhmJywgJ2ltYWdlL3gtZHhmJ10sXG4gIH0sXG4gIGh0bWw6IHtcbiAgICBleHRlbnNpb25zOiBbJ2h0bWwnLCAnaHRtJ10sXG4gICAgcHJpb3JpdHk6IDEyLFxuICAgIGNvbG9yOiAnI0MwQzlCNicsXG4gICAgbWltZVR5cGVzOiBbJ3RleHQvaHRtbCddLFxuICB9LFxuICBmZ2I6IHtcbiAgICBleHRlbnNpb25zOiBbJ2ZnYicsICdmbGF0Z2VvYnVmJ10sXG4gICAgcHJpb3JpdHk6IDEzLFxuICAgIGNvbG9yOiAnI0E4MTExQycsXG4gICAgbWltZVR5cGVzOiBbJ2FwcGxpY2F0aW9uL2ZsYXRnZW9idWYnXSxcbiAgfSxcbiAganNvbmZnOiB7XG4gICAgZXh0ZW5zaW9uczogWydqc29uZmcnLCAnanNvbmZnYyddLFxuICAgIHByaW9yaXR5OiAxNCxcbiAgICBjb2xvcjogJyMwMDlFRTAnLFxuICAgIG1pbWVUeXBlczogW1xuICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5vZ2MuZmcranNvbicsXG4gICAgICAnYXBwbGljYXRpb24vdm5kLm9nYy5mZytqc29uO2NvbXBhdGliaWxpdHk9Z2VvanNvbicsXG4gICAgXSxcbiAgfSxcbn0gYXMgY29uc3RcblxuZXhwb3J0IHR5cGUgRmlsZUZvcm1hdCA9IGtleW9mIHR5cGVvZiBGT1JNQVRTXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGb3JtYXRQcmlvcml0eShsaW5rRm9ybWF0OiBGaWxlRm9ybWF0KTogbnVtYmVyIHtcbiAgZm9yIChjb25zdCBmb3JtYXQgaW4gRk9STUFUUykge1xuICAgIGZvciAoY29uc3QgZXh0IG9mIEZPUk1BVFNbZm9ybWF0XS5leHRlbnNpb25zKSB7XG4gICAgICBpZiAobmV3IFJlZ0V4cChgJHtleHR9YCwgJ2knKS50ZXN0KGxpbmtGb3JtYXQpKSB7XG4gICAgICAgIGlmIChGT1JNQVRTW2Zvcm1hdF0ucHJpb3JpdHkgPT09IDApIHJldHVybiAwXG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhGT1JNQVRTKS5sZW5ndGggLSBGT1JNQVRTW2Zvcm1hdF0ucHJpb3JpdHlcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIDBcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldExpbmtQcmlvcml0eShcbiAgbGluazogRGF0YXNldE9ubGluZVJlc291cmNlIHwgU2VydmljZU9ubGluZVJlc291cmNlXG4pOiBudW1iZXIge1xuICByZXR1cm4gZ2V0Rm9ybWF0UHJpb3JpdHkoZ2V0RmlsZUZvcm1hdChsaW5rKSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZpbGVGb3JtYXRGcm9tU2VydmljZU91dHB1dChcbiAgc2VydmljZU91dHB1dDogc3RyaW5nXG4pOiBGaWxlRm9ybWF0IHwgbnVsbCB7XG4gIGZ1bmN0aW9uIGZvcm1hdE1hdGNoZXIoZm9ybWF0OiAodHlwZW9mIEZPUk1BVFMpW0ZpbGVGb3JtYXRdKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgb3V0cHV0ID0gc2VydmljZU91dHB1dC50b0xvd2VyQ2FzZSgpXG4gICAgcmV0dXJuIChcbiAgICAgIGZvcm1hdC5leHRlbnNpb25zLnNvbWUoKGV4dGVuc2lvbjogc3RyaW5nKSA9PlxuICAgICAgICBvdXRwdXQuaW5jbHVkZXMoZXh0ZW5zaW9uKVxuICAgICAgKSB8fFxuICAgICAgZm9ybWF0Lm1pbWVUeXBlcy5zb21lKChtaW1lVHlwZTogc3RyaW5nKSA9PiBvdXRwdXQuaW5jbHVkZXMobWltZVR5cGUpKVxuICAgIClcbiAgfVxuICBmb3IgKGNvbnN0IGZvcm1hdE5hbWUgaW4gRk9STUFUUykge1xuICAgIGlmIChmb3JtYXRNYXRjaGVyKEZPUk1BVFNbZm9ybWF0TmFtZV0pKSB7XG4gICAgICByZXR1cm4gZm9ybWF0TmFtZSBhcyBGaWxlRm9ybWF0XG4gICAgfVxuICB9XG4gIHJldHVybiBudWxsXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGaWxlRm9ybWF0KFxuICBsaW5rOiBEYXRhc2V0T25saW5lUmVzb3VyY2UgfCBTZXJ2aWNlT25saW5lUmVzb3VyY2Vcbik6IEZpbGVGb3JtYXQge1xuICBpZiAoJ21pbWVUeXBlJyBpbiBsaW5rKSB7XG4gICAgY29uc3QgbWltZVR5cGVGb3JtYXQgPSBtaW1lVHlwZVRvRm9ybWF0KGxpbmsubWltZVR5cGUpXG4gICAgaWYgKG1pbWVUeXBlRm9ybWF0ICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gbWltZVR5cGVGb3JtYXRcbiAgICB9XG4gIH1cbiAgZm9yIChjb25zdCBmb3JtYXQgaW4gRk9STUFUUykge1xuICAgIGZvciAoY29uc3QgYWxpYXMgb2YgRk9STUFUU1tmb3JtYXRdLmV4dGVuc2lvbnMpIHtcbiAgICAgIGlmIChjaGVja0ZpbGVGb3JtYXQobGluaywgYWxpYXMpKSByZXR1cm4gZm9ybWF0IGFzIEZpbGVGb3JtYXRcbiAgICAgIGlmIChpc0Zvcm1hdEluUXVlcnlQYXJhbShsaW5rLCBhbGlhcykpIHJldHVybiBmb3JtYXQgYXMgRmlsZUZvcm1hdFxuICAgIH1cbiAgfVxuICByZXR1cm4gbnVsbFxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNGb3JtYXRJblF1ZXJ5UGFyYW0oXG4gIGxpbms6IERhdGFzZXRPbmxpbmVSZXNvdXJjZSB8IFNlcnZpY2VPbmxpbmVSZXNvdXJjZSxcbiAgYWxpYXM6IHN0cmluZ1xuKTogYm9vbGVhbiB7XG4gIGNvbnN0IHF1ZXJ5UGFyYW1zID0gbGluay51cmwuc2VhcmNoUGFyYW1zXG4gIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIHF1ZXJ5UGFyYW1zLmVudHJpZXMoKSkge1xuICAgIGlmIChrZXkgPT09ICdmb3JtYXQnIHx8IGtleSA9PT0gJ2YnKSB7XG4gICAgICByZXR1cm4gdmFsdWUgPT09IGFsaWFzXG4gICAgfVxuICB9XG4gIHJldHVybiBmYWxzZVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbWltZVR5cGVUb0Zvcm1hdChtaW1lVHlwZTogc3RyaW5nKTogRmlsZUZvcm1hdCB7XG4gIGZvciAoY29uc3QgZm9ybWF0IGluIEZPUk1BVFMpIHtcbiAgICBmb3IgKGNvbnN0IG10IG9mIEZPUk1BVFNbZm9ybWF0XS5taW1lVHlwZXMpIHtcbiAgICAgIGlmIChtaW1lVHlwZSA9PT0gbXQpIHJldHVybiBmb3JtYXQgYXMgRmlsZUZvcm1hdFxuICAgIH1cbiAgfVxuICByZXR1cm4gbnVsbFxufVxuXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tGaWxlRm9ybWF0KFxuICBsaW5rOiBEYXRhc2V0T25saW5lUmVzb3VyY2UgfCBTZXJ2aWNlT25saW5lUmVzb3VyY2UsXG4gIGZvcm1hdDogRmlsZUZvcm1hdFxuKTogYm9vbGVhbiB7XG4gIHJldHVybiAoXG4gICAgKCduYW1lJyBpbiBsaW5rICYmXG4gICAgICBuZXcgUmVnRXhwKGBbLi9dJHtmb3JtYXR9YCwgJ2knKS50ZXN0KGxpbmsubmFtZS50b0xvd2VyQ2FzZSgpKSkgfHxcbiAgICAoJ3VybCcgaW4gbGluayAmJlxuICAgICAgbmV3IFJlZ0V4cChgWy4vXSR7Zm9ybWF0fWAsICdpJykudGVzdChsaW5rLnVybC50b1N0cmluZygpKSkgfHxcbiAgICAoJ25hbWUnIGluIGxpbmsgJiYgbGluay5uYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoZm9ybWF0KSlcbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QmFkZ2VDb2xvcihsaW5rRm9ybWF0OiBGaWxlRm9ybWF0KTogc3RyaW5nIHtcbiAgZm9yIChjb25zdCBmb3JtYXQgaW4gRk9STUFUUykge1xuICAgIGZvciAoY29uc3QgYWxpYXMgb2YgRk9STUFUU1tmb3JtYXRdLmV4dGVuc2lvbnMpIHtcbiAgICAgIGlmIChuZXcgUmVnRXhwKGAke2FsaWFzfWAsICdpJykudGVzdChsaW5rRm9ybWF0KSlcbiAgICAgICAgcmV0dXJuIEZPUk1BVFNbZm9ybWF0XS5jb2xvclxuICAgIH1cbiAgfVxuICByZXR1cm4gJ3ZhcigtLWNvbG9yLWdyYXktNzAwKScgLy8gRGVmYXVsdCBjb2xvciA/XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRMaW5rTGFiZWwoXG4gIGxpbms6IERhdGFzZXRPbmxpbmVSZXNvdXJjZSB8IFNlcnZpY2VPbmxpbmVSZXNvdXJjZVxuKTogc3RyaW5nIHtcbiAgbGV0IGZvcm1hdCA9ICcnXG4gIHN3aXRjaCAobGluay50eXBlKSB7XG4gICAgY2FzZSAnc2VydmljZSc6XG4gICAgICB7XG4gICAgICAgIHN3aXRjaCAobGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wpIHtcbiAgICAgICAgICBjYXNlICd3ZnMnOlxuICAgICAgICAgICAgZm9ybWF0ID0gJ1dGUydcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgY2FzZSAnd21zJzpcbiAgICAgICAgICAgIGZvcm1hdCA9ICdXTVMnXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIGNhc2UgJ3dtdHMnOlxuICAgICAgICAgICAgZm9ybWF0ID0gJ1dNVFMnXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIGNhc2UgJ3Rtcyc6XG4gICAgICAgICAgICBmb3JtYXQgPSAnVE1TJ1xuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICBjYXNlICdlc3JpUmVzdCc6XG4gICAgICAgICAgICBmb3JtYXQgPSAnUkVTVCdcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGJyZWFrXG4gICAgZGVmYXVsdDpcbiAgICAgIGZvcm1hdCA9IGdldEZpbGVGb3JtYXQobGluaylcbiAgfVxuICBjb25zdCBsYWJlbCA9IGxpbmsuZGVzY3JpcHRpb24gfHwgKCduYW1lJyBpbiBsaW5rID8gbGluay5uYW1lIDogJycpXG4gIHJldHVybiBmb3JtYXQgPyBgJHtsYWJlbH0gKCR7Zm9ybWF0fSlgIDogbGFiZWxcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldExheWVycyh1cmw6IHN0cmluZywgc2VydmljZVByb3RvY29sOiBTZXJ2aWNlUHJvdG9jb2wpIHtcbiAgc3dpdGNoIChzZXJ2aWNlUHJvdG9jb2wpIHtcbiAgICBjYXNlICdvZ2NGZWF0dXJlcyc6IHtcbiAgICAgIGNvbnN0IGxheWVycyA9IGF3YWl0IG5ldyBPZ2NBcGlFbmRwb2ludCh1cmwpLmFsbENvbGxlY3Rpb25zXG4gICAgICByZXR1cm4gbGF5ZXJzXG4gICAgfVxuICAgIGNhc2UgJ3dmcyc6IHtcbiAgICAgIGNvbnN0IGVuZHBvaW50V2ZzID0gYXdhaXQgbmV3IFdmc0VuZHBvaW50KHVybCkuaXNSZWFkeSgpXG4gICAgICBjb25zdCBmZWF0dXJlVHlwZXMgPSBhd2FpdCBlbmRwb2ludFdmcy5nZXRGZWF0dXJlVHlwZXMoKVxuICAgICAgY29uc3QgbGF5ZXJzID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgIGZlYXR1cmVUeXBlcy5tYXAoYXN5bmMgKGNvbGxlY3Rpb24pID0+IHtcbiAgICAgICAgICByZXR1cm4gYXdhaXQgZW5kcG9pbnRXZnMuZ2V0RmVhdHVyZVR5cGVGdWxsKGNvbGxlY3Rpb24ubmFtZSlcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIHJldHVybiBsYXllcnNcbiAgICB9XG4gICAgY2FzZSAnd21zJzoge1xuICAgICAgY29uc3QgZW5kcG9pbnRXbXMgPSBhd2FpdCBuZXcgV21zRW5kcG9pbnQodXJsKS5pc1JlYWR5KClcbiAgICAgIGNvbnN0IGxheWVycyA9IChcbiAgICAgICAgYXdhaXQgZW5kcG9pbnRXbXNcbiAgICAgICAgICAuZ2V0TGF5ZXJzKClcbiAgICAgICAgICAuZmxhdE1hcCh3bXNMYXllckZsYXR0ZW4pXG4gICAgICAgICAgLmZpbHRlcigobCkgPT4gbC5uYW1lKVxuICAgICAgKS5tYXAoKGNvbGxlY3Rpb24pID0+IHtcbiAgICAgICAgcmV0dXJuIGVuZHBvaW50V21zLmdldExheWVyQnlOYW1lKGNvbGxlY3Rpb24ubmFtZSlcbiAgICAgIH0pXG4gICAgICByZXR1cm4gbGF5ZXJzXG4gICAgfVxuICAgIGNhc2UgJ3dtdHMnOiB7XG4gICAgICBjb25zdCBlbmRwb2ludFdtdHMgPSBhd2FpdCBuZXcgV210c0VuZHBvaW50KHVybCkuaXNSZWFkeSgpXG4gICAgICByZXR1cm4gZW5kcG9pbnRXbXRzLmdldExheWVycygpXG4gICAgfVxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdtc0xheWVyRmxhdHRlbihsYXllckZ1bGwpIHtcbiAgY29uc3QgbGF5ZXIgPSB7XG4gICAgdGl0bGU6IGxheWVyRnVsbC50aXRsZSxcbiAgICBuYW1lOiBsYXllckZ1bGwubmFtZSxcbiAgICBhYnN0cmFjdDogbGF5ZXJGdWxsLmFic3RyYWN0LFxuICB9XG5cbiAgcmV0dXJuICdjaGlsZHJlbicgaW4gbGF5ZXJGdWxsICYmIEFycmF5LmlzQXJyYXkobGF5ZXJGdWxsLmNoaWxkcmVuKVxuICAgID8gW2xheWVyLCAuLi5sYXllckZ1bGwuY2hpbGRyZW4uZmxhdE1hcCh3bXNMYXllckZsYXR0ZW4pXVxuICAgIDogW2xheWVyXVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TWltZVR5cGVGb3JGb3JtYXQoZm9ybWF0OiBGaWxlRm9ybWF0KTogc3RyaW5nIHwgbnVsbCB7XG4gIHJldHVybiBmb3JtYXQgaW4gRk9STUFUUyA/IEZPUk1BVFNbZm9ybWF0LnRvTG93ZXJDYXNlKCldLm1pbWVUeXBlc1swXSA6IG51bGxcbn1cbiJdfQ==
281
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9zaGFyZWQvc3JjL2xpYi9saW5rcy9saW5rLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQU1oRSxPQUFPLEVBQ0wsY0FBYyxFQUNkLFdBQVcsRUFDWCxXQUFXLEVBQ1gsWUFBWSxHQUNiLE1BQU0sd0JBQXdCLENBQUE7QUFFL0IsTUFBTSxDQUFDLHFDQUFxQyxDQUFDLENBQUE7QUFFN0MsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHO0lBQ3JCLEdBQUcsRUFBRTtRQUNILFVBQVUsRUFBRSxDQUFDLEtBQUssQ0FBQztRQUNuQixRQUFRLEVBQUUsQ0FBQztRQUNYLEtBQUssRUFBRSxTQUFTO1FBQ2hCLFNBQVMsRUFBRSxDQUFDLFVBQVUsRUFBRSxpQkFBaUIsQ0FBQztLQUMzQztJQUNELEtBQUssRUFBRTtRQUNMLFVBQVUsRUFBRTtZQUNWLE9BQU87WUFDUCxNQUFNO1lBQ04sS0FBSztZQUNMLFVBQVU7WUFDViwrQkFBK0I7U0FDaEM7UUFDRCxRQUFRLEVBQUUsQ0FBQztRQUNYLEtBQUssRUFBRSxTQUFTO1FBQ2hCLFNBQVMsRUFBRTtZQUNULDBCQUEwQjtZQUMxQixtRUFBbUU7U0FDcEU7S0FDRjtJQUNELE9BQU8sRUFBRTtRQUNQLFVBQVUsRUFBRSxDQUFDLFNBQVMsQ0FBQztRQUN2QixRQUFRLEVBQUUsQ0FBQztRQUNYLEtBQUssRUFBRSxTQUFTO1FBQ2hCLFNBQVMsRUFBRSxDQUFDLHNCQUFzQixFQUFFLDBCQUEwQixDQUFDO0tBQ2hFO0lBQ0QsSUFBSSxFQUFFO1FBQ0osVUFBVSxFQUFFLENBQUMsTUFBTSxDQUFDO1FBQ3BCLFFBQVEsRUFBRSxDQUFDO1FBQ1gsS0FBSyxFQUFFLFNBQVM7UUFDaEIsU0FBUyxFQUFFLENBQUMsa0JB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LE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQTtBQUM5RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWFya2VyIH0gZnJvbSAnQGJpZXNiamVyZy9uZ3gtdHJhbnNsYXRlLWV4dHJhY3QtbWFya2VyJ1xuaW1wb3J0IHtcbiAgRGF0YXNldE9ubGluZVJlc291cmNlLFxuICBTZXJ2aWNlT25saW5lUmVzb3VyY2UsXG4gIFNlcnZpY2VQcm90b2NvbCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHtcbiAgT2djQXBpRW5kcG9pbnQsXG4gIFdmc0VuZHBvaW50LFxuICBXbXNFbmRwb2ludCxcbiAgV210c0VuZHBvaW50LFxufSBmcm9tICdAY2FtcHRvY2FtcC9vZ2MtY2xpZW50J1xuXG5tYXJrZXIoJ2Rvd25sb2Fkcy53ZnMuZmVhdHVyZXR5cGUubm90LmZvdW5kJylcblxuZXhwb3J0IGNvbnN0IEZPUk1BVFMgPSB7XG4gIGNzdjoge1xuICAgIGV4dGVuc2lvbnM6IFsnY3N2J10sXG4gICAgcHJpb3JpdHk6IDEsXG4gICAgY29sb3I6ICcjRjZBOTI0JyxcbiAgICBtaW1lVHlwZXM6IFsndGV4dC9jc3YnLCAnYXBwbGljYXRpb24vY3N2J10sXG4gIH0sXG4gIGV4Y2VsOiB7XG4gICAgZXh0ZW5zaW9uczogW1xuICAgICAgJ2V4Y2VsJyxcbiAgICAgICd4bHN4JyxcbiAgICAgICd4bHMnLFxuICAgICAgJ21zLWV4Y2VsJyxcbiAgICAgICdvcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudCcsXG4gICAgXSxcbiAgICBwcmlvcml0eTogMixcbiAgICBjb2xvcjogJyNGRkRFMTAnLFxuICAgIG1pbWVUeXBlczogW1xuICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbCcsXG4gICAgICAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQnLFxuICAgIF0sXG4gIH0sXG4gIGdlb2pzb246IHtcbiAgICBleHRlbnNpb25zOiBbJ2dlb2pzb24nXSxcbiAgICBwcmlvcml0eTogMyxcbiAgICBjb2xvcjogJyMyOTNDNkYnLFxuICAgIG1pbWVUeXBlczogWydhcHBsaWNhdGlvbi9nZW8ranNvbicsICdhcHBsaWNhdGlvbi92bmQuZ2VvK2pzb24nXSxcbiAgfSxcbiAganNvbjoge1xuICAgIGV4dGVuc2lvbnM6IFsnanNvbiddLFxuICAgIHByaW9yaXR5OiAzLFxuICAgIGNvbG9yOiAnIzg0RDBGMCcsXG4gICAgbWltZVR5cGVzOiBbJ2FwcGxpY2F0aW9uL2pzb24nXSxcbiAgfSxcbiAgc2hwOiB7XG4gICAgZXh0ZW5zaW9uczogWydzaHAnLCAnc2hhcGUnLCAnemlwcGVkLXNoYXBlZmlsZSddLFxuICAgIHByaW9yaXR5OiA0LFxuICAgIGNvbG9yOiAnIzAwOTAzNicsXG4gICAgbWltZVR5cGVzOiBbJ3gtZ2lzL3gtc2hhcGVmaWxlJ10sXG4gIH0sXG4gIGdtbDoge1xuICAgIGV4dGVuc2lvbnM6IFsnZ21sJ10sXG4gICAgcHJpb3JpdHk6IDUsXG4gICAgY29sb3I6ICcjRTc1MTEzJyxcbiAgICBtaW1lVHlwZXM6IFsnYXBwbGljYXRpb24vZ21sK3htbCcsICd0ZXh0L3htbDsgc3VidHlwZT1nbWwnXSxcbiAgfSxcbiAga21sOiB7XG4gICAgZXh0ZW5zaW9uczogWydrbWwnLCAna216J10sXG4gICAgcHJpb3JpdHk6IDYsXG4gICAgY29sb3I6ICcjRjRCNUQwJyxcbiAgICBtaW1lVHlwZXM6IFtcbiAgICAgICdhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWVhcnRoLmttbCt4bWwnLFxuICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5nb29nbGUtZWFydGgua216JyxcbiAgICBdLFxuICB9LFxuICBncGtnOiB7XG4gICAgZXh0ZW5zaW9uczogWydncGtnJywgJ2dlb3BhY2thZ2UnXSxcbiAgICBwcmlvcml0eTogNyxcbiAgICBjb2xvcjogJyM3RDVEOUYnLFxuICAgIG1pbWVUeXBlczogWydhcHBsaWNhdGlvbi9nZW9wYWNrYWdlK3NxbGl0ZTMnXSxcbiAgfSxcbiAgemlwOiB7XG4gICAgZXh0ZW5zaW9uczogWyd6aXAnLCAndGFyLmd6J10sXG4gICAgcHJpb3JpdHk6IDgsXG4gICAgY29sb3I6ICcjQjBDQjUyJyxcbiAgICBtaW1lVHlwZXM6IFsnYXBwbGljYXRpb24vemlwJywgJ2FwcGxpY2F0aW9uL3gtemlwJ10sXG4gIH0sXG4gIHBkZjoge1xuICAgIGV4dGVuc2lvbnM6IFsncGRmJ10sXG4gICAgcHJpb3JpdHk6IDksXG4gICAgY29sb3I6ICcjNDk1NzlFJyxcbiAgICBtaW1lVHlwZXM6IFsnYXBwbGljYXRpb24vcGRmJ10sXG4gIH0sXG4gIGpwZzoge1xuICAgIGV4dGVuc2lvbnM6IFsnanBnJywgJ2pwZWcnLCAnamZpZicsICdwanBlZycsICdwanAnXSxcbiAgICBwcmlvcml0eTogOSxcbiAgICBjb2xvcjogJyNDNEE5OEYnLFxuICAgIG1pbWVUeXBlczogWydpbWFnZS9qcGcnXSxcbiAgfSxcbiAgc3ZnOiB7XG4gICAgZXh0ZW5zaW9uczogWydzdmcnXSxcbiAgICBwcmlvcml0eTogMTAsXG4gICAgY29sb3I6ICcjRUI2RDgyJyxcbiAgICBtaW1lVHlwZXM6IFsnaW1hZ2Uvc3ZnK3htbCddLFxuICB9LFxuICBkeGY6IHtcbiAgICBleHRlbnNpb25zOiBbJ2R4ZiddLFxuICAgIHByaW9yaXR5OiAxMSxcbiAgICBjb2xvcjogJyNEQ0NEMDAnLFxuICAgIG1pbWVUeXBlczogWydhcHBsaWNhdGlvbi94LWR4ZicsICdpbWFnZS94LWR4ZiddLFxuICB9LFxuICBodG1sOiB7XG4gICAgZXh0ZW5zaW9uczogWydodG1sJywgJ2h0bSddLFxuICAgIHByaW9yaXR5OiAxMixcbiAgICBjb2xvcjogJyNDMEM5QjYnLFxuICAgIG1pbWVUeXBlczogWyd0ZXh0L2h0bWwnXSxcbiAgfSxcbiAgZmdiOiB7XG4gICAgZXh0ZW5zaW9uczogWydmZ2InLCAnZmxhdGdlb2J1ZiddLFxuICAgIHByaW9yaXR5OiAxMyxcbiAgICBjb2xvcjogJyNBODExMUMnLFxuICAgIG1pbWVUeXBlczogWydhcHBsaWNhdGlvbi9mbGF0Z2VvYnVmJ10sXG4gIH0sXG4gIGpzb25mZzoge1xuICAgIGV4dGVuc2lvbnM6IFsnanNvbmZnJywgJ2pzb25mZ2MnXSxcbiAgICBwcmlvcml0eTogMTQsXG4gICAgY29sb3I6ICcjMDA5RUUwJyxcbiAgICBtaW1lVHlwZXM6IFtcbiAgICAgICdhcHBsaWNhdGlvbi92bmQub2djLmZnK2pzb24nLFxuICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5vZ2MuZmcranNvbjtjb21wYXRpYmlsaXR5PWdlb2pzb24nLFxuICAgIF0sXG4gIH0sXG59IGFzIGNvbnN0XG5cbmV4cG9ydCB0eXBlIEZpbGVGb3JtYXQgPSBrZXlvZiB0eXBlb2YgRk9STUFUU1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9ybWF0UHJpb3JpdHkobGlua0Zvcm1hdDogRmlsZUZvcm1hdCk6IG51bWJlciB7XG4gIGZvciAoY29uc3QgZm9ybWF0IGluIEZPUk1BVFMpIHtcbiAgICBmb3IgKGNvbnN0IGV4dCBvZiBGT1JNQVRTW2Zvcm1hdF0uZXh0ZW5zaW9ucykge1xuICAgICAgaWYgKG5ldyBSZWdFeHAoYCR7ZXh0fWAsICdpJykudGVzdChsaW5rRm9ybWF0KSkge1xuICAgICAgICBpZiAoRk9STUFUU1tmb3JtYXRdLnByaW9yaXR5ID09PSAwKSByZXR1cm4gMFxuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoRk9STUFUUykubGVuZ3RoIC0gRk9STUFUU1tmb3JtYXRdLnByaW9yaXR5XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiAwXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRMaW5rUHJpb3JpdHkoXG4gIGxpbms6IERhdGFzZXRPbmxpbmVSZXNvdXJjZSB8IFNlcnZpY2VPbmxpbmVSZXNvdXJjZVxuKTogbnVtYmVyIHtcbiAgcmV0dXJuIGdldEZvcm1hdFByaW9yaXR5KGdldEZpbGVGb3JtYXQobGluaykpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGaWxlRm9ybWF0RnJvbVNlcnZpY2VPdXRwdXQoXG4gIHNlcnZpY2VPdXRwdXQ6IHN0cmluZ1xuKTogRmlsZUZvcm1hdCB8IG51bGwge1xuICBmdW5jdGlvbiBmb3JtYXRNYXRjaGVyKGZvcm1hdDogKHR5cGVvZiBGT1JNQVRTKVtGaWxlRm9ybWF0XSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IG91dHB1dCA9IHNlcnZpY2VPdXRwdXQudG9Mb3dlckNhc2UoKVxuICAgIHJldHVybiAoXG4gICAgICBmb3JtYXQuZXh0ZW5zaW9ucy5zb21lKChleHRlbnNpb246IHN0cmluZykgPT5cbiAgICAgICAgb3V0cHV0LmluY2x1ZGVzKGV4dGVuc2lvbilcbiAgICAgICkgfHxcbiAgICAgIGZvcm1hdC5taW1lVHlwZXMuc29tZSgobWltZVR5cGU6IHN0cmluZykgPT4gb3V0cHV0LmluY2x1ZGVzKG1pbWVUeXBlKSlcbiAgICApXG4gIH1cbiAgZm9yIChjb25zdCBmb3JtYXROYW1lIGluIEZPUk1BVFMpIHtcbiAgICBpZiAoZm9ybWF0TWF0Y2hlcihGT1JNQVRTW2Zvcm1hdE5hbWVdKSkge1xuICAgICAgcmV0dXJuIGZvcm1hdE5hbWUgYXMgRmlsZUZvcm1hdFxuICAgIH1cbiAgfVxuICByZXR1cm4gbnVsbFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RmlsZUZvcm1hdChcbiAgbGluazogRGF0YXNldE9ubGluZVJlc291cmNlIHwgU2VydmljZU9ubGluZVJlc291cmNlXG4pOiBGaWxlRm9ybWF0IHtcbiAgaWYgKCdtaW1lVHlwZScgaW4gbGluaykge1xuICAgIGNvbnN0IG1pbWVUeXBlRm9ybWF0ID0gbWltZVR5cGVUb0Zvcm1hdChsaW5rLm1pbWVUeXBlKVxuICAgIGlmIChtaW1lVHlwZUZvcm1hdCAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG1pbWVUeXBlRm9ybWF0XG4gICAgfVxuICB9XG4gIGZvciAoY29uc3QgZm9ybWF0IGluIEZPUk1BVFMpIHtcbiAgICBmb3IgKGNvbnN0IGFsaWFzIG9mIEZPUk1BVFNbZm9ybWF0XS5leHRlbnNpb25zKSB7XG4gICAgICBpZiAoY2hlY2tGaWxlRm9ybWF0KGxpbmssIGFsaWFzKSkgcmV0dXJuIGZvcm1hdCBhcyBGaWxlRm9ybWF0XG4gICAgICBpZiAoaXNGb3JtYXRJblF1ZXJ5UGFyYW0obGluaywgYWxpYXMpKSByZXR1cm4gZm9ybWF0IGFzIEZpbGVGb3JtYXRcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG51bGxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRm9ybWF0SW5RdWVyeVBhcmFtKFxuICBsaW5rOiBEYXRhc2V0T25saW5lUmVzb3VyY2UgfCBTZXJ2aWNlT25saW5lUmVzb3VyY2UsXG4gIGFsaWFzOiBzdHJpbmdcbik6IGJvb2xlYW4ge1xuICBjb25zdCBxdWVyeVBhcmFtcyA9IGxpbmsudXJsLnNlYXJjaFBhcmFtc1xuICBpZiAoIXF1ZXJ5UGFyYW1zKSByZXR1cm4gZmFsc2VcbiAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgcXVlcnlQYXJhbXMuZW50cmllcygpKSB7XG4gICAgaWYgKGtleSA9PT0gJ2Zvcm1hdCcgfHwga2V5ID09PSAnZicpIHtcbiAgICAgIHJldHVybiB2YWx1ZSA9PT0gYWxpYXNcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGZhbHNlXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtaW1lVHlwZVRvRm9ybWF0KG1pbWVUeXBlOiBzdHJpbmcpOiBGaWxlRm9ybWF0IHtcbiAgZm9yIChjb25zdCBmb3JtYXQgaW4gRk9STUFUUykge1xuICAgIGZvciAoY29uc3QgbXQgb2YgRk9STUFUU1tmb3JtYXRdLm1pbWVUeXBlcykge1xuICAgICAgaWYgKG1pbWVUeXBlID09PSBtdCkgcmV0dXJuIGZvcm1hdCBhcyBGaWxlRm9ybWF0XG4gICAgfVxuICB9XG4gIHJldHVybiBudWxsXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjaGVja0ZpbGVGb3JtYXQoXG4gIGxpbms6IERhdGFzZXRPbmxpbmVSZXNvdXJjZSB8IFNlcnZpY2VPbmxpbmVSZXNvdXJjZSxcbiAgZm9ybWF0OiBGaWxlRm9ybWF0XG4pOiBib29sZWFuIHtcbiAgcmV0dXJuIChcbiAgICAoJ25hbWUnIGluIGxpbmsgJiZcbiAgICAgIG5ldyBSZWdFeHAoYFsuL10ke2Zvcm1hdH1gLCAnaScpLnRlc3QobGluay5uYW1lLnRvTG93ZXJDYXNlKCkpKSB8fFxuICAgICgndXJsJyBpbiBsaW5rICYmXG4gICAgICBuZXcgUmVnRXhwKGBbLi9dJHtmb3JtYXR9YCwgJ2knKS50ZXN0KGxpbmsudXJsLnRvU3RyaW5nKCkpKSB8fFxuICAgICgnbmFtZScgaW4gbGluayAmJiBsaW5rLm5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhmb3JtYXQpKVxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRCYWRnZUNvbG9yKGxpbmtGb3JtYXQ6IEZpbGVGb3JtYXQpOiBzdHJpbmcge1xuICBmb3IgKGNvbnN0IGZvcm1hdCBpbiBGT1JNQVRTKSB7XG4gICAgZm9yIChjb25zdCBhbGlhcyBvZiBGT1JNQVRTW2Zvcm1hdF0uZXh0ZW5zaW9ucykge1xuICAgICAgaWYgKG5ldyBSZWdFeHAoYCR7YWxpYXN9YCwgJ2knKS50ZXN0KGxpbmtGb3JtYXQpKVxuICAgICAgICByZXR1cm4gRk9STUFUU1tmb3JtYXRdLmNvbG9yXG4gICAgfVxuICB9XG4gIHJldHVybiAndmFyKC0tY29sb3ItZ3JheS03MDApJyAvLyBEZWZhdWx0IGNvbG9yID9cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldExpbmtJZChsaW5rOiBEYXRhc2V0T25saW5lUmVzb3VyY2UpOiBzdHJpbmcge1xuICBjb25zdCBocmVmID0gbGluay51cmwuaHJlZiA/PyBsaW5rLnVybFxuICByZXR1cm4gYCR7Z2V0TGlua0xhYmVsKGxpbmspXG4gICAgLnJlcGxhY2UoL8ODwqkvZywgJ2UnKVxuICAgIC5yZXBsYWNlKC/Dg8KoL2csICdlJylcbiAgICAubm9ybWFsaXplKCdORkQnKVxuICAgIC5yZXBsYWNlKC9bXFx1MDMwMC1cXHUwMzZmXS9nLCAnJyl9LSR7aHJlZn1gXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRMaW5rTGFiZWwoXG4gIGxpbms6IERhdGFzZXRPbmxpbmVSZXNvdXJjZSB8IFNlcnZpY2VPbmxpbmVSZXNvdXJjZVxuKTogc3RyaW5nIHtcbiAgbGV0IGZvcm1hdCA9ICcnXG4gIHN3aXRjaCAobGluay50eXBlKSB7XG4gICAgY2FzZSAnc2VydmljZSc6XG4gICAgICB7XG4gICAgICAgIHN3aXRjaCAobGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wpIHtcbiAgICAgICAgICBjYXNlICd3ZnMnOlxuICAgICAgICAgICAgZm9ybWF0ID0gJ1dGUydcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgY2FzZSAnd21zJzpcbiAgICAgICAgICAgIGZvcm1hdCA9ICdXTVMnXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIGNhc2UgJ3dtdHMnOlxuICAgICAgICAgICAgZm9ybWF0ID0gJ1dNVFMnXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIGNhc2UgJ3Rtcyc6XG4gICAgICAgICAgICBmb3JtYXQgPSAnVE1TJ1xuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICBjYXNlICdlc3JpUmVzdCc6XG4gICAgICAgICAgICBmb3JtYXQgPSAnUkVTVCdcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGJyZWFrXG4gICAgZGVmYXVsdDpcbiAgICAgIGZvcm1hdCA9IGdldEZpbGVGb3JtYXQobGluaylcbiAgfVxuICBjb25zdCBsYWJlbCA9IGxpbmsuZGVzY3JpcHRpb24gfHwgKCduYW1lJyBpbiBsaW5rID8gbGluay5uYW1lIDogJycpXG4gIHJldHVybiBmb3JtYXQgPyBgJHtsYWJlbH0gKCR7Zm9ybWF0fSlgIDogbGFiZWxcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldExheWVycyh1cmw6IHN0cmluZywgc2VydmljZVByb3RvY29sOiBTZXJ2aWNlUHJvdG9jb2wpIHtcbiAgc3dpdGNoIChzZXJ2aWNlUHJvdG9jb2wpIHtcbiAgICBjYXNlICdvZ2NGZWF0dXJlcyc6IHtcbiAgICAgIGNvbnN0IGxheWVycyA9IGF3YWl0IG5ldyBPZ2NBcGlFbmRwb2ludCh1cmwpLmFsbENvbGxlY3Rpb25zXG4gICAgICByZXR1cm4gbGF5ZXJzXG4gICAgfVxuICAgIGNhc2UgJ3dmcyc6IHtcbiAgICAgIGNvbnN0IGVuZHBvaW50V2ZzID0gYXdhaXQgbmV3IFdmc0VuZHBvaW50KHVybCkuaXNSZWFkeSgpXG4gICAgICBjb25zdCBmZWF0dXJlVHlwZXMgPSBhd2FpdCBlbmRwb2ludFdmcy5nZXRGZWF0dXJlVHlwZXMoKVxuICAgICAgY29uc3QgbGF5ZXJzID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgIGZlYXR1cmVUeXBlcy5tYXAoYXN5bmMgKGNvbGxlY3Rpb24pID0+IHtcbiAgICAgICAgICByZXR1cm4gYXdhaXQgZW5kcG9pbnRXZnMuZ2V0RmVhdHVyZVR5cGVGdWxsKGNvbGxlY3Rpb24ubmFtZSlcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIHJldHVybiBsYXllcnNcbiAgICB9XG4gICAgY2FzZSAnd21zJzoge1xuICAgICAgY29uc3QgZW5kcG9pbnRXbXMgPSBhd2FpdCBuZXcgV21zRW5kcG9pbnQodXJsKS5pc1JlYWR5KClcbiAgICAgIGNvbnN0IGxheWVycyA9IChcbiAgICAgICAgYXdhaXQgZW5kcG9pbnRXbXNcbiAgICAgICAgICAuZ2V0TGF5ZXJzKClcbiAgICAgICAgICAuZmxhdE1hcCh3bXNMYXllckZsYXR0ZW4pXG4gICAgICAgICAgLmZpbHRlcigobCkgPT4gbC5uYW1lKVxuICAgICAgKS5tYXAoKGNvbGxlY3Rpb24pID0+IHtcbiAgICAgICAgcmV0dXJuIGVuZHBvaW50V21zLmdldExheWVyQnlOYW1lKGNvbGxlY3Rpb24ubmFtZSlcbiAgICAgIH0pXG4gICAgICByZXR1cm4gbGF5ZXJzXG4gICAgfVxuICAgIGNhc2UgJ3dtdHMnOiB7XG4gICAgICBjb25zdCBlbmRwb2ludFdtdHMgPSBhd2FpdCBuZXcgV210c0VuZHBvaW50KHVybCkuaXNSZWFkeSgpXG4gICAgICByZXR1cm4gZW5kcG9pbnRXbXRzLmdldExheWVycygpXG4gICAgfVxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdtc0xheWVyRmxhdHRlbihsYXllckZ1bGwpIHtcbiAgY29uc3QgbGF5ZXIgPSB7XG4gICAgdGl0bGU6IGxheWVyRnVsbC50aXRsZSxcbiAgICBuYW1lOiBsYXllckZ1bGwubmFtZSxcbiAgICBhYnN0cmFjdDogbGF5ZXJGdWxsLmFic3RyYWN0LFxuICB9XG5cbiAgcmV0dXJuICdjaGlsZHJlbicgaW4gbGF5ZXJGdWxsICYmIEFycmF5LmlzQXJyYXkobGF5ZXJGdWxsLmNoaWxkcmVuKVxuICAgID8gW2xheWVyLCAuLi5sYXllckZ1bGwuY2hpbGRyZW4uZmxhdE1hcCh3bXNMYXllckZsYXR0ZW4pXVxuICAgIDogW2xheWVyXVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TWltZVR5cGVGb3JGb3JtYXQoZm9ybWF0OiBGaWxlRm9ybWF0KTogc3RyaW5nIHwgbnVsbCB7XG4gIHJldHVybiBmb3JtYXQgaW4gRk9STUFUUyA/IEZPUk1BVFNbZm9ybWF0LnRvTG93ZXJDYXNlKCldLm1pbWVUeXBlc1swXSA6IG51bGxcbn1cbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export * from './quality-score.util';
2
+ export * from './record.util';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYy9saWIvcmVjb3JkL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsc0JBQXNCLENBQUE7QUFDcEMsY0FBYyxlQUFlLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3F1YWxpdHktc2NvcmUudXRpbCdcbmV4cG9ydCAqIGZyb20gJy4vcmVjb3JkLnV0aWwnXG4iXX0=
@@ -0,0 +1,45 @@
1
+ const ValidatorMapper = {
2
+ title: (record) => !!record?.title,
3
+ abstract: (record) => !!record?.abstract,
4
+ keywords: (record) => (record?.keywords?.length ?? 0) > 0,
5
+ legalConstraints: (record) => (record?.legalConstraints?.length ?? 0) > 0,
6
+ contacts: (record) => !!record?.contacts?.[0]?.email,
7
+ updateFrequency: (record) => !!record?.updateFrequency,
8
+ topics: (record) => (record?.topics?.length ?? 0) > 0,
9
+ organisation: (record) => !!record?.contacts?.[0]?.organization?.name,
10
+ capabilities: (record) => record?.onlineResources?.some((resource) => resource?.url?.href.toLowerCase().includes('capabilities')),
11
+ source: (record) => !!record?.extras?.sourcesIdentifiers,
12
+ };
13
+ export function getAllKeysValidator() {
14
+ return Object.keys(ValidatorMapper);
15
+ }
16
+ function getMappersFromKind(kind) {
17
+ let kindKeys = [];
18
+ const commonsKeys = [
19
+ 'title',
20
+ 'abstract',
21
+ 'keywords',
22
+ 'legalConstraints',
23
+ 'contacts',
24
+ ];
25
+ switch (kind) {
26
+ case 'service':
27
+ kindKeys = ['capabilities'];
28
+ break;
29
+ case 'reuse':
30
+ kindKeys = ['topics', 'organisation', 'source'];
31
+ break;
32
+ case 'dataset':
33
+ default:
34
+ kindKeys = ['updateFrequency', 'topics', 'organisation'];
35
+ }
36
+ return [...commonsKeys, ...kindKeys];
37
+ }
38
+ export function getQualityValidators(record, propsToValidate) {
39
+ const filteredProps = propsToValidate.filter((prop) => getMappersFromKind(record.kind).includes(prop));
40
+ return filteredProps.map((name) => ({
41
+ name,
42
+ validator: () => ValidatorMapper[name](record),
43
+ }));
44
+ }
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVhbGl0eS1zY29yZS51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL3NoYXJlZC9zcmMvbGliL3JlY29yZC9xdWFsaXR5LXNjb3JlLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBU0EsTUFBTSxlQUFlLEdBQXFCO0lBQ3hDLEtBQUssRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxLQUFLO0lBQ2xDLFFBQVEsRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxRQUFRO0lBQ3hDLFFBQVEsRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDO0lBQ3pELGdCQUFnQixFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUN6RSxRQUFRLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSztJQUNwRCxlQUFlLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsZUFBZTtJQUN0RCxNQUFNLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUNyRCxZQUFZLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsWUFBWSxFQUFFLElBQUk7SUFDckUsWUFBWSxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FDdkIsTUFBTSxFQUFFLGVBQWUsRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUN6QyxRQUFRLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQzNEO0lBQ0gsTUFBTSxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxrQkFBa0I7Q0FDaEQsQ0FBQTtBQUlWLE1BQU0sVUFBVSxtQkFBbUI7SUFDakMsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFBO0FBQ3JDLENBQUM7QUFFRCxTQUFTLGtCQUFrQixDQUFDLElBQWdCO0lBQzFDLElBQUksUUFBUSxHQUEwQixFQUFFLENBQUE7SUFDeEMsTUFBTSxXQUFXLEdBQTBCO1FBQ3pDLE9BQU87UUFDUCxVQUFVO1FBQ1YsVUFBVTtRQUNWLGtCQUFrQjtRQUNsQixVQUFVO0tBQ1gsQ0FBQTtJQUVELFFBQVEsSUFBSSxFQUFFLENBQUM7UUFDYixLQUFLLFNBQVM7WUFDWixRQUFRLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQTtZQUMzQixNQUFLO1FBQ1AsS0FBSyxPQUFPO1lBQ1YsUUFBUSxHQUFHLENBQUMsUUFBUSxFQUFFLGNBQWMsRUFBRSxRQUFRLENBQUMsQ0FBQTtZQUMvQyxNQUFLO1FBQ1AsS0FBSyxTQUFTLENBQUM7UUFDZjtZQUNFLFFBQVEsR0FBRyxDQUFDLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxjQUFjLENBQUMsQ0FBQTtJQUM1RCxDQUFDO0lBRUQsT0FBTyxDQUFDLEdBQUcsV0FBVyxFQUFFLEdBQUcsUUFBUSxDQUFDLENBQUE7QUFDdEMsQ0FBQztBQUVELE1BQU0sVUFBVSxvQkFBb0IsQ0FDbEMsTUFBOEIsRUFDOUIsZUFBc0M7SUFFdEMsTUFBTSxhQUFhLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQ3BELGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQy9DLENBQUE7SUFFRCxPQUFPLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDbEMsSUFBSTtRQUNKLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDO0tBQy9DLENBQUMsQ0FBQyxDQUFBO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENhdGFsb2dSZWNvcmQsXG4gIFJlY29yZEtpbmQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcblxudHlwZSBUVmFsaWRhdG9yTWFwcGVyID0ge1xuICBba2V5OiBzdHJpbmddOiAobWV0YWRhdGE6IFBhcnRpYWw8Q2F0YWxvZ1JlY29yZD4pID0+IGJvb2xlYW5cbn1cblxuY29uc3QgVmFsaWRhdG9yTWFwcGVyOiBUVmFsaWRhdG9yTWFwcGVyID0ge1xuICB0aXRsZTogKHJlY29yZCkgPT4gISFyZWNvcmQ/LnRpdGxlLFxuICBhYnN0cmFjdDogKHJlY29yZCkgPT4gISFyZWNvcmQ/LmFic3RyYWN0LFxuICBrZXl3b3JkczogKHJlY29yZCkgPT4gKHJlY29yZD8ua2V5d29yZHM/Lmxlbmd0aCA/PyAwKSA+IDAsXG4gIGxlZ2FsQ29uc3RyYWludHM6IChyZWNvcmQpID0+IChyZWNvcmQ/LmxlZ2FsQ29uc3RyYWludHM/Lmxlbmd0aCA/PyAwKSA+IDAsXG4gIGNvbnRhY3RzOiAocmVjb3JkKSA9PiAhIXJlY29yZD8uY29udGFjdHM/LlswXT8uZW1haWwsXG4gIHVwZGF0ZUZyZXF1ZW5jeTogKHJlY29yZCkgPT4gISFyZWNvcmQ/LnVwZGF0ZUZyZXF1ZW5jeSxcbiAgdG9waWNzOiAocmVjb3JkKSA9PiAocmVjb3JkPy50b3BpY3M/Lmxlbmd0aCA/PyAwKSA+IDAsXG4gIG9yZ2FuaXNhdGlvbjogKHJlY29yZCkgPT4gISFyZWNvcmQ/LmNvbnRhY3RzPy5bMF0/Lm9yZ2FuaXphdGlvbj8ubmFtZSxcbiAgY2FwYWJpbGl0aWVzOiAocmVjb3JkKSA9PlxuICAgIHJlY29yZD8ub25saW5lUmVzb3VyY2VzPy5zb21lKChyZXNvdXJjZSkgPT5cbiAgICAgIHJlc291cmNlPy51cmw/LmhyZWYudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygnY2FwYWJpbGl0aWVzJylcbiAgICApLFxuICBzb3VyY2U6IChyZWNvcmQpID0+ICEhcmVjb3JkPy5leHRyYXM/LnNvdXJjZXNJZGVudGlmaWVycyxcbn0gYXMgY29uc3RcblxuZXhwb3J0IHR5cGUgVmFsaWRhdG9yTWFwcGVyS2V5cyA9IGtleW9mIHR5cGVvZiBWYWxpZGF0b3JNYXBwZXIgJiBzdHJpbmdcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEFsbEtleXNWYWxpZGF0b3IoKSB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhWYWxpZGF0b3JNYXBwZXIpXG59XG5cbmZ1bmN0aW9uIGdldE1hcHBlcnNGcm9tS2luZChraW5kOiBSZWNvcmRLaW5kKSB7XG4gIGxldCBraW5kS2V5cyA9IDxWYWxpZGF0b3JNYXBwZXJLZXlzW10+W11cbiAgY29uc3QgY29tbW9uc0tleXMgPSA8VmFsaWRhdG9yTWFwcGVyS2V5c1tdPltcbiAgICAndGl0bGUnLFxuICAgICdhYnN0cmFjdCcsXG4gICAgJ2tleXdvcmRzJyxcbiAgICAnbGVnYWxDb25zdHJhaW50cycsXG4gICAgJ2NvbnRhY3RzJyxcbiAgXVxuXG4gIHN3aXRjaCAoa2luZCkge1xuICAgIGNhc2UgJ3NlcnZpY2UnOlxuICAgICAga2luZEtleXMgPSBbJ2NhcGFiaWxpdGllcyddXG4gICAgICBicmVha1xuICAgIGNhc2UgJ3JldXNlJzpcbiAgICAgIGtpbmRLZXlzID0gWyd0b3BpY3MnLCAnb3JnYW5pc2F0aW9uJywgJ3NvdXJjZSddXG4gICAgICBicmVha1xuICAgIGNhc2UgJ2RhdGFzZXQnOlxuICAgIGRlZmF1bHQ6XG4gICAgICBraW5kS2V5cyA9IFsndXBkYXRlRnJlcXVlbmN5JywgJ3RvcGljcycsICdvcmdhbmlzYXRpb24nXVxuICB9XG5cbiAgcmV0dXJuIFsuLi5jb21tb25zS2V5cywgLi4ua2luZEtleXNdXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRRdWFsaXR5VmFsaWRhdG9ycyhcbiAgcmVjb3JkOiBQYXJ0aWFsPENhdGFsb2dSZWNvcmQ+LFxuICBwcm9wc1RvVmFsaWRhdGU6IFZhbGlkYXRvck1hcHBlcktleXNbXVxuKSB7XG4gIGNvbnN0IGZpbHRlcmVkUHJvcHMgPSBwcm9wc1RvVmFsaWRhdGUuZmlsdGVyKChwcm9wKSA9PlxuICAgIGdldE1hcHBlcnNGcm9tS2luZChyZWNvcmQua2luZCkuaW5jbHVkZXMocHJvcClcbiAgKVxuXG4gIHJldHVybiBmaWx0ZXJlZFByb3BzLm1hcCgobmFtZSkgPT4gKHtcbiAgICBuYW1lLFxuICAgIHZhbGlkYXRvcjogKCkgPT4gVmFsaWRhdG9yTWFwcGVyW25hbWVdKHJlY29yZCksXG4gIH0pKVxufVxuIl19
@@ -0,0 +1,56 @@
1
+ export function updateLanguages(record, defaultLanguage, otherLanguages) {
2
+ function updateFieldTranslations(target, fieldName) {
3
+ const fieldTranslations = {};
4
+ for (const lang of otherLanguages) {
5
+ const prevValue = record.defaultLanguage === lang
6
+ ? target[fieldName]
7
+ : target.translations?.[fieldName]?.[lang];
8
+ fieldTranslations[lang] = prevValue ?? '';
9
+ }
10
+ const defaultPrevValue = record.defaultLanguage === defaultLanguage
11
+ ? target[fieldName]
12
+ : target.translations?.[fieldName]?.[defaultLanguage];
13
+ return {
14
+ ...target,
15
+ [fieldName]: defaultPrevValue ?? '',
16
+ translations: {
17
+ ...target.translations,
18
+ [fieldName]: fieldTranslations,
19
+ },
20
+ };
21
+ }
22
+ function updateTranslations(target, fieldNames) {
23
+ let result = target;
24
+ for (const field of fieldNames) {
25
+ result = updateFieldTranslations(result, field);
26
+ }
27
+ return result;
28
+ }
29
+ const updatedRecord = updateTranslations(record, [
30
+ 'title',
31
+ 'abstract',
32
+ 'lineage',
33
+ ]);
34
+ updatedRecord.keywords = updatedRecord.keywords.map((k) => updateTranslations(k, ['label', 'description']));
35
+ updatedRecord.onlineResources = updatedRecord.onlineResources.map((o) => updateTranslations(o, ['name', 'description']));
36
+ updatedRecord.licenses = updatedRecord.licenses.map((l) => updateTranslations(l, ['text']));
37
+ updatedRecord.legalConstraints = updatedRecord.legalConstraints.map((c) => updateTranslations(c, ['text']));
38
+ updatedRecord.securityConstraints = updatedRecord.securityConstraints.map((c) => updateTranslations(c, ['text']));
39
+ updatedRecord.otherConstraints = updatedRecord.otherConstraints.map((c) => updateTranslations(c, ['text']));
40
+ updatedRecord.contacts = updatedRecord.contacts.map((c) => ({
41
+ ...c,
42
+ organization: updateTranslations(c.organization, ['name']),
43
+ }));
44
+ updatedRecord.contactsForResource = updatedRecord.contactsForResource.map((c) => ({
45
+ ...c,
46
+ organization: updateTranslations(c.organization, ['name']),
47
+ }));
48
+ updatedRecord.ownerOrganization = updateTranslations(updatedRecord.ownerOrganization, ['name']);
49
+ if (updatedRecord.kind === 'dataset') {
50
+ updatedRecord.spatialExtents = updatedRecord.spatialExtents.map((e) => updateTranslations(e, ['description']));
51
+ }
52
+ updatedRecord.defaultLanguage = defaultLanguage;
53
+ updatedRecord.otherLanguages = otherLanguages;
54
+ return updatedRecord;
55
+ }
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYy9saWIvcmVjb3JkL3JlY29yZC51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlCQSxNQUFNLFVBQVUsZUFBZSxDQUM3QixNQUFTLEVBQ1QsZUFBNkIsRUFDN0IsY0FBOEI7SUFFOUIsU0FBUyx1QkFBdUIsQ0FDOUIsTUFBUyxFQUNULFNBQWlCO1FBRWpCLE1BQU0saUJBQWlCLEdBQUcsRUFBRSxDQUFBO1FBQzVCLEtBQUssTUFBTSxJQUFJLElBQUksY0FBYyxFQUFFLENBQUM7WUFDbEMsTUFBTSxTQUFTLEdBQ2IsTUFBTSxDQUFDLGVBQWUsS0FBSyxJQUFJO2dCQUM3QixDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQztnQkFDbkIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQzlDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxHQUFHLFNBQVMsSUFBSSxFQUFFLENBQUE7UUFDM0MsQ0FBQztRQUNELE1BQU0sZ0JBQWdCLEdBQ3BCLE1BQU0sQ0FBQyxlQUFlLEtBQUssZUFBZTtZQUN4QyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQztZQUNuQixDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLENBQUE7UUFDekQsT0FBTztZQUNMLEdBQUcsTUFBTTtZQUNULENBQUMsU0FBUyxDQUFDLEVBQUUsZ0JBQWdCLElBQUksRUFBRTtZQUNuQyxZQUFZLEVBQUU7Z0JBQ1osR0FBRyxNQUFNLENBQUMsWUFBWTtnQkFDdEIsQ0FBQyxTQUFTLENBQUMsRUFBRSxpQkFBaUI7YUFDL0I7U0FDRixDQUFBO0lBQ0gsQ0FBQztJQUNELFNBQVMsa0JBQWtC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QWUsQ0FBQTtJQUMvQyxhQUFhLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQTtJQUM3QyxPQUFPLGFBQWEsQ0FBQTtBQUN0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQmFzZVJlY29yZCxcbiAgQ2F0YWxvZ1JlY29yZCxcbiAgQ29uc3RyYWludCxcbiAgRGF0YXNldERvd25sb2FkRGlzdHJpYnV0aW9uLFxuICBEYXRhc2V0U2VydmljZURpc3RyaWJ1dGlvbixcbiAgRGF0YXNldFNwYXRpYWxFeHRlbnQsXG4gIEtleXdvcmQsXG4gIExhbmd1YWdlQ29kZSxcbiAgT25saW5lTGlua1Jlc291cmNlLFxuICBPcmdhbml6YXRpb24sXG4gIFNlcnZpY2VFbmRwb2ludCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuXG50eXBlIFRyYW5zbGF0ZWRSZWNvcmRPYmplY3RzID1cbiAgfCBCYXNlUmVjb3JkXG4gIHwgQ29uc3RyYWludFxuICB8IEtleXdvcmRcbiAgfCBEYXRhc2V0U2VydmljZURpc3RyaWJ1dGlvblxuICB8IERhdGFzZXREb3dubG9hZERpc3RyaWJ1dGlvblxuICB8IE9ubGluZUxpbmtSZXNvdXJjZVxuICB8IFNlcnZpY2VFbmRwb2ludFxuICB8IERhdGFzZXRTcGF0aWFsRXh0ZW50XG4gIHwgT3JnYW5pemF0aW9uXG5cbmV4cG9ydCBmdW5jdGlvbiB1cGRhdGVMYW5ndWFnZXM8VCBleHRlbmRzIENhdGFsb2dSZWNvcmQ+KFxuICByZWNvcmQ6IFQsXG4gIGRlZmF1bHRMYW5ndWFnZTogTGFuZ3VhZ2VDb2RlLFxuICBvdGhlckxhbmd1YWdlczogTGFuZ3VhZ2VDb2RlW11cbik6IFQge1xuICBmdW5jdGlvbiB1cGRhdGVGaWVsZFRyYW5zbGF0aW9uczxUIGV4dGVuZHMgVHJhbnNsYXRlZFJlY29yZE9iamVjdHM+KFxuICAgIHRhcmdldDogVCxcbiAgICBmaWVsZE5hbWU6IHN0cmluZ1xuICApOiBUIHtcbiAgICBjb25zdCBmaWVsZFRyYW5zbGF0aW9ucyA9IHt9XG4gICAgZm9yIChjb25zdCBsYW5nIG9mIG90aGVyTGFuZ3VhZ2VzKSB7XG4gICAgICBjb25zdCBwcmV2VmFsdWUgPVxuICAgICAgICByZWNvcmQuZGVmYXVsdExhbmd1YWdlID09PSBsYW5nXG4gICAgICAgICAgPyB0YXJnZXRbZmllbGROYW1lXVxuICAgICAgICAgIDogdGFyZ2V0LnRyYW5zbGF0aW9ucz8uW2ZpZWxkTmFtZV0/LltsYW5nXVxuICAgICAgZmllbGRUcmFuc2xhdGlvbnNbbGFuZ10gPSBwcmV2VmFsdWUgPz8gJydcbiAgICB9XG4gICAgY29uc3QgZGVmYXVsdFByZXZWYWx1ZSA9XG4gICAgICByZWNvcmQuZGVmYXVsdExhbmd1YWdlID09PSBkZWZhdWx0TGFuZ3VhZ2VcbiAgICAgICAgPyB0YXJnZXRbZmllbGROYW1lXVxuICAgICAgICA6IHRhcmdldC50cmFuc2xhdGlvbnM/LltmaWVsZE5hbWVdPy5bZGVmYXVsdExhbmd1YWdlXVxuICAgIHJldHVybiB7XG4gICAgICAuLi50YXJnZXQsXG4gICAgICBbZmllbGROYW1lXTogZGVmYXVsdFByZXZWYWx1ZSA/PyAnJyxcbiAgICAgIHRyYW5zbGF0aW9uczoge1xuICAgICAgICAuLi50YXJnZXQudHJhbnNsYXRpb25zLFxuICAgICAgICBbZmllbGROYW1lXTogZmllbGRUcmFuc2xhdGlvbnMsXG4gICAgICB9LFxuICAgIH1cbiAgfVxuICBmdW5jdGlvbiB1cGRhdGVUcmFuc2xhdGlvbnM8VCBleHRlbmRzIFRyYW5zbGF0ZWRSZWNvcmRPYmplY3RzPihcbiAgICB0YXJnZXQ6IFQsXG4gICAgZmllbGROYW1lczogc3RyaW5nW11cbiAgKTogVCB7XG4gICAgbGV0IHJlc3VsdDogVCA9IHRhcmdldFxuICAgIGZvciAoY29uc3QgZmllbGQgb2YgZmllbGROYW1lcykge1xuICAgICAgcmVzdWx0ID0gdXBkYXRlRmllbGRUcmFuc2xhdGlvbnMocmVzdWx0LCBmaWVsZClcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdFxuICB9XG5cbiAgY29uc3QgdXBkYXRlZFJlY29yZCA9IHVwZGF0ZVRyYW5zbGF0aW9ucyhyZWNvcmQsIFtcbiAgICAndGl0bGUnLFxuICAgICdhYnN0cmFjdCcsXG4gICAgJ2xpbmVhZ2UnLFxuICBdKVxuICB1cGRhdGVkUmVjb3JkLmtleXdvcmRzID0gdXBkYXRlZFJlY29yZC5rZXl3b3Jkcy5tYXAoKGspID0+XG4gICAgdXBkYXRlVHJhbnNsYXRpb25zKGssIFsnbGFiZWwnLCAnZGVzY3JpcHRpb24nXSlcbiAgKVxuICB1cGRhdGVkUmVjb3JkLm9ubGluZVJlc291cmNlcyA9IHVwZGF0ZWRSZWNvcmQub25saW5lUmVzb3VyY2VzLm1hcCgobykgPT5cbiAgICB1cGRhdGVUcmFuc2xhdGlvbnMobywgWyduYW1lJywgJ2Rlc2NyaXB0aW9uJ10pXG4gIClcbiAgdXBkYXRlZFJlY29yZC5saWNlbnNlcyA9IHVwZGF0ZWRSZWNvcmQubGljZW5zZXMubWFwKChsKSA9PlxuICAgIHVwZGF0ZVRyYW5zbGF0aW9ucyhsLCBbJ3RleHQnXSlcbiAgKVxuICB1cGRhdGVkUmVjb3JkLmxlZ2FsQ29uc3RyYWludHMgPSB1cGRhdGVkUmVjb3JkLmxlZ2FsQ29uc3RyYWludHMubWFwKChjKSA9PlxuICAgIHVwZGF0ZVRyYW5zbGF0aW9ucyhjLCBbJ3RleHQnXSlcbiAgKVxuICB1cGRhdGVkUmVjb3JkLnNlY3VyaXR5Q29uc3RyYWludHMgPSB1cGRhdGVkUmVjb3JkLnNlY3VyaXR5Q29uc3RyYWludHMubWFwKFxuICAgIChjKSA9PiB1cGRhdGVUcmFuc2xhdGlvbnMoYywgWyd0ZXh0J10pXG4gIClcbiAgdXBkYXRlZFJlY29yZC5vdGhlckNvbnN0cmFpbnRzID0gdXBkYXRlZFJlY29yZC5vdGhlckNvbnN0cmFpbnRzLm1hcCgoYykgPT5cbiAgICB1cGRhdGVUcmFuc2xhdGlvbnMoYywgWyd0ZXh0J10pXG4gIClcbiAgdXBkYXRlZFJlY29yZC5jb250YWN0cyA9IHVwZGF0ZWRSZWNvcmQuY29udGFjdHMubWFwKChjKSA9PiAoe1xuICAgIC4uLmMsXG4gICAgb3JnYW5pemF0aW9uOiB1cGRhdGVUcmFuc2xhdGlvbnMoYy5vcmdhbml6YXRpb24sIFsnbmFtZSddKSxcbiAgfSkpXG4gIHVwZGF0ZWRSZWNvcmQuY29udGFjdHNGb3JSZXNvdXJjZSA9IHVwZGF0ZWRSZWNvcmQuY29udGFjdHNGb3JSZXNvdXJjZS5tYXAoXG4gICAgKGMpID0+ICh7XG4gICAgICAuLi5jLFxuICAgICAgb3JnYW5pemF0aW9uOiB1cGRhdGVUcmFuc2xhdGlvbnMoYy5vcmdhbml6YXRpb24sIFsnbmFtZSddKSxcbiAgICB9KVxuICApXG4gIHVwZGF0ZWRSZWNvcmQub3duZXJPcmdhbml6YXRpb24gPSB1cGRhdGVUcmFuc2xhdGlvbnMoXG4gICAgdXBkYXRlZFJlY29yZC5vd25lck9yZ2FuaXphdGlvbixcbiAgICBbJ25hbWUnXVxuICApXG5cbiAgaWYgKHVwZGF0ZWRSZWNvcmQua2luZCA9PT0gJ2RhdGFzZXQnKSB7XG4gICAgdXBkYXRlZFJlY29yZC5zcGF0aWFsRXh0ZW50cyA9IHVwZGF0ZWRSZWNvcmQuc3BhdGlhbEV4dGVudHMubWFwKChlKSA9PlxuICAgICAgdXBkYXRlVHJhbnNsYXRpb25zKGUsIFsnZGVzY3JpcHRpb24nXSlcbiAgICApXG4gIH1cblxuICB1cGRhdGVkUmVjb3JkLmRlZmF1bHRMYW5ndWFnZSA9IGRlZmF1bHRMYW5ndWFnZVxuICB1cGRhdGVkUmVjb3JkLm90aGVyTGFuZ3VhZ2VzID0gb3RoZXJMYW5ndWFnZXNcbiAgcmV0dXJuIHVwZGF0ZWRSZWNvcmRcbn1cbiJdfQ==
@@ -1,3 +1,6 @@
1
+ /**
2
+ * @returns The geometry if available, otherwise null.
3
+ */
1
4
  export function getGeometryFromGeoJSON(data) {
2
5
  if (data.type === 'FeatureCollection') {
3
6
  return data?.features?.[0]?.geometry || null;
@@ -18,4 +21,58 @@ export function getGeometryFromGeoJSON(data) {
18
21
  }
19
22
  return null;
20
23
  }
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvanNvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9zaGFyZWQvc3JjL2xpYi91dGlscy9nZW9qc29uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sVUFBVSxzQkFBc0IsQ0FDcEMsSUFBNEM7SUFFNUMsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLG1CQUFtQixFQUFFLENBQUM7UUFDdEMsT0FBTyxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxJQUFJLElBQUksQ0FBQTtJQUM5QyxDQUFDO0lBQ0QsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQzVCLE9BQU8sSUFBSSxFQUFFLFFBQVEsSUFBSSxJQUFJLENBQUE7SUFDL0IsQ0FBQztJQUNELElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxvQkFBb0IsRUFBRSxDQUFDO1FBQ3ZDLE9BQU8sSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQTtJQUN0QyxDQUFDO0lBQ0QsSUFDRSxJQUFJLENBQUMsSUFBSSxLQUFLLFNBQVM7UUFDdkIsSUFBSSxDQUFDLElBQUksS0FBSyxPQUFPO1FBQ3JCLElBQUksQ0FBQyxJQUFJLEtBQUssWUFBWTtRQUMxQixJQUFJLENBQUMsSUFBSSxLQUFLLGNBQWM7UUFDNUIsSUFBSSxDQUFDLElBQUksS0FBSyxZQUFZO1FBQzFCLElBQUksQ0FBQyxJQUFJLEtBQUssaUJBQWlCLEVBQy9CLENBQUM7UUFDRCxPQUFPLElBQUksSUFBSSxJQUFJLENBQUE7SUFDckIsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFBO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZlYXR1cmUsIEZlYXR1cmVDb2xsZWN0aW9uLCBHZW9tZXRyeSB9IGZyb20gJ2dlb2pzb24nXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRHZW9tZXRyeUZyb21HZW9KU09OKFxuICBkYXRhOiBGZWF0dXJlQ29sbGVjdGlvbiB8IEZlYXR1cmUgfCBHZW9tZXRyeVxuKTogR2VvbWV0cnkge1xuICBpZiAoZGF0YS50eXBlID09PSAnRmVhdHVyZUNvbGxlY3Rpb24nKSB7XG4gICAgcmV0dXJuIGRhdGE/LmZlYXR1cmVzPy5bMF0/Lmdlb21ldHJ5IHx8IG51bGxcbiAgfVxuICBpZiAoZGF0YS50eXBlID09PSAnRmVhdHVyZScpIHtcbiAgICByZXR1cm4gZGF0YT8uZ2VvbWV0cnkgfHwgbnVsbFxuICB9XG4gIGlmIChkYXRhLnR5cGUgPT09ICdHZW9tZXRyeUNvbGxlY3Rpb24nKSB7XG4gICAgcmV0dXJuIGRhdGE/Lmdlb21ldHJpZXM/LlswXSB8fCBudWxsXG4gIH1cbiAgaWYgKFxuICAgIGRhdGEudHlwZSA9PT0gJ1BvbHlnb24nIHx8XG4gICAgZGF0YS50eXBlID09PSAnUG9pbnQnIHx8XG4gICAgZGF0YS50eXBlID09PSAnTGluZVN0cmluZycgfHxcbiAgICBkYXRhLnR5cGUgPT09ICdNdWx0aVBvbHlnb24nIHx8XG4gICAgZGF0YS50eXBlID09PSAnTXVsdGlQb2ludCcgfHxcbiAgICBkYXRhLnR5cGUgPT09ICdNdWx0aUxpbmVTdHJpbmcnXG4gICkge1xuICAgIHJldHVybiBkYXRhIHx8IG51bGxcbiAgfVxuICByZXR1cm4gbnVsbFxufVxuIl19
24
+ export function getGeometryBoundingBox(geometry) {
25
+ // use the bounding box if specified in the GeoJSON object
26
+ if (geometry.bbox) {
27
+ return geometry.bbox.length > 4
28
+ ? [geometry.bbox[0], geometry.bbox[1], geometry.bbox[3], geometry.bbox[4]]
29
+ : geometry.bbox;
30
+ }
31
+ const coordinatesReducer = (prev, coords) => [
32
+ Math.min(prev[0], coords[0]),
33
+ Math.min(prev[1], coords[1]),
34
+ Math.max(prev[2], coords[0]),
35
+ Math.max(prev[3], coords[1]),
36
+ ];
37
+ const coordinatesArrayReducer = (prev, coordsArray) => {
38
+ const bbox = coordsArray.reduce(coordinatesReducer, emptyExtent);
39
+ return [
40
+ Math.min(prev[0], bbox[0]),
41
+ Math.min(prev[1], bbox[1]),
42
+ Math.max(prev[2], bbox[2]),
43
+ Math.max(prev[3], bbox[3]),
44
+ ];
45
+ };
46
+ const emptyExtent = [Infinity, Infinity, -Infinity, -Infinity];
47
+ switch (geometry.type) {
48
+ case 'MultiPolygon':
49
+ return geometry.coordinates.reduce((prev, polygonCoords) => {
50
+ const bbox = polygonCoords.reduce(coordinatesArrayReducer, emptyExtent);
51
+ return [
52
+ Math.min(prev[0], bbox[0]),
53
+ Math.min(prev[1], bbox[1]),
54
+ Math.max(prev[2], bbox[2]),
55
+ Math.max(prev[3], bbox[3]),
56
+ ];
57
+ }, emptyExtent);
58
+ case 'GeometryCollection':
59
+ return geometry.geometries.reduce((prev, geom) => {
60
+ const bbox = getGeometryBoundingBox(geom);
61
+ return [
62
+ Math.min(prev[0], bbox[0]),
63
+ Math.min(prev[1], bbox[1]),
64
+ Math.max(prev[2], bbox[2]),
65
+ Math.max(prev[3], bbox[3]),
66
+ ];
67
+ }, emptyExtent);
68
+ case 'Polygon':
69
+ case 'MultiLineString':
70
+ return geometry.coordinates.reduce(coordinatesArrayReducer, emptyExtent);
71
+ case 'LineString':
72
+ case 'MultiPoint':
73
+ return geometry.coordinates.reduce(coordinatesReducer, emptyExtent);
74
+ case 'Point':
75
+ return coordinatesReducer(emptyExtent, geometry.coordinates);
76
+ }
77
+ }
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvanNvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9zaGFyZWQvc3JjL2xpYi91dGlscy9nZW9qc29uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOztHQUVHO0FBQ0gsTUFBTSxVQUFVLHNCQUFzQixDQUNwQyxJQUE0QztJQUU1QyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssbUJBQW1CLEVBQUUsQ0FBQztRQUN0QyxPQUFPLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLElBQUksSUFBSSxDQUFBO0lBQzlDLENBQUM7SUFDRCxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDNUIsT0FBTyxJQUFJLEVBQUUsUUFBUSxJQUFJLElBQUksQ0FBQTtJQUMvQixDQUFDO0lBQ0QsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLG9CQUFvQixFQUFFLENBQUM7UUFDdkMsT0FBTyxJQUFJLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFBO0lBQ3RDLENBQUM7SUFDRCxJQUNFLElBQUksQ0FBQyxJQUFJLEtBQUssU0FBUztRQUN2QixJQUFJLENBQUMsSUFBSSxLQUFLLE9BQU87UUFDckIsSUFBSSxDQUFDLElBQUksS0FBSyxZQUFZO1FBQzFCLElBQUksQ0FBQyxJQUFJLEtBQUssY0FBYztRQUM1QixJQUFJLENBQUMsSUFBSSxLQUFLLFlBQVk7UUFDMUIsSUFBSSxDQUFDLElBQUksS0FBSyxpQkFBaUIsRUFDL0IsQ0FBQztRQUNELE9BQU8sSUFBSSxJQUFJLElBQUksQ0FBQTtJQUNyQixDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUE7QUFDYixDQUFDO0FBS0QsTUFBTSxVQUFVLHNCQUFzQixDQUFDLFFBQWtCO0lBQ3ZELDBEQUEwRDtJQUMxRCxJQUFJLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztR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SUFBSSxFQUFFLEVBQUU7Z0JBQy9DLE1BQU0sSUFBSSxHQUFHLHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUFBO2dCQUN6QyxPQUFPO29CQUNMLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDMUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUMxQixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQzFCLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDWixDQUFBO1lBQ2xCLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQTtRQUNqQixLQUFLLFNBQVMsQ0FBQztRQUNmLEtBQUssaUJBQWlCO1lBQ3BCLE9BQU8sUUFBUSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsdUJBQXVCLEVBQUUsV0FBVyxDQUFDLENBQUE7UUFDMUUsS0FBSyxZQUFZLENBQUM7UUFDbEIsS0FBSyxZQUFZO1lBQ2YsT0FBTyxRQUFRLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FDaEMsa0JBQWtCLEVBQ2xCLFdBQVcsQ0FDWixDQUFBO1FBQ0gsS0FBSyxPQUFPO1lBQ1YsT0FBTyxrQkFBa0IsQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFBO0lBQ2hFLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBGZWF0dXJlLCBGZWF0dXJlQ29sbGVjdGlvbiwgR2VvbWV0cnksIFBvc2l0aW9uIH0gZnJvbSAnZ2VvanNvbidcblxuLyoqXG4gKiBAcmV0dXJucyBUaGUgZ2VvbWV0cnkgaWYgYXZhaWxhYmxlLCBvdGhlcndpc2UgbnVsbC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEdlb21ldHJ5RnJvbUdlb0pTT04oXG4gIGRhdGE6IEZlYXR1cmVDb2xsZWN0aW9uIHwgRmVhdHVyZSB8IEdlb21ldHJ5XG4pOiBHZW9tZXRyeSB8IG51bGwge1xuICBpZiAoZGF0YS50eXBlID09PSAnRmVhdHVyZUNvbGxlY3Rpb24nKSB7XG4gICAgcmV0dXJuIGRhdGE/LmZlYXR1cmVzPy5bMF0/Lmdlb21ldHJ5IHx8IG51bGxcbiAgfVxuICBpZiAoZGF0YS50eXBlID09PSAnRmVhdHVyZScpIHtcbiAgICByZXR1cm4gZGF0YT8uZ2VvbWV0cnkgfHwgbnVsbFxuICB9XG4gIGlmIChkYXRhLnR5cGUgPT09ICdHZW9tZXRyeUNvbGxlY3Rpb24nKSB7XG4gICAgcmV0dXJuIGRhdGE/Lmdlb21ldHJpZXM/LlswXSB8fCBudWxsXG4gIH1cbiAgaWYgKFxuICAgIGRhdGEudHlwZSA9PT0gJ1BvbHlnb24nIHx8XG4gICAgZGF0YS50eXBlID09PSAnUG9pbnQnIHx8XG4gICAgZGF0YS50eXBlID09PSAnTGluZVN0cmluZycgfHxcbiAgICBkYXRhLnR5cGUgPT09ICdNdWx0aVBvbHlnb24nIHx8XG4gICAgZGF0YS50eXBlID09PSAnTXVsdGlQb2ludCcgfHxcbiAgICBkYXRhLnR5cGUgPT09ICdNdWx0aUxpbmVTdHJpbmcnXG4gICkge1xuICAgIHJldHVybiBkYXRhIHx8IG51bGxcbiAgfVxuICByZXR1cm4gbnVsbFxufVxuXG4vLyBGSVhNRTogdGhpcyB0eXBlIHNob3VsZCBiZSBtb3JlIGdlbmVyaWMgYWNyb3NzIHRoZSBwcm9qZWN0XG5leHBvcnQgdHlwZSBCb3VuZGluZ0JveCA9IFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRHZW9tZXRyeUJvdW5kaW5nQm94KGdlb21ldHJ5OiBHZW9tZXRyeSk6IEJvdW5kaW5nQm94IHtcbiAgLy8gdXNlIHRoZSBib3VuZGluZyBib3ggaWYgc3BlY2lmaWVkIGluIHRoZSBHZW9KU09OIG9iamVjdFxuICBpZiAoZ2VvbWV0cnkuYmJveCkge1xuICAgIHJldHVybiBnZW9tZXRyeS5iYm94Lmxlbmd0aCA+IDRcbiAgICAgID8gW2dlb21ldHJ5LmJib3hbMF0sIGdlb21ldHJ5LmJib3hbMV0sIGdlb21ldHJ5LmJib3hbM10sIGdlb21ldHJ5LmJib3hbNF1dXG4gICAgICA6IChnZW9tZXRyeS5iYm94IGFzIEJvdW5kaW5nQm94KVxuICB9XG5cbiAgY29uc3QgY29vcmRpbmF0ZXNSZWR1Y2VyID0gKHByZXY6IEJvdW5kaW5nQm94LCBjb29yZHM6IFBvc2l0aW9uKSA9PlxuICAgIFtcbiAgICAgIE1hdGgubWluKHByZXZbMF0sIGNvb3Jkc1swXSksXG4gICAgICBNYXRoLm1pbihwcmV2WzFdLCBjb29yZHNbMV0pLFxuICAgICAgTWF0aC5tYXgocHJldlsyXSwgY29vcmRzWzBdKSxcbiAgICAgIE1hdGgubWF4KHByZXZbM10sIGNvb3Jkc1sxXSksXG4gICAgXSBhcyBCb3VuZGluZ0JveFxuICBjb25zdCBjb29yZGluYXRlc0FycmF5UmVkdWNlciA9IChcbiAgICBwcmV2OiBCb3VuZGluZ0JveCxcbiAgICBjb29yZHNBcnJheTogUG9zaXRpb25bXVxuICApID0+IHtcbiAgICBjb25zdCBiYm94ID0gY29vcmRzQXJyYXkucmVkdWNlKGNvb3JkaW5hdGVzUmVkdWNlciwgZW1wdHlFeHRlbnQpXG4gICAgcmV0dXJuIFtcbiAgICAgIE1hdGgubWluKHByZXZbMF0sIGJib3hbMF0pLFxuICAgICAgTWF0aC5taW4ocHJldlsxXSwgYmJveFsxXSksXG4gICAgICBNYXRoLm1heChwcmV2WzJdLCBiYm94WzJdKSxcbiAgICAgIE1hdGgubWF4KHByZXZbM10sIGJib3hbM10pLFxuICAgIF0gYXMgQm91bmRpbmdCb3hcbiAgfVxuICBjb25zdCBlbXB0eUV4dGVudCA9IFtJbmZpbml0eSwgSW5maW5pdHksIC1JbmZpbml0eSwgLUluZmluaXR5XSBhcyBCb3VuZGluZ0JveFxuXG4gIHN3aXRjaCAoZ2VvbWV0cnkudHlwZSkge1xuICAgIGNhc2UgJ011bHRpUG9seWdvbic6XG4gICAgICByZXR1cm4gZ2VvbWV0cnkuY29vcmRpbmF0ZXMucmVkdWNlKChwcmV2LCBwb2x5Z29uQ29vcmRzKSA9PiB7XG4gICAgICAgIGNvbnN0IGJib3ggPSBwb2x5Z29uQ29vcmRzLnJlZHVjZShjb29yZGluYXRlc0FycmF5UmVkdWNlciwgZW1wdHlFeHRlbnQpXG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgTWF0aC5taW4ocHJldlswXSwgYmJveFswXSksXG4gICAgICAgICAgTWF0aC5taW4ocHJldlsxXSwgYmJveFsxXSksXG4gICAgICAgICAgTWF0aC5tYXgocHJldlsyXSwgYmJveFsyXSksXG4gICAgICAgICAgTWF0aC5tYXgocHJldlszXSwgYmJveFszXSksXG4gICAgICAgIF0gYXMgQm91bmRpbmdCb3hcbiAgICAgIH0sIGVtcHR5RXh0ZW50KVxuICAgIGNhc2UgJ0dlb21ldHJ5Q29sbGVjdGlvbic6XG4gICAgICByZXR1cm4gZ2VvbWV0cnkuZ2VvbWV0cmllcy5yZWR1Y2UoKHByZXYsIGdlb20pID0+IHtcbiAgICAgICAgY29uc3QgYmJveCA9IGdldEdlb21ldHJ5Qm91bmRpbmdCb3goZ2VvbSlcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICBNYXRoLm1pbihwcmV2WzBdLCBiYm94WzBdKSxcbiAgICAgICAgICBNYXRoLm1pbihwcmV2WzFdLCBiYm94WzFdKSxcbiAgICAgICAgICBNYXRoLm1heChwcmV2WzJdLCBiYm94WzJdKSxcbiAgICAgICAgICBNYXRoLm1heChwcmV2WzNdLCBiYm94WzNdKSxcbiAgICAgICAgXSBhcyBCb3VuZGluZ0JveFxuICAgICAgfSwgZW1wdHlFeHRlbnQpXG4gICAgY2FzZSAnUG9seWdvbic6XG4gICAgY2FzZSAnTXVsdGlMaW5lU3RyaW5nJzpcbiAgICAgIHJldHVybiBnZW9tZXRyeS5jb29yZGluYXRlcy5yZWR1Y2UoY29vcmRpbmF0ZXNBcnJheVJlZHVjZXIsIGVtcHR5RXh0ZW50KVxuICAgIGNhc2UgJ0xpbmVTdHJpbmcnOlxuICAgIGNhc2UgJ011bHRpUG9pbnQnOlxuICAgICAgcmV0dXJuIGdlb21ldHJ5LmNvb3JkaW5hdGVzLnJlZHVjZTxCb3VuZGluZ0JveD4oXG4gICAgICAgIGNvb3JkaW5hdGVzUmVkdWNlcixcbiAgICAgICAgZW1wdHlFeHRlbnRcbiAgICAgIClcbiAgICBjYXNlICdQb2ludCc6XG4gICAgICByZXR1cm4gY29vcmRpbmF0ZXNSZWR1Y2VyKGVtcHR5RXh0ZW50LCBnZW9tZXRyeS5jb29yZGluYXRlcylcbiAgfVxufVxuIl19
@@ -4,6 +4,7 @@ export * from './format-fields';
4
4
  export * from './fuzzy-filter';
5
5
  export * from './geojson';
6
6
  export * from './image-resize';
7
+ export * from './mobile-screen';
7
8
  export * from './no-duplicate-file-name';
8
9
  export * from './parse';
9
10
  export * from './remove-whitespace';
@@ -11,4 +12,4 @@ export * from './sort-by';
11
12
  export * from './strip-html';
12
13
  export * from './temporal-extent-union';
13
14
  export * from './url';
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYy9saWIvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQkFBaUIsQ0FBQTtBQUMvQixjQUFjLFNBQVMsQ0FBQTtBQUN2QixjQUFjLGlCQUFpQixDQUFBO0FBQy9CLGNBQWMsZ0JBQWdCLENBQUE7QUFDOUIsY0FBYyxXQUFXLENBQUE7QUFDekIsY0FBYyxnQkFBZ0IsQ0FBQTtBQUM5QixjQUFjLDBCQUEwQixDQUFBO0FBQ3hDLGNBQWMsU0FBUyxDQUFBO0FBQ3ZCLGNBQWMscUJBQXFCLENBQUE7QUFDbkMsY0FBYyxXQUFXLENBQUE7QUFDekIsY0FBYyxjQUFjLENBQUE7QUFDNUIsY0FBYyx5QkFBeUIsQ0FBQTtBQUN2QyxjQUFjLE9BQU8sQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYnl0ZXMtY29udmVydCdcbmV4cG9ydCAqIGZyb20gJy4vZXZlbnQnXG5leHBvcnQgKiBmcm9tICcuL2Zvcm1hdC1maWVsZHMnXG5leHBvcnQgKiBmcm9tICcuL2Z1enp5LWZpbHRlcidcbmV4cG9ydCAqIGZyb20gJy4vZ2VvanNvbidcbmV4cG9ydCAqIGZyb20gJy4vaW1hZ2UtcmVzaXplJ1xuZXhwb3J0ICogZnJvbSAnLi9uby1kdXBsaWNhdGUtZmlsZS1uYW1lJ1xuZXhwb3J0ICogZnJvbSAnLi9wYXJzZSdcbmV4cG9ydCAqIGZyb20gJy4vcmVtb3ZlLXdoaXRlc3BhY2UnXG5leHBvcnQgKiBmcm9tICcuL3NvcnQtYnknXG5leHBvcnQgKiBmcm9tICcuL3N0cmlwLWh0bWwnXG5leHBvcnQgKiBmcm9tICcuL3RlbXBvcmFsLWV4dGVudC11bmlvbidcbmV4cG9ydCAqIGZyb20gJy4vdXJsJ1xuIl19
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYy9saWIvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQkFBaUIsQ0FBQTtBQUMvQixjQUFjLFNBQVMsQ0FBQTtBQUN2QixjQUFjLGlCQUFpQixDQUFBO0FBQy9CLGNBQWMsZ0JBQWdCLENBQUE7QUFDOUIsY0FBYyxXQUFXLENBQUE7QUFDekIsY0FBYyxnQkFBZ0IsQ0FBQTtBQUM5QixjQUFjLGlCQUFpQixDQUFBO0FBQy9CLGNBQWMsMEJBQTBCLENBQUE7QUFDeEMsY0FBYyxTQUFTLENBQUE7QUFDdkIsY0FBYyxxQkFBcUIsQ0FBQTtBQUNuQyxjQUFjLFdBQVcsQ0FBQTtBQUN6QixjQUFjLGNBQWMsQ0FBQTtBQUM1QixjQUFjLHlCQUF5QixDQUFBO0FBQ3ZDLGNBQWMsT0FBTyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9ieXRlcy1jb252ZXJ0J1xuZXhwb3J0ICogZnJvbSAnLi9ldmVudCdcbmV4cG9ydCAqIGZyb20gJy4vZm9ybWF0LWZpZWxkcydcbmV4cG9ydCAqIGZyb20gJy4vZnV6enktZmlsdGVyJ1xuZXhwb3J0ICogZnJvbSAnLi9nZW9qc29uJ1xuZXhwb3J0ICogZnJvbSAnLi9pbWFnZS1yZXNpemUnXG5leHBvcnQgKiBmcm9tICcuL21vYmlsZS1zY3JlZW4nXG5leHBvcnQgKiBmcm9tICcuL25vLWR1cGxpY2F0ZS1maWxlLW5hbWUnXG5leHBvcnQgKiBmcm9tICcuL3BhcnNlJ1xuZXhwb3J0ICogZnJvbSAnLi9yZW1vdmUtd2hpdGVzcGFjZSdcbmV4cG9ydCAqIGZyb20gJy4vc29ydC1ieSdcbmV4cG9ydCAqIGZyb20gJy4vc3RyaXAtaHRtbCdcbmV4cG9ydCAqIGZyb20gJy4vdGVtcG9yYWwtZXh0ZW50LXVuaW9uJ1xuZXhwb3J0ICogZnJvbSAnLi91cmwnXG4iXX0=
@@ -0,0 +1,9 @@
1
+ import { fromEvent, startWith, map, shareReplay } from 'rxjs';
2
+ /**
3
+ * This returns true when the screen size is under 768px, which is the mobile threshold.
4
+ */
5
+ const MOBILE_MAX_WIDTH = 768;
6
+ export function getIsMobile() {
7
+ return fromEvent(window, 'resize').pipe(startWith(window.innerWidth), map(() => window.innerWidth < MOBILE_MAX_WIDTH), shareReplay({ bufferSize: 1, refCount: true }));
8
+ }
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9iaWxlLXNjcmVlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9zaGFyZWQvc3JjL2xpYi91dGlscy9tb2JpbGUtc2NyZWVuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFFN0Q7O0dBRUc7QUFDSCxNQUFNLGdCQUFnQixHQUFHLEdBQUcsQ0FBQTtBQUU1QixNQUFNLFVBQVUsV0FBVztJQUN6QixPQUFPLFNBQVMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUNyQyxTQUFTLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUM1QixHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLFVBQVUsR0FBRyxnQkFBZ0IsQ0FBQyxFQUMvQyxXQUFXLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUMvQyxDQUFBO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZyb21FdmVudCwgc3RhcnRXaXRoLCBtYXAsIHNoYXJlUmVwbGF5IH0gZnJvbSAncnhqcydcblxuLyoqXG4gKiBUaGlzIHJldHVybnMgdHJ1ZSB3aGVuIHRoZSBzY3JlZW4gc2l6ZSBpcyB1bmRlciA3NjhweCwgd2hpY2ggaXMgdGhlIG1vYmlsZSB0aHJlc2hvbGQuXG4gKi9cbmNvbnN0IE1PQklMRV9NQVhfV0lEVEggPSA3NjhcblxuZXhwb3J0IGZ1bmN0aW9uIGdldElzTW9iaWxlKCkge1xuICByZXR1cm4gZnJvbUV2ZW50KHdpbmRvdywgJ3Jlc2l6ZScpLnBpcGUoXG4gICAgc3RhcnRXaXRoKHdpbmRvdy5pbm5lcldpZHRoKSxcbiAgICBtYXAoKCkgPT4gd2luZG93LmlubmVyV2lkdGggPCBNT0JJTEVfTUFYX1dJRFRIKSxcbiAgICBzaGFyZVJlcGxheSh7IGJ1ZmZlclNpemU6IDEsIHJlZkNvdW50OiB0cnVlIH0pXG4gIClcbn1cbiJdfQ==