geonetwork-ui 2.5.0-dev.ee5be4e65 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (230) hide show
  1. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +2 -2
  2. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +4 -2
  3. package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +4 -8
  4. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +14 -13
  5. package/esm2022/libs/feature/dataviz/src/lib/chart-view/chart-view.component.mjs +7 -4
  6. package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +8 -8
  7. package/esm2022/libs/feature/dataviz/src/lib/table-view/table-view.component.mjs +7 -4
  8. package/esm2022/libs/feature/editor/src/index.mjs +2 -1
  9. package/esm2022/libs/feature/editor/src/lib/components/constraint-card/constraint-card.component.mjs +2 -2
  10. package/esm2022/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.mjs +2 -2
  11. package/esm2022/libs/feature/editor/src/lib/components/import-record/import-record.component.mjs +5 -5
  12. package/esm2022/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.mjs +5 -3
  13. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.mjs +2 -2
  14. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.mjs +9 -12
  15. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.mjs +2 -2
  16. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.mjs +2 -2
  17. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.mjs +3 -3
  18. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/index.mjs +2 -1
  19. package/esm2022/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.mjs +7 -23
  20. package/esm2022/libs/feature/editor/src/lib/models/wizard-field.type.mjs +3 -4
  21. package/esm2022/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.mjs +1 -1
  22. package/esm2022/libs/feature/record/src/lib/data-view/data-view.component.mjs +25 -5
  23. package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +10 -7
  24. package/esm2022/libs/feature/record/src/lib/state/mdview.facade.mjs +8 -1
  25. package/esm2022/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.mjs +15 -3
  26. package/esm2022/libs/feature/search/src/lib/results-table/results-table-container.component.mjs +1 -1
  27. package/esm2022/libs/ui/dataviz/src/lib/data-table/data-table.component.mjs +3 -3
  28. package/esm2022/libs/ui/elements/src/lib/application-banner/application-banner.component.mjs +3 -3
  29. package/esm2022/libs/ui/elements/src/lib/image-input/image-input.component.mjs +50 -35
  30. package/esm2022/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.mjs +3 -3
  31. package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +23 -3
  32. package/esm2022/libs/ui/inputs/src/index.mjs +1 -2
  33. package/esm2022/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.mjs +88 -7
  34. package/esm2022/libs/ui/inputs/src/lib/file-input/file-input.component.mjs +2 -2
  35. package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +1 -6
  36. package/esm2022/libs/ui/inputs/src/lib/url-input/url-input.component.mjs +6 -4
  37. package/esm2022/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.mjs +3 -3
  38. package/esm2022/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.mjs +14 -4
  39. package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +10 -3
  40. package/esm2022/libs/ui/widgets/src/index.mjs +1 -2
  41. package/esm2022/libs/ui/widgets/src/lib/progress-bar/progress-bar.component.mjs +10 -3
  42. package/esm2022/libs/ui/widgets/src/lib/ui-widgets.module.mjs +5 -6
  43. package/esm2022/libs/util/data-fetcher/src/lib/data-fetcher.mjs +5 -4
  44. package/esm2022/libs/util/data-fetcher/src/lib/readers/base-cache.mjs +12 -0
  45. package/esm2022/libs/util/data-fetcher/src/lib/readers/base-file.mjs +3 -3
  46. package/esm2022/libs/util/data-fetcher/src/lib/readers/base.mjs +1 -1
  47. package/esm2022/libs/util/data-fetcher/src/lib/readers/csv.mjs +2 -2
  48. package/esm2022/libs/util/data-fetcher/src/lib/readers/excel.mjs +2 -2
  49. package/esm2022/libs/util/data-fetcher/src/lib/readers/geojson.mjs +2 -2
  50. package/esm2022/libs/util/data-fetcher/src/lib/readers/gml.mjs +5 -3
  51. package/esm2022/libs/util/data-fetcher/src/lib/readers/json.mjs +2 -2
  52. package/esm2022/libs/util/data-fetcher/src/lib/readers/wfs.mjs +19 -11
  53. package/esm2022/libs/util/data-fetcher/src/lib/utils.mjs +13 -9
  54. package/esm2022/translations/de.json +3 -74
  55. package/esm2022/translations/en.json +3 -74
  56. package/esm2022/translations/es.json +1 -72
  57. package/esm2022/translations/fr.json +13 -84
  58. package/esm2022/translations/it.json +20 -90
  59. package/esm2022/translations/nl.json +1 -72
  60. package/esm2022/translations/pt.json +1 -72
  61. package/fesm2022/geonetwork-ui.mjs +480 -908
  62. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  63. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
  64. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts.map +1 -1
  65. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
  66. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts +2 -1
  67. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts.map +1 -1
  68. package/libs/feature/dataviz/src/lib/service/data.service.d.ts +2 -2
  69. package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
  70. package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts +2 -1
  71. package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts.map +1 -1
  72. package/libs/feature/editor/src/index.d.ts +1 -0
  73. package/libs/feature/editor/src/index.d.ts.map +1 -1
  74. package/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.d.ts +1 -0
  75. package/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.d.ts.map +1 -1
  76. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.d.ts +1 -0
  77. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.d.ts.map +1 -1
  78. package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts +1 -0
  79. package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts.map +1 -1
  80. package/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.d.ts +1 -3
  81. package/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.d.ts.map +1 -1
  82. package/libs/feature/editor/src/lib/models/wizard-field.type.d.ts +2 -3
  83. package/libs/feature/editor/src/lib/models/wizard-field.type.d.ts.map +1 -1
  84. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts +5 -1
  85. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts.map +1 -1
  86. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts +3 -2
  87. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
  88. package/libs/feature/record/src/lib/state/mdview.facade.d.ts +1 -0
  89. package/libs/feature/record/src/lib/state/mdview.facade.d.ts.map +1 -1
  90. package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts +5 -1
  91. package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts.map +1 -1
  92. package/libs/ui/elements/src/lib/image-input/image-input.component.d.ts +11 -9
  93. package/libs/ui/elements/src/lib/image-input/image-input.component.d.ts.map +1 -1
  94. package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts.map +1 -1
  95. package/libs/ui/inputs/src/index.d.ts +0 -1
  96. package/libs/ui/inputs/src/index.d.ts.map +1 -1
  97. package/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.d.ts +23 -1
  98. package/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.d.ts.map +1 -1
  99. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +27 -28
  100. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts.map +1 -1
  101. package/libs/ui/inputs/src/lib/url-input/url-input.component.d.ts +2 -1
  102. package/libs/ui/inputs/src/lib/url-input/url-input.component.d.ts.map +1 -1
  103. package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts +4 -2
  104. package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts.map +1 -1
  105. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts +3 -1
  106. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts.map +1 -1
  107. package/libs/ui/widgets/src/index.d.ts +0 -1
  108. package/libs/ui/widgets/src/index.d.ts.map +1 -1
  109. package/libs/ui/widgets/src/lib/progress-bar/progress-bar.component.d.ts +1 -1
  110. package/libs/ui/widgets/src/lib/progress-bar/progress-bar.component.d.ts.map +1 -1
  111. package/libs/ui/widgets/src/lib/ui-widgets.module.d.ts +8 -9
  112. package/libs/ui/widgets/src/lib/ui-widgets.module.d.ts.map +1 -1
  113. package/libs/util/data-fetcher/src/lib/data-fetcher.d.ts +2 -2
  114. package/libs/util/data-fetcher/src/lib/data-fetcher.d.ts.map +1 -1
  115. package/libs/util/data-fetcher/src/lib/readers/base-cache.d.ts +8 -0
  116. package/libs/util/data-fetcher/src/lib/readers/base-cache.d.ts.map +1 -0
  117. package/libs/util/data-fetcher/src/lib/readers/base-file.d.ts +2 -2
  118. package/libs/util/data-fetcher/src/lib/readers/base-file.d.ts.map +1 -1
  119. package/libs/util/data-fetcher/src/lib/readers/base.d.ts +2 -2
  120. package/libs/util/data-fetcher/src/lib/readers/base.d.ts.map +1 -1
  121. package/libs/util/data-fetcher/src/lib/readers/gml.d.ts +5 -3
  122. package/libs/util/data-fetcher/src/lib/readers/gml.d.ts.map +1 -1
  123. package/libs/util/data-fetcher/src/lib/readers/wfs.d.ts +7 -4
  124. package/libs/util/data-fetcher/src/lib/readers/wfs.d.ts.map +1 -1
  125. package/libs/util/data-fetcher/src/lib/utils.d.ts +2 -2
  126. package/libs/util/data-fetcher/src/lib/utils.d.ts.map +1 -1
  127. package/package.json +1 -1
  128. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +1 -1
  129. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +19 -17
  130. package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +3 -11
  131. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +24 -26
  132. package/src/libs/common/fixtures/src/lib/records.fixtures.ts +90 -0
  133. package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.ts +4 -1
  134. package/src/libs/feature/dataviz/src/lib/service/data.service.ts +22 -9
  135. package/src/libs/feature/dataviz/src/lib/table-view/table-view.component.ts +2 -1
  136. package/src/libs/feature/editor/src/index.ts +1 -0
  137. package/src/libs/feature/editor/src/lib/components/import-record/import-record.component.ts +3 -3
  138. package/src/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.html +1 -0
  139. package/src/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.ts +2 -0
  140. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.html +1 -0
  141. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.ts +10 -11
  142. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.ts +1 -1
  143. package/src/libs/feature/editor/src/lib/components/record-form/form-field/index.ts +1 -0
  144. package/src/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.html +0 -13
  145. package/src/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.ts +0 -20
  146. package/src/libs/feature/editor/src/lib/models/wizard-field.type.ts +0 -1
  147. package/src/libs/feature/record/src/lib/data-view/data-view.component.html +24 -11
  148. package/src/libs/feature/record/src/lib/data-view/data-view.component.ts +26 -4
  149. package/src/libs/feature/record/src/lib/map-view/map-view.component.html +71 -60
  150. package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +6 -3
  151. package/src/libs/feature/record/src/lib/state/mdview.facade.ts +13 -0
  152. package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.html +3 -0
  153. package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.ts +7 -0
  154. package/src/libs/ui/dataviz/src/lib/data-table/data-table.component.html +3 -1
  155. package/src/libs/ui/elements/src/lib/application-banner/application-banner.component.html +2 -2
  156. package/src/libs/ui/elements/src/lib/image-input/image-input.component.html +20 -15
  157. package/src/libs/ui/elements/src/lib/image-input/image-input.component.ts +49 -35
  158. package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.ts +2 -2
  159. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.html +21 -9
  160. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.ts +13 -0
  161. package/src/libs/ui/inputs/src/index.ts +0 -1
  162. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.html +36 -19
  163. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.ts +85 -2
  164. package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +0 -3
  165. package/src/libs/ui/inputs/src/lib/url-input/url-input.component.ts +3 -2
  166. package/src/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.html +1 -1
  167. package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.html +37 -1
  168. package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.ts +8 -2
  169. package/src/libs/ui/search/src/lib/results-table/results-table.component.html +2 -0
  170. package/src/libs/ui/search/src/lib/results-table/results-table.component.ts +6 -0
  171. package/src/libs/ui/widgets/src/index.ts +0 -1
  172. package/src/libs/ui/widgets/src/lib/progress-bar/progress-bar.component.html +36 -11
  173. package/src/libs/ui/widgets/src/lib/progress-bar/progress-bar.component.ts +9 -1
  174. package/src/libs/ui/widgets/src/lib/ui-widgets.module.ts +2 -3
  175. package/src/libs/util/data-fetcher/src/lib/data-fetcher.ts +13 -4
  176. package/src/libs/util/data-fetcher/src/lib/readers/base-cache.ts +14 -0
  177. package/src/libs/util/data-fetcher/src/lib/readers/base-file.ts +2 -1
  178. package/src/libs/util/data-fetcher/src/lib/readers/base.ts +2 -2
  179. package/src/libs/util/data-fetcher/src/lib/readers/csv.ts +1 -1
  180. package/src/libs/util/data-fetcher/src/lib/readers/excel.ts +1 -1
  181. package/src/libs/util/data-fetcher/src/lib/readers/geojson.ts +1 -1
  182. package/src/libs/util/data-fetcher/src/lib/readers/gml.ts +7 -7
  183. package/src/libs/util/data-fetcher/src/lib/readers/json.ts +1 -1
  184. package/src/libs/util/data-fetcher/src/lib/readers/wfs.ts +34 -11
  185. package/src/libs/util/data-fetcher/src/lib/utils.ts +38 -32
  186. package/translations/de.json +3 -74
  187. package/translations/en.json +3 -74
  188. package/translations/es.json +1 -72
  189. package/translations/fr.json +13 -84
  190. package/translations/it.json +20 -90
  191. package/translations/nl.json +1 -72
  192. package/translations/pt.json +1 -72
  193. package/translations/sk.json +1 -72
  194. package/esm2022/libs/ui/inputs/src/lib/chips-input/chips-input.component.mjs +0 -78
  195. package/esm2022/libs/ui/widgets/src/lib/step-bar/step-bar.component.mjs +0 -55
  196. package/libs/ui/inputs/src/lib/chips-input/chips-input.component.d.ts +0 -33
  197. package/libs/ui/inputs/src/lib/chips-input/chips-input.component.d.ts.map +0 -1
  198. package/libs/ui/widgets/src/lib/step-bar/step-bar.component.d.ts +0 -21
  199. package/libs/ui/widgets/src/lib/step-bar/step-bar.component.d.ts.map +0 -1
  200. package/src/libs/data-access/datafeeder/src/index.ts +0 -1
  201. package/src/libs/data-access/datafeeder/src/openapi/api/api.ts +0 -11
  202. package/src/libs/data-access/datafeeder/src/openapi/api/config.api.service.ts +0 -168
  203. package/src/libs/data-access/datafeeder/src/openapi/api/dataPublishing.api.service.ts +0 -270
  204. package/src/libs/data-access/datafeeder/src/openapi/api/fileUpload.api.service.ts +0 -734
  205. package/src/libs/data-access/datafeeder/src/openapi/api.module.ts +0 -46
  206. package/src/libs/data-access/datafeeder/src/openapi/configuration.ts +0 -125
  207. package/src/libs/data-access/datafeeder/src/openapi/encoder.ts +0 -20
  208. package/src/libs/data-access/datafeeder/src/openapi/index.ts +0 -5
  209. package/src/libs/data-access/datafeeder/src/openapi/model/analysisStatusEnum.api.model.ts +0 -24
  210. package/src/libs/data-access/datafeeder/src/openapi/model/boundingBox.api.model.ts +0 -20
  211. package/src/libs/data-access/datafeeder/src/openapi/model/cRS.api.model.ts +0 -25
  212. package/src/libs/data-access/datafeeder/src/openapi/model/datasetMetadata.api.model.ts +0 -45
  213. package/src/libs/data-access/datafeeder/src/openapi/model/datasetPublishRequest.api.model.ts +0 -39
  214. package/src/libs/data-access/datafeeder/src/openapi/model/datasetPublishingStatus.api.model.ts +0 -50
  215. package/src/libs/data-access/datafeeder/src/openapi/model/datasetUploadStatus.api.model.ts +0 -39
  216. package/src/libs/data-access/datafeeder/src/openapi/model/models.ts +0 -13
  217. package/src/libs/data-access/datafeeder/src/openapi/model/property.api.model.ts +0 -17
  218. package/src/libs/data-access/datafeeder/src/openapi/model/publishJobStatus.api.model.ts +0 -33
  219. package/src/libs/data-access/datafeeder/src/openapi/model/publishRequest.api.model.ts +0 -16
  220. package/src/libs/data-access/datafeeder/src/openapi/model/publishStatusEnum.api.model.ts +0 -20
  221. package/src/libs/data-access/datafeeder/src/openapi/model/publishStepEnum.api.model.ts +0 -42
  222. package/src/libs/data-access/datafeeder/src/openapi/model/uploadJobStatus.api.model.ts +0 -33
  223. package/src/libs/data-access/datafeeder/src/openapi/variables.ts +0 -9
  224. package/src/libs/data-access/datafeeder/src/spec.yaml +0 -537
  225. package/src/libs/ui/inputs/src/lib/chips-input/chips-input.component.css +0 -36
  226. package/src/libs/ui/inputs/src/lib/chips-input/chips-input.component.html +0 -23
  227. package/src/libs/ui/inputs/src/lib/chips-input/chips-input.component.ts +0 -81
  228. package/src/libs/ui/widgets/src/lib/step-bar/step-bar.component.css +0 -3
  229. package/src/libs/ui/widgets/src/lib/step-bar/step-bar.component.html +0 -13
  230. package/src/libs/ui/widgets/src/lib/step-bar/step-bar.component.ts +0 -55
@@ -24,13 +24,15 @@ export function parseGml(text, namespace, version) {
24
24
  throw Error("Couldn't retrieve namespace url");
25
25
  }
26
26
  export class GmlReader extends BaseFileReader {
27
- constructor(url, namespace, version) {
27
+ constructor(url, namespace, version, cacheActive = true) {
28
28
  super(url);
29
+ this.url = url;
29
30
  this.namespace = namespace;
30
31
  this.version = version;
32
+ this.cacheActive = cacheActive;
31
33
  }
32
34
  getData() {
33
- return fetchDataAsText(this.url).then((text) => parseGml(text, this.namespace, this.version));
35
+ return fetchDataAsText(this.url, this.cacheActive).then((text) => parseGml(text, this.namespace, this.version));
34
36
  }
35
37
  }
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ21sLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL2RhdGEtZmV0Y2hlci9zcmMvbGliL3JlYWRlcnMvZ21sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFFNUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUNqRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUd4QyxNQUFNLFVBQVUsUUFBUSxDQUN0QixJQUFZLEVBQ1osU0FBaUIsRUFDakIsT0FBZTtJQUtmLE1BQU0saUJBQWlCLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUM5QyxNQUFNLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyxTQUFTLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO0lBQzFFLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7SUFFOUIsSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUMvQixNQUFNLEVBQUUsR0FBRyxJQUFJLEdBQUcsQ0FBQztZQUNqQixTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNuQixXQUFXLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO1lBQ2pDLE9BQU8sRUFBRSxPQUFPO1NBQ2pCLENBQUMsQ0FBQTtRQUVGLElBQUksUUFBUSxDQUFBO1FBQ1osSUFBSSxDQUFDO1lBQ0gsUUFBUSxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDbEMsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxNQUFNLEtBQUssQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFBO1FBQ3JELENBQUM7UUFFRCxNQUFNLFdBQVcsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQy9ELE9BQU8scUJBQXFCLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUMxRCxDQUFDO0lBQ0QsTUFBTSxLQUFLLENBQUMsaUNBQWlDLENBQUMsQ0FBQTtBQUNoRCxDQUFDO0FBRUQsTUFBTSxPQUFPLFNBQVUsU0FBUSxjQUFjO0lBSTNDLFlBQVksR0FBRyxFQUFFLFNBQVMsRUFBRSxPQUFPO1FBQ2pDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUNWLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFBO1FBQzFCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFBO0lBQ3hCLENBQUM7SUFFUyxPQUFPO1FBQ2YsT0FBTyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQzdDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQzdDLENBQUE7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlRmlsZVJlYWRlciB9IGZyb20gJy4vYmFzZS1maWxlJ1xuaW1wb3J0IHsgRGF0YUl0ZW0sIFByb3BlcnR5SW5mbyB9IGZyb20gJy4uL21vZGVsJ1xuaW1wb3J0IHsgZmV0Y2hEYXRhQXNUZXh0LCBwcm9jZXNzSXRlbVByb3BlcnRpZXMgfSBmcm9tICcuLi91dGlscydcbmltcG9ydCB7IEdlb0pTT04sIFdGUyB9IGZyb20gJ29sL2Zvcm1hdCdcbmltcG9ydCB7IFdmc1ZlcnNpb24gfSBmcm9tICdAY2FtcHRvY2FtcC9vZ2MtY2xpZW50J1xuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VHbWwoXG4gIHRleHQ6IHN0cmluZyxcbiAgbmFtZXNwYWNlOiBzdHJpbmcsXG4gIHZlcnNpb246IHN0cmluZ1xuKToge1xuICBpdGVtczogRGF0YUl0ZW1bXVxuICBwcm9wZXJ0aWVzOiBQcm9wZXJ0eUluZm9bXVxufSB7XG4gIGNvbnN0IHNwbGl0dGVkTmFtZXNwYWNlID0gbmFtZXNwYWNlLnNwbGl0KCc6JylcbiAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKGB4bWxuczoke3NwbGl0dGVkTmFtZXNwYWNlWzBdfT1bXCInXShbXidcIl0qKVtcIiddYClcbiAgY29uc3QgbWF0Y2ggPSByZWdleC5leGVjKHRleHQpXG5cbiAgaWYgKG1hdGNoICYmIG1hdGNoLmxlbmd0aCA+PSAyKSB7XG4gICAgY29uc3Qgd2YgPSBuZXcgV0ZTKHtcbiAgICAgIGZlYXR1cmVOUzogbWF0Y2hbMV0sXG4gICAgICBmZWF0dXJlVHlwZTogc3BsaXR0ZWROYW1lc3BhY2VbMV0sXG4gICAgICB2ZXJzaW9uOiB2ZXJzaW9uLFxuICAgIH0pXG5cbiAgICBsZXQgZmVhdHVyZXNcbiAgICB0cnkge1xuICAgICAgZmVhdHVyZXMgPSB3Zi5yZWFkRmVhdHVyZXModGV4dClcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBFcnJvcihcIkNvdWxkbid0IHBhcnNlIFdGUyB3aXRoIEdNTCBmZWF0dXJlc1wiKVxuICAgIH1cblxuICAgIGNvbnN0IGdlb2pzb25JdGVtID0gbmV3IEdlb0pTT04oKS53cml0ZUZlYXR1cmVzT2JqZWN0KGZlYXR1cmVzKVxuICAgIHJldHVybiBwcm9jZXNzSXRlbVByb3BlcnRpZXMoZ2VvanNvbkl0ZW0uZmVhdHVyZXMsIHRydWUpXG4gIH1cbiAgdGhyb3cgRXJyb3IoXCJDb3VsZG4ndCByZXRyaWV2ZSBuYW1lc3BhY2UgdXJsXCIpXG59XG5cbmV4cG9ydCBjbGFzcyBHbWxSZWFkZXIgZXh0ZW5kcyBCYXNlRmlsZVJlYWRlciB7XG4gIG5hbWVzcGFjZTogc3RyaW5nXG4gIHZlcnNpb246IFdmc1ZlcnNpb25cblxuICBjb25zdHJ1Y3Rvcih1cmwsIG5hbWVzcGFjZSwgdmVyc2lvbikge1xuICAgIHN1cGVyKHVybClcbiAgICB0aGlzLm5hbWVzcGFjZSA9IG5hbWVzcGFjZVxuICAgIHRoaXMudmVyc2lvbiA9IHZlcnNpb25cbiAgfVxuXG4gIHByb3RlY3RlZCBnZXREYXRhKCkge1xuICAgIHJldHVybiBmZXRjaERhdGFBc1RleHQodGhpcy51cmwpLnRoZW4oKHRleHQpID0+XG4gICAgICBwYXJzZUdtbCh0ZXh0LCB0aGlzLm5hbWVzcGFjZSwgdGhpcy52ZXJzaW9uKVxuICAgIClcbiAgfVxufVxuIl19
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ21sLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL2RhdGEtZmV0Y2hlci9zcmMvbGliL3JlYWRlcnMvZ21sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFFNUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUNqRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUd4QyxNQUFNLFVBQVUsUUFBUSxDQUN0QixJQUFZLEVBQ1osU0FBaUIsRUFDakIsT0FBZTtJQUtmLE1BQU0saUJBQWlCLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUM5QyxNQUFNLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyxTQUFTLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO0lBQzFFLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7SUFFOUIsSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUMvQixNQUFNLEVBQUUsR0FBRyxJQUFJLEdBQUcsQ0FBQztZQUNqQixTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNuQixXQUFXLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO1lBQ2pDLE9BQU8sRUFBRSxPQUFPO1NBQ2pCLENBQUMsQ0FBQTtRQUVGLElBQUksUUFBUSxDQUFBO1FBQ1osSUFBSSxDQUFDO1lBQ0gsUUFBUSxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDbEMsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxNQUFNLEtBQUssQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFBO1FBQ3JELENBQUM7UUFFRCxNQUFNLFdBQVcsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQy9ELE9BQU8scUJBQXFCLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUMxRCxDQUFDO0lBQ0QsTUFBTSxLQUFLLENBQUMsaUNBQWlDLENBQUMsQ0FBQTtBQUNoRCxDQUFDO0FBRUQsTUFBTSxPQUFPLFNBQVUsU0FBUSxjQUFjO0lBQzNDLFlBQ1ksR0FBVyxFQUNYLFNBQWlCLEVBQ2pCLE9BQW1CLEVBQ25CLGNBQWMsSUFBSTtRQUU1QixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7UUFMQSxRQUFHLEdBQUgsR0FBRyxDQUFRO1FBQ1gsY0FBUyxHQUFULFNBQVMsQ0FBUTtRQUNqQixZQUFPLEdBQVAsT0FBTyxDQUFZO1FBQ25CLGdCQUFXLEdBQVgsV0FBVyxDQUFPO0lBRzlCLENBQUM7SUFFUyxPQUFPO1FBQ2YsT0FBTyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDL0QsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FDN0MsQ0FBQTtJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VGaWxlUmVhZGVyIH0gZnJvbSAnLi9iYXNlLWZpbGUnXG5pbXBvcnQgeyBEYXRhSXRlbSwgUHJvcGVydHlJbmZvIH0gZnJvbSAnLi4vbW9kZWwnXG5pbXBvcnQgeyBmZXRjaERhdGFBc1RleHQsIHByb2Nlc3NJdGVtUHJvcGVydGllcyB9IGZyb20gJy4uL3V0aWxzJ1xuaW1wb3J0IHsgR2VvSlNPTiwgV0ZTIH0gZnJvbSAnb2wvZm9ybWF0J1xuaW1wb3J0IHsgV2ZzVmVyc2lvbiB9IGZyb20gJ0BjYW1wdG9jYW1wL29nYy1jbGllbnQnXG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUdtbChcbiAgdGV4dDogc3RyaW5nLFxuICBuYW1lc3BhY2U6IHN0cmluZyxcbiAgdmVyc2lvbjogc3RyaW5nXG4pOiB7XG4gIGl0ZW1zOiBEYXRhSXRlbVtdXG4gIHByb3BlcnRpZXM6IFByb3BlcnR5SW5mb1tdXG59IHtcbiAgY29uc3Qgc3BsaXR0ZWROYW1lc3BhY2UgPSBuYW1lc3BhY2Uuc3BsaXQoJzonKVxuICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAoYHhtbG5zOiR7c3BsaXR0ZWROYW1lc3BhY2VbMF19PVtcIiddKFteJ1wiXSopW1wiJ11gKVxuICBjb25zdCBtYXRjaCA9IHJlZ2V4LmV4ZWModGV4dClcblxuICBpZiAobWF0Y2ggJiYgbWF0Y2gubGVuZ3RoID49IDIpIHtcbiAgICBjb25zdCB3ZiA9IG5ldyBXRlMoe1xuICAgICAgZmVhdHVyZU5TOiBtYXRjaFsxXSxcbiAgICAgIGZlYXR1cmVUeXBlOiBzcGxpdHRlZE5hbWVzcGFjZVsxXSxcbiAgICAgIHZlcnNpb246IHZlcnNpb24sXG4gICAgfSlcblxuICAgIGxldCBmZWF0dXJlc1xuICAgIHRyeSB7XG4gICAgICBmZWF0dXJlcyA9IHdmLnJlYWRGZWF0dXJlcyh0ZXh0KVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IEVycm9yKFwiQ291bGRuJ3QgcGFyc2UgV0ZTIHdpdGggR01MIGZlYXR1cmVzXCIpXG4gICAgfVxuXG4gICAgY29uc3QgZ2VvanNvbkl0ZW0gPSBuZXcgR2VvSlNPTigpLndyaXRlRmVhdHVyZXNPYmplY3QoZmVhdHVyZXMpXG4gICAgcmV0dXJuIHByb2Nlc3NJdGVtUHJvcGVydGllcyhnZW9qc29uSXRlbS5mZWF0dXJlcywgdHJ1ZSlcbiAgfVxuICB0aHJvdyBFcnJvcihcIkNvdWxkbid0IHJldHJpZXZlIG5hbWVzcGFjZSB1cmxcIilcbn1cblxuZXhwb3J0IGNsYXNzIEdtbFJlYWRlciBleHRlbmRzIEJhc2VGaWxlUmVhZGVyIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIHVybDogc3RyaW5nLFxuICAgIHByb3RlY3RlZCBuYW1lc3BhY2U6IHN0cmluZyxcbiAgICBwcm90ZWN0ZWQgdmVyc2lvbjogV2ZzVmVyc2lvbixcbiAgICBwcm90ZWN0ZWQgY2FjaGVBY3RpdmUgPSB0cnVlXG4gICkge1xuICAgIHN1cGVyKHVybClcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXREYXRhKCkge1xuICAgIHJldHVybiBmZXRjaERhdGFBc1RleHQodGhpcy51cmwsIHRoaXMuY2FjaGVBY3RpdmUpLnRoZW4oKHRleHQpID0+XG4gICAgICBwYXJzZUdtbCh0ZXh0LCB0aGlzLm5hbWVzcGFjZSwgdGhpcy52ZXJzaW9uKVxuICAgIClcbiAgfVxufVxuIl19
@@ -13,7 +13,7 @@ export function parseJson(text) {
13
13
  }
14
14
  export class JsonReader extends BaseFileReader {
15
15
  getData() {
16
- return fetchDataAsText(this.url).then(parseJson);
16
+ return fetchDataAsText(this.url, this.cacheActive).then(parseJson);
17
17
  }
18
18
  }
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9kYXRhLWZldGNoZXIvc3JjL2xpYi9yZWFkZXJzL2pzb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNMLGVBQWUsRUFDZixvQkFBb0IsRUFDcEIscUJBQXFCLEdBQ3RCLE1BQU0sVUFBVSxDQUFBO0FBQ2pCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFFNUM7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLFNBQVMsQ0FBQyxJQUFZO0lBSXBDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFVLENBQUE7SUFDeEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUMzQixNQUFNLElBQUksS0FBSyxDQUFDLHVEQUF1RCxDQUFDLENBQUE7SUFDMUUsQ0FBQztJQUNELE9BQU8scUJBQXFCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUE7QUFDaEUsQ0FBQztBQUVELE1BQU0sT0FBTyxVQUFXLFNBQVEsY0FBYztJQUM1QyxPQUFPO1FBQ0wsT0FBTyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUNsRCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRhSXRlbSwgUHJvcGVydHlJbmZvIH0gZnJvbSAnLi4vbW9kZWwnXG5pbXBvcnQge1xuICBmZXRjaERhdGFBc1RleHQsXG4gIGpzb25Ub0dlb2pzb25GZWF0dXJlLFxuICBwcm9jZXNzSXRlbVByb3BlcnRpZXMsXG59IGZyb20gJy4uL3V0aWxzJ1xuaW1wb3J0IHsgQmFzZUZpbGVSZWFkZXIgfSBmcm9tICcuL2Jhc2UtZmlsZSdcblxuLyoqXG4gKiBUaGlzIHBhcnNlciBvbmx5IHN1cHBvcnRzIGFycmF5cyBvZiBzaW1wbGUgZmxhdCBvYmplY3RzIHdpdGggcHJvcGVydGllc1xuICogQHBhcmFtIHRleHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlSnNvbih0ZXh0OiBzdHJpbmcpOiB7XG4gIGl0ZW1zOiBEYXRhSXRlbVtdXG4gIHByb3BlcnRpZXM6IFByb3BlcnR5SW5mb1tdXG59IHtcbiAgY29uc3QgcGFyc2VkID0gSlNPTi5wYXJzZSh0ZXh0KSBhcyBhbnlbXVxuICBpZiAoIUFycmF5LmlzQXJyYXkocGFyc2VkKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignQ291bGQgbm90IHBhcnNlIEpTT04sIGV4cGVjdGVkIGFuIGFycmF5IGF0IHJvb3QgbGV2ZWwnKVxuICB9XG4gIHJldHVybiBwcm9jZXNzSXRlbVByb3BlcnRpZXMocGFyc2VkLm1hcChqc29uVG9HZW9qc29uRmVhdHVyZSkpXG59XG5cbmV4cG9ydCBjbGFzcyBKc29uUmVhZGVyIGV4dGVuZHMgQmFzZUZpbGVSZWFkZXIge1xuICBnZXREYXRhKCkge1xuICAgIHJldHVybiBmZXRjaERhdGFBc1RleHQodGhpcy51cmwpLnRoZW4ocGFyc2VKc29uKVxuICB9XG59XG4iXX0=
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9kYXRhLWZldGNoZXIvc3JjL2xpYi9yZWFkZXJzL2pzb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNMLGVBQWUsRUFDZixvQkFBb0IsRUFDcEIscUJBQXFCLEdBQ3RCLE1BQU0sVUFBVSxDQUFBO0FBQ2pCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFFNUM7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLFNBQVMsQ0FBQyxJQUFZO0lBSXBDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFVLENBQUE7SUFDeEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUMzQixNQUFNLElBQUksS0FBSyxDQUFDLHVEQUF1RCxDQUFDLENBQUE7SUFDMUUsQ0FBQztJQUNELE9BQU8scUJBQXFCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUE7QUFDaEUsQ0FBQztBQUVELE1BQU0sT0FBTyxVQUFXLFNBQVEsY0FBYztJQUM1QyxPQUFPO1FBQ0wsT0FBTyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQ3BFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGFJdGVtLCBQcm9wZXJ0eUluZm8gfSBmcm9tICcuLi9tb2RlbCdcbmltcG9ydCB7XG4gIGZldGNoRGF0YUFzVGV4dCxcbiAganNvblRvR2VvanNvbkZlYXR1cmUsXG4gIHByb2Nlc3NJdGVtUHJvcGVydGllcyxcbn0gZnJvbSAnLi4vdXRpbHMnXG5pbXBvcnQgeyBCYXNlRmlsZVJlYWRlciB9IGZyb20gJy4vYmFzZS1maWxlJ1xuXG4vKipcbiAqIFRoaXMgcGFyc2VyIG9ubHkgc3VwcG9ydHMgYXJyYXlzIG9mIHNpbXBsZSBmbGF0IG9iamVjdHMgd2l0aCBwcm9wZXJ0aWVzXG4gKiBAcGFyYW0gdGV4dFxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VKc29uKHRleHQ6IHN0cmluZyk6IHtcbiAgaXRlbXM6IERhdGFJdGVtW11cbiAgcHJvcGVydGllczogUHJvcGVydHlJbmZvW11cbn0ge1xuICBjb25zdCBwYXJzZWQgPSBKU09OLnBhcnNlKHRleHQpIGFzIGFueVtdXG4gIGlmICghQXJyYXkuaXNBcnJheShwYXJzZWQpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdDb3VsZCBub3QgcGFyc2UgSlNPTiwgZXhwZWN0ZWQgYW4gYXJyYXkgYXQgcm9vdCBsZXZlbCcpXG4gIH1cbiAgcmV0dXJuIHByb2Nlc3NJdGVtUHJvcGVydGllcyhwYXJzZWQubWFwKGpzb25Ub0dlb2pzb25GZWF0dXJlKSlcbn1cblxuZXhwb3J0IGNsYXNzIEpzb25SZWFkZXIgZXh0ZW5kcyBCYXNlRmlsZVJlYWRlciB7XG4gIGdldERhdGEoKSB7XG4gICAgcmV0dXJuIGZldGNoRGF0YUFzVGV4dCh0aGlzLnVybCwgdGhpcy5jYWNoZUFjdGl2ZSkudGhlbihwYXJzZUpzb24pXG4gIH1cbn1cbiJdfQ==
@@ -1,12 +1,13 @@
1
1
  import { WfsEndpoint } from '@camptocamp/ogc-client';
2
2
  import { fetchDataAsText } from '../utils';
3
- import { BaseReader } from './base';
4
3
  import { GmlReader, parseGml } from './gml';
5
4
  import { GeojsonReader, parseGeojson } from './geojson';
6
- import { marker } from '@biesbjerg/ngx-translate-extract-marker';
7
- export class WfsReader extends BaseReader {
8
- constructor(url, wfsEndpoint, featureTypeName) {
9
- super(url);
5
+ import { BaseCacheReader } from './base-cache';
6
+ import { getJsonDataItemsProxy, jsonToGeojsonFeature } from '../utils';
7
+ import { generateSqlQuery } from '../sql-utils';
8
+ export class WfsReader extends BaseCacheReader {
9
+ constructor(url, wfsEndpoint, featureTypeName, cacheActive) {
10
+ super(url, cacheActive);
10
11
  this.endpoint = wfsEndpoint;
11
12
  this.featureTypeName = featureTypeName;
12
13
  this.version = this.endpoint.getVersion();
@@ -61,9 +62,9 @@ export class WfsReader extends BaseReader {
61
62
  throw new Error('wfs.geojsongml.notsupported');
62
63
  }
63
64
  }
64
- getData() {
65
- if (this.aggregations || this.groupedBy) {
66
- throw new Error(marker('wfs.aggregations.notsupported'));
65
+ async getData(aggregation, groupedBy) {
66
+ if (aggregation || groupedBy) {
67
+ return { items: await this.getQueryData() };
67
68
  }
68
69
  const asJson = this.endpoint.supportsJson(this.featureTypeName);
69
70
  const attributes = this.selected ?? undefined;
@@ -83,15 +84,22 @@ export class WfsReader extends BaseReader {
83
84
  // Direct update on string url to prevent encoding of +A and +D
84
85
  url = `${url}${finalUrl.search ? '&' : ''}SORTBY=${sorts}`;
85
86
  }
86
- return fetchDataAsText(url).then((text) => asJson
87
+ return fetchDataAsText(url, this.cacheActive).then((text) => asJson
87
88
  ? parseGeojson(text)
88
89
  : parseGml(text, this.featureTypeName, this.version));
89
90
  }
91
+ async getQueryData() {
92
+ const items = (await this.getData()).items;
93
+ const jsonItems = getJsonDataItemsProxy(items);
94
+ const query = generateSqlQuery(this.selected, this.filter, this.sort, this.startIndex, this.count, this.groupedBy, this.aggregations);
95
+ const result = await import('alasql').then((module) => module.default(query, [jsonItems]));
96
+ return result.map(jsonToGeojsonFeature);
97
+ }
90
98
  load() {
91
99
  // Nothing to load for Wfs
92
100
  }
93
101
  async read() {
94
- return (await this.getData()).items;
102
+ return (await this.getData(this.aggregations, this.groupedBy)).items;
95
103
  }
96
104
  }
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ZzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL2RhdGEtZmV0Y2hlci9zcmMvbGliL3JlYWRlcnMvd2ZzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQWMsTUFBTSx3QkFBd0IsQ0FBQTtBQUVoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBQzFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxRQUFRLENBQUE7QUFDbkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxPQUFPLENBQUE7QUFDM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFDdkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHlDQUF5QyxDQUFBO0FBRWhFLE1BQU0sT0FBTyxTQUFVLFNBQVEsVUFBVTtJQUt2QyxZQUFZLEdBQVcsRUFBRSxXQUF3QixFQUFFLGVBQXVCO1FBQ3hFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUNWLElBQUksQ0FBQyxRQUFRLEdBQUcsV0FBVyxDQUFBO1FBQzNCLElBQUksQ0FBQyxlQUFlLEdBQUcsZUFBZSxDQUFBO1FBQ3RDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQTtJQUMzQyxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsUUFBUTthQUNqQixrQkFBa0IsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDO2FBQ3hDLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQ3BCLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQy9DLE1BQU0sWUFBWSxHQUFHLFdBQVcsQ0FBQyxVQUFVLENBQUMs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K0Q7WUFDL0QsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxVQUFVLEtBQUssRUFBRSxDQUFBO1FBQzVELENBQUM7UUFFRCxPQUFPLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUN4QyxNQUFNO1lBQ0osQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7WUFDcEIsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQ3ZELENBQUE7SUFDSCxDQUFDO0lBRUQsSUFBSTtRQUNGLDBCQUEwQjtJQUM1QixDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUk7UUFDUixPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUE7SUFDckMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgV2ZzRW5kcG9pbnQsIFdmc1ZlcnNpb24gfSBmcm9tICdAY2FtcHRvY2FtcC9vZ2MtY2xpZW50J1xuaW1wb3J0IHsgRGF0YUl0ZW0sIERhdGFzZXRJbmZvLCBQcm9wZXJ0eUluZm8gfSBmcm9tICcuLi9tb2RlbCdcbmltcG9ydCB7IGZldGNoRGF0YUFzVGV4dCB9IGZyb20gJy4uL3V0aWxzJ1xuaW1wb3J0IHsgQmFzZVJlYWRlciB9IGZyb20gJy4vYmFzZSdcbmltcG9ydCB7IEdtbFJlYWRlciwgcGFyc2VHbWwgfSBmcm9tICcuL2dtbCdcbmltcG9ydCB7IEdlb2pzb25SZWFkZXIsIHBhcnNlR2VvanNvbiB9IGZyb20gJy4vZ2VvanNvbidcbmltcG9ydCB7IG1hcmtlciB9IGZyb20gJ0BiaWVzYmplcmcvbmd4LXRyYW5zbGF0ZS1leHRyYWN0LW1hcmtlcidcblxuZXhwb3J0IGNsYXNzIFdmc1JlYWRlciBleHRlbmRzIEJhc2VSZWFkZXIge1xuICBlbmRwb2ludDogV2ZzRW5kcG9pbnRcbiAgZmVhdHVyZVR5cGVOYW1lOiBzdHJpbmdcbiAgdmVyc2lvbjogV2ZzVmVyc2lvblxuXG4gIGNvbnN0cnVjdG9yKHVybDogc3RyaW5nLCB3ZnNFbmRwb2ludDogV2ZzRW5kcG9pbnQsIGZlYXR1cmVUeXBlTmFtZTogc3RyaW5nKSB7XG4gICAgc3VwZXIodXJsKVxuICAgIHRoaXMuZW5kcG9pbnQgPSB3ZnNFbmRwb2ludFxuICAgIHRoaXMuZmVhdHVyZVR5cGVOYW1lID0gZmVhdHVyZVR5cGVOYW1lXG4gICAgdGhpcy52ZXJzaW9uID0gdGhpcy5lbmRwb2ludC5nZXRWZXJzaW9uKClcbiAgfVxuXG4gIGdldCBwcm9wZXJ0aWVzKCk6IFByb21pc2U8UHJvcGVydHlJbmZvW10+IHtcbiAgICByZXR1cm4gdGhpcy5lbmRwb2ludFxuICAgICAgLmdldEZlYXR1cmVUeXBlRnVsbCh0aGlzLmZlYXR1cmVUeXBlTmFtZSlcbiAgICAgIC50aGVuKChmZWF0dXJlVHlwZSkgPT5cbiAgICAgICAgT2JqZWN0LmtleXMoZmVhdHVyZVR5cGUucHJvcGVydGllcykubWFwKChwcm9wKSA9PiB7XG4gICAgICAgICAgY29uc3Qgb3JpZ2luYWxUeXBlID0gZmVhdHVyZVR5cGUucHJvcGVydGllc1twcm9wXVxuICAgICAgICAgIGNvbnN0IHR5cGUgPVxuICAgICAgICAgICAgb3JpZ2luYWxUeXBlID09PSAnZmxvYXQnIHx8IG9yaWdpbmFsVHlwZSA9PT0gJ2ludGVnZXInXG4gICAgICAgICAgICAgID8gJ251bWJlcidcbiAgICAgICAgICAgICAgOiAob3JpZ2luYWxUeXBlIGFzIFByb3BlcnR5SW5mb1sndHlwZSddKSAvLyBGSVhNRTogb2djLWNsaWVudCB0eXBpbmcgaXMgaW5jb3JyZWN0LCBzaG91bGQgYmUgYSBzdHJpbmcgdW5pb25cbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbmFtZTogcHJvcCxcbiAgICAgICAgICAgIGxhYmVsOiBwcm9wLFxuICAgICAgICAgICAgdHlwZSxcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApXG4gIH1cblxuICBnZXQgaW5mbygpOiBQcm9taXNlPERhdGFzZXRJbmZvPiB7XG4gICAgcmV0dXJuIHRoaXMuZW5kcG9pbnQuZ2V0RmVhdHVyZVR5cGVGdWxsKHRoaXMuZmVhdHVyZVR5cGVOYW1lKS50aGVuKFxuICAgICAgKHJlc3VsdCkgPT5cbiAgICAgICAgKHtcbiAgICAgICAgICBpdGVtc0NvdW50OiByZXN1bHQub2JqZWN0Q291bnQsXG4gICAgICAgIH0pIGFzIERhdGFzZXRJbmZvXG4gICAgKVxuICB9XG5cbiAgc3RhdGljIGFzeW5jIGNyZWF0ZVJlYWRlcih3ZnNVcmxFbmRwb2ludDogc3RyaW5nLCBmZWF0dXJlVHlwZU5hbWU/OiBzdHJpbmcpIHtcbiAgICBjb25zdCB3ZnNFbmRwb2ludCA9IGF3YWl0IG5ldyBXZnNFbmRwb2ludCh3ZnNVcmxFbmRwb2ludCkuaXNSZWFkeSgpXG4gICAgY29uc3QgZmVhdHVyZVR5cGVzID0gd2ZzRW5kcG9pbnQuZ2V0RmVhdHVyZVR5cGVzKClcbiAgICBjb25zdCBmZWF0dXJlVHlwZSA9IHdmc0VuZHBvaW50LmdldEZlYXR1cmVUeXBlU3VtbWFyeShcbiAgICAgIGZlYXR1cmVUeXBlcy5sZW5ndGggPT09IDEgJiYgIWZlYXR1cmVUeXBlTmFtZVxuICAgICAgICA/IGZlYXR1cmVUeXBlc1swXS5uYW1lXG4gICAgICAgIDogZmVhdHVyZVR5cGVOYW1lXG4gICAgKVxuICAgIGlmICghZmVhdHVyZVR5cGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignd2ZzLmZlYXR1cmV0eXBlLm5vdGZvdW5kJylcbiAgICB9XG5cbiAgICBpZiAod2ZzRW5kcG9pbnQuc3VwcG9ydHNTdGFydEluZGV4KCkpIHtcbiAgICAgIHJldHVybiBuZXcgV2ZzUmVhZGVyKHdmc1VybEVuZHBvaW50LCB3ZnNFbmRwb2ludCwgZmVhdHVyZVR5cGUubmFtZSlcbiAgICB9IGVsc2UgaWYgKHdmc0VuZHBvaW50LnN1cHBvcnRzSnNvbihmZWF0dXJlVHlwZS5uYW1lKSkge1xuICAgICAgcmV0dXJuIG5ldyBHZW9qc29uUmVhZGVyKFxuICAgICAgICB3ZnNFbmRwb2ludC5nZXRGZWF0dXJlVXJsKGZlYXR1cmVUeXBlLm5hbWUsIHtcbiAgICAgICAgICBhc0pzb246IHRydWUsXG4gICAgICAgICAgb3V0cHV0Q3JzOiAnRVBTRzo0MzI2JyxcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKFxuICAgICAgICBmZWF0dXJlVHlwZS5vdXRwdXRGb3JtYXRzLmZpbmQoKGYpID0+XG4gICAgICAgICAgZi50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCdnbWwnKVxuICAgICAgICApICYmXG4gICAgICAgIChmZWF0dXJlVHlwZS5kZWZhdWx0Q3JzID09PSAnRVBTRzo0MzI2JyB8fFxuICAgICAgICAgIGZlYXR1cmVUeXBlLm90aGVyQ3JzPy5pbmNsdWRlcygnRVBTRzo0MzI2JykpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIG5ldyBHbWxSZWFkZXIoXG4gICAgICAgICAgd2ZzRW5kcG9pbnQuZ2V0RmVhdHVyZVVybChmZWF0dXJlVHlwZS5uYW1lLCB7XG4gICAgICAgICAgICBvdXRwdXRGb3JtYXQ6IGZlYXR1cmVUeXBlLm91dHB1dEZvcm1hdHMuZmluZCgoZikgPT5cbiAgICAgICAgICAgICAgZi50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCdnbWwnKVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIG91dHB1dENyczogJ0VQU0c6NDMyNicsXG4gICAgICAgICAgfSksXG4gICAgICAgICAgZmVhdHVyZVR5cGUubmFtZSxcbiAgICAgICAgICB3ZnNFbmRwb2ludC5nZXRWZXJzaW9uKClcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgdGhyb3cgbmV3IEVycm9yKCd3ZnMuZ2VvanNvbmdtbC5ub3RzdXBwb3J0ZWQnKVxuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBnZXREYXRhKCkge1xuICAgIGlmICh0aGlzLmFnZ3JlZ2F0aW9ucyB8fCB0aGlzLmdyb3VwZWRCeSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKG1hcmtlcignd2ZzLmFnZ3JlZ2F0aW9ucy5ub3RzdXBwb3J0ZWQnKSlcbiAgICB9XG5cbiAgICBjb25zdCBhc0pzb24gPSB0aGlzLmVuZHBvaW50LnN1cHBvcnRzSnNvbih0aGlzLmZlYXR1cmVUeXBlTmFtZSlcbiAgICBjb25zdCBhdHRyaWJ1dGVzID0gdGhpcy5zZWxlY3RlZCA/PyB1bmRlZmluZWRcbiAgICBsZXQgdXJsID0gdGhpcy5lbmRwb2ludC5nZXRGZWF0dXJlVXJsKHRoaXMuZmVhdHVyZVR5cGVOYW1lLCB7XG4gICAgICAuLi4odGhpcy5zdGFydEluZGV4ICE9PSBudWxsICYmIHsgc3RhcnRJbmRleDogdGhpcy5zdGFydEluZGV4IH0pLFxuICAgICAgLi4uKHRoaXMuY291bnQgIT09IG51bGwgJiYgeyBtYXhGZWF0dXJlczogdGhpcy5jb3VudCB9KSxcbiAgICAgIGFzSnNvbixcbiAgICAgIG91dHB1dENyczogJ0VQU0c6NDMyNicsXG4gICAgICBhdHRyaWJ1dGVzLFxuICAgICAgLy8gc29ydEJ5OiB0aGlzLnNvcnQgLy8gVE9ETzogbm8gc29ydCBpbiBvZ2MtY2xpZW50P1xuICAgIH0pXG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLnNvcnQpICYmIHRoaXMuc29ydC5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBmaW5hbFVybCA9IG5ldyBVUkwodXJsKVxuICAgICAgY29uc3Qgc29ydHMgPSB0aGlzLnNvcnRcbiAgICAgICAgLm1hcChcbiAgICAgICAgICAoZmllbGRTb3J0KSA9PiBgJHtmaWVsZFNvcnRbMV19KyR7ZmllbGRTb3J0WzBdID09PSAnYXNjJyA/ICdBJyA6ICdEJ31gXG4gICAgICAgIClcbiAgICAgICAgLmpvaW4oJywnKVxuICAgICAgLy8gRGlyZWN0IHVwZGF0ZSBvbiBzdHJpbmcgdXJsIHRvIHByZXZlbnQgZW5jb2Rpbmcgb2YgK0EgYW5kICtEXG4gICAgICB1cmwgPSBgJHt1cmx9JHtmaW5hbFVybC5zZWFyY2ggPyAnJicgOiAnJ31TT1JUQlk9JHtzb3J0c31gXG4gICAgfVxuXG4gICAgcmV0dXJuIGZldGNoRGF0YUFzVGV4dCh1cmwpLnRoZW4oKHRleHQpID0+XG4gICAgICBhc0pzb25cbiAgICAgICAgPyBwYXJzZUdlb2pzb24odGV4dClcbiAgICAgICAgOiBwYXJzZUdtbCh0ZXh0LCB0aGlzLmZlYXR1cmVUeXBlTmFtZSwgdGhpcy52ZXJzaW9uKVxuICAgIClcbiAgfVxuXG4gIGxvYWQoKSB7XG4gICAgLy8gTm90aGluZyB0byBsb2FkIGZvciBXZnNcbiAgfVxuXG4gIGFzeW5jIHJlYWQoKTogUHJvbWlzZTxEYXRhSXRlbVtdPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmdldERhdGEoKSkuaXRlbXNcbiAgfVxufVxuIl19
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ZzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL2RhdGEtZmV0Y2hlci9zcmMvbGliL3JlYWRlcnMvd2ZzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQWMsTUFBTSx3QkFBd0IsQ0FBQTtBQUVoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBQzFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sT0FBTyxDQUFBO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDOUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sVUFBVSxDQUFBO0FBQ3RFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUUvQyxNQUFNLE9BQU8sU0FBVSxTQUFRLGVBQWU7SUFLNUMsWUFDRSxHQUFXLEVBQ1gsV0FBd0IsRUFDeEIsZUFBdUIsRUFDdkIsV0FBcUI7UUFFckIsS0FBSyxDQUFDLEdBQUcsRUFBRSxXQUFXLENBQUMsQ0FBQTtRQUN2QixJQUFJLENBQUMsUUFBUSxHQUFHLFdBQVcsQ0FBQTtRQUMzQixJQUFJLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQTtRQUN0QyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUE7SUFDM0MsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFFBQVE7YUFDakIsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQzthQUN4QyxJQUFJLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUNwQixNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENB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QyxDQUFBO1FBQ0QsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUE7SUFDekMsQ0FBQztJQUVELElBQUk7UUFDRiwwQkFBMEI7SUFDNUIsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFJO1FBQ1IsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQTtJQUN0RSxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBXZnNFbmRwb2ludCwgV2ZzVmVyc2lvbiB9IGZyb20gJ0BjYW1wdG9jYW1wL29nYy1jbGllbnQnXG5pbXBvcnQgeyBEYXRhSXRlbSwgRGF0YXNldEluZm8sIFByb3BlcnR5SW5mbyB9IGZyb20gJy4uL21vZGVsJ1xuaW1wb3J0IHsgZmV0Y2hEYXRhQXNUZXh0IH0gZnJvbSAnLi4vdXRpbHMnXG5pbXBvcnQgeyBHbWxSZWFkZXIsIHBhcnNlR21sIH0gZnJvbSAnLi9nbWwnXG5pbXBvcnQgeyBHZW9qc29uUmVhZGVyLCBwYXJzZUdlb2pzb24gfSBmcm9tICcuL2dlb2pzb24nXG5pbXBvcnQgeyBCYXNlQ2FjaGVSZWFkZXIgfSBmcm9tICcuL2Jhc2UtY2FjaGUnXG5pbXBvcnQgeyBnZXRKc29uRGF0YUl0ZW1zUHJveHksIGpzb25Ub0dlb2pzb25GZWF0dXJlIH0gZnJvbSAnLi4vdXRpbHMnXG5pbXBvcnQgeyBnZW5lcmF0ZVNxbFF1ZXJ5IH0gZnJvbSAnLi4vc3FsLXV0aWxzJ1xuXG5leHBvcnQgY2xhc3MgV2ZzUmVhZGVyIGV4dGVuZHMgQmFzZUNhY2hlUmVhZGVyIHtcbiAgZW5kcG9pbnQ6IFdmc0VuZHBvaW50XG4gIGZlYXR1cmVUeXBlTmFtZTogc3RyaW5nXG4gIHZlcnNpb246IFdmc1ZlcnNpb25cblxuICBjb25zdHJ1Y3RvcihcbiAgICB1cmw6IHN0cmluZyxcbiAgICB3ZnNFbmRwb2ludDogV2ZzRW5kcG9pbnQsXG4gICAgZmVhdHVyZVR5cGVOYW1lOiBzdHJpbmcsXG4gICAgY2FjaGVBY3RpdmU/OiBib29sZWFuXG4gICkge1xuICAgIHN1cGVyKHVybCwgY2FjaGVBY3RpdmUpXG4gICAgdGhpcy5lbmRwb2ludCA9IHdmc0VuZHBvaW50XG4gICAgdGhpcy5mZWF0dXJlVHlwZU5hbWUgPSBmZWF0dXJlVHlwZU5hbWVcbiAgICB0aGlzLnZlcnNpb24gPSB0aGlzLmVuZHBvaW50LmdldFZlcnNpb24oKVxuICB9XG5cbiAgZ2V0IHByb3BlcnRpZXMoKTogUHJvbWlzZTxQcm9wZXJ0eUluZm9bXT4ge1xuICAgIHJldHVybiB0aGlzLmVuZHBvaW50XG4gICAgICAuZ2V0RmVhdHVyZVR5cGVGdWxsKHRoaXMuZmVhdHVyZVR5cGVOYW1lKVxuICAgICAgLnRoZW4oKGZlYXR1cmVUeXBlKSA9PlxuICAgICAgICBPYmplY3Qua2V5cyhmZWF0dXJlVHlwZS5wcm9wZXJ0aWVzKS5tYXAoKHByb3ApID0+IHtcbiAgICAgICAgICBjb25zdCBvcmlnaW5hbFR5cGUgPSBmZWF0dXJlVHlwZS5wcm9wZXJ0aWVzW3Byb3BdXG4gICAgICAgICAgY29uc3QgdHlwZSA9XG4gICAgICAgICAgICBvcmlnaW5hbFR5cGUgPT09ICdmbG9hdCcgfHwgb3JpZ2luYWxUeXBlID09PSAnaW50ZWdlcidcbiAgICAgICAgICAgICAgPyAnbnVtYmVyJ1xuICAgICAgICAgICAgICA6IChvcmlnaW5hbFR5cGUgYXMgUHJvcGVydHlJbmZvWyd0eXBlJ10pIC8vIEZJWE1FOiBvZ2MtY2xpZW50IHR5cGluZyBpcyBpbmNvcnJlY3QsIHNob3VsZCBiZSBhIHN0cmluZyB1bmlvblxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBuYW1lOiBwcm9wLFxuICAgICAgICAgICAgbGFiZWw6IHByb3AsXG4gICAgICAgICAgICB0eXBlLFxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIClcbiAgfVxuXG4gIGdldCBpbmZvKCk6IFByb21pc2U8RGF0YXNldEluZm8+IHtcbiAgICByZXR1cm4gdGhpcy5lbmRwb2ludC5nZXRGZWF0dXJlVHlwZUZ1bGwodGhpcy5mZWF0dXJlVHlwZU5hbWUpLnRoZW4oXG4gICAgICAocmVzdWx0KSA9PlxuICAgICAgICAoe1xuICAgICAgICAgIGl0ZW1zQ291bnQ6IHJlc3VsdC5vYmplY3RDb3VudCxcbiAgICAgICAgfSkgYXMgRGF0YXNldEluZm9cbiAgICApXG4gIH1cblxuICBzdGF0aWMgYXN5bmMgY3JlYXRlUmVhZGVyKHdmc1VybEVuZHBvaW50OiBzdHJpbmcsIGZlYXR1cmVUeXBlTmFtZT86IHN0cmluZykge1xuICAgIGNvbnN0IHdmc0VuZHBvaW50ID0gYXdhaXQgbmV3IFdmc0VuZHBvaW50KHdmc1VybEVuZHBvaW50KS5pc1JlYWR5KClcbiAgICBjb25zdCBmZWF0dXJlVHlwZXMgPSB3ZnNFbmRwb2ludC5nZXRGZWF0dXJlVHlwZXMoKVxuICAgIGNvbnN0IGZlYXR1cmVUeXBlID0gd2ZzRW5kcG9pbnQuZ2V0RmVhdHVyZVR5cGVTdW1tYXJ5KFxuICAgICAgZmVhdHVyZVR5cGVzLmxlbmd0aCA9PT0gMSAmJiAhZmVhdHVyZVR5cGVOYW1lXG4gICAgICAgID8gZmVhdHVyZVR5cGVzWzBdLm5hbWVcbiAgICAgICAgOiBmZWF0dXJlVHlwZU5hbWVcbiAgICApXG4gICAgaWYgKCFmZWF0dXJlVHlwZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCd3ZnMuZmVhdHVyZXR5cGUubm90Zm91bmQnKVxuICAgIH1cblxuICAgIGlmICh3ZnNFbmRwb2ludC5zdXBwb3J0c1N0YXJ0SW5kZXgoKSkge1xuICAgICAgcmV0dXJuIG5ldyBXZnNSZWFkZXIod2ZzVXJsRW5kcG9pbnQsIHdmc0VuZHBvaW50LCBmZWF0dXJlVHlwZS5uYW1lKVxuICAgIH0gZWxzZSBpZiAod2ZzRW5kcG9pbnQuc3VwcG9ydHNKc29uKGZlYXR1cmVUeXBlLm5hbWUpKSB7XG4gICAgICByZXR1cm4gbmV3IEdlb2pzb25SZWFkZXIoXG4gICAgICAgIHdmc0VuZHBvaW50LmdldEZlYXR1cmVVcmwoZmVhdHVyZVR5cGUubmFtZSwge1xuICAgICAgICAgIGFzSnNvbjogdHJ1ZSxcbiAgICAgICAgICBvdXRwdXRDcnM6ICdFUFNHOjQzMjYnLFxuICAgICAgICB9KVxuICAgICAgKVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoXG4gICAgICAgIGZlYXR1cmVUeXBlLm91dHB1dEZvcm1hdHMuZmluZCgoZikgPT5cbiAgICAgICAgICBmLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ2dtbCcpXG4gICAgICAgICkgJiZcbiAgICAgICAgKGZlYXR1cmVUeXBlLmRlZmF1bHRDcnMgPT09ICdFUFNHOjQzMjYnIHx8XG4gICAgICAgICAgZmVhdHVyZVR5cGUub3RoZXJDcnM/LmluY2x1ZGVzKCdFUFNHOjQzMjYnKSlcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gbmV3IEdtbFJlYWRlcihcbiAgICAgICAgICB3ZnNFbmRwb2ludC5nZXRGZWF0dXJlVXJsKGZlYXR1cmVUeXBlLm5hbWUsIHtcbiAgICAgICAgICAgIG91dHB1dEZvcm1hdDogZmVhdHVyZVR5cGUub3V0cHV0Rm9ybWF0cy5maW5kKChmKSA9PlxuICAgICAgICAgICAgICBmLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ2dtbCcpXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgb3V0cHV0Q3JzOiAnRVBTRzo0MzI2JyxcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBmZWF0dXJlVHlwZS5uYW1lLFxuICAgICAgICAgIHdmc0VuZHBvaW50LmdldFZlcnNpb24oKVxuICAgICAgICApXG4gICAgICB9XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3dmcy5nZW9qc29uZ21sLm5vdHN1cHBvcnRlZCcpXG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldERhdGEoYWdncmVnYXRpb24/LCBncm91cGVkQnk/KSB7XG4gICAgaWYgKGFnZ3JlZ2F0aW9uIHx8IGdyb3VwZWRCeSkge1xuICAgICAgcmV0dXJuIHsgaXRlbXM6IGF3YWl0IHRoaXMuZ2V0UXVlcnlEYXRhKCkgfVxuICAgIH1cbiAgICBjb25zdCBhc0pzb24gPSB0aGlzLmVuZHBvaW50LnN1cHBvcnRzSnNvbih0aGlzLmZlYXR1cmVUeXBlTmFtZSlcbiAgICBjb25zdCBhdHRyaWJ1dGVzID0gdGhpcy5zZWxlY3RlZCA/PyB1bmRlZmluZWRcbiAgICBsZXQgdXJsID0gdGhpcy5lbmRwb2ludC5nZXRGZWF0dXJlVXJsKHRoaXMuZmVhdHVyZVR5cGVOYW1lLCB7XG4gICAgICAuLi4odGhpcy5zdGFydEluZGV4ICE9PSBudWxsICYmIHsgc3RhcnRJbmRleDogdGhpcy5zdGFydEluZGV4IH0pLFxuICAgICAgLi4uKHRoaXMuY291bnQgIT09IG51bGwgJiYgeyBtYXhGZWF0dXJlczogdGhpcy5jb3VudCB9KSxcbiAgICAgIGFzSnNvbixcbiAgICAgIG91dHB1dENyczogJ0VQU0c6NDMyNicsXG4gICAgICBhdHRyaWJ1dGVzLFxuICAgICAgLy8gc29ydEJ5OiB0aGlzLnNvcnQgLy8gVE9ETzogbm8gc29ydCBpbiBvZ2MtY2xpZW50P1xuICAgIH0pXG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLnNvcnQpICYmIHRoaXMuc29ydC5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBmaW5hbFVybCA9IG5ldyBVUkwodXJsKVxuICAgICAgY29uc3Qgc29ydHMgPSB0aGlzLnNvcnRcbiAgICAgICAgLm1hcChcbiAgICAgICAgICAoZmllbGRTb3J0KSA9PiBgJHtmaWVsZFNvcnRbMV19KyR7ZmllbGRTb3J0WzBdID09PSAnYXNjJyA/ICdBJyA6ICdEJ31gXG4gICAgICAgIClcbiAgICAgICAgLmpvaW4oJywnKVxuICAgICAgLy8gRGlyZWN0IHVwZGF0ZSBvbiBzdHJpbmcgdXJsIHRvIHByZXZlbnQgZW5jb2Rpbmcgb2YgK0EgYW5kICtEXG4gICAgICB1cmwgPSBgJHt1cmx9JHtmaW5hbFVybC5zZWFyY2ggPyAnJicgOiAnJ31TT1JUQlk9JHtzb3J0c31gXG4gICAgfVxuXG4gICAgcmV0dXJuIGZldGNoRGF0YUFzVGV4dCh1cmwsIHRoaXMuY2FjaGVBY3RpdmUpLnRoZW4oKHRleHQpID0+XG4gICAgICBhc0pzb25cbiAgICAgICAgPyBwYXJzZUdlb2pzb24odGV4dClcbiAgICAgICAgOiBwYXJzZUdtbCh0ZXh0LCB0aGlzLmZlYXR1cmVUeXBlTmFtZSwgdGhpcy52ZXJzaW9uKVxuICAgIClcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRRdWVyeURhdGEoKSB7XG4gICAgY29uc3QgaXRlbXMgPSAoYXdhaXQgdGhpcy5nZXREYXRhKCkpLml0ZW1zXG4gICAgY29uc3QganNvbkl0ZW1zID0gZ2V0SnNvbkRhdGFJdGVtc1Byb3h5KGl0ZW1zKVxuICAgIGNvbnN0IHF1ZXJ5ID0gZ2VuZXJhdGVTcWxRdWVyeShcbiAgICAgIHRoaXMuc2VsZWN0ZWQsXG4gICAgICB0aGlzLmZpbHRlcixcbiAgICAgIHRoaXMuc29ydCxcbiAgICAgIHRoaXMuc3RhcnRJbmRleCxcbiAgICAgIHRoaXMuY291bnQsXG4gICAgICB0aGlzLmdyb3VwZWRCeSxcbiAgICAgIHRoaXMuYWdncmVnYXRpb25zXG4gICAgKVxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGltcG9ydCgnYWxhc3FsJykudGhlbigobW9kdWxlKSA9PlxuICAgICAgbW9kdWxlLmRlZmF1bHQocXVlcnksIFtqc29uSXRlbXNdKVxuICAgIClcbiAgICByZXR1cm4gcmVzdWx0Lm1hcChqc29uVG9HZW9qc29uRmVhdHVyZSlcbiAgfVxuXG4gIGxvYWQoKSB7XG4gICAgLy8gTm90aGluZyB0byBsb2FkIGZvciBXZnNcbiAgfVxuXG4gIGFzeW5jIHJlYWQoKTogUHJvbWlzZTxEYXRhSXRlbVtdPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmdldERhdGEodGhpcy5hZ2dyZWdhdGlvbnMsIHRoaXMuZ3JvdXBlZEJ5KSkuaXRlbXNcbiAgfVxufVxuIl19
@@ -36,20 +36,23 @@ export function fetchHeaders(url) {
36
36
  return parseHeaders(response.headers);
37
37
  });
38
38
  }
39
- export function fetchDataAsText(url) {
40
- return useCache(() => sharedFetch(url)
39
+ export function fetchDataAsText(url, cacheActive) {
40
+ const fetchFactory = () => sharedFetch(url)
41
41
  .catch((error) => {
42
42
  throw FetchError.corsOrNetwork(error.message);
43
43
  })
44
44
  .then(async (response) => {
45
45
  if (!response.ok) {
46
- throw FetchError.http(response.status, await response.text());
46
+ const clonedResponse = response.clone();
47
+ throw FetchError.http(response.status, await clonedResponse.text());
47
48
  }
48
- return response.text();
49
- }), url, 'asText');
49
+ const clonedResponse = response.clone();
50
+ return clonedResponse.text();
51
+ });
52
+ return cacheActive ? useCache(fetchFactory, url, 'asText') : fetchFactory();
50
53
  }
51
- export function fetchDataAsArrayBuffer(url) {
52
- return useCache(() => sharedFetch(url)
54
+ export function fetchDataAsArrayBuffer(url, cacheActive) {
55
+ const fetchFactory = () => sharedFetch(url)
53
56
  .catch((error) => {
54
57
  throw FetchError.corsOrNetwork(error.message);
55
58
  })
@@ -59,7 +62,8 @@ export function fetchDataAsArrayBuffer(url) {
59
62
  }
60
63
  // convert to a numeric array so that we can store the response in cache
61
64
  return Array.from(new Uint8Array(await response.arrayBuffer()));
62
- }), url, 'asArrayBuffer').then((array) => {
65
+ });
66
+ return (cacheActive ? useCache(fetchFactory, url, 'asArrayBuffer') : fetchFactory()).then((array) => {
63
67
  return new Uint8Array(array).buffer;
64
68
  });
65
69
  }
@@ -204,4 +208,4 @@ export function getJsonDataItemsProxy(items) {
204
208
  },
205
209
  });
206
210
  }
207
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvZGF0YS1mZXRjaGVyL3NyYy9saWIvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLFVBQVUsRUFHVixjQUFjLEdBQ2YsTUFBTSxTQUFTLENBQUE7QUFDaEIsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxLQUFLLElBQUksU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDbkQsT0FBTyxFQUFFLFFBQVEsSUFBSSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUU1RCxNQUFNLENBQUMsS0FBSyxVQUFVLGdCQUFnQixDQUNwQyxHQUFXLEVBQ1gsUUFBd0I7SUFFeEIsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLEdBQUcsQ0FDbEMsR0FBRyxFQUNILE9BQU8sTUFBTSxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUN2RSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUE7SUFDM0IsTUFBTSxhQUFhLEdBQ2pCLG9CQUFvQixJQUFJLG9CQUFvQixDQUFDLE1BQU07UUFDakQsQ0FBQyxDQUFFLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBb0I7UUFDMUQsQ0FBQyxDQUFDLElBQUksQ0FBQTtJQUVWLGVBQWU7SUFDZixJQUFJLFFBQVE7UUFBRSxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUE7SUFFOUMseUJBQXlCO0lBQ3pCLE1BQU0sT0FBTyxHQUFHLE1BQU0sWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ3ZD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QUFDLEVBQUUsVUFBVSxFQUNyQixDQUFDO2dCQUNELE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQTtZQUM3QixDQUFDO1lBQ0QsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDbEIsQ0FBQztRQUNELEdBQUc7WUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUE7UUFDN0MsQ0FBQztLQUNGLENBQUMsQ0FBQTtBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEYXRhSXRlbSxcbiAgRGF0YXNldEhlYWRlcnMsXG4gIEZldGNoRXJyb3IsXG4gIFByb3BlcnR5SW5mbyxcbiAgU3VwcG9ydGVkVHlwZSxcbiAgU3VwcG9ydGVkVHlwZXMsXG59IGZyb20gJy4vbW9kZWwnXG5pbXBvcnQgeyBzaGFyZWRGZXRjaCwgdXNlQ2FjaGUgfSBmcm9tICdAY2FtcHRvY2FtcC9vZ2MtY2xpZW50J1xuaW1wb3J0IHsgcGFyc2VIZWFkZXJzIH0gZnJvbSAnLi9oZWFkZXJzJ1xuaW1wb3J0IHsgcGFyc2UgYXMgcGFyc2VEYXRlIH0gZnJvbSAnZGF0ZS1mbnMvcGFyc2UnXG5pbXBvcnQgeyBwYXJzZUlTTyBhcyBwYXJzZUlzb0RhdGUgfSBmcm9tICdkYXRlLWZucy9wYXJzZUlTTydcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGluZmVyRGF0YXNldFR5cGUoXG4gIHVybDogc3RyaW5nLFxuICB0eXBlSGludD86IFN1cHBvcnRlZFR5cGVcbik6IFByb21pc2U8U3VwcG9ydGVkVHlwZT4ge1xuICBjb25zdCBmaWxlRXh0ZW5zaW9uTWF0Y2hlcyA9IG5ldyBVUkwoXG4gICAgdXJsLFxuICAgIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnID8gd2luZG93LmxvY2F0aW9uLnRvU3RyaW5nKCkgOiB1bmRlZmluZWRcbiAgKS5wYXRobmFtZS5tYXRjaCgvXFwuKC4rKSQvKVxuICBjb25zdCBmaWxlRXh0ZW5zaW9uID1cbiAgICBmaWxlRXh0ZW5zaW9uTWF0Y2hlcyAmJiBmaWxlRXh0ZW5zaW9uTWF0Y2hlcy5sZW5ndGhcbiAgICAgID8gKGZpbGVFeHRlbnNpb25NYXRjaGVzWzFdLnRvTG93ZXJDYXNlKCkgYXMgU3VwcG9ydGVkVHlwZSlcbiAgICAgIDogbnVsbFxuXG4gIC8vIDEuIHR5cGUgaGludFxuICBpZiAodHlwZUhpbnQpIHJldHVybiBQcm9taXNlLnJlc29sdmUodHlwZUhpbnQpXG5cbiAgLy8gMi4gY29udGVudC10eXBlIGhlYWRlclxuICBjb25zdCBoZWFkZXJzID0gYXdhaXQgZmV0Y2hIZWFkZXJzKHVybClcbiAgaWYgKCdzdXBwb3J0ZWRUeXBlJyBpbiBoZWFkZXJzKSByZXR1cm4gaGVhZGVycy5zdXBwb3J0ZWRUeXBlXG4gIC8vIDMuIGZpbGUgZXh0ZW5zaW9uIGZyb20gdXJsXG4gIGVsc2UgaWYgKFN1cHBvcnRlZFR5cGVzLmluZGV4T2YoZmlsZUV4dGVuc2lvbikgPiAtMSkgcmV0dXJuIGZpbGVFeHRlbnNpb25cblxuICAvLyBubyB0eXBlIGluZmVycmVkIG9yIGhpbnRlZFxuICBpZiAoJ21pbWVUeXBlJyBpbiBoZWFkZXJzKSB0aHJvdyBGZXRjaEVycm9yLnVuc3VwcG9ydGVkVHlwZShoZWFkZXJzLm1pbWVUeXBlKVxuICBlbHNlIHRocm93IEZldGNoRXJyb3IudW5rbm93blR5cGUoKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZmV0Y2hIZWFkZXJzKHVybDogc3RyaW5nKTogUHJvbWlzZTxEYXRhc2V0SGVhZGVycz4ge1xuICByZXR1cm4gc2hhcmVkRmV0Y2godXJsLCAnSEVBRCcpXG4gICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgdGhyb3cgRmV0Y2hFcnJvci5jb3JzT3JOZXR3b3JrKGVycm9yLm1lc3NhZ2UpXG4gICAgfSlcbiAgICAudGhlbigocmVzcG9uc2UpID0+IHtcbiAgICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgICAgdGhyb3cgRmV0Y2hFcnJvci5odHRwKHJlc3BvbnNlLnN0YXR1cylcbiAgICAgIH1cbiAgICAgIHJldHVybiBwYXJzZUhlYWRlcnMocmVzcG9uc2UuaGVhZGVycylcbiAgICB9KVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZmV0Y2hEYXRhQXNUZXh0KHVybDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgcmV0dXJuIHVzZUNhY2hlKFxuICAgICgpID0+XG4gICAgICBzaGFyZWRGZXRjaCh1cmwpXG4gICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgICB0aHJvdyBGZXRjaEVycm9yLmNvcnNPck5ldHdvcmsoZXJyb3IubWVzc2FnZSlcbiAgICAgICAgfSlcbiAgICAgICAgLnRoZW4oYXN5bmMgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICAgICAgdGhyb3cgRmV0Y2hFcnJvci5odHRwKHJlc3BvbnNlLnN0YXR1cywgYXdhaXQgcmVzcG9uc2UudGV4dCgpKVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcmVzcG9uc2UudGV4dCgpXG4gICAgICAgIH0pLFxuICAgIHVybCxcbiAgICAnYXNUZXh0J1xuICApXG59XG5leHBvcnQgZnVuY3Rpb24gZmV0Y2hEYXRhQXNBcnJheUJ1ZmZlcih1cmw6IHN0cmluZyk6IFByb21pc2U8QXJyYXlCdWZmZXI+IHtcbiAgcmV0dXJuIHVzZUNhY2hlKFxuICAgICgpID0+XG4gICAgICBzaGFyZWRGZXRjaCh1cmwpXG4gICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgICB0aHJvdyBGZXRjaEVycm9yLmNvcnNPck5ldHdvcmsoZXJyb3IubWVzc2FnZSlcbiAgICAgICAgfSlcbiAgICAgICAgLnRoZW4oYXN5bmMgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICAgICAgdGhyb3cgRmV0Y2hFcnJvci5odHRwKHJlc3BvbnNlLnN0YXR1cywgYXdhaXQgcmVzcG9uc2UudGV4dCgpKVxuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBjb252ZXJ0IHRvIGEgbnVtZXJpYyBhcnJheSBzbyB0aGF0IHdlIGNhbiBzdG9yZSB0aGUgcmVzcG9uc2UgaW4gY2FjaGVcbiAgICAgICAgICByZXR1cm4gQXJyYXkuZnJvbShuZXcgVWludDhBcnJheShhd2FpdCByZXNwb25zZS5hcnJheUJ1ZmZlcigpKSlcbiAgICAgICAgfSksXG4gICAgdXJsLFxuICAgICdhc0FycmF5QnVmZmVyJ1xuICApLnRoZW4oKGFycmF5KSA9PiB7XG4gICAgcmV0dXJuIG5ldyBVaW50OEFycmF5KGFycmF5KS5idWZmZXJcbiAgfSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyeVBhcnNlRGF0ZShpbnB1dDogdW5rbm93bik6IERhdGUgfCBudWxsIHtcbiAgaWYgKHR5cGVvZiBpbnB1dCAhPT0gJ3N0cmluZycpIHJldHVybiBudWxsXG5cbiAgZnVuY3Rpb24gdHJ5SXNvKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBjb25zdCBwYXJzZWQgPSBwYXJzZUlzb0RhdGUodmFsdWUpXG4gICAgcmV0dXJuIGlzTmFOKHBhcnNlZC5nZXREYXRlKCkpID8gbnVsbCA6IHBhcnNlZFxuICB9XG4gIGZ1bmN0aW9uIHRyeUZvcm1hdCh2YWx1ZTogc3RyaW5nLCBmb3JtYXQ6IHN0cmluZykge1xuICAgIGNvbnN0IHBhcnNlZCA9IHBhcnNlRGF0ZSh2YWx1ZSwgZm9ybWF0LCBuZXcgRGF0ZSgpKVxuICAgIHJldHVybiBpc05hTihwYXJzZWQuZ2V0RGF0ZSgpKSA/IG51bGwgOiBwYXJzZWRcbiAgfVxuICByZXR1cm4gKFxuICAgIHRyeUlzbyhpbnB1dCkgfHxcbiAgICB0cnlGb3JtYXQoaW5wdXQsICdkZC9NTS95eXl5JykgfHxcbiAgICB0cnlGb3JtYXQoaW5wdXQsICdkZC5NTS55eXl5JykgfHxcbiAgICB0cnlGb3JtYXQoaW5wdXQsICdNTS9kZC95eXl5JykgfHxcbiAgICBudWxsXG4gIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyeVBhcnNlTnVtYmVyKGlucHV0OiBzdHJpbmcpOiBudW1iZXIgfCBudWxsIHtcbiAgaWYgKGlzTmFOKGlucHV0IGFzIGFueSkpIHJldHVybiBudWxsXG4gIGNvbnN0IHBhcnNlZCA9IHBhcnNlRmxvYXQoaW5wdXQpXG4gIHJldHVybiBpc05hTihwYXJzZWQpID8gbnVsbCA6IHBhcnNlZFxufVxuXG5leHBvcnQgZnVuY3Rpb24ganNvblRvR2VvanNvbkZlYXR1cmUob2JqZWN0OiB7IFtrZXk6IHN0cmluZ106IGFueSB9KTogRGF0YUl0ZW0ge1xuICBjb25zdCB7IGlkLCBwcm9wZXJ0aWVzIH0gPSBPYmplY3Qua2V5cyhvYmplY3QpXG4gICAgLm1hcCgocHJvcGVydHkpID0+IChwcm9wZXJ0eSA/IHByb3BlcnR5IDogJ3Vua25vd24nKSkgLy9wcmV2ZW50IGVtcHR5IHN0cmluZ3NcbiAgICAucmVkdWNlKFxuICAgICAgKHByZXYsIGN1cnIpID0+XG4gICAgICAgIGN1cnIudG9Mb3dlckNhc2UoKS5lbmRzV2l0aCgnaWQnKVxuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAuLi5wcmV2LFxuICAgICAgICAgICAgICBpZDogb2JqZWN0W2N1cnJdLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIDoge1xuICAgICAgICAgICAgICAuLi5wcmV2LFxuICAgICAgICAgICAgICBwcm9wZXJ0aWVzOiB7IC4uLnByZXYucHJvcGVydGllcywgW2N1cnJdOiBvYmplY3RbY3Vycl0gfSxcbiAgICAgICAgICAgIH0sXG4gICAgICB7IGlkOiB1bmRlZmluZWQsIHByb3BlcnRpZXM6IHt9IH1cbiAgICApXG4gIHJldHVybiB7XG4gICAgdHlwZTogJ0ZlYXR1cmUnLFxuICAgIGdlb21ldHJ5OiBudWxsLFxuICAgIHByb3BlcnRpZXMsXG4gICAgLi4uKGlkICE9PSB1bmRlZmluZWQgJiYgeyBpZCB9KSxcbiAgfVxufVxuXG5mdW5jdGlvbiBtdXRhdGVQcm9wZXJ0aWVzKFxuICBpdGVtczogRGF0YUl0ZW1bXSxcbiAgbXV0YXRvcnM6IHsgW2ZpZWxkTmFtZTogc3RyaW5nXTogKHZhbHVlOiB1bmtub3duKSA9PiB1bmtub3duIH1cbik6IERhdGFJdGVtW10ge1xuICBjb25zdCBtdXRhdG9yS2V5cyA9IE9iamVjdC5rZXlzKG11dGF0b3JzKVxuICBmb3IgKGxldCBpID0gMCwgaWkgPSBpdGVtcy5sZW5ndGg7IGkgPCBpaTsgaSsrKSB7XG4gICAgY29uc3QgaXRlbSA9IGl0ZW1zW2ldXG4gICAgZm9yIChjb25zdCBtdXRhdG9yRmllbGQgb2YgbXV0YXRvcktleXMpIHtcbiAgICAgIGlmICghKG11dGF0b3JGaWVsZCBpbiBpdGVtLnByb3BlcnRpZXMpKSBjb250aW51ZVxuICAgICAgaXRlbS5wcm9wZXJ0aWVzW211dGF0b3JGaWVsZF0gPSBtdXRhdG9yc1ttdXRhdG9yRmllbGRdKFxuICAgICAgICBpdGVtLnByb3BlcnRpZXNbbXV0YXRvckZpZWxkXVxuICAgICAgKVxuICAgIH1cbiAgfVxuICByZXR1cm4gaXRlbXNcbn1cblxuY29uc3QgU0FNUExFX1NJWkUgPSAyMFxuXG4vKipcbiAqIFRoaXMgd2lsbCBpbmZlciBmaWVsZCB0eXBlcyBmcm9tIGEgbGlzdCBvZiBkYXRhIGl0ZW1zIGFuZCBjYXN0IHRoZSB2YWx1ZXMgYWNjb3JkaW5nbHlcbiAqIEBwYXJhbSBpdGVtc1xuICogQHBhcmFtIGluZmVyVHlwZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb2Nlc3NJdGVtUHJvcGVydGllcyhcbiAgaXRlbXM6IERhdGFJdGVtW10sXG4gIGluZmVyVHlwZXMgPSBmYWxzZVxuKToge1xuICBpdGVtczogRGF0YUl0ZW1bXVxuICBwcm9wZXJ0aWVzOiBQcm9wZXJ0eUluZm9bXVxufSB7XG4gIGNvbnN0IGZvdW5kRmllbGRzOiB7IFtuYW1lOiBzdHJpbmddOiBQcm9wZXJ0eUluZm8gfSA9IHt9XG4gIGZvciAobGV0IGkgPSAwLCBpaSA9IE1hdGgubWluKFNBTVBMRV9TSVpFLCBpdGVtcy5sZW5ndGgpOyBpIDwgaWk7IGkrKykge1xuICAgIGNvbnN0IGl0ZW0gPSBpdGVtc1tpXVxuICAgIGNvbnN0IGZpZWxkcyA9IE9iamVjdC5rZXlzKGl0ZW0ucHJvcGVydGllcylcbiAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIGZpZWxkcykge1xuICAgICAgaWYgKCEoZmllbGQgaW4gZm91bmRGaWVsZHMpKSB7XG4gICAgICAgIGZvdW5kRmllbGRzW2ZpZWxkXSA9IHtcbiAgICAgICAgICBsYWJlbDogZmllbGQsXG4gICAgICAgICAgbmFtZTogZmllbGQsXG4gICAgICAgICAgdHlwZTogbnVsbCxcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgY29uc3QgdmFsdWUgPSBpdGVtLnByb3BlcnRpZXNbZmllbGRdXG4gICAgICBjb25zdCBpbmZvID0gZm91bmRGaWVsZHNbZmllbGRdXG4gICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gJycgfHwgdmFsdWUgPT09IG51bGwpIGNvbnRpbnVlXG5cbiAgICAgIGlmICghaW5mZXJUeXBlcykge1xuICAgICAgICBpZiAoaW5mby50eXBlID09PSBudWxsICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICBpbmZvLnR5cGUgPSAnbnVtYmVyJ1xuICAgICAgICB9IGVsc2UgaWYgKGluZm8udHlwZSA9PT0gJ251bWJlcicgJiYgdHlwZW9mIHZhbHVlICE9PSAnbnVtYmVyJykge1xuICAgICAgICAgIGluZm8udHlwZSA9ICdzdHJpbmcnXG4gICAgICAgIH1cbiAgICAgICAgY29udGludWVcbiAgICAgIH1cblxuICAgICAgY29uc3QgcGFyc2VkTnVtYmVyID0gdHJ5UGFyc2VOdW1iZXIodmFsdWUpXG4gICAgICBpZiAoaW5mby50eXBlID09PSBudWxsICYmIHBhcnNlZE51bWJlciAhPT0gbnVsbCkge1xuICAgICAgICBpbmZvLnR5cGUgPSAnbnVtYmVyJ1xuICAgICAgICBjb250aW51ZVxuICAgICAgfSBlbHNlIGlmIChpbmZvLnR5cGUgPT09ICdudW1iZXInICYmIHBhcnNlZE51bWJlciA9PT0gbnVsbCkge1xuICAgICAgICBpbmZvLnR5cGUgPSAnc3RyaW5nJ1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgY29uc3QgcGFyc2VkRGF0ZSA9IHRyeVBhcnNlRGF0ZSh2YWx1ZSlcbiAgICAgIGlmIChpbmZvLnR5cGUgPT09IG51bGwgJiYgcGFyc2VkRGF0ZSAhPT0gbnVsbCkge1xuICAgICAgICBpbmZvLnR5cGUgPSAnZGF0ZSdcbiAgICAgIH0gZWxzZSBpZiAoaW5mby50eXBlID09PSAnZGF0ZScgJiYgcGFyc2VkRGF0ZSA9PT0gbnVsbCkge1xuICAgICAgICBpbmZvLnR5cGUgPSAnc3RyaW5nJ1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHByb3BlcnRpZXM6IFByb3BlcnR5SW5mb1tdID0gW11cbiAgY29uc3QgbXV0YXRvcnMgPSB7fVxuICBmb3IgKGNvbnN0IGZpZWxkIGluIGZvdW5kRmllbGRzKSB7XG4gICAgY29uc3QgaW5mbyA9IGZvdW5kRmllbGRzW2ZpZWxkXVxuICAgIGlmIChpbmZvLnR5cGUgPT09ICdudW1iZXInKSB7XG4gICAgICBtdXRhdG9yc1tmaWVsZF0gPSB0cnlQYXJzZU51bWJlclxuICAgIH0gZWxzZSBpZiAoaW5mby50eXBlID09PSAnZGF0ZScpIHtcbiAgICAgIG11dGF0b3JzW2ZpZWxkXSA9IHRyeVBhcnNlRGF0ZVxuICAgIH1cbiAgICBwcm9wZXJ0aWVzLnB1c2goeyAuLi5pbmZvLCB0eXBlOiBpbmZvLnR5cGUgfHwgJ3N0cmluZycgfSlcbiAgfVxuICBpZiAoaW5mZXJUeXBlcykge1xuICAgIG11dGF0ZVByb3BlcnRpZXMoaXRlbXMsIG11dGF0b3JzKVxuICB9XG4gIHJldHVybiB7IGl0ZW1zLCBwcm9wZXJ0aWVzIH1cbn1cblxuLyoqXG4gKiBUaGlzIGNyZWF0ZXMgYSBQcm94eSB0aGF0IGFsbG93cyByZWFkaW5nIGFuZCB3cml0aW5nIHRvIHRoZSBkYXRhIGl0ZW0gcHJvcGVydGllc1xuICogYXMgaWYgaXQgd2FzIGEgc2ltcGxlIGFycmF5IG9mIEpTT04gb2JqZWN0c1xuICogQHBhcmFtIGl0ZW1zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRKc29uRGF0YUl0ZW1zUHJveHkoXG4gIGl0ZW1zOiBEYXRhSXRlbVtdXG4pOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPltdIHtcbiAgcmV0dXJuIG5ldyBQcm94eTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPltdPihpdGVtcyBhcyBhbnksIHtcbiAgICBnZXQodGFyZ2V0OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPltdLCBwOiBzdHJpbmcgfCBzeW1ib2wpIHtcbiAgICAgIGlmIChcbiAgICAgICAgdHlwZW9mIHAgPT09ICdzdHJpbmcnICYmXG4gICAgICAgICFOdW1iZXIuaXNOYU4ocGFyc2VJbnQocCkpICYmXG4gICAgICAgIHRhcmdldFtwXT8ucHJvcGVydGllc1xuICAgICAgKSB7XG4gICAgICAgIHJldHVybiB0YXJnZXRbcF0ucHJvcGVydGllc1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRhcmdldFtwXVxuICAgIH0sXG4gICAgc2V0KCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGlzIG9iamVjdCBpcyByZWFkLW9ubHknKVxuICAgIH0sXG4gIH0pXG59XG4iXX0=
211
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvZGF0YS1mZXRjaGVyL3NyYy9saWIvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLFVBQVUsRUFHVixjQUFjLEdBQ2YsTUFBTSxTQUFTLENBQUE7QUFDaEIsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxLQUFLLElBQUksU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDbkQsT0FBTyxFQUFFLFFBQVEsSUFBSSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUU1RCxNQUFNLENBQUMsS0FBSyxVQUFVLGdCQUFnQixDQUNwQyxHQUFXLEVBQ1gsUUFBd0I7SUFFeEIsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLEdBQUcsQ0FDbEMsR0FBRyxFQUNILE9BQU8sTUFBTSxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUN2RSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUE7SUFDM0IsTUFBTSxhQUFhLEdBQ2pCLG9CQUFvQixJQUFJLG9CQUFvQixDQUFDLE1BQU07UUFDakQsQ0FBQyxDQUFFLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBb0I7UUFDMUQsQ0FBQyxDQUFDLElBQUksQ0FBQTtJQUVWLGVBQWU7SUFDZixJQUFJLFFBQVE7UUFBRSxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUE7SUFFOUMseUJBQXlCO0lBQ3pCLE1BQU0sT0FBTyxHQUFHLE1BQU0sWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ3ZD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SUFDRCxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxDQUFBO0FBQzlCLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLHFCQUFxQixDQUNuQyxLQUFpQjtJQUVqQixPQUFPLElBQUksS0FBSyxDQUE0QixLQUFZLEVBQUU7UUFDeEQsR0FBRyxDQUFDLE1BQWlDLEVBQUUsQ0FBa0I7WUFDdkQsSUFDRSxPQUFPLENBQUMsS0FBSyxRQUFRO2dCQUNyQixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMxQixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxFQUNyQixDQUFDO2dCQUNELE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQTtZQUM3QixDQUFDO1lBQ0QsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDbEIsQ0FBQztRQUNELEdBQUc7WUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUE7UUFDN0MsQ0FBQztLQUNGLENBQUMsQ0FBQTtBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEYXRhSXRlbSxcbiAgRGF0YXNldEhlYWRlcnMsXG4gIEZldGNoRXJyb3IsXG4gIFByb3BlcnR5SW5mbyxcbiAgU3VwcG9ydGVkVHlwZSxcbiAgU3VwcG9ydGVkVHlwZXMsXG59IGZyb20gJy4vbW9kZWwnXG5pbXBvcnQgeyBzaGFyZWRGZXRjaCwgdXNlQ2FjaGUgfSBmcm9tICdAY2FtcHRvY2FtcC9vZ2MtY2xpZW50J1xuaW1wb3J0IHsgcGFyc2VIZWFkZXJzIH0gZnJvbSAnLi9oZWFkZXJzJ1xuaW1wb3J0IHsgcGFyc2UgYXMgcGFyc2VEYXRlIH0gZnJvbSAnZGF0ZS1mbnMvcGFyc2UnXG5pbXBvcnQgeyBwYXJzZUlTTyBhcyBwYXJzZUlzb0RhdGUgfSBmcm9tICdkYXRlLWZucy9wYXJzZUlTTydcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGluZmVyRGF0YXNldFR5cGUoXG4gIHVybDogc3RyaW5nLFxuICB0eXBlSGludD86IFN1cHBvcnRlZFR5cGVcbik6IFByb21pc2U8U3VwcG9ydGVkVHlwZT4ge1xuICBjb25zdCBmaWxlRXh0ZW5zaW9uTWF0Y2hlcyA9IG5ldyBVUkwoXG4gICAgdXJsLFxuICAgIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnID8gd2luZG93LmxvY2F0aW9uLnRvU3RyaW5nKCkgOiB1bmRlZmluZWRcbiAgKS5wYXRobmFtZS5tYXRjaCgvXFwuKC4rKSQvKVxuICBjb25zdCBmaWxlRXh0ZW5zaW9uID1cbiAgICBmaWxlRXh0ZW5zaW9uTWF0Y2hlcyAmJiBmaWxlRXh0ZW5zaW9uTWF0Y2hlcy5sZW5ndGhcbiAgICAgID8gKGZpbGVFeHRlbnNpb25NYXRjaGVzWzFdLnRvTG93ZXJDYXNlKCkgYXMgU3VwcG9ydGVkVHlwZSlcbiAgICAgIDogbnVsbFxuXG4gIC8vIDEuIHR5cGUgaGludFxuICBpZiAodHlwZUhpbnQpIHJldHVybiBQcm9taXNlLnJlc29sdmUodHlwZUhpbnQpXG5cbiAgLy8gMi4gY29udGVudC10eXBlIGhlYWRlclxuICBjb25zdCBoZWFkZXJzID0gYXdhaXQgZmV0Y2hIZWFkZXJzKHVybClcbiAgaWYgKCdzdXBwb3J0ZWRUeXBlJyBpbiBoZWFkZXJzKSByZXR1cm4gaGVhZGVycy5zdXBwb3J0ZWRUeXBlXG4gIC8vIDMuIGZpbGUgZXh0ZW5zaW9uIGZyb20gdXJsXG4gIGVsc2UgaWYgKFN1cHBvcnRlZFR5cGVzLmluZGV4T2YoZmlsZUV4dGVuc2lvbikgPiAtMSkgcmV0dXJuIGZpbGVFeHRlbnNpb25cblxuICAvLyBubyB0eXBlIGluZmVycmVkIG9yIGhpbnRlZFxuICBpZiAoJ21pbWVUeXBlJyBpbiBoZWFkZXJzKSB0aHJvdyBGZXRjaEVycm9yLnVuc3VwcG9ydGVkVHlwZShoZWFkZXJzLm1pbWVUeXBlKVxuICBlbHNlIHRocm93IEZldGNoRXJyb3IudW5rbm93blR5cGUoKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZmV0Y2hIZWFkZXJzKHVybDogc3RyaW5nKTogUHJvbWlzZTxEYXRhc2V0SGVhZGVycz4ge1xuICByZXR1cm4gc2hhcmVkRmV0Y2godXJsLCAnSEVBRCcpXG4gICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgdGhyb3cgRmV0Y2hFcnJvci5jb3JzT3JOZXR3b3JrKGVycm9yLm1lc3NhZ2UpXG4gICAgfSlcbiAgICAudGhlbigocmVzcG9uc2UpID0+IHtcbiAgICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgICAgdGhyb3cgRmV0Y2hFcnJvci5odHRwKHJlc3BvbnNlLnN0YXR1cylcbiAgICAgIH1cbiAgICAgIHJldHVybiBwYXJzZUhlYWRlcnMocmVzcG9uc2UuaGVhZGVycylcbiAgICB9KVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZmV0Y2hEYXRhQXNUZXh0KFxuICB1cmw6IHN0cmluZyxcbiAgY2FjaGVBY3RpdmU6IGJvb2xlYW5cbik6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IGZldGNoRmFjdG9yeSA9ICgpID0+XG4gICAgc2hhcmVkRmV0Y2godXJsKVxuICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICB0aHJvdyBGZXRjaEVycm9yLmNvcnNPck5ldHdvcmsoZXJyb3IubWVzc2FnZSlcbiAgICAgIH0pXG4gICAgICAudGhlbihhc3luYyAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICAgIGNvbnN0IGNsb25lZFJlc3BvbnNlID0gcmVzcG9uc2UuY2xvbmUoKVxuICAgICAgICAgIHRocm93IEZldGNoRXJyb3IuaHR0cChyZXNwb25zZS5zdGF0dXMsIGF3YWl0IGNsb25lZFJlc3BvbnNlLnRleHQoKSlcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjbG9uZWRSZXNwb25zZSA9IHJlc3BvbnNlLmNsb25lKClcbiAgICAgICAgcmV0dXJuIGNsb25lZFJlc3BvbnNlLnRleHQoKVxuICAgICAgfSlcblxuICByZXR1cm4gY2FjaGVBY3RpdmUgPyB1c2VDYWNoZShmZXRjaEZhY3RvcnksIHVybCwgJ2FzVGV4dCcpIDogZmV0Y2hGYWN0b3J5KClcbn1cbmV4cG9ydCBmdW5jdGlvbiBmZXRjaERhdGFBc0FycmF5QnVmZmVyKFxuICB1cmw6IHN0cmluZyxcbiAgY2FjaGVBY3RpdmU6IGJvb2xlYW5cbik6IFByb21pc2U8QXJyYXlCdWZmZXI+IHtcbiAgY29uc3QgZmV0Y2hGYWN0b3J5ID0gKCkgPT5cbiAgICBzaGFyZWRGZXRjaCh1cmwpXG4gICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgIHRocm93IEZldGNoRXJyb3IuY29yc09yTmV0d29yayhlcnJvci5tZXNzYWdlKVxuICAgICAgfSlcbiAgICAgIC50aGVuKGFzeW5jIChyZXNwb25zZSkgPT4ge1xuICAgICAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICAgICAgdGhyb3cgRmV0Y2hFcnJvci5odHRwKHJlc3BvbnNlLnN0YXR1cywgYXdhaXQgcmVzcG9uc2UudGV4dCgpKVxuICAgICAgICB9XG4gICAgICAgIC8vIGNvbnZlcnQgdG8gYSBudW1lcmljIGFycmF5IHNvIHRoYXQgd2UgY2FuIHN0b3JlIHRoZSByZXNwb25zZSBpbiBjYWNoZVxuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbShuZXcgVWludDhBcnJheShhd2FpdCByZXNwb25zZS5hcnJheUJ1ZmZlcigpKSlcbiAgICAgIH0pXG5cbiAgcmV0dXJuIChcbiAgICBjYWNoZUFjdGl2ZSA/IHVzZUNhY2hlKGZldGNoRmFjdG9yeSwgdXJsLCAnYXNBcnJheUJ1ZmZlcicpIDogZmV0Y2hGYWN0b3J5KClcbiAgKS50aGVuKChhcnJheSkgPT4ge1xuICAgIHJldHVybiBuZXcgVWludDhBcnJheShhcnJheSkuYnVmZmVyXG4gIH0pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cnlQYXJzZURhdGUoaW5wdXQ6IHVua25vd24pOiBEYXRlIHwgbnVsbCB7XG4gIGlmICh0eXBlb2YgaW5wdXQgIT09ICdzdHJpbmcnKSByZXR1cm4gbnVsbFxuXG4gIGZ1bmN0aW9uIHRyeUlzbyh2YWx1ZTogc3RyaW5nKSB7XG4gICAgY29uc3QgcGFyc2VkID0gcGFyc2VJc29EYXRlKHZhbHVlKVxuICAgIHJldHVybiBpc05hTihwYXJzZWQuZ2V0RGF0ZSgpKSA/IG51bGwgOiBwYXJzZWRcbiAgfVxuICBmdW5jdGlvbiB0cnlGb3JtYXQodmFsdWU6IHN0cmluZywgZm9ybWF0OiBzdHJpbmcpIHtcbiAgICBjb25zdCBwYXJzZWQgPSBwYXJzZURhdGUodmFsdWUsIGZvcm1hdCwgbmV3IERhdGUoKSlcbiAgICByZXR1cm4gaXNOYU4ocGFyc2VkLmdldERhdGUoKSkgPyBudWxsIDogcGFyc2VkXG4gIH1cbiAgcmV0dXJuIChcbiAgICB0cnlJc28oaW5wdXQpIHx8XG4gICAgdHJ5Rm9ybWF0KGlucHV0LCAnZGQvTU0veXl5eScpIHx8XG4gICAgdHJ5Rm9ybWF0KGlucHV0LCAnZGQuTU0ueXl5eScpIHx8XG4gICAgdHJ5Rm9ybWF0KGlucHV0LCAnTU0vZGQveXl5eScpIHx8XG4gICAgbnVsbFxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cnlQYXJzZU51bWJlcihpbnB1dDogc3RyaW5nKTogbnVtYmVyIHwgbnVsbCB7XG4gIGlmIChpc05hTihpbnB1dCBhcyBhbnkpKSByZXR1cm4gbnVsbFxuICBjb25zdCBwYXJzZWQgPSBwYXJzZUZsb2F0KGlucHV0KVxuICByZXR1cm4gaXNOYU4ocGFyc2VkKSA/IG51bGwgOiBwYXJzZWRcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGpzb25Ub0dlb2pzb25GZWF0dXJlKG9iamVjdDogeyBba2V5OiBzdHJpbmddOiBhbnkgfSk6IERhdGFJdGVtIHtcbiAgY29uc3QgeyBpZCwgcHJvcGVydGllcyB9ID0gT2JqZWN0LmtleXMob2JqZWN0KVxuICAgIC5tYXAoKHByb3BlcnR5KSA9PiAocHJvcGVydHkgPyBwcm9wZXJ0eSA6ICd1bmtub3duJykpIC8vcHJldmVudCBlbXB0eSBzdHJpbmdzXG4gICAgLnJlZHVjZShcbiAgICAgIChwcmV2LCBjdXJyKSA9PlxuICAgICAgICBjdXJyLnRvTG93ZXJDYXNlKCkuZW5kc1dpdGgoJ2lkJylcbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgLi4ucHJldixcbiAgICAgICAgICAgICAgaWQ6IG9iamVjdFtjdXJyXSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA6IHtcbiAgICAgICAgICAgICAgLi4ucHJldixcbiAgICAgICAgICAgICAgcHJvcGVydGllczogeyAuLi5wcmV2LnByb3BlcnRpZXMsIFtjdXJyXTogb2JqZWN0W2N1cnJdIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgeyBpZDogdW5kZWZpbmVkLCBwcm9wZXJ0aWVzOiB7fSB9XG4gICAgKVxuICByZXR1cm4ge1xuICAgIHR5cGU6ICdGZWF0dXJlJyxcbiAgICBnZW9tZXRyeTogbnVsbCxcbiAgICBwcm9wZXJ0aWVzLFxuICAgIC4uLihpZCAhPT0gdW5kZWZpbmVkICYmIHsgaWQgfSksXG4gIH1cbn1cblxuZnVuY3Rpb24gbXV0YXRlUHJvcGVydGllcyhcbiAgaXRlbXM6IERhdGFJdGVtW10sXG4gIG11dGF0b3JzOiB7IFtmaWVsZE5hbWU6IHN0cmluZ106ICh2YWx1ZTogdW5rbm93bikgPT4gdW5rbm93biB9XG4pOiBEYXRhSXRlbVtdIHtcbiAgY29uc3QgbXV0YXRvcktleXMgPSBPYmplY3Qua2V5cyhtdXRhdG9ycylcbiAgZm9yIChsZXQgaSA9IDAsIGlpID0gaXRlbXMubGVuZ3RoOyBpIDwgaWk7IGkrKykge1xuICAgIGNvbnN0IGl0ZW0gPSBpdGVtc1tpXVxuICAgIGZvciAoY29uc3QgbXV0YXRvckZpZWxkIG9mIG11dGF0b3JLZXlzKSB7XG4gICAgICBpZiAoIShtdXRhdG9yRmllbGQgaW4gaXRlbS5wcm9wZXJ0aWVzKSkgY29udGludWVcbiAgICAgIGl0ZW0ucHJvcGVydGllc1ttdXRhdG9yRmllbGRdID0gbXV0YXRvcnNbbXV0YXRvckZpZWxkXShcbiAgICAgICAgaXRlbS5wcm9wZXJ0aWVzW211dGF0b3JGaWVsZF1cbiAgICAgIClcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGl0ZW1zXG59XG5cbmNvbnN0IFNBTVBMRV9TSVpFID0gMjBcblxuLyoqXG4gKiBUaGlzIHdpbGwgaW5mZXIgZmllbGQgdHlwZXMgZnJvbSBhIGxpc3Qgb2YgZGF0YSBpdGVtcyBhbmQgY2FzdCB0aGUgdmFsdWVzIGFjY29yZGluZ2x5XG4gKiBAcGFyYW0gaXRlbXNcbiAqIEBwYXJhbSBpbmZlclR5cGVzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm9jZXNzSXRlbVByb3BlcnRpZXMoXG4gIGl0ZW1zOiBEYXRhSXRlbVtdLFxuICBpbmZlclR5cGVzID0gZmFsc2Vcbik6IHtcbiAgaXRlbXM6IERhdGFJdGVtW11cbiAgcHJvcGVydGllczogUHJvcGVydHlJbmZvW11cbn0ge1xuICBjb25zdCBmb3VuZEZpZWxkczogeyBbbmFtZTogc3RyaW5nXTogUHJvcGVydHlJbmZvIH0gPSB7fVxuICBmb3IgKGxldCBpID0gMCwgaWkgPSBNYXRoLm1pbihTQU1QTEVfU0laRSwgaXRlbXMubGVuZ3RoKTsgaSA8IGlpOyBpKyspIHtcbiAgICBjb25zdCBpdGVtID0gaXRlbXNbaV1cbiAgICBjb25zdCBmaWVsZHMgPSBPYmplY3Qua2V5cyhpdGVtLnByb3BlcnRpZXMpXG4gICAgZm9yIChjb25zdCBmaWVsZCBvZiBmaWVsZHMpIHtcbiAgICAgIGlmICghKGZpZWxkIGluIGZvdW5kRmllbGRzKSkge1xuICAgICAgICBmb3VuZEZpZWxkc1tmaWVsZF0gPSB7XG4gICAgICAgICAgbGFiZWw6IGZpZWxkLFxuICAgICAgICAgIG5hbWU6IGZpZWxkLFxuICAgICAgICAgIHR5cGU6IG51bGwsXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNvbnN0IHZhbHVlID0gaXRlbS5wcm9wZXJ0aWVzW2ZpZWxkXVxuICAgICAgY29uc3QgaW5mbyA9IGZvdW5kRmllbGRzW2ZpZWxkXVxuICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09ICcnIHx8IHZhbHVlID09PSBudWxsKSBjb250aW51ZVxuXG4gICAgICBpZiAoIWluZmVyVHlwZXMpIHtcbiAgICAgICAgaWYgKGluZm8udHlwZSA9PT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgaW5mby50eXBlID0gJ251bWJlcidcbiAgICAgICAgfSBlbHNlIGlmIChpbmZvLnR5cGUgPT09ICdudW1iZXInICYmIHR5cGVvZiB2YWx1ZSAhPT0gJ251bWJlcicpIHtcbiAgICAgICAgICBpbmZvLnR5cGUgPSAnc3RyaW5nJ1xuICAgICAgICB9XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHBhcnNlZE51bWJlciA9IHRyeVBhcnNlTnVtYmVyKHZhbHVlKVxuICAgICAgaWYgKGluZm8udHlwZSA9PT0gbnVsbCAmJiBwYXJzZWROdW1iZXIgIT09IG51bGwpIHtcbiAgICAgICAgaW5mby50eXBlID0gJ251bWJlcidcbiAgICAgICAgY29udGludWVcbiAgICAgIH0gZWxzZSBpZiAoaW5mby50eXBlID09PSAnbnVtYmVyJyAmJiBwYXJzZWROdW1iZXIgPT09IG51bGwpIHtcbiAgICAgICAgaW5mby50eXBlID0gJ3N0cmluZydcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IHBhcnNlZERhdGUgPSB0cnlQYXJzZURhdGUodmFsdWUpXG4gICAgICBpZiAoaW5mby50eXBlID09PSBudWxsICYmIHBhcnNlZERhdGUgIT09IG51bGwpIHtcbiAgICAgICAgaW5mby50eXBlID0gJ2RhdGUnXG4gICAgICB9IGVsc2UgaWYgKGluZm8udHlwZSA9PT0gJ2RhdGUnICYmIHBhcnNlZERhdGUgPT09IG51bGwpIHtcbiAgICAgICAgaW5mby50eXBlID0gJ3N0cmluZydcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdCBwcm9wZXJ0aWVzOiBQcm9wZXJ0eUluZm9bXSA9IFtdXG4gIGNvbnN0IG11dGF0b3JzID0ge31cbiAgZm9yIChjb25zdCBmaWVsZCBpbiBmb3VuZEZpZWxkcykge1xuICAgIGNvbnN0IGluZm8gPSBmb3VuZEZpZWxkc1tmaWVsZF1cbiAgICBpZiAoaW5mby50eXBlID09PSAnbnVtYmVyJykge1xuICAgICAgbXV0YXRvcnNbZmllbGRdID0gdHJ5UGFyc2VOdW1iZXJcbiAgICB9IGVsc2UgaWYgKGluZm8udHlwZSA9PT0gJ2RhdGUnKSB7XG4gICAgICBtdXRhdG9yc1tmaWVsZF0gPSB0cnlQYXJzZURhdGVcbiAgICB9XG4gICAgcHJvcGVydGllcy5wdXNoKHsgLi4uaW5mbywgdHlwZTogaW5mby50eXBlIHx8ICdzdHJpbmcnIH0pXG4gIH1cbiAgaWYgKGluZmVyVHlwZXMpIHtcbiAgICBtdXRhdGVQcm9wZXJ0aWVzKGl0ZW1zLCBtdXRhdG9ycylcbiAgfVxuICByZXR1cm4geyBpdGVtcywgcHJvcGVydGllcyB9XG59XG5cbi8qKlxuICogVGhpcyBjcmVhdGVzIGEgUHJveHkgdGhhdCBhbGxvd3MgcmVhZGluZyBhbmQgd3JpdGluZyB0byB0aGUgZGF0YSBpdGVtIHByb3BlcnRpZXNcbiAqIGFzIGlmIGl0IHdhcyBhIHNpbXBsZSBhcnJheSBvZiBKU09OIG9iamVjdHNcbiAqIEBwYXJhbSBpdGVtc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0SnNvbkRhdGFJdGVtc1Byb3h5KFxuICBpdGVtczogRGF0YUl0ZW1bXVxuKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj5bXSB7XG4gIHJldHVybiBuZXcgUHJveHk8UmVjb3JkPHN0cmluZywgdW5rbm93bj5bXT4oaXRlbXMgYXMgYW55LCB7XG4gICAgZ2V0KHRhcmdldDogUmVjb3JkPHN0cmluZywgdW5rbm93bj5bXSwgcDogc3RyaW5nIHwgc3ltYm9sKSB7XG4gICAgICBpZiAoXG4gICAgICAgIHR5cGVvZiBwID09PSAnc3RyaW5nJyAmJlxuICAgICAgICAhTnVtYmVyLmlzTmFOKHBhcnNlSW50KHApKSAmJlxuICAgICAgICB0YXJnZXRbcF0/LnByb3BlcnRpZXNcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gdGFyZ2V0W3BdLnByb3BlcnRpZXNcbiAgICAgIH1cbiAgICAgIHJldHVybiB0YXJnZXRbcF1cbiAgICB9LFxuICAgIHNldCgpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGhpcyBvYmplY3QgaXMgcmVhZC1vbmx5JylcbiAgICB9LFxuICB9KVxufVxuIl19
@@ -36,24 +36,6 @@
36
36
  "dashboard.records.userEmail": "E-Mail",
37
37
  "dashboard.records.username": "Benutzername",
38
38
  "dashboard.records.users": "{count, plural, =1{Benutzer} other{Benutzer}}",
39
- "datafeeder.analysisProgressBar.illustration.fileFormatDetection": "Dateiformat-Erkennung",
40
- "datafeeder.analysisProgressBar.illustration.gatheringDatasetInformation": "Sammeln von Datensatzinformationen",
41
- "datafeeder.analysisProgressBar.illustration.samplingData": "Datenauswahl",
42
- "datafeeder.analysisProgressBar.subtitle": "Die Analyse kann einige Minuten dauern. Bitte warten Sie.",
43
- "datafeeder.analysisProgressBar.title": "Analyse in Bearbeitung",
44
- "datafeeder.datasetValidation.datasetInformation": "Der bereitgestellte Datensatz enthält {number} Elemente",
45
- "datafeeder.datasetValidation.submitButton": "OK, meine Daten sind korrekt",
46
- "datafeeder.datasetValidation.title": "Stellen Sie sicher, dass Ihre Daten korrekt sind",
47
- "datafeeder.datasetValidation.unknown": " - ",
48
- "datafeeder.datasetValidationCsv.explicitLineNumbers": "",
49
- "datafeeder.datasetValidationCsv.lineNumbers": "",
50
- "datafeeder.form.abstract": "Wie würden Sie Ihren Datensatz beschreiben?",
51
- "datafeeder.form.datepicker": "Wissen Sie, wann der Datensatz erstellt wurde?",
52
- "datafeeder.form.description": "Beschreiben Sie abschließend den Prozess, der zur Erstellung des Datensatzes verwendet wurde",
53
- "datafeeder.form.dropdown": "Für welche Skala wurde er erstellt?",
54
- "datafeeder.form.tags": "Wählen Sie einen oder mehrere Tage aus, die zu Ihrem Datensatz passen",
55
- "datafeeder.form.title": "Geben Sie Ihrem Datensatz den besten Titel",
56
- "datafeeder.formsPage.title": "Erzählen Sie uns mehr über Ihren Datensatz",
57
39
  "datafeeder.month.april": "April",
58
40
  "datafeeder.month.august": "August",
59
41
  "datafeeder.month.december": "Dezember",
@@ -66,59 +48,6 @@
66
48
  "datafeeder.month.november": "November",
67
49
  "datafeeder.month.october": "Oktober",
68
50
  "datafeeder.month.september": "September",
69
- "datafeeder.publish.hint": "Sie können diese Seite sicher verlassen. Sie werden benachrichtigt, wenn der Vorgang abgeschlossen ist.",
70
- "datafeeder.publish.illustration.title": "Ein weiterer Datensatz \n zum Veröffentlichen?",
71
- "datafeeder.publish.subtitle": "Das Veröffentlichen kann einige Minuten dauern.",
72
- "datafeeder.publish.title": "Vielen Dank! \n Ihr Datensatz wird veröffentlicht",
73
- "datafeeder.publish.upload": "Jetzt hochladen",
74
- "datafeeder.publishSuccess.geonetworkRecord": "Metadatensatz",
75
- "datafeeder.publishSuccess.illustration.title": "Erledigt, alles ist gut!",
76
- "datafeeder.publishSuccess.mapViewer": "Kartenviewer",
77
- "datafeeder.publishSuccess.ogcFeature": "",
78
- "datafeeder.publishSuccess.subtitle": "Zeigen Sie Ihre Daten an in:",
79
- "datafeeder.publishSuccess.title": "Herzlichen Glückwunsch! \n Ihr Datensatz wurde veröffentlicht",
80
- "datafeeder.publishSuccess.uploadAnotherData": "Ein weiteren Datensatz hochladen",
81
- "datafeeder.summarizePage.illustration": "Kein Fehler? Los geht's!",
82
- "datafeeder.summarizePage.previous": "Zurück",
83
- "datafeeder.summarizePage.submit": "Absenden",
84
- "datafeeder.summarizePage.title": "Sie sind fast fertig...",
85
- "datafeeder.upload.acceptedFormats": "Akzeptierte Dateiformate:",
86
- "datafeeder.upload.checkboxLabel": "Ich besitze die Rechte zur Veröffentlichung dieses Datensatzes",
87
- "datafeeder.upload.error.subtitle.analysis": "Überprüfen Sie, ob die Datei einen gültigen geografischen Datensatz enthält",
88
- "datafeeder.upload.error.subtitle.cantOpenFile": "Bitte überprüfen Sie, ob die Datei gültig ist",
89
- "datafeeder.upload.error.subtitle.fileFormat": "Beachten Sie: Nur SHP-Dateien",
90
- "datafeeder.upload.error.subtitle.fileSize": "Beachten Sie: Maximale Dateigröße {size} MB",
91
- "datafeeder.upload.error.title.analysis": "Fehler während der Datensatzanalyse",
92
- "datafeeder.upload.error.title.cantOpenFile": "Fehler beim Öffnen der Datei",
93
- "datafeeder.upload.error.title.fileFormat": "Das ausgewählte Dateiformat wird nicht unterstützt",
94
- "datafeeder.upload.error.title.fileHasntSelected": "Keine Datei ausgewählt",
95
- "datafeeder.upload.error.title.fileSize": "Die Dateigröße ist zu groß",
96
- "datafeeder.upload.error.title.noRightsToSendData": "Sie dürfen diesen Datensatz nicht veröffentlichen",
97
- "datafeeder.upload.illustration.enrichment": "Anreicherung",
98
- "datafeeder.upload.illustration.import": "Import",
99
- "datafeeder.upload.illustration.title": "Das Hinzufügen von Daten \n war noch nie so einfach",
100
- "datafeeder.upload.illustration.validation": "Validierung",
101
- "datafeeder.upload.illustration.verification": "Überprüfung",
102
- "datafeeder.upload.inputLabel": "Importieren Sie Ihre Datei",
103
- "datafeeder.upload.maxFileSize": "Maximale Dateigröße beträgt {size} MB",
104
- "datafeeder.upload.title": "Laden Sie Ihren Datensatz hoch",
105
- "datafeeder.upload.uploadButton": "Hochladen",
106
- "datafeeder.validation.csv.delimiter": "",
107
- "datafeeder.validation.csv.delimiter.comma": "",
108
- "datafeeder.validation.csv.delimiter.semicolon": "",
109
- "datafeeder.validation.csv.lat.field": "",
110
- "datafeeder.validation.csv.lng.field": "",
111
- "datafeeder.validation.csv.quote.double": "",
112
- "datafeeder.validation.csv.quote.none": "",
113
- "datafeeder.validation.csv.quote.simple": "",
114
- "datafeeder.validation.csv.quoteChar": "",
115
- "datafeeder.validation.encoding": "Codierung",
116
- "datafeeder.validation.extent.title": "Hier ist der Datensatzumfang",
117
- "datafeeder.validation.extent.title.unknown": "Das Projektionssystem ist unbekannt",
118
- "datafeeder.validation.projection": "Raumbezugssystem:",
119
- "datafeeder.validation.projection.unknown": "Wählen Sie ein Raumbezugssystem aus",
120
- "datafeeder.validation.sample.title": "Und eine Beispielentität aus dem Datensatz",
121
- "datafeeder.wizard.emptyRequiredValuesMessage": "Bitte füllen Sie die obligatorischen Felder aus",
122
51
  "datafeeder.wizardSummarize.createdAt": "Erstellt am",
123
52
  "datafeeder.wizardSummarize.scale": "Maßstab",
124
53
  "datahub.header.datasets": "Datensätze",
@@ -422,9 +351,10 @@
422
351
  "record.action.download": "Herunterladen",
423
352
  "record.action.duplicate": "",
424
353
  "record.action.duplicating": "",
354
+ "record.action.rollback": "",
425
355
  "record.action.view": "Anzeigen",
426
356
  "record.externalViewer.open": "In externem Kartenviewer öffnen",
427
- "record.feature.limit": "Die Ressource enthält mehr als {count} Features und kann hier nicht angezeigt werden.",
357
+ "record.feature.limit": "Die Vorschau wurde aufgrund zu vieler Elemente deaktiviert",
428
358
  "record.metadata.about": "Beschreibung",
429
359
  "record.metadata.api": "API",
430
360
  "record.metadata.api.form.closeButton": "Schließen",
@@ -542,7 +472,7 @@
542
472
  "search.error.receivedError": "Ein Fehler ist aufgetreten",
543
473
  "search.error.recordHasnolink": "",
544
474
  "search.error.recordNotFound": "Der Datensatz mit der Kennung \"{ id }\" konnte nicht gefunden werden.",
545
- "search.field.any.placeholder": "Suche Datensätze ...",
475
+ "search.field.any.placeholder": "Suche im katalog ...",
546
476
  "search.field.sortBy": "Sortieren nach:",
547
477
  "search.filters.availableServices.download": "",
548
478
  "search.filters.availableServices.view": "",
@@ -601,7 +531,6 @@
601
531
  "tooltip.url.open": "URL öffnen",
602
532
  "ui.readLess": "Weniger lesen",
603
533
  "ui.readMore": "Weiterlesen",
604
- "wfs.aggregations.notsupported": "",
605
534
  "wfs.feature.limit": "Zu viele Features, um den WFS-Layer anzuzeigen!",
606
535
  "wfs.featuretype.notfound": "Kein passender Feature-Typ wurde im Dienst gefunden",
607
536
  "wfs.geojsongml.notsupported": "Dieser Dienst unterstützt das GeoJSON- oder GML-Format nicht",
@@ -36,24 +36,6 @@
36
36
  "dashboard.records.userEmail": "Email",
37
37
  "dashboard.records.username": "Username",
38
38
  "dashboard.records.users": "{count, plural, =1{user} other{users}}",
39
- "datafeeder.analysisProgressBar.illustration.fileFormatDetection": "File format \n detection",
40
- "datafeeder.analysisProgressBar.illustration.gatheringDatasetInformation": "Gathering dataset \n information",
41
- "datafeeder.analysisProgressBar.illustration.samplingData": "Sampling \n data",
42
- "datafeeder.analysisProgressBar.subtitle": "The analysis may take several minutes, please wait.",
43
- "datafeeder.analysisProgressBar.title": "Analysis in progress",
44
- "datafeeder.datasetValidation.datasetInformation": "The provided dataset contains {number} entities",
45
- "datafeeder.datasetValidation.submitButton": "OK, my data is correct",
46
- "datafeeder.datasetValidation.title": "Make sure your data is correct",
47
- "datafeeder.datasetValidation.unknown": " - ",
48
- "datafeeder.datasetValidationCsv.explicitLineNumbers": "*The table must display the first 5 lines (excluding the header)<br>If this is not the case, check that the file is correctly formatted",
49
- "datafeeder.datasetValidationCsv.lineNumbers": "Sample of the first 5 lines* of the dataset:",
50
- "datafeeder.form.abstract": "How would you describe your dataset?",
51
- "datafeeder.form.datepicker": "Do you know when the dataset was created?",
52
- "datafeeder.form.description": "Finally, please describe the process used to create the dataset",
53
- "datafeeder.form.dropdown": "For which scale was it created?",
54
- "datafeeder.form.tags": "Select one or more tags that fit your dataset",
55
- "datafeeder.form.title": "Give your dataset the best title",
56
- "datafeeder.formsPage.title": "Tell us more about your dataset",
57
39
  "datafeeder.month.april": "April",
58
40
  "datafeeder.month.august": "August",
59
41
  "datafeeder.month.december": "December",
@@ -66,59 +48,6 @@
66
48
  "datafeeder.month.november": "November",
67
49
  "datafeeder.month.october": "October",
68
50
  "datafeeder.month.september": "September",
69
- "datafeeder.publish.hint": "You can safely exit this page, you will be notified when the process is over",
70
- "datafeeder.publish.illustration.title": "Another dataset \n to publish?",
71
- "datafeeder.publish.subtitle": "Publishing may take several minutes.",
72
- "datafeeder.publish.title": "Thank you! \n Your dataset is being published",
73
- "datafeeder.publish.upload": "Upload it now",
74
- "datafeeder.publishSuccess.geonetworkRecord": "Metadata record",
75
- "datafeeder.publishSuccess.illustration.title": "Done, all is good!",
76
- "datafeeder.publishSuccess.mapViewer": "Map viewer",
77
- "datafeeder.publishSuccess.ogcFeature": "OGC API",
78
- "datafeeder.publishSuccess.subtitle": "View your data in:",
79
- "datafeeder.publishSuccess.title": "Congratulations! \n Your dataset has been published",
80
- "datafeeder.publishSuccess.uploadAnotherData": "Upload another dataset",
81
- "datafeeder.summarizePage.illustration": "No mistake? Let's go!",
82
- "datafeeder.summarizePage.previous": "Previous",
83
- "datafeeder.summarizePage.submit": "Submit",
84
- "datafeeder.summarizePage.title": "You're almost there...",
85
- "datafeeder.upload.acceptedFormats": "Accepted file formats:",
86
- "datafeeder.upload.checkboxLabel": "I hold the rights to publish this dataset",
87
- "datafeeder.upload.error.subtitle.analysis": "Check that the file contains a valid geospatial dataset",
88
- "datafeeder.upload.error.subtitle.cantOpenFile": "Please check that the file is valid",
89
- "datafeeder.upload.error.subtitle.fileFormat": "Remember: only SHP",
90
- "datafeeder.upload.error.subtitle.fileSize": "Remember: {size} MB maximum",
91
- "datafeeder.upload.error.title.analysis": "Error during the dataset analysis",
92
- "datafeeder.upload.error.title.cantOpenFile": "Error while opening the file",
93
- "datafeeder.upload.error.title.fileFormat": "The selected file format is not supported",
94
- "datafeeder.upload.error.title.fileHasntSelected": "No file selected",
95
- "datafeeder.upload.error.title.fileSize": "The file size is too large",
96
- "datafeeder.upload.error.title.noRightsToSendData": "You are not allowed to publish this dataset",
97
- "datafeeder.upload.illustration.enrichment": "Enrichment",
98
- "datafeeder.upload.illustration.import": "Import",
99
- "datafeeder.upload.illustration.title": "Adding data \n has never been easier",
100
- "datafeeder.upload.illustration.validation": "Validation",
101
- "datafeeder.upload.illustration.verification": "Verification",
102
- "datafeeder.upload.inputLabel": "Import your file",
103
- "datafeeder.upload.maxFileSize": "Maximum file size is {size} MB",
104
- "datafeeder.upload.title": "Upload your dataset",
105
- "datafeeder.upload.uploadButton": "Upload",
106
- "datafeeder.validation.csv.delimiter": "Delimiter",
107
- "datafeeder.validation.csv.delimiter.comma": "Comma",
108
- "datafeeder.validation.csv.delimiter.semicolon": "Semicolon",
109
- "datafeeder.validation.csv.lat.field": "Latitude column",
110
- "datafeeder.validation.csv.lng.field": "Longitude column",
111
- "datafeeder.validation.csv.quote.double": "Double quote",
112
- "datafeeder.validation.csv.quote.none": "None",
113
- "datafeeder.validation.csv.quote.simple": "Single quote",
114
- "datafeeder.validation.csv.quoteChar": "Quote separator",
115
- "datafeeder.validation.encoding": "Encoding",
116
- "datafeeder.validation.extent.title": "Here is the dataset extent",
117
- "datafeeder.validation.extent.title.unknown": "The projection system is unknown",
118
- "datafeeder.validation.projection": "Spatial reference system:",
119
- "datafeeder.validation.projection.unknown": "Choose a spatial reference system",
120
- "datafeeder.validation.sample.title": "And a sample entity from the dataset",
121
- "datafeeder.wizard.emptyRequiredValuesMessage": "Please fill in mandatory fields",
122
51
  "datafeeder.wizardSummarize.createdAt": "Created at",
123
52
  "datafeeder.wizardSummarize.scale": "Scale",
124
53
  "datahub.header.datasets": "Datasets",
@@ -422,9 +351,10 @@
422
351
  "record.action.download": "Download",
423
352
  "record.action.duplicate": "Duplicate",
424
353
  "record.action.duplicating": "Duplicating...",
354
+ "record.action.rollback": "Rollback",
425
355
  "record.action.view": "View",
426
356
  "record.externalViewer.open": "Open in the external map viewer",
427
- "record.feature.limit": "The resource contains more than {count} features and cannot be displayed here.",
357
+ "record.feature.limit": "Preview disabled due to too many elements",
428
358
  "record.metadata.about": "Description",
429
359
  "record.metadata.api": "API",
430
360
  "record.metadata.api.form.closeButton": "Close",
@@ -542,7 +472,7 @@
542
472
  "search.error.receivedError": "An error was received",
543
473
  "search.error.recordHasnolink": "This dataset currently has no link yet, please come back later.",
544
474
  "search.error.recordNotFound": "The dataset with identifier \"{ id }\" could not be found.",
545
- "search.field.any.placeholder": "Search datasets ...",
475
+ "search.field.any.placeholder": "Search in the catalog ...",
546
476
  "search.field.sortBy": "Sort by:",
547
477
  "search.filters.availableServices.download": "",
548
478
  "search.filters.availableServices.view": "",
@@ -601,7 +531,6 @@
601
531
  "tooltip.url.open": "Open URL",
602
532
  "ui.readLess": "Read less",
603
533
  "ui.readMore": "Read more",
604
- "wfs.aggregations.notsupported": "Aggregations are currently not supported for WFS services",
605
534
  "wfs.feature.limit": "Too many features to display the WFS layer!",
606
535
  "wfs.featuretype.notfound": "No matching feature type was found in the service",
607
536
  "wfs.geojsongml.notsupported": "This service does not support the GeoJSON or GML format",