geonetwork-ui 2.4.2-dev.ff0aab388 → 2.4.3

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 (212) hide show
  1. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +2 -3
  2. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +4 -1
  3. package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.mjs +31 -16
  4. package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +2 -2
  5. package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
  6. package/esm2022/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.mjs +18 -16
  7. package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +20 -20
  8. package/esm2022/libs/feature/dataviz/src/lib/table-view/table-view.component.mjs +12 -17
  9. package/esm2022/libs/feature/editor/src/lib/components/contact-card/contact-card.component.mjs +3 -3
  10. package/esm2022/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.mjs +3 -3
  11. package/esm2022/libs/feature/editor/src/lib/components/import-record/import-record.component.mjs +3 -4
  12. package/esm2022/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.mjs +3 -3
  13. package/esm2022/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.mjs +31 -40
  14. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.mjs +3 -3
  15. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.mjs +3 -3
  16. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.mjs +3 -3
  17. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.mjs +8 -9
  18. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.mjs +5 -25
  19. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.mjs +5 -4
  20. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.mjs +3 -3
  21. package/esm2022/libs/feature/editor/src/lib/components/wizard-summarize/wizard-summarize.component.mjs +11 -11
  22. package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +10 -2
  23. package/esm2022/libs/feature/record/src/lib/data-view/data-view.component.mjs +6 -3
  24. package/esm2022/libs/feature/record/src/lib/data-view-share/data-view-share.component.mjs +3 -3
  25. package/esm2022/libs/feature/record/src/lib/feature-record.module.mjs +6 -7
  26. package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +6 -3
  27. package/esm2022/libs/feature/search/src/lib/utils/service/fields.mjs +46 -1
  28. package/esm2022/libs/feature/search/src/lib/utils/service/fields.service.mjs +3 -2
  29. package/esm2022/libs/ui/dataviz/src/index.mjs +3 -3
  30. package/esm2022/libs/ui/dataviz/src/lib/data-table/custom.mat.paginator.intl.mjs +51 -0
  31. package/esm2022/libs/ui/dataviz/src/lib/data-table/data-table.component.mjs +133 -0
  32. package/esm2022/libs/ui/dataviz/src/lib/data-table/data-table.data.source.mjs +24 -0
  33. package/esm2022/libs/ui/dataviz/src/lib/data-table/data-table.fixtures.mjs +82 -0
  34. package/esm2022/libs/ui/elements/src/index.mjs +2 -1
  35. package/esm2022/libs/ui/elements/src/lib/application-banner/application-banner.component.mjs +78 -0
  36. package/esm2022/libs/ui/elements/src/lib/metadata-info/metadata-info.component.mjs +18 -10
  37. package/esm2022/libs/ui/elements/src/lib/record-api-form/record-api-form.component.mjs +2 -1
  38. package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +10 -4
  39. package/esm2022/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.mjs +7 -2
  40. package/esm2022/libs/ui/search/src/lib/record-preview-feed/record-preview-feed.component.mjs +3 -1
  41. package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +15 -13
  42. package/esm2022/libs/util/data-fetcher/src/index.mjs +3 -1
  43. package/esm2022/libs/util/data-fetcher/src/lib/data-fetcher.mjs +5 -1
  44. package/esm2022/libs/util/data-fetcher/src/lib/headers.mjs +3 -2
  45. package/esm2022/libs/util/data-fetcher/src/lib/model.mjs +8 -3
  46. package/esm2022/libs/util/data-fetcher/src/lib/readers/wfs.mjs +97 -0
  47. package/esm2022/libs/util/data-fetcher/src/lib/utils.mjs +3 -3
  48. package/esm2022/libs/util/shared/src/lib/services/date.service.mjs +41 -0
  49. package/esm2022/libs/util/shared/src/lib/services/index.mjs +2 -1
  50. package/esm2022/libs/util/shared/src/lib/utils/temporal-extent-union.mjs +4 -4
  51. package/esm2022/translations/de.json +20 -5
  52. package/esm2022/translations/en.json +29 -14
  53. package/esm2022/translations/es.json +20 -5
  54. package/esm2022/translations/fr.json +30 -15
  55. package/esm2022/translations/it.json +39 -26
  56. package/esm2022/translations/nl.json +20 -5
  57. package/esm2022/translations/pt.json +20 -5
  58. package/fesm2022/geonetwork-ui.mjs +1105 -556
  59. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  60. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts.map +1 -1
  61. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
  62. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts +2 -1
  63. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts.map +1 -1
  64. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts.map +1 -1
  65. package/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.d.ts +7 -9
  66. package/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.d.ts.map +1 -1
  67. package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
  68. package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts +3 -6
  69. package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts.map +1 -1
  70. package/libs/feature/editor/src/lib/components/import-record/import-record.component.d.ts +0 -1
  71. package/libs/feature/editor/src/lib/components/import-record/import-record.component.d.ts.map +1 -1
  72. package/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.d.ts +7 -14
  73. package/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.d.ts.map +1 -1
  74. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.d.ts +2 -2
  75. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.d.ts.map +1 -1
  76. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.d.ts +1 -6
  77. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.d.ts.map +1 -1
  78. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.d.ts.map +1 -1
  79. package/libs/feature/editor/src/lib/components/wizard-summarize/wizard-summarize.component.d.ts +3 -3
  80. package/libs/feature/editor/src/lib/components/wizard-summarize/wizard-summarize.component.d.ts.map +1 -1
  81. package/libs/feature/editor/src/lib/fields.config.d.ts.map +1 -1
  82. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts +2 -1
  83. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts.map +1 -1
  84. package/libs/feature/record/src/lib/feature-record.module.d.ts +2 -2
  85. package/libs/feature/record/src/lib/feature-record.module.d.ts.map +1 -1
  86. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts +2 -1
  87. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
  88. package/libs/feature/search/src/lib/utils/service/fields.d.ts +10 -0
  89. package/libs/feature/search/src/lib/utils/service/fields.d.ts.map +1 -1
  90. package/libs/feature/search/src/lib/utils/service/fields.service.d.ts.map +1 -1
  91. package/libs/ui/dataviz/src/index.d.ts +2 -2
  92. package/libs/ui/dataviz/src/index.d.ts.map +1 -1
  93. package/libs/ui/dataviz/src/lib/data-table/custom.mat.paginator.intl.d.ts +14 -0
  94. package/libs/ui/dataviz/src/lib/data-table/custom.mat.paginator.intl.d.ts.map +1 -0
  95. package/libs/ui/dataviz/src/lib/data-table/data-table.component.d.ts +45 -0
  96. package/libs/ui/dataviz/src/lib/data-table/data-table.component.d.ts.map +1 -0
  97. package/libs/ui/dataviz/src/lib/data-table/data-table.data.source.d.ts +12 -0
  98. package/libs/ui/dataviz/src/lib/data-table/data-table.data.source.d.ts.map +1 -0
  99. package/libs/ui/dataviz/src/lib/data-table/data-table.fixtures.d.ts +10 -0
  100. package/libs/ui/dataviz/src/lib/data-table/data-table.fixtures.d.ts.map +1 -0
  101. package/libs/ui/elements/src/index.d.ts +1 -0
  102. package/libs/ui/elements/src/index.d.ts.map +1 -1
  103. package/libs/ui/elements/src/lib/application-banner/application-banner.component.d.ts +16 -0
  104. package/libs/ui/elements/src/lib/application-banner/application-banner.component.d.ts.map +1 -0
  105. package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts +5 -0
  106. package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts.map +1 -1
  107. package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts.map +1 -1
  108. package/libs/ui/elements/src/lib/ui-elements.module.d.ts +2 -1
  109. package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
  110. package/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.d.ts.map +1 -1
  111. package/libs/ui/search/src/lib/record-preview-feed/record-preview-feed.component.d.ts.map +1 -1
  112. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts +3 -2
  113. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts.map +1 -1
  114. package/libs/util/data-fetcher/src/index.d.ts +3 -1
  115. package/libs/util/data-fetcher/src/index.d.ts.map +1 -1
  116. package/libs/util/data-fetcher/src/lib/data-fetcher.d.ts +3 -2
  117. package/libs/util/data-fetcher/src/lib/data-fetcher.d.ts.map +1 -1
  118. package/libs/util/data-fetcher/src/lib/headers.d.ts.map +1 -1
  119. package/libs/util/data-fetcher/src/lib/model.d.ts +2 -2
  120. package/libs/util/data-fetcher/src/lib/model.d.ts.map +1 -1
  121. package/libs/util/data-fetcher/src/lib/readers/wfs.d.ts +21 -0
  122. package/libs/util/data-fetcher/src/lib/readers/wfs.d.ts.map +1 -0
  123. package/libs/util/shared/src/lib/services/date.service.d.ts +13 -0
  124. package/libs/util/shared/src/lib/services/date.service.d.ts.map +1 -0
  125. package/libs/util/shared/src/lib/services/index.d.ts +1 -0
  126. package/libs/util/shared/src/lib/services/index.d.ts.map +1 -1
  127. package/libs/util/shared/src/lib/utils/temporal-extent-union.d.ts +2 -1
  128. package/libs/util/shared/src/lib/utils/temporal-extent-union.d.ts.map +1 -1
  129. package/package.json +1 -1
  130. package/src/libs/api/metadata-converter/src/lib/fixtures/geocat-ch.records.ts +1 -0
  131. package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +1 -2
  132. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +3 -0
  133. package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +33 -16
  134. package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +1 -5
  135. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +1 -1
  136. package/src/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.html +3 -3
  137. package/src/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.ts +17 -15
  138. package/src/libs/feature/dataviz/src/lib/service/data.service.ts +25 -25
  139. package/src/libs/feature/dataviz/src/lib/table-view/table-view.component.html +4 -3
  140. package/src/libs/feature/dataviz/src/lib/table-view/table-view.component.ts +9 -18
  141. package/src/libs/feature/editor/src/lib/components/contact-card/contact-card.component.html +1 -1
  142. package/src/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.html +1 -1
  143. package/src/libs/feature/editor/src/lib/components/import-record/import-record.component.html +4 -1
  144. package/src/libs/feature/editor/src/lib/components/import-record/import-record.component.ts +0 -4
  145. package/src/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.ts +2 -2
  146. package/src/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.html +8 -8
  147. package/src/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.ts +32 -45
  148. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.html +1 -1
  149. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.html +3 -1
  150. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.html +1 -1
  151. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.html +0 -1
  152. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.ts +6 -6
  153. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.html +24 -17
  154. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.ts +2 -27
  155. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.html +1 -1
  156. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.ts +2 -1
  157. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.html +1 -1
  158. package/src/libs/feature/editor/src/lib/components/wizard-summarize/wizard-summarize.component.ts +3 -4
  159. package/src/libs/feature/editor/src/lib/fields.config.ts +9 -1
  160. package/src/libs/feature/record/src/lib/data-view/data-view.component.html +2 -1
  161. package/src/libs/feature/record/src/lib/data-view/data-view.component.ts +1 -0
  162. package/src/libs/feature/record/src/lib/data-view-share/data-view-share.component.html +1 -1
  163. package/src/libs/feature/record/src/lib/feature-record.module.ts +6 -4
  164. package/src/libs/feature/record/src/lib/map-view/map-view.component.html +1 -0
  165. package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +1 -0
  166. package/src/libs/feature/search/src/lib/utils/service/fields.service.ts +2 -0
  167. package/src/libs/feature/search/src/lib/utils/service/fields.ts +55 -0
  168. package/src/libs/ui/dataviz/src/index.ts +2 -2
  169. package/src/libs/ui/dataviz/src/lib/data-table/custom.mat.paginator.intl.ts +52 -0
  170. package/src/libs/ui/dataviz/src/lib/{table/table.component.css → data-table/data-table.component.css} +4 -0
  171. package/src/libs/ui/dataviz/src/lib/data-table/data-table.component.html +67 -0
  172. package/src/libs/ui/dataviz/src/lib/data-table/data-table.component.ts +173 -0
  173. package/src/libs/ui/dataviz/src/lib/data-table/data-table.data.source.ts +33 -0
  174. package/src/libs/ui/dataviz/src/lib/data-table/data-table.fixtures.ts +84 -0
  175. package/src/libs/ui/elements/src/index.ts +1 -0
  176. package/src/libs/ui/elements/src/lib/application-banner/application-banner.component.css +0 -0
  177. package/src/libs/ui/elements/src/lib/application-banner/application-banner.component.html +25 -0
  178. package/src/libs/ui/elements/src/lib/application-banner/application-banner.component.ts +70 -0
  179. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.html +3 -3
  180. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.ts +12 -2
  181. package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.ts +2 -0
  182. package/src/libs/ui/elements/src/lib/ui-elements.module.ts +3 -0
  183. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.ts +6 -0
  184. package/src/libs/ui/search/src/lib/record-preview-feed/record-preview-feed.component.ts +3 -0
  185. package/src/libs/ui/search/src/lib/results-table/results-table.component.html +1 -1
  186. package/src/libs/ui/search/src/lib/results-table/results-table.component.ts +4 -2
  187. package/src/libs/util/data-fetcher/src/index.ts +3 -0
  188. package/src/libs/util/data-fetcher/src/lib/data-fetcher.ts +9 -1
  189. package/src/libs/util/data-fetcher/src/lib/headers.ts +4 -3
  190. package/src/libs/util/data-fetcher/src/lib/model.ts +7 -2
  191. package/src/libs/util/data-fetcher/src/lib/readers/wfs.ts +134 -0
  192. package/src/libs/util/data-fetcher/src/lib/utils.ts +2 -2
  193. package/src/libs/util/shared/src/lib/services/date.service.ts +45 -0
  194. package/src/libs/util/shared/src/lib/services/index.ts +1 -0
  195. package/src/libs/util/shared/src/lib/utils/temporal-extent-union.ts +6 -3
  196. package/translations/de.json +20 -5
  197. package/translations/en.json +29 -14
  198. package/translations/es.json +20 -5
  199. package/translations/fr.json +30 -15
  200. package/translations/it.json +39 -26
  201. package/translations/nl.json +20 -5
  202. package/translations/pt.json +20 -5
  203. package/translations/sk.json +21 -6
  204. package/esm2022/libs/ui/dataviz/src/lib/table/table.component.mjs +0 -61
  205. package/esm2022/libs/ui/dataviz/src/lib/table/table.fixtures.mjs +0 -40
  206. package/libs/ui/dataviz/src/lib/table/table.component.d.ts +0 -29
  207. package/libs/ui/dataviz/src/lib/table/table.component.d.ts.map +0 -1
  208. package/libs/ui/dataviz/src/lib/table/table.fixtures.d.ts +0 -11
  209. package/libs/ui/dataviz/src/lib/table/table.fixtures.d.ts.map +0 -1
  210. package/src/libs/ui/dataviz/src/lib/table/table.component.html +0 -40
  211. package/src/libs/ui/dataviz/src/lib/table/table.component.ts +0 -80
  212. package/src/libs/ui/dataviz/src/lib/table/table.fixtures.ts +0 -40
@@ -43,7 +43,7 @@ export function fetchDataAsText(url) {
43
43
  })
44
44
  .then(async (response) => {
45
45
  if (!response.ok) {
46
- throw FetchError.http(response.status);
46
+ throw FetchError.http(response.status, await response.text());
47
47
  }
48
48
  return response.text();
49
49
  }), url, 'asText');
@@ -55,7 +55,7 @@ export function fetchDataAsArrayBuffer(url) {
55
55
  })
56
56
  .then(async (response) => {
57
57
  if (!response.ok) {
58
- throw FetchError.http(response.status);
58
+ throw FetchError.http(response.status, await response.text());
59
59
  }
60
60
  // convert to a numeric array so that we can store the response in cache
61
61
  return Array.from(new Uint8Array(await response.arrayBuffer()));
@@ -204,4 +204,4 @@ export function getJsonDataItemsProxy(items) {
204
204
  },
205
205
  });
206
206
  }
207
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvZGF0YS1mZXRjaGVyL3NyYy9saWIvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLFVBQVUsRUFHVixjQUFjLEdBQ2YsTUFBTSxTQUFTLENBQUE7QUFDaEIsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxLQUFLLElBQUksU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDbkQsT0FBTyxFQUFFLFFBQVEsSUFBSSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUU1RCxNQUFNLENBQUMsS0FBSyxVQUFVLGdCQUFnQixDQUNwQyxHQUFXLEVBQ1gsUUFBd0I7SUFFeEIsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLEdBQUcsQ0FDbEMsR0FBRyxFQUNILE9BQU8sTUFBTSxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUN2RSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUE7SUFDM0IsTUFBTSxhQUFhLEdBQ2pCLG9CQUFvQixJQUFJLG9CQUFvQixDQUFDLE1BQU07UUFDakQsQ0FBQyxDQUFFLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBb0I7UUFDMUQsQ0FBQyxDQUFDLElBQUksQ0FBQTtJQUVWLGVBQWU7SUFDZixJQUFJLFFBQVE7UUFBRSxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUE7SUFFOUMseUJBQXlCO0lBQ3pCLE1BQU0sT0FBTyxHQUFHLE1BQU0sWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ3ZDLElBQUksZUFBZSxJQUFJLE9BQU87UUFBRSxPQUFPLE9BQU8sQ0FBQyxhQUFhLENBQUE7SUFDNUQsNkJBQTZCO1NBQ3hCLElBQUksY0FBYyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7UUFBRSxPQUFPLGFBQWEsQ0FBQTtJQUV6RSw2QkFBNkI7SUFDN0IsSUFBSSxVQUFVLElBQUksT0FBTztRQUFFLE1BQU0sVUFBVSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUE7O1FBQ3hFLE1BQU0sVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFBO0FBQ3JDLENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUFDLEdBQVc7SUFDdEMsT0FBTyxXQUFXLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQztTQUM1QixLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtRQUNmLE1BQU0sVUFBVSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDL0MsQ0FBQyxDQUFDO1NBQ0QsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7UUFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNqQixNQUFNLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQ3hDLENBQUM7UUFDRCxPQUFPLFlBQVksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDdkMsQ0FBQyxDQUFDLENBQUE7QUFDTixDQUFDO0FBRUQsTUFBTSxVQUFVLGVBQWUsQ0FBQyxHQUFXO0lBQ3pDLE9BQU8sUUFBUSxDQUNiLEdBQUcsRUFBRSxDQUNILFdBQVcsQ0FBQyxHQUFHLENBQUM7U0FDYixLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtRQUNmLE1BQU0sVUFBVSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDL0MsQ0FBQyxDQUFDO1NBQ0QsSUFBSSxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsRUFBRTtRQUN2QixJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2pCLE1BQU0sVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDeEMsQ0FBQztRQUNELE9BQU8sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFBO0lBQ3hCLENBQUMsQ0FBQyxFQUNOLEdBQUcsRUFDSCxRQUFRLENBQ1QsQ0FBQTtBQUNILENBQUM7QUFDRCxNQUFNLFVBQVUsc0JBQXNCLENBQUMsR0FBVztJQUNoRCxPQUFPLFFBQVEsQ0FDYixHQUFHLEVBQUUsQ0FDSCxXQUFXLENBQUMsR0FBRyxDQUFDO1NBQ2IsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7UUFDZixNQUFNLFVBQVUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQy9DLENBQUMsQ0FBQztTQUNELElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLEVBQUU7UUFDdkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNqQixNQUFNLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQ3hDLENBQUM7UUFDRCx3RUFBd0U7UUFDeEUsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksVUFBVSxDQUFDLE1BQU0sUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQTtJQUNqRSxDQUFDLENBQUMsRUFDTixHQUFHLEVBQ0gsZUFBZSxDQUNoQixDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQ2YsT0FBTyxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUE7SUFDckMsQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLFlBQVksQ0FBQyxLQUFjO0lBQ3pDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUTtRQUFFLE9BQU8sSUFBSSxDQUFBO0lBRTFDLFNBQVMsTUFBTSxDQUFDLEtBQWE7UUFDM0IsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ2xDLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQTtJQUNoRCxDQUFDO0lBQ0QsU0FBUyxTQUFTLENBQUMsS0FBYSxFQUFFLE1BQWM7UUFDOUMsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFBO1FBQ25ELE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQTtJQUNoRCxDQUFDO0lBQ0QsT0FBTyxDQUNMLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDYixTQUFTLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQztRQUM5QixTQUFTLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQztRQUM5QixTQUFTLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQztRQUM5QixJQUFJLENBQ0wsQ0FBQTtBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsY0FBYyxDQUFDLEtBQWE7SUFDMUMsSUFBSSxLQUFLLENBQUMsS0FBWSxDQUFDO1FBQUUsT0FBTyxJQUFJLENBQUE7SUFDcEMsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ2hDLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQTtBQUN0QyxDQUFDO0FBRUQsTUFBTSxVQUFVLG9CQUFvQixDQUFDLE1BQThCO0lBQ2pFLE1BQU0sRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7U0FDM0MsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLHVCQUF1QjtTQUM1RSxNQUFNLENBQ0wsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FDYixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztRQUMvQixDQUFDLENBQUM7WUFDRSxHQUFHLElBQUk7WUFDUCxFQUFFLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQztTQUNqQjtRQUNILENBQUMsQ0FBQztZQUNFLEdBQUcsSUFBSTtZQUNQLFVBQVUsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRTtTQUN6RCxFQUNQLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLENBQ2xDLENBQUE7SUFDSCxPQUFPO1FBQ0wsSUFBSSxFQUFFLFNBQVM7UUFDZixRQUFRLEVBQUUsSUFBSTtRQUNkLFVBQVU7UUFDVixHQUFHLENBQUMsRUFBRSxLQUFLLFNBQVMsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDO0tBQ2hDLENBQUE7QUFDSCxDQUFDO0FBRUQsU0FBUyxnQkFBZ0IsQ0FDdkIsS0FBaUIsRUFDakIsUUFBOEQ7SUFFOUQsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUN6QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDL0MsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ3JCLEtBQUssTUFBTSxZQUFZLElBQUksV0FBVyxFQUFFLENBQUM7WUFDdkMsSUFBSSxDQUFDLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUM7Z0JBQUUsU0FBUTtZQUNoRCxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FDcEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FDOUIsQ0FBQTtRQUNILENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxLQUFLLENBQUE7QUFDZCxDQUFDO0FBRUQsTUFBTSxXQUFXLEdBQUcsRUFBRSxDQUFBO0FBRXRCOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUscUJBQXFCLENBQ25DLEtBQWlCLEVBQ2pCLFVBQVUsR0FBRyxLQUFLO0lBS2xCLE1BQU0sV0FBVyxHQUFxQyxFQUFFLENBQUE7SUFDeEQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDdEUsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ3JCLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQzNDLEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLENBQUMsS0FBSyxJQUFJLFdBQVcsQ0FBQyxFQUFFLENBQUM7Z0JBQzVCLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRztvQkFDbkIsS0FBSyxFQUFFLEtBQUs7b0JBQ1osSUFBSSxFQUFFLEtBQUs7b0JBQ1gsSUFBSSxFQUFFLElBQUk7aUJBQ1gsQ0FBQTtZQUNILENBQUM7WUFDRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFBO1lBQ3BDLE1BQU0sSUFBSSxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQTtZQUMvQixJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksS0FBSyxLQUFLLEVBQUUsSUFBSSxLQUFLLEtBQUssSUFBSTtnQkFBRSxTQUFRO1lBRW5FLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDaEIsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztvQkFDcEQsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUE7Z0JBQ3RCLENBQUM7cUJBQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFFBQVEsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztvQkFDL0QsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUE7Z0JBQ3RCLENBQUM7Z0JBQ0QsU0FBUTtZQUNWLENBQUM7WUFFRCxNQUFNLFlBQVksR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUE7WUFDMUMsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksSUFBSSxZQUFZLEtBQUssSUFBSSxFQUFFLENBQUM7Z0JBQ2hELElBQUksQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFBO2dCQUNwQixTQUFRO1lBQ1YsQ0FBQztpQkFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssUUFBUSxJQUFJLFlBQVksS0FBSyxJQUFJLEVBQUUsQ0FBQztnQkFDM0QsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUE7Z0JBQ3BCLFNBQVE7WUFDVixDQUFDO1lBQ0QsTUFBTSxVQUFVLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFBO1lBQ3RDLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLElBQUksVUFBVSxLQUFLLElBQUksRUFBRSxDQUFDO2dCQUM5QyxJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQTtZQUNwQixDQUFDO2lCQUFNLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxNQUFNLElBQUksVUFBVSxLQUFLLElBQUksRUFBRSxDQUFDO2dCQUN2RCxJQUFJLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQTtZQUN0QixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxNQUFNLFVBQVUsR0FBbUIsRUFBRSxDQUFBO0lBQ3JDLE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQTtJQUNuQixLQUFLLE1BQU0sS0FBSyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sSUFBSSxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUMvQixJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDM0IsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLGNBQWMsQ0FBQTtRQUNsQyxDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQ2hDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxZQUFZLENBQUE7UUFDaEMsQ0FBQztRQUNELFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksSUFBSSxRQUFRLEVBQUUsQ0FBQyxDQUFBO0lBQzNELENBQUM7SUFDRCxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ2YsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFBO0lBQ25DLENBQUM7SUFDRCxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxDQUFBO0FBQzlCLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLHFCQUFxQixDQUNuQyxLQUFpQjtJQUVqQixPQUFPLElBQUksS0FBSyxDQUE0QixLQUFZLEVBQUU7UUFDeEQsR0FBRyxDQUFDLE1BQWlDLEVBQUUsQ0FBa0I7WUFDdkQsSUFDRSxPQUFPLENBQUMsS0FBSyxRQUFRO2dCQUNyQixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMxQixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxFQUNyQixDQUFDO2dCQUNELE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQTtZQUM3QixDQUFDO1lBQ0QsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDbEIsQ0FBQztRQUNELEdBQUc7WUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUE7UUFDN0MsQ0FBQztLQUNGLENBQUMsQ0FBQTtBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEYXRhSXRlbSxcbiAgRGF0YXNldEhlYWRlcnMsXG4gIEZldGNoRXJyb3IsXG4gIFByb3BlcnR5SW5mbyxcbiAgU3VwcG9ydGVkVHlwZSxcbiAgU3VwcG9ydGVkVHlwZXMsXG59IGZyb20gJy4vbW9kZWwnXG5pbXBvcnQgeyBzaGFyZWRGZXRjaCwgdXNlQ2FjaGUgfSBmcm9tICdAY2FtcHRvY2FtcC9vZ2MtY2xpZW50J1xuaW1wb3J0IHsgcGFyc2VIZWFkZXJzIH0gZnJvbSAnLi9oZWFkZXJzJ1xuaW1wb3J0IHsgcGFyc2UgYXMgcGFyc2VEYXRlIH0gZnJvbSAnZGF0ZS1mbnMvcGFyc2UnXG5pbXBvcnQgeyBwYXJzZUlTTyBhcyBwYXJzZUlzb0RhdGUgfSBmcm9tICdkYXRlLWZucy9wYXJzZUlTTydcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGluZmVyRGF0YXNldFR5cGUoXG4gIHVybDogc3RyaW5nLFxuICB0eXBlSGludD86IFN1cHBvcnRlZFR5cGVcbik6IFByb21pc2U8U3VwcG9ydGVkVHlwZT4ge1xuICBjb25zdCBmaWxlRXh0ZW5zaW9uTWF0Y2hlcyA9IG5ldyBVUkwoXG4gICAgdXJsLFxuICAgIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnID8gd2luZG93LmxvY2F0aW9uLnRvU3RyaW5nKCkgOiB1bmRlZmluZWRcbiAgKS5wYXRobmFtZS5tYXRjaCgvXFwuKC4rKSQvKVxuICBjb25zdCBmaWxlRXh0ZW5zaW9uID1cbiAgICBmaWxlRXh0ZW5zaW9uTWF0Y2hlcyAmJiBmaWxlRXh0ZW5zaW9uTWF0Y2hlcy5sZW5ndGhcbiAgICAgID8gKGZpbGVFeHRlbnNpb25NYXRjaGVzWzFdLnRvTG93ZXJDYXNlKCkgYXMgU3VwcG9ydGVkVHlwZSlcbiAgICAgIDogbnVsbFxuXG4gIC8vIDEuIHR5cGUgaGludFxuICBpZiAodHlwZUhpbnQpIHJldHVybiBQcm9taXNlLnJlc29sdmUodHlwZUhpbnQpXG5cbiAgLy8gMi4gY29udGVudC10eXBlIGhlYWRlclxuICBjb25zdCBoZWFkZXJzID0gYXdhaXQgZmV0Y2hIZWFkZXJzKHVybClcbiAgaWYgKCdzdXBwb3J0ZWRUeXBlJyBpbiBoZWFkZXJzKSByZXR1cm4gaGVhZGVycy5zdXBwb3J0ZWRUeXBlXG4gIC8vIDMuIGZpbGUgZXh0ZW5zaW9uIGZyb20gdXJsXG4gIGVsc2UgaWYgKFN1cHBvcnRlZFR5cGVzLmluZGV4T2YoZmlsZUV4dGVuc2lvbikgPiAtMSkgcmV0dXJuIGZpbGVFeHRlbnNpb25cblxuICAvLyBubyB0eXBlIGluZmVycmVkIG9yIGhpbnRlZFxuICBpZiAoJ21pbWVUeXBlJyBpbiBoZWFkZXJzKSB0aHJvdyBGZXRjaEVycm9yLnVuc3VwcG9ydGVkVHlwZShoZWFkZXJzLm1pbWVUeXBlKVxuICBlbHNlIHRocm93IEZldGNoRXJyb3IudW5rbm93blR5cGUoKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZmV0Y2hIZWFkZXJzKHVybDogc3RyaW5nKTogUHJvbWlzZTxEYXRhc2V0SGVhZGVycz4ge1xuICByZXR1cm4gc2hhcmVkRmV0Y2godXJsLCAnSEVBRCcpXG4gICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgdGhyb3cgRmV0Y2hFcnJvci5jb3JzT3JOZXR3b3JrKGVycm9yLm1lc3NhZ2UpXG4gICAgfSlcbiAgICAudGhlbigocmVzcG9uc2UpID0+IHtcbiAgICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgICAgdGhyb3cgRmV0Y2hFcnJvci5odHRwKHJlc3BvbnNlLnN0YXR1cylcbiAgICAgIH1cbiAgICAgIHJldHVybiBwYXJzZUhlYWRlcnMocmVzcG9uc2UuaGVhZGVycylcbiAgICB9KVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZmV0Y2hEYXRhQXNUZXh0KHVybDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgcmV0dXJuIHVzZUNhY2hlKFxuICAgICgpID0+XG4gICAgICBzaGFyZWRGZXRjaCh1cmwpXG4gICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgICB0aHJvdyBGZXRjaEVycm9yLmNvcnNPck5ldHdvcmsoZXJyb3IubWVzc2FnZSlcbiAgICAgICAgfSlcbiAgICAgICAgLnRoZW4oYXN5bmMgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICAgICAgdGhyb3cgRmV0Y2hFcnJvci5odHRwKHJlc3BvbnNlLnN0YXR1cylcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLnRleHQoKVxuICAgICAgICB9KSxcbiAgICB1cmwsXG4gICAgJ2FzVGV4dCdcbiAgKVxufVxuZXhwb3J0IGZ1bmN0aW9uIGZldGNoRGF0YUFzQXJyYXlCdWZmZXIodXJsOiBzdHJpbmcpOiBQcm9taXNlPEFycmF5QnVmZmVyPiB7XG4gIHJldHVybiB1c2VDYWNoZShcbiAgICAoKSA9PlxuICAgICAgc2hhcmVkRmV0Y2godXJsKVxuICAgICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgdGhyb3cgRmV0Y2hFcnJvci5jb3JzT3JOZXR3b3JrKGVycm9yLm1lc3NhZ2UpXG4gICAgICAgIH0pXG4gICAgICAgIC50aGVuKGFzeW5jIChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgICAgICAgIHRocm93IEZldGNoRXJyb3IuaHR0cChyZXNwb25zZS5zdGF0dXMpXG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIGNvbnZlcnQgdG8gYSBudW1lcmljIGFycmF5IHNvIHRoYXQgd2UgY2FuIHN0b3JlIHRoZSByZXNwb25zZSBpbiBjYWNoZVxuICAgICAgICAgIHJldHVybiBBcnJheS5mcm9tKG5ldyBVaW50OEFycmF5KGF3YWl0IHJlc3BvbnNlLmFycmF5QnVmZmVyKCkpKVxuICAgICAgICB9KSxcbiAgICB1cmwsXG4gICAgJ2FzQXJyYXlCdWZmZXInXG4gICkudGhlbigoYXJyYXkpID0+IHtcbiAgICByZXR1cm4gbmV3IFVpbnQ4QXJyYXkoYXJyYXkpLmJ1ZmZlclxuICB9KVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJ5UGFyc2VEYXRlKGlucHV0OiB1bmtub3duKTogRGF0ZSB8IG51bGwge1xuICBpZiAodHlwZW9mIGlucHV0ICE9PSAnc3RyaW5nJykgcmV0dXJuIG51bGxcblxuICBmdW5jdGlvbiB0cnlJc28odmFsdWU6IHN0cmluZykge1xuICAgIGNvbnN0IHBhcnNlZCA9IHBhcnNlSXNvRGF0ZSh2YWx1ZSlcbiAgICByZXR1cm4gaXNOYU4ocGFyc2VkLmdldERhdGUoKSkgPyBudWxsIDogcGFyc2VkXG4gIH1cbiAgZnVuY3Rpb24gdHJ5Rm9ybWF0KHZhbHVlOiBzdHJpbmcsIGZvcm1hdDogc3RyaW5nKSB7XG4gICAgY29uc3QgcGFyc2VkID0gcGFyc2VEYXRlKHZhbHVlLCBmb3JtYXQsIG5ldyBEYXRlKCkpXG4gICAgcmV0dXJuIGlzTmFOKHBhcnNlZC5nZXREYXRlKCkpID8gbnVsbCA6IHBhcnNlZFxuICB9XG4gIHJldHVybiAoXG4gICAgdHJ5SXNvKGlucHV0KSB8fFxuICAgIHRyeUZvcm1hdChpbnB1dCwgJ2RkL01NL3l5eXknKSB8fFxuICAgIHRyeUZvcm1hdChpbnB1dCwgJ2RkLk1NLnl5eXknKSB8fFxuICAgIHRyeUZvcm1hdChpbnB1dCwgJ01NL2RkL3l5eXknKSB8fFxuICAgIG51bGxcbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJ5UGFyc2VOdW1iZXIoaW5wdXQ6IHN0cmluZyk6IG51bWJlciB8IG51bGwge1xuICBpZiAoaXNOYU4oaW5wdXQgYXMgYW55KSkgcmV0dXJuIG51bGxcbiAgY29uc3QgcGFyc2VkID0gcGFyc2VGbG9hdChpbnB1dClcbiAgcmV0dXJuIGlzTmFOKHBhcnNlZCkgPyBudWxsIDogcGFyc2VkXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBqc29uVG9HZW9qc29uRmVhdHVyZShvYmplY3Q6IHsgW2tleTogc3RyaW5nXTogYW55IH0pOiBEYXRhSXRlbSB7XG4gIGNvbnN0IHsgaWQsIHByb3BlcnRpZXMgfSA9IE9iamVjdC5rZXlzKG9iamVjdClcbiAgICAubWFwKChwcm9wZXJ0eSkgPT4gKHByb3BlcnR5ID8gcHJvcGVydHkgOiAndW5rbm93bicpKSAvL3ByZXZlbnQgZW1wdHkgc3RyaW5nc1xuICAgIC5yZWR1Y2UoXG4gICAgICAocHJldiwgY3VycikgPT5cbiAgICAgICAgY3Vyci50b0xvd2VyQ2FzZSgpLmVuZHNXaXRoKCdpZCcpXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICAgIC4uLnByZXYsXG4gICAgICAgICAgICAgIGlkOiBvYmplY3RbY3Vycl0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgOiB7XG4gICAgICAgICAgICAgIC4uLnByZXYsXG4gICAgICAgICAgICAgIHByb3BlcnRpZXM6IHsgLi4ucHJldi5wcm9wZXJ0aWVzLCBbY3Vycl06IG9iamVjdFtjdXJyXSB9LFxuICAgICAgICAgICAgfSxcbiAgICAgIHsgaWQ6IHVuZGVmaW5lZCwgcHJvcGVydGllczoge30gfVxuICAgIClcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnRmVhdHVyZScsXG4gICAgZ2VvbWV0cnk6IG51bGwsXG4gICAgcHJvcGVydGllcyxcbiAgICAuLi4oaWQgIT09IHVuZGVmaW5lZCAmJiB7IGlkIH0pLFxuICB9XG59XG5cbmZ1bmN0aW9uIG11dGF0ZVByb3BlcnRpZXMoXG4gIGl0ZW1zOiBEYXRhSXRlbVtdLFxuICBtdXRhdG9yczogeyBbZmllbGROYW1lOiBzdHJpbmddOiAodmFsdWU6IHVua25vd24pID0+IHVua25vd24gfVxuKTogRGF0YUl0ZW1bXSB7XG4gIGNvbnN0IG11dGF0b3JLZXlzID0gT2JqZWN0LmtleXMobXV0YXRvcnMpXG4gIGZvciAobGV0IGkgPSAwLCBpaSA9IGl0ZW1zLmxlbmd0aDsgaSA8IGlpOyBpKyspIHtcbiAgICBjb25zdCBpdGVtID0gaXRlbXNbaV1cbiAgICBmb3IgKGNvbnN0IG11dGF0b3JGaWVsZCBvZiBtdXRhdG9yS2V5cykge1xuICAgICAgaWYgKCEobXV0YXRvckZpZWxkIGluIGl0ZW0ucHJvcGVydGllcykpIGNvbnRpbnVlXG4gICAgICBpdGVtLnByb3BlcnRpZXNbbXV0YXRvckZpZWxkXSA9IG11dGF0b3JzW211dGF0b3JGaWVsZF0oXG4gICAgICAgIGl0ZW0ucHJvcGVydGllc1ttdXRhdG9yRmllbGRdXG4gICAgICApXG4gICAgfVxuICB9XG4gIHJldHVybiBpdGVtc1xufVxuXG5jb25zdCBTQU1QTEVfU0laRSA9IDIwXG5cbi8qKlxuICogVGhpcyB3aWxsIGluZmVyIGZpZWxkIHR5cGVzIGZyb20gYSBsaXN0IG9mIGRhdGEgaXRlbXMgYW5kIGNhc3QgdGhlIHZhbHVlcyBhY2NvcmRpbmdseVxuICogQHBhcmFtIGl0ZW1zXG4gKiBAcGFyYW0gaW5mZXJUeXBlc1xuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvY2Vzc0l0ZW1Qcm9wZXJ0aWVzKFxuICBpdGVtczogRGF0YUl0ZW1bXSxcbiAgaW5mZXJUeXBlcyA9IGZhbHNlXG4pOiB7XG4gIGl0ZW1zOiBEYXRhSXRlbVtdXG4gIHByb3BlcnRpZXM6IFByb3BlcnR5SW5mb1tdXG59IHtcbiAgY29uc3QgZm91bmRGaWVsZHM6IHsgW25hbWU6IHN0cmluZ106IFByb3BlcnR5SW5mbyB9ID0ge31cbiAgZm9yIChsZXQgaSA9IDAsIGlpID0gTWF0aC5taW4oU0FNUExFX1NJWkUsIGl0ZW1zLmxlbmd0aCk7IGkgPCBpaTsgaSsrKSB7XG4gICAgY29uc3QgaXRlbSA9IGl0ZW1zW2ldXG4gICAgY29uc3QgZmllbGRzID0gT2JqZWN0LmtleXMoaXRlbS5wcm9wZXJ0aWVzKVxuICAgIGZvciAoY29uc3QgZmllbGQgb2YgZmllbGRzKSB7XG4gICAgICBpZiAoIShmaWVsZCBpbiBmb3VuZEZpZWxkcykpIHtcbiAgICAgICAgZm91bmRGaWVsZHNbZmllbGRdID0ge1xuICAgICAgICAgIGxhYmVsOiBmaWVsZCxcbiAgICAgICAgICBuYW1lOiBmaWVsZCxcbiAgICAgICAgICB0eXBlOiBudWxsLFxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBjb25zdCB2YWx1ZSA9IGl0ZW0ucHJvcGVydGllc1tmaWVsZF1cbiAgICAgIGNvbnN0IGluZm8gPSBmb3VuZEZpZWxkc1tmaWVsZF1cbiAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSAnJyB8fCB2YWx1ZSA9PT0gbnVsbCkgY29udGludWVcblxuICAgICAgaWYgKCFpbmZlclR5cGVzKSB7XG4gICAgICAgIGlmIChpbmZvLnR5cGUgPT09IG51bGwgJiYgdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgICAgICAgIGluZm8udHlwZSA9ICdudW1iZXInXG4gICAgICAgIH0gZWxzZSBpZiAoaW5mby50eXBlID09PSAnbnVtYmVyJyAmJiB0eXBlb2YgdmFsdWUgIT09ICdudW1iZXInKSB7XG4gICAgICAgICAgaW5mby50eXBlID0gJ3N0cmluZydcbiAgICAgICAgfVxuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuXG4gICAgICBjb25zdCBwYXJzZWROdW1iZXIgPSB0cnlQYXJzZU51bWJlcih2YWx1ZSlcbiAgICAgIGlmIChpbmZvLnR5cGUgPT09IG51bGwgJiYgcGFyc2VkTnVtYmVyICE9PSBudWxsKSB7XG4gICAgICAgIGluZm8udHlwZSA9ICdudW1iZXInXG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9IGVsc2UgaWYgKGluZm8udHlwZSA9PT0gJ251bWJlcicgJiYgcGFyc2VkTnVtYmVyID09PSBudWxsKSB7XG4gICAgICAgIGluZm8udHlwZSA9ICdzdHJpbmcnXG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBjb25zdCBwYXJzZWREYXRlID0gdHJ5UGFyc2VEYXRlKHZhbHVlKVxuICAgICAgaWYgKGluZm8udHlwZSA9PT0gbnVsbCAmJiBwYXJzZWREYXRlICE9PSBudWxsKSB7XG4gICAgICAgIGluZm8udHlwZSA9ICdkYXRlJ1xuICAgICAgfSBlbHNlIGlmIChpbmZvLnR5cGUgPT09ICdkYXRlJyAmJiBwYXJzZWREYXRlID09PSBudWxsKSB7XG4gICAgICAgIGluZm8udHlwZSA9ICdzdHJpbmcnXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3QgcHJvcGVydGllczogUHJvcGVydHlJbmZvW10gPSBbXVxuICBjb25zdCBtdXRhdG9ycyA9IHt9XG4gIGZvciAoY29uc3QgZmllbGQgaW4gZm91bmRGaWVsZHMpIHtcbiAgICBjb25zdCBpbmZvID0gZm91bmRGaWVsZHNbZmllbGRdXG4gICAgaWYgKGluZm8udHlwZSA9PT0gJ251bWJlcicpIHtcbiAgICAgIG11dGF0b3JzW2ZpZWxkXSA9IHRyeVBhcnNlTnVtYmVyXG4gICAgfSBlbHNlIGlmIChpbmZvLnR5cGUgPT09ICdkYXRlJykge1xuICAgICAgbXV0YXRvcnNbZmllbGRdID0gdHJ5UGFyc2VEYXRlXG4gICAgfVxuICAgIHByb3BlcnRpZXMucHVzaCh7IC4uLmluZm8sIHR5cGU6IGluZm8udHlwZSB8fCAnc3RyaW5nJyB9KVxuICB9XG4gIGlmIChpbmZlclR5cGVzKSB7XG4gICAgbXV0YXRlUHJvcGVydGllcyhpdGVtcywgbXV0YXRvcnMpXG4gIH1cbiAgcmV0dXJuIHsgaXRlbXMsIHByb3BlcnRpZXMgfVxufVxuXG4vKipcbiAqIFRoaXMgY3JlYXRlcyBhIFByb3h5IHRoYXQgYWxsb3dzIHJlYWRpbmcgYW5kIHdyaXRpbmcgdG8gdGhlIGRhdGEgaXRlbSBwcm9wZXJ0aWVzXG4gKiBhcyBpZiBpdCB3YXMgYSBzaW1wbGUgYXJyYXkgb2YgSlNPTiBvYmplY3RzXG4gKiBAcGFyYW0gaXRlbXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEpzb25EYXRhSXRlbXNQcm94eShcbiAgaXRlbXM6IERhdGFJdGVtW11cbik6IFJlY29yZDxzdHJpbmcsIHVua25vd24+W10ge1xuICByZXR1cm4gbmV3IFByb3h5PFJlY29yZDxzdHJpbmcsIHVua25vd24+W10+KGl0ZW1zIGFzIGFueSwge1xuICAgIGdldCh0YXJnZXQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+W10sIHA6IHN0cmluZyB8IHN5bWJvbCkge1xuICAgICAgaWYgKFxuICAgICAgICB0eXBlb2YgcCA9PT0gJ3N0cmluZycgJiZcbiAgICAgICAgIU51bWJlci5pc05hTihwYXJzZUludChwKSkgJiZcbiAgICAgICAgdGFyZ2V0W3BdPy5wcm9wZXJ0aWVzXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIHRhcmdldFtwXS5wcm9wZXJ0aWVzXG4gICAgICB9XG4gICAgICByZXR1cm4gdGFyZ2V0W3BdXG4gICAgfSxcbiAgICBzZXQoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoaXMgb2JqZWN0IGlzIHJlYWQtb25seScpXG4gICAgfSxcbiAgfSlcbn1cbiJdfQ==
207
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvZGF0YS1mZXRjaGVyL3NyYy9saWIvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLFVBQVUsRUFHVixjQUFjLEdBQ2YsTUFBTSxTQUFTLENBQUE7QUFDaEIsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxLQUFLLElBQUksU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDbkQsT0FBTyxFQUFFLFFBQVEsSUFBSSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUU1RCxNQUFNLENBQUMsS0FBSyxVQUFVLGdCQUFnQixDQUNwQyxHQUFXLEVBQ1gsUUFBd0I7SUFFeEIsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLEdBQUcsQ0FDbEMsR0FBRyxFQUNILE9BQU8sTUFBTSxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUN2RSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUE7SUFDM0IsTUFBTSxhQUFhLEdBQ2pCLG9CQUFvQixJQUFJLG9CQUFvQixDQUFDLE1BQU07UUFDakQsQ0FBQyxDQUFFLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBb0I7UUFDMUQsQ0FBQyxDQUFDLElBQUksQ0FBQTtJQUVWLGVBQWU7SUFDZixJQUFJLFFBQVE7UUFBRSxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUE7SUFFOUMseUJBQXlCO0lBQ3pCLE1BQU0sT0FBTyxHQUFHLE1BQU0sWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ3ZD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QUFDLEVBQUUsVUFBVSxFQUNyQixDQUFDO2dCQUNELE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQTtZQUM3QixDQUFDO1lBQ0QsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDbEIsQ0FBQztRQUNELEdBQUc7WUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUE7UUFDN0MsQ0FBQztLQUNGLENBQUMsQ0FBQTtBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEYXRhSXRlbSxcbiAgRGF0YXNldEhlYWRlcnMsXG4gIEZldGNoRXJyb3IsXG4gIFByb3BlcnR5SW5mbyxcbiAgU3VwcG9ydGVkVHlwZSxcbiAgU3VwcG9ydGVkVHlwZXMsXG59IGZyb20gJy4vbW9kZWwnXG5pbXBvcnQgeyBzaGFyZWRGZXRjaCwgdXNlQ2FjaGUgfSBmcm9tICdAY2FtcHRvY2FtcC9vZ2MtY2xpZW50J1xuaW1wb3J0IHsgcGFyc2VIZWFkZXJzIH0gZnJvbSAnLi9oZWFkZXJzJ1xuaW1wb3J0IHsgcGFyc2UgYXMgcGFyc2VEYXRlIH0gZnJvbSAnZGF0ZS1mbnMvcGFyc2UnXG5pbXBvcnQgeyBwYXJzZUlTTyBhcyBwYXJzZUlzb0RhdGUgfSBmcm9tICdkYXRlLWZucy9wYXJzZUlTTydcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGluZmVyRGF0YXNldFR5cGUoXG4gIHVybDogc3RyaW5nLFxuICB0eXBlSGludD86IFN1cHBvcnRlZFR5cGVcbik6IFByb21pc2U8U3VwcG9ydGVkVHlwZT4ge1xuICBjb25zdCBmaWxlRXh0ZW5zaW9uTWF0Y2hlcyA9IG5ldyBVUkwoXG4gICAgdXJsLFxuICAgIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnID8gd2luZG93LmxvY2F0aW9uLnRvU3RyaW5nKCkgOiB1bmRlZmluZWRcbiAgKS5wYXRobmFtZS5tYXRjaCgvXFwuKC4rKSQvKVxuICBjb25zdCBmaWxlRXh0ZW5zaW9uID1cbiAgICBmaWxlRXh0ZW5zaW9uTWF0Y2hlcyAmJiBmaWxlRXh0ZW5zaW9uTWF0Y2hlcy5sZW5ndGhcbiAgICAgID8gKGZpbGVFeHRlbnNpb25NYXRjaGVzWzFdLnRvTG93ZXJDYXNlKCkgYXMgU3VwcG9ydGVkVHlwZSlcbiAgICAgIDogbnVsbFxuXG4gIC8vIDEuIHR5cGUgaGludFxuICBpZiAodHlwZUhpbnQpIHJldHVybiBQcm9taXNlLnJlc29sdmUodHlwZUhpbnQpXG5cbiAgLy8gMi4gY29udGVudC10eXBlIGhlYWRlclxuICBjb25zdCBoZWFkZXJzID0gYXdhaXQgZmV0Y2hIZWFkZXJzKHVybClcbiAgaWYgKCdzdXBwb3J0ZWRUeXBlJyBpbiBoZWFkZXJzKSByZXR1cm4gaGVhZGVycy5zdXBwb3J0ZWRUeXBlXG4gIC8vIDMuIGZpbGUgZXh0ZW5zaW9uIGZyb20gdXJsXG4gIGVsc2UgaWYgKFN1cHBvcnRlZFR5cGVzLmluZGV4T2YoZmlsZUV4dGVuc2lvbikgPiAtMSkgcmV0dXJuIGZpbGVFeHRlbnNpb25cblxuICAvLyBubyB0eXBlIGluZmVycmVkIG9yIGhpbnRlZFxuICBpZiAoJ21pbWVUeXBlJyBpbiBoZWFkZXJzKSB0aHJvdyBGZXRjaEVycm9yLnVuc3VwcG9ydGVkVHlwZShoZWFkZXJzLm1pbWVUeXBlKVxuICBlbHNlIHRocm93IEZldGNoRXJyb3IudW5rbm93blR5cGUoKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZmV0Y2hIZWFkZXJzKHVybDogc3RyaW5nKTogUHJvbWlzZTxEYXRhc2V0SGVhZGVycz4ge1xuICByZXR1cm4gc2hhcmVkRmV0Y2godXJsLCAnSEVBRCcpXG4gICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgdGhyb3cgRmV0Y2hFcnJvci5jb3JzT3JOZXR3b3JrKGVycm9yLm1lc3NhZ2UpXG4gICAgfSlcbiAgICAudGhlbigocmVzcG9uc2UpID0+IHtcbiAgICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgICAgdGhyb3cgRmV0Y2hFcnJvci5odHRwKHJlc3BvbnNlLnN0YXR1cylcbiAgICAgIH1cbiAgICAgIHJldHVybiBwYXJzZUhlYWRlcnMocmVzcG9uc2UuaGVhZGVycylcbiAgICB9KVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZmV0Y2hEYXRhQXNUZXh0KHVybDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgcmV0dXJuIHVzZUNhY2hlKFxuICAgICgpID0+XG4gICAgICBzaGFyZWRGZXRjaCh1cmwpXG4gICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgICB0aHJvdyBGZXRjaEVycm9yLmNvcnNPck5ldHdvcmsoZXJyb3IubWVzc2FnZSlcbiAgICAgICAgfSlcbiAgICAgICAgLnRoZW4oYXN5bmMgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICAgICAgdGhyb3cgRmV0Y2hFcnJvci5odHRwKHJlc3BvbnNlLnN0YXR1cywgYXdhaXQgcmVzcG9uc2UudGV4dCgpKVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcmVzcG9uc2UudGV4dCgpXG4gICAgICAgIH0pLFxuICAgIHVybCxcbiAgICAnYXNUZXh0J1xuICApXG59XG5leHBvcnQgZnVuY3Rpb24gZmV0Y2hEYXRhQXNBcnJheUJ1ZmZlcih1cmw6IHN0cmluZyk6IFByb21pc2U8QXJyYXlCdWZmZXI+IHtcbiAgcmV0dXJuIHVzZUNhY2hlKFxuICAgICgpID0+XG4gICAgICBzaGFyZWRGZXRjaCh1cmwpXG4gICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgICB0aHJvdyBGZXRjaEVycm9yLmNvcnNPck5ldHdvcmsoZXJyb3IubWVzc2FnZSlcbiAgICAgICAgfSlcbiAgICAgICAgLnRoZW4oYXN5bmMgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICAgICAgdGhyb3cgRmV0Y2hFcnJvci5odHRwKHJlc3BvbnNlLnN0YXR1cywgYXdhaXQgcmVzcG9uc2UudGV4dCgpKVxuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBjb252ZXJ0IHRvIGEgbnVtZXJpYyBhcnJheSBzbyB0aGF0IHdlIGNhbiBzdG9yZSB0aGUgcmVzcG9uc2UgaW4gY2FjaGVcbiAgICAgICAgICByZXR1cm4gQXJyYXkuZnJvbShuZXcgVWludDhBcnJheShhd2FpdCByZXNwb25zZS5hcnJheUJ1ZmZlcigpKSlcbiAgICAgICAgfSksXG4gICAgdXJsLFxuICAgICdhc0FycmF5QnVmZmVyJ1xuICApLnRoZW4oKGFycmF5KSA9PiB7XG4gICAgcmV0dXJuIG5ldyBVaW50OEFycmF5KGFycmF5KS5idWZmZXJcbiAgfSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyeVBhcnNlRGF0ZShpbnB1dDogdW5rbm93bik6IERhdGUgfCBudWxsIHtcbiAgaWYgKHR5cGVvZiBpbnB1dCAhPT0gJ3N0cmluZycpIHJldHVybiBudWxsXG5cbiAgZnVuY3Rpb24gdHJ5SXNvKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBjb25zdCBwYXJzZWQgPSBwYXJzZUlzb0RhdGUodmFsdWUpXG4gICAgcmV0dXJuIGlzTmFOKHBhcnNlZC5nZXREYXRlKCkpID8gbnVsbCA6IHBhcnNlZFxuICB9XG4gIGZ1bmN0aW9uIHRyeUZvcm1hdCh2YWx1ZTogc3RyaW5nLCBmb3JtYXQ6IHN0cmluZykge1xuICAgIGNvbnN0IHBhcnNlZCA9IHBhcnNlRGF0ZSh2YWx1ZSwgZm9ybWF0LCBuZXcgRGF0ZSgpKVxuICAgIHJldHVybiBpc05hTihwYXJzZWQuZ2V0RGF0ZSgpKSA/IG51bGwgOiBwYXJzZWRcbiAgfVxuICByZXR1cm4gKFxuICAgIHRyeUlzbyhpbnB1dCkgfHxcbiAgICB0cnlGb3JtYXQoaW5wdXQsICdkZC9NTS95eXl5JykgfHxcbiAgICB0cnlGb3JtYXQoaW5wdXQsICdkZC5NTS55eXl5JykgfHxcbiAgICB0cnlGb3JtYXQoaW5wdXQsICdNTS9kZC95eXl5JykgfHxcbiAgICBudWxsXG4gIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyeVBhcnNlTnVtYmVyKGlucHV0OiBzdHJpbmcpOiBudW1iZXIgfCBudWxsIHtcbiAgaWYgKGlzTmFOKGlucHV0IGFzIGFueSkpIHJldHVybiBudWxsXG4gIGNvbnN0IHBhcnNlZCA9IHBhcnNlRmxvYXQoaW5wdXQpXG4gIHJldHVybiBpc05hTihwYXJzZWQpID8gbnVsbCA6IHBhcnNlZFxufVxuXG5leHBvcnQgZnVuY3Rpb24ganNvblRvR2VvanNvbkZlYXR1cmUob2JqZWN0OiB7IFtrZXk6IHN0cmluZ106IGFueSB9KTogRGF0YUl0ZW0ge1xuICBjb25zdCB7IGlkLCBwcm9wZXJ0aWVzIH0gPSBPYmplY3Qua2V5cyhvYmplY3QpXG4gICAgLm1hcCgocHJvcGVydHkpID0+IChwcm9wZXJ0eSA/IHByb3BlcnR5IDogJ3Vua25vd24nKSkgLy9wcmV2ZW50IGVtcHR5IHN0cmluZ3NcbiAgICAucmVkdWNlKFxuICAgICAgKHByZXYsIGN1cnIpID0+XG4gICAgICAgIGN1cnIudG9Mb3dlckNhc2UoKS5lbmRzV2l0aCgnaWQnKVxuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAuLi5wcmV2LFxuICAgICAgICAgICAgICBpZDogb2JqZWN0W2N1cnJdLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIDoge1xuICAgICAgICAgICAgICAuLi5wcmV2LFxuICAgICAgICAgICAgICBwcm9wZXJ0aWVzOiB7IC4uLnByZXYucHJvcGVydGllcywgW2N1cnJdOiBvYmplY3RbY3Vycl0gfSxcbiAgICAgICAgICAgIH0sXG4gICAgICB7IGlkOiB1bmRlZmluZWQsIHByb3BlcnRpZXM6IHt9IH1cbiAgICApXG4gIHJldHVybiB7XG4gICAgdHlwZTogJ0ZlYXR1cmUnLFxuICAgIGdlb21ldHJ5OiBudWxsLFxuICAgIHByb3BlcnRpZXMsXG4gICAgLi4uKGlkICE9PSB1bmRlZmluZWQgJiYgeyBpZCB9KSxcbiAgfVxufVxuXG5mdW5jdGlvbiBtdXRhdGVQcm9wZXJ0aWVzKFxuICBpdGVtczogRGF0YUl0ZW1bXSxcbiAgbXV0YXRvcnM6IHsgW2ZpZWxkTmFtZTogc3RyaW5nXTogKHZhbHVlOiB1bmtub3duKSA9PiB1bmtub3duIH1cbik6IERhdGFJdGVtW10ge1xuICBjb25zdCBtdXRhdG9yS2V5cyA9IE9iamVjdC5rZXlzKG11dGF0b3JzKVxuICBmb3IgKGxldCBpID0gMCwgaWkgPSBpdGVtcy5sZW5ndGg7IGkgPCBpaTsgaSsrKSB7XG4gICAgY29uc3QgaXRlbSA9IGl0ZW1zW2ldXG4gICAgZm9yIChjb25zdCBtdXRhdG9yRmllbGQgb2YgbXV0YXRvcktleXMpIHtcbiAgICAgIGlmICghKG11dGF0b3JGaWVsZCBpbiBpdGVtLnByb3BlcnRpZXMpKSBjb250aW51ZVxuICAgICAgaXRlbS5wcm9wZXJ0aWVzW211dGF0b3JGaWVsZF0gPSBtdXRhdG9yc1ttdXRhdG9yRmllbGRdKFxuICAgICAgICBpdGVtLnByb3BlcnRpZXNbbXV0YXRvckZpZWxkXVxuICAgICAgKVxuICAgIH1cbiAgfVxuICByZXR1cm4gaXRlbXNcbn1cblxuY29uc3QgU0FNUExFX1NJWkUgPSAyMFxuXG4vKipcbiAqIFRoaXMgd2lsbCBpbmZlciBmaWVsZCB0eXBlcyBmcm9tIGEgbGlzdCBvZiBkYXRhIGl0ZW1zIGFuZCBjYXN0IHRoZSB2YWx1ZXMgYWNjb3JkaW5nbHlcbiAqIEBwYXJhbSBpdGVtc1xuICogQHBhcmFtIGluZmVyVHlwZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb2Nlc3NJdGVtUHJvcGVydGllcyhcbiAgaXRlbXM6IERhdGFJdGVtW10sXG4gIGluZmVyVHlwZXMgPSBmYWxzZVxuKToge1xuICBpdGVtczogRGF0YUl0ZW1bXVxuICBwcm9wZXJ0aWVzOiBQcm9wZXJ0eUluZm9bXVxufSB7XG4gIGNvbnN0IGZvdW5kRmllbGRzOiB7IFtuYW1lOiBzdHJpbmddOiBQcm9wZXJ0eUluZm8gfSA9IHt9XG4gIGZvciAobGV0IGkgPSAwLCBpaSA9IE1hdGgubWluKFNBTVBMRV9TSVpFLCBpdGVtcy5sZW5ndGgpOyBpIDwgaWk7IGkrKykge1xuICAgIGNvbnN0IGl0ZW0gPSBpdGVtc1tpXVxuICAgIGNvbnN0IGZpZWxkcyA9IE9iamVjdC5rZXlzKGl0ZW0ucHJvcGVydGllcylcbiAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIGZpZWxkcykge1xuICAgICAgaWYgKCEoZmllbGQgaW4gZm91bmRGaWVsZHMpKSB7XG4gICAgICAgIGZvdW5kRmllbGRzW2ZpZWxkXSA9IHtcbiAgICAgICAgICBsYWJlbDogZmllbGQsXG4gICAgICAgICAgbmFtZTogZmllbGQsXG4gICAgICAgICAgdHlwZTogbnVsbCxcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgY29uc3QgdmFsdWUgPSBpdGVtLnByb3BlcnRpZXNbZmllbGRdXG4gICAgICBjb25zdCBpbmZvID0gZm91bmRGaWVsZHNbZmllbGRdXG4gICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gJycgfHwgdmFsdWUgPT09IG51bGwpIGNvbnRpbnVlXG5cbiAgICAgIGlmICghaW5mZXJUeXBlcykge1xuICAgICAgICBpZiAoaW5mby50eXBlID09PSBudWxsICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICBpbmZvLnR5cGUgPSAnbnVtYmVyJ1xuICAgICAgICB9IGVsc2UgaWYgKGluZm8udHlwZSA9PT0gJ251bWJlcicgJiYgdHlwZW9mIHZhbHVlICE9PSAnbnVtYmVyJykge1xuICAgICAgICAgIGluZm8udHlwZSA9ICdzdHJpbmcnXG4gICAgICAgIH1cbiAgICAgICAgY29udGludWVcbiAgICAgIH1cblxuICAgICAgY29uc3QgcGFyc2VkTnVtYmVyID0gdHJ5UGFyc2VOdW1iZXIodmFsdWUpXG4gICAgICBpZiAoaW5mby50eXBlID09PSBudWxsICYmIHBhcnNlZE51bWJlciAhPT0gbnVsbCkge1xuICAgICAgICBpbmZvLnR5cGUgPSAnbnVtYmVyJ1xuICAgICAgICBjb250aW51ZVxuICAgICAgfSBlbHNlIGlmIChpbmZvLnR5cGUgPT09ICdudW1iZXInICYmIHBhcnNlZE51bWJlciA9PT0gbnVsbCkge1xuICAgICAgICBpbmZvLnR5cGUgPSAnc3RyaW5nJ1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgY29uc3QgcGFyc2VkRGF0ZSA9IHRyeVBhcnNlRGF0ZSh2YWx1ZSlcbiAgICAgIGlmIChpbmZvLnR5cGUgPT09IG51bGwgJiYgcGFyc2VkRGF0ZSAhPT0gbnVsbCkge1xuICAgICAgICBpbmZvLnR5cGUgPSAnZGF0ZSdcbiAgICAgIH0gZWxzZSBpZiAoaW5mby50eXBlID09PSAnZGF0ZScgJiYgcGFyc2VkRGF0ZSA9PT0gbnVsbCkge1xuICAgICAgICBpbmZvLnR5cGUgPSAnc3RyaW5nJ1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHByb3BlcnRpZXM6IFByb3BlcnR5SW5mb1tdID0gW11cbiAgY29uc3QgbXV0YXRvcnMgPSB7fVxuICBmb3IgKGNvbnN0IGZpZWxkIGluIGZvdW5kRmllbGRzKSB7XG4gICAgY29uc3QgaW5mbyA9IGZvdW5kRmllbGRzW2ZpZWxkXVxuICAgIGlmIChpbmZvLnR5cGUgPT09ICdudW1iZXInKSB7XG4gICAgICBtdXRhdG9yc1tmaWVsZF0gPSB0cnlQYXJzZU51bWJlclxuICAgIH0gZWxzZSBpZiAoaW5mby50eXBlID09PSAnZGF0ZScpIHtcbiAgICAgIG11dGF0b3JzW2ZpZWxkXSA9IHRyeVBhcnNlRGF0ZVxuICAgIH1cbiAgICBwcm9wZXJ0aWVzLnB1c2goeyAuLi5pbmZvLCB0eXBlOiBpbmZvLnR5cGUgfHwgJ3N0cmluZycgfSlcbiAgfVxuICBpZiAoaW5mZXJUeXBlcykge1xuICAgIG11dGF0ZVByb3BlcnRpZXMoaXRlbXMsIG11dGF0b3JzKVxuICB9XG4gIHJldHVybiB7IGl0ZW1zLCBwcm9wZXJ0aWVzIH1cbn1cblxuLyoqXG4gKiBUaGlzIGNyZWF0ZXMgYSBQcm94eSB0aGF0IGFsbG93cyByZWFkaW5nIGFuZCB3cml0aW5nIHRvIHRoZSBkYXRhIGl0ZW0gcHJvcGVydGllc1xuICogYXMgaWYgaXQgd2FzIGEgc2ltcGxlIGFycmF5IG9mIEpTT04gb2JqZWN0c1xuICogQHBhcmFtIGl0ZW1zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRKc29uRGF0YUl0ZW1zUHJveHkoXG4gIGl0ZW1zOiBEYXRhSXRlbVtdXG4pOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPltdIHtcbiAgcmV0dXJuIG5ldyBQcm94eTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPltdPihpdGVtcyBhcyBhbnksIHtcbiAgICBnZXQodGFyZ2V0OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPltdLCBwOiBzdHJpbmcgfCBzeW1ib2wpIHtcbiAgICAgIGlmIChcbiAgICAgICAgdHlwZW9mIHAgPT09ICdzdHJpbmcnICYmXG4gICAgICAgICFOdW1iZXIuaXNOYU4ocGFyc2VJbnQocCkpICYmXG4gICAgICAgIHRhcmdldFtwXT8ucHJvcGVydGllc1xuICAgICAgKSB7XG4gICAgICAgIHJldHVybiB0YXJnZXRbcF0ucHJvcGVydGllc1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRhcmdldFtwXVxuICAgIH0sXG4gICAgc2V0KCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGlzIG9iamVjdCBpcyByZWFkLW9ubHknKVxuICAgIH0sXG4gIH0pXG59XG4iXX0=
@@ -0,0 +1,41 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { TranslateService } from '@ngx-translate/core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@ngx-translate/core";
5
+ export class DateService {
6
+ constructor(translateService) {
7
+ this.translateService = translateService;
8
+ }
9
+ getDateObject(date) {
10
+ if (typeof date === 'string') {
11
+ const dateObj = new Date(date);
12
+ if (isNaN(dateObj.getTime())) {
13
+ throw new Error('Invalid date string');
14
+ }
15
+ return dateObj;
16
+ }
17
+ return date;
18
+ }
19
+ getLocaleAndDate(date) {
20
+ const locale = this.translateService.currentLang || 'en-US';
21
+ const dateObj = this.getDateObject(date);
22
+ return { locale, dateObj };
23
+ }
24
+ formatDate(date, options) {
25
+ const { locale, dateObj } = this.getLocaleAndDate(date);
26
+ return dateObj.toLocaleDateString(locale, options);
27
+ }
28
+ formatDateTime(date, options) {
29
+ const { locale, dateObj } = this.getLocaleAndDate(date);
30
+ return dateObj.toLocaleString(locale, options);
31
+ }
32
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DateService, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable }); }
33
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DateService, providedIn: 'root' }); }
34
+ }
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DateService, decorators: [{
36
+ type: Injectable,
37
+ args: [{
38
+ providedIn: 'root',
39
+ }]
40
+ }], ctorParameters: () => [{ type: i1.TranslateService }] });
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL3NoYXJlZC9zcmMvbGliL3NlcnZpY2VzL2RhdGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFBOzs7QUFLdEQsTUFBTSxPQUFPLFdBQVc7SUFDdEIsWUFBb0IsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7SUFBRyxDQUFDO0lBRWxELGFBQWEsQ0FBQyxJQUFtQjtRQUN2QyxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzdCLE1BQU0sT0FBTyxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQzlCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUM7Z0JBQzdCLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQTtZQUN4QyxDQUFDO1lBQ0QsT0FBTyxPQUFPLENBQUE7UUFDaEIsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQUVPLGdCQUFnQixDQUFDLElBQW1CO1FBSTFDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLElBQUksT0FBTyxDQUFBO1FBQzNELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDeEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBQTtJQUM1QixDQUFDO0lBRUQsVUFBVSxDQUNSLElBQW1CLEVBQ25CLE9BQW9DO1FBRXBDLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3ZELE9BQU8sT0FBTyxDQUFDLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQTtJQUNwRCxDQUFDO0lBRUQsY0FBYyxDQUNaLElBQW1CLEVBQ25CLE9BQW9DO1FBRXBDLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3ZELE9BQU8sT0FBTyxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUE7SUFDaEQsQ0FBQzsrR0FyQ1UsV0FBVzttSEFBWCxXQUFXLGNBRlYsTUFBTTs7NEZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgRGF0ZVNlcnZpY2Uge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UpIHt9XG5cbiAgcHJpdmF0ZSBnZXREYXRlT2JqZWN0KGRhdGU6IERhdGUgfCBzdHJpbmcpOiBEYXRlIHtcbiAgICBpZiAodHlwZW9mIGRhdGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBjb25zdCBkYXRlT2JqID0gbmV3IERhdGUoZGF0ZSlcbiAgICAgIGlmIChpc05hTihkYXRlT2JqLmdldFRpbWUoKSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGRhdGUgc3RyaW5nJylcbiAgICAgIH1cbiAgICAgIHJldHVybiBkYXRlT2JqXG4gICAgfVxuICAgIHJldHVybiBkYXRlXG4gIH1cblxuICBwcml2YXRlIGdldExvY2FsZUFuZERhdGUoZGF0ZTogRGF0ZSB8IHN0cmluZyk6IHtcbiAgICBsb2NhbGU6IHN0cmluZ1xuICAgIGRhdGVPYmo6IERhdGVcbiAgfSB7XG4gICAgY29uc3QgbG9jYWxlID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmN1cnJlbnRMYW5nIHx8ICdlbi1VUydcbiAgICBjb25zdCBkYXRlT2JqID0gdGhpcy5nZXREYXRlT2JqZWN0KGRhdGUpXG4gICAgcmV0dXJuIHsgbG9jYWxlLCBkYXRlT2JqIH1cbiAgfVxuXG4gIGZvcm1hdERhdGUoXG4gICAgZGF0ZTogRGF0ZSB8IHN0cmluZyxcbiAgICBvcHRpb25zPzogSW50bC5EYXRlVGltZUZvcm1hdE9wdGlvbnNcbiAgKTogc3RyaW5nIHtcbiAgICBjb25zdCB7IGxvY2FsZSwgZGF0ZU9iaiB9ID0gdGhpcy5nZXRMb2NhbGVBbmREYXRlKGRhdGUpXG4gICAgcmV0dXJuIGRhdGVPYmoudG9Mb2NhbGVEYXRlU3RyaW5nKGxvY2FsZSwgb3B0aW9ucylcbiAgfVxuXG4gIGZvcm1hdERhdGVUaW1lKFxuICAgIGRhdGU6IERhdGUgfCBzdHJpbmcsXG4gICAgb3B0aW9ucz86IEludGwuRGF0ZVRpbWVGb3JtYXRPcHRpb25zXG4gICk6IHN0cmluZyB7XG4gICAgY29uc3QgeyBsb2NhbGUsIGRhdGVPYmogfSA9IHRoaXMuZ2V0TG9jYWxlQW5kRGF0ZShkYXRlKVxuICAgIHJldHVybiBkYXRlT2JqLnRvTG9jYWxlU3RyaW5nKGxvY2FsZSwgb3B0aW9ucylcbiAgfVxufVxuIl19
@@ -1,4 +1,5 @@
1
1
  export * from './theme.service';
2
2
  export * from './log.service';
3
3
  export * from './proxy.service';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYy9saWIvc2VydmljZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQkFBaUIsQ0FBQTtBQUMvQixjQUFjLGVBQWUsQ0FBQTtBQUM3QixjQUFjLGlCQUFpQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi90aGVtZS5zZXJ2aWNlJ1xuZXhwb3J0ICogZnJvbSAnLi9sb2cuc2VydmljZSdcbmV4cG9ydCAqIGZyb20gJy4vcHJveHkuc2VydmljZSdcbiJdfQ==
4
+ export * from './date.service';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYy9saWIvc2VydmljZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQkFBaUIsQ0FBQTtBQUMvQixjQUFjLGVBQWUsQ0FBQTtBQUM3QixjQUFjLGlCQUFpQixDQUFBO0FBQy9CLGNBQWMsZ0JBQWdCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3RoZW1lLnNlcnZpY2UnXG5leHBvcnQgKiBmcm9tICcuL2xvZy5zZXJ2aWNlJ1xuZXhwb3J0ICogZnJvbSAnLi9wcm94eS5zZXJ2aWNlJ1xuZXhwb3J0ICogZnJvbSAnLi9kYXRlLnNlcnZpY2UnXG4iXX0=
@@ -1,4 +1,4 @@
1
- export function getTemporalRangeUnion(ranges) {
1
+ export function getTemporalRangeUnion(ranges, dateService) {
2
2
  let earliestStartDate = Infinity;
3
3
  let latestEndDate = -Infinity;
4
4
  if (ranges.length) {
@@ -18,10 +18,10 @@ export function getTemporalRangeUnion(ranges) {
18
18
  }
19
19
  return {
20
20
  start: earliestStartDate !== -Infinity
21
- ? new Date(earliestStartDate).toLocaleDateString()
21
+ ? dateService.formatDate(new Date(earliestStartDate))
22
22
  : undefined,
23
23
  end: latestEndDate !== Infinity
24
- ? new Date(latestEndDate).toLocaleDateString()
24
+ ? dateService.formatDate(new Date(latestEndDate))
25
25
  : undefined,
26
26
  };
27
27
  }
@@ -29,4 +29,4 @@ export function getTemporalRangeUnion(ranges) {
29
29
  return undefined;
30
30
  }
31
31
  }
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcG9yYWwtZXh0ZW50LXVuaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL3NoYXJlZC9zcmMvbGliL3V0aWxzL3RlbXBvcmFsLWV4dGVudC11bmlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUscUJBQXFCLENBQ25DLE1BR0c7SUFFSCxJQUFJLGlCQUFpQixHQUFHLFFBQVEsQ0FBQTtJQUNoQyxJQUFJLGFBQWEsR0FBRyxDQUFDLFFBQVEsQ0FBQTtJQUM3QixJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNsQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ3ZDLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO2dCQUNoQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sRUFBRTtnQkFDckMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFBO1lBQ2IsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUc7Z0JBQzVCLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFO2dCQUNuQyxDQUFDLENBQUMsUUFBUSxDQUFBO1lBQ1osSUFBSSxVQUFVLEdBQUcsaUJBQWlCLEVBQUUsQ0FBQztnQkFDbkMsaUJBQWlCLEdBQUcsVUFBVSxDQUFBO1lBQ2hDLENBQUM7WUFDRCxJQUFJLFFBQVEsR0FBRyxhQUFhLEVBQUUsQ0FBQztnQkFDN0IsYUFBYSxHQUFHLFFBQVEsQ0FBQTtZQUMxQixDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU87WUFDTCxLQUFLLEVBQ0gsaUJBQWlCLEtBQUssQ0FBQyxRQUFRO2dCQUM3QixDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxrQkFBa0IsRUFBRTtnQkFDbEQsQ0FBQyxDQUFDLFNBQVM7WUFDZixHQUFHLEVBQ0QsYUFBYSxLQUFLLFFBQVE7Z0JBQ3hCLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxrQkFBa0IsRUFBRTtnQkFDOUMsQ0FBQyxDQUFDLFNBQVM7U0FDaEIsQ0FBQTtJQUNILENBQUM7U0FBTSxDQUFDO1FBQ04sT0FBTyxTQUFTLENBQUE7SUFDbEIsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gZ2V0VGVtcG9yYWxSYW5nZVVuaW9uKFxuICByYW5nZXM6IHtcbiAgICBzdGFydD86IERhdGVcbiAgICBlbmQ/OiBEYXRlXG4gIH1bXVxuKSB7XG4gIGxldCBlYXJsaWVzdFN0YXJ0RGF0ZSA9IEluZmluaXR5XG4gIGxldCBsYXRlc3RFbmREYXRlID0gLUluZmluaXR5XG4gIGlmIChyYW5nZXMubGVuZ3RoKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCByYW5nZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IHJhbmdlU3RhcnQgPSByYW5nZXNbaV0uc3RhcnRcbiAgICAgICAgPyBuZXcgRGF0ZShyYW5nZXNbaV0uc3RhcnQpLmdldFRpbWUoKVxuICAgICAgICA6IC1JbmZpbml0eVxuICAgICAgY29uc3QgcmFuZ2VFbmQgPSByYW5nZXNbaV0uZW5kXG4gICAgICAgID8gbmV3IERhdGUocmFuZ2VzW2ldLmVuZCkuZ2V0VGltZSgpXG4gICAgICAgIDogSW5maW5pdHlcbiAgICAgIGlmIChyYW5nZVN0YXJ0IDwgZWFybGllc3RTdGFydERhdGUpIHtcbiAgICAgICAgZWFybGllc3RTdGFydERhdGUgPSByYW5nZVN0YXJ0XG4gICAgICB9XG4gICAgICBpZiAocmFuZ2VFbmQgPiBsYXRlc3RFbmREYXRlKSB7XG4gICAgICAgIGxhdGVzdEVuZERhdGUgPSByYW5nZUVuZFxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgc3RhcnQ6XG4gICAgICAgIGVhcmxpZXN0U3RhcnREYXRlICE9PSAtSW5maW5pdHlcbiAgICAgICAgICA/IG5ldyBEYXRlKGVhcmxpZXN0U3RhcnREYXRlKS50b0xvY2FsZURhdGVTdHJpbmcoKVxuICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgZW5kOlxuICAgICAgICBsYXRlc3RFbmREYXRlICE9PSBJbmZpbml0eVxuICAgICAgICAgID8gbmV3IERhdGUobGF0ZXN0RW5kRGF0ZSkudG9Mb2NhbGVEYXRlU3RyaW5nKClcbiAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9XG59XG4iXX0=
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcG9yYWwtZXh0ZW50LXVuaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL3NoYXJlZC9zcmMvbGliL3V0aWxzL3RlbXBvcmFsLWV4dGVudC11bmlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLFVBQVUscUJBQXFCLENBQ25DLE1BR0csRUFDSCxXQUF3QjtJQUV4QixJQUFJLGlCQUFpQixHQUFHLFFBQVEsQ0FBQTtJQUNoQyxJQUFJLGFBQWEsR0FBRyxDQUFDLFFBQVEsQ0FBQTtJQUM3QixJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNsQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ3ZDLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO2dCQUNoQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sRUFBRTtnQkFDckMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFBO1lBQ2IsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUc7Z0JBQzVCLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFO2dCQUNuQyxDQUFDLENBQUMsUUFBUSxDQUFBO1lBQ1osSUFBSSxVQUFVLEdBQUcsaUJBQWlCLEVBQUUsQ0FBQztnQkFDbkMsaUJBQWlCLEdBQUcsVUFBVSxDQUFBO1lBQ2hDLENBQUM7WUFDRCxJQUFJLFFBQVEsR0FBRyxhQUFhLEVBQUUsQ0FBQztnQkFDN0IsYUFBYSxHQUFHLFFBQVEsQ0FBQTtZQUMxQixDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU87WUFDTCxLQUFLLEVBQ0gsaUJBQWlCLEtBQUssQ0FBQyxRQUFRO2dCQUM3QixDQUFDLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO2dCQUNyRCxDQUFDLENBQUMsU0FBUztZQUNmLEdBQUcsRUFDRCxhQUFhLEtBQUssUUFBUTtnQkFDeEIsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBQ2pELENBQUMsQ0FBQyxTQUFTO1NBQ2hCLENBQUE7SUFDSCxDQUFDO1NBQU0sQ0FBQztRQUNOLE9BQU8sU0FBUyxDQUFBO0lBQ2xCLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0ZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcydcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRlbXBvcmFsUmFuZ2VVbmlvbihcbiAgcmFuZ2VzOiB7XG4gICAgc3RhcnQ/OiBEYXRlXG4gICAgZW5kPzogRGF0ZVxuICB9W10sXG4gIGRhdGVTZXJ2aWNlOiBEYXRlU2VydmljZVxuKSB7XG4gIGxldCBlYXJsaWVzdFN0YXJ0RGF0ZSA9IEluZmluaXR5XG4gIGxldCBsYXRlc3RFbmREYXRlID0gLUluZmluaXR5XG4gIGlmIChyYW5nZXMubGVuZ3RoKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCByYW5nZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IHJhbmdlU3RhcnQgPSByYW5nZXNbaV0uc3RhcnRcbiAgICAgICAgPyBuZXcgRGF0ZShyYW5nZXNbaV0uc3RhcnQpLmdldFRpbWUoKVxuICAgICAgICA6IC1JbmZpbml0eVxuICAgICAgY29uc3QgcmFuZ2VFbmQgPSByYW5nZXNbaV0uZW5kXG4gICAgICAgID8gbmV3IERhdGUocmFuZ2VzW2ldLmVuZCkuZ2V0VGltZSgpXG4gICAgICAgIDogSW5maW5pdHlcbiAgICAgIGlmIChyYW5nZVN0YXJ0IDwgZWFybGllc3RTdGFydERhdGUpIHtcbiAgICAgICAgZWFybGllc3RTdGFydERhdGUgPSByYW5nZVN0YXJ0XG4gICAgICB9XG4gICAgICBpZiAocmFuZ2VFbmQgPiBsYXRlc3RFbmREYXRlKSB7XG4gICAgICAgIGxhdGVzdEVuZERhdGUgPSByYW5nZUVuZFxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgc3RhcnQ6XG4gICAgICAgIGVhcmxpZXN0U3RhcnREYXRlICE9PSAtSW5maW5pdHlcbiAgICAgICAgICA/IGRhdGVTZXJ2aWNlLmZvcm1hdERhdGUobmV3IERhdGUoZWFybGllc3RTdGFydERhdGUpKVxuICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgZW5kOlxuICAgICAgICBsYXRlc3RFbmREYXRlICE9PSBJbmZpbml0eVxuICAgICAgICAgID8gZGF0ZVNlcnZpY2UuZm9ybWF0RGF0ZShuZXcgRGF0ZShsYXRlc3RFbmREYXRlKSlcbiAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9XG59XG4iXX0=
@@ -25,7 +25,8 @@
25
25
  "dashboard.createRecord": "Neuer Eintrag",
26
26
  "dashboard.importRecord": "",
27
27
  "dashboard.importRecord.importExternal": "",
28
- "dashboard.importRecord.importExternalLabel": "",
28
+ "dashboard.importRecord.importExternal.subtitle": "",
29
+ "dashboard.importRecord.importExternal.title": "",
29
30
  "dashboard.labels.catalog": "Katalog",
30
31
  "dashboard.labels.mySpace": "Mein Bereich",
31
32
  "dashboard.records.all": "Metadatenkatalog",
@@ -194,8 +195,7 @@
194
195
  "downloads.format.unknown": "unbekannt",
195
196
  "downloads.wfs.featuretype.not.found": "Der Layer wurde nicht gefunden",
196
197
  "dropFile": "Datei ablegen",
197
- "editor.form.keywords.placeholder": "",
198
- "editor.form.placeKeywordWithoutExtent": "",
198
+ "editor.new.record.title": "",
199
199
  "editor.record.delete.confirmation.cancelText": "Stornieren",
200
200
  "editor.record.delete.confirmation.confirmText": "Löschen",
201
201
  "editor.record.delete.confirmation.message": "Sind Sie sicher, dass Sie diesen Datensatz löschen möchten?",
@@ -228,7 +228,9 @@
228
228
  "editor.record.form.field.abstract": "Kurzbeschreibung",
229
229
  "editor.record.form.field.constraintsShortcuts": "",
230
230
  "editor.record.form.field.contacts.noContact": "",
231
+ "editor.record.form.field.contacts.placeholder": "",
231
232
  "editor.record.form.field.contactsForResource.noContact": "",
233
+ "editor.record.form.field.contactsForResource.placeholder": "",
232
234
  "editor.record.form.field.keywords": "Schlagwörter",
233
235
  "editor.record.form.field.legalConstraints": "Rechtliche Einschränkung",
234
236
  "editor.record.form.field.license": "Lizenz",
@@ -237,12 +239,12 @@
237
239
  "editor.record.form.field.onlineResource.confirm": "",
238
240
  "editor.record.form.field.onlineResource.dialogTitle": "",
239
241
  "editor.record.form.field.onlineResource.edit.description": "",
240
- "editor.record.form.field.onlineResource.edit.protocol": "",
241
242
  "editor.record.form.field.onlineResource.edit.identifier.error": "Schichten konnten nicht vom Protokoll abgerufen werden",
242
243
  "editor.record.form.field.onlineResource.edit.identifier.placeholder": "Ebenenname",
243
244
  "editor.record.form.field.onlineResource.edit.identifier.placeholder.wps": "Prozessname",
244
245
  "editor.record.form.field.onlineResource.edit.identifier.select.label": "Wählen Sie eine Ebene",
245
246
  "editor.record.form.field.onlineResource.edit.identifier.submit": "Link zum Dienst",
247
+ "editor.record.form.field.onlineResource.edit.protocol": "",
246
248
  "editor.record.form.field.onlineResource.edit.title": "",
247
249
  "editor.record.form.field.onlineResource.fileSize": "",
248
250
  "editor.record.form.field.onlineResource.modify": "",
@@ -262,6 +264,9 @@
262
264
  "editor.record.form.field.title.placeholder": "Geben Sie einen Titel ein",
263
265
  "editor.record.form.field.uniqueIdentifier": "Eindeutige Kennung (ID)",
264
266
  "editor.record.form.field.updateFrequency": "Aktualisierungshäufigkeit",
267
+ "editor.record.form.keywords.place.placeholder": "",
268
+ "editor.record.form.keywords.place.withoutExtent": "",
269
+ "editor.record.form.keywords.placeholder": "",
265
270
  "editor.record.form.license.cc-by": "",
266
271
  "editor.record.form.license.cc-by-sa": "",
267
272
  "editor.record.form.license.cc-zero": "",
@@ -273,7 +278,7 @@
273
278
  "editor.record.form.license.unknown": "",
274
279
  "editor.record.form.page.accessAndContact": "",
275
280
  "editor.record.form.page.description": "",
276
- "editor.record.form.page.ressources": "",
281
+ "editor.record.form.page.resources": "",
277
282
  "editor.record.form.section.about.description": "",
278
283
  "editor.record.form.section.about.label": "",
279
284
  "editor.record.form.section.annexes.description": "",
@@ -450,6 +455,8 @@
450
455
  "record.metadata.api.form.productTooltip": "",
451
456
  "record.metadata.api.form.reset": "Zurücksetzen",
452
457
  "record.metadata.api.form.resetTooltip": "",
458
+ "record.metadata.api.form.title": "Benutzerdefinierte URL generieren",
459
+ "record.metadata.api.form.title.gpf": "",
453
460
  "record.metadata.api.form.type": "Ausgabeformat",
454
461
  "record.metadata.api.form.zoneTitle": "",
455
462
  "record.metadata.api.form.zoneTooltip": "",
@@ -518,6 +525,7 @@
518
525
  "record.tab.chart": "Diagramm",
519
526
  "record.tab.data": "Tabelle",
520
527
  "record.tab.map": "Karte",
528
+ "record.was.created.time": "erstellte diesen Datensatz {time}",
521
529
  "records": "Datensätze",
522
530
  "results.layout.selectOne": "Layout auswählen",
523
531
  "results.records.hits.displayedOn": "{displayed, plural, =0{Kein Datensatz.} one{1 Datensatz} other{{displayed} Datensätze }} {hits, plural, other{angezeigt von {hits} insgesamt.}}",
@@ -581,6 +589,12 @@
581
589
  "share.tab.webComponent": "Integrieren",
582
590
  "table.loading.data": "Daten werden geladen...",
583
591
  "table.object.count": "Objekte in diesem Datensatz",
592
+ "table.paginator.firstPage": "Erste Seite",
593
+ "table.paginator.itemsPerPage": "Elemente pro Seite",
594
+ "table.paginator.lastPage": "Letzte Seite",
595
+ "table.paginator.nextPage": "Nächste Seite",
596
+ "table.paginator.previousPage": "Vorherige Seite",
597
+ "table.paginator.rangeLabel": "{startIndex} - {endIndex} von {length}",
584
598
  "table.select.data": "Datenquelle",
585
599
  "tooltip.html.copy": "HTML kopieren",
586
600
  "tooltip.id.copy": "Eindeutige Kennung kopieren",
@@ -588,6 +602,7 @@
588
602
  "tooltip.url.open": "URL öffnen",
589
603
  "ui.readLess": "Weniger lesen",
590
604
  "ui.readMore": "Weiterlesen",
605
+ "wfs.aggregations.notsupported": "",
591
606
  "wfs.feature.limit": "Zu viele Features, um den WFS-Layer anzuzeigen!",
592
607
  "wfs.featuretype.notfound": "Kein passender Feature-Typ wurde im Dienst gefunden",
593
608
  "wfs.geojsongml.notsupported": "Dieser Dienst unterstützt das GeoJSON- oder GML-Format nicht",
@@ -25,7 +25,8 @@
25
25
  "dashboard.createRecord": "New dataset",
26
26
  "dashboard.importRecord": "Import",
27
27
  "dashboard.importRecord.importExternal": "Import an external file",
28
- "dashboard.importRecord.importExternalLabel": "External file URL",
28
+ "dashboard.importRecord.importExternal.subtitle": "(link to an XML file)",
29
+ "dashboard.importRecord.importExternal.title": "External file URL",
29
30
  "dashboard.labels.catalog": "Catalog",
30
31
  "dashboard.labels.mySpace": "My space",
31
32
  "dashboard.records.all": "Datasets",
@@ -194,8 +195,7 @@
194
195
  "downloads.format.unknown": "Unknown",
195
196
  "downloads.wfs.featuretype.not.found": "The layer was not found",
196
197
  "dropFile": "Drop file",
197
- "editor.form.keywords.placeholder": "Select a keyword",
198
- "editor.form.placeKeywordWithoutExtent": "This keyword is not associated with any geographical extent",
198
+ "editor.new.record.title": "My dataset",
199
199
  "editor.record.delete.confirmation.cancelText": "Cancel",
200
200
  "editor.record.delete.confirmation.confirmText": "Delete",
201
201
  "editor.record.delete.confirmation.message": "Are you sure you want to delete this dataset?",
@@ -220,15 +220,17 @@
220
220
  "editor.record.form.constraint.header.securityConstraints": "Applicable security conditions",
221
221
  "editor.record.form.constraint.legalConstraints": "Legal constraints",
222
222
  "editor.record.form.constraint.markdown.placeholder": "Your text here",
223
- "editor.record.form.constraint.not.applicable": "No conditions apply.",
224
- "editor.record.form.constraint.not.known": "The conditions are unknown.",
223
+ "editor.record.form.constraint.not.applicable": "No conditions apply",
224
+ "editor.record.form.constraint.not.known": "The conditions are unknown",
225
225
  "editor.record.form.constraint.otherConstraints": "Other constraints",
226
226
  "editor.record.form.constraint.securityConstraints": "Security constraints",
227
227
  "editor.record.form.draft.updateAlert": "Since you created this draft, the dataset has been updated on { date } by { user }. Publishing your draft might erase their edits. To avoid this, you need to either cancel your changes or knowingly publish your own version.",
228
228
  "editor.record.form.field.abstract": "Abstract",
229
229
  "editor.record.form.field.constraintsShortcuts": "",
230
230
  "editor.record.form.field.contacts.noContact": "Please provide at least one point of contact.",
231
+ "editor.record.form.field.contacts.placeholder": "Choose a contact",
231
232
  "editor.record.form.field.contactsForResource.noContact": "Please provide at least one point of contact responsible for the data.",
233
+ "editor.record.form.field.contactsForResource.placeholder": "Choose a contact",
232
234
  "editor.record.form.field.keywords": "Keywords",
233
235
  "editor.record.form.field.legalConstraints": "Legal constraint",
234
236
  "editor.record.form.field.license": "License",
@@ -237,12 +239,12 @@
237
239
  "editor.record.form.field.onlineResource.confirm": "Confirm",
238
240
  "editor.record.form.field.onlineResource.dialogTitle": "Modify the dataset preview",
239
241
  "editor.record.form.field.onlineResource.edit.description": "Description",
240
- "editor.record.form.field.onlineResource.edit.protocol": "Protocol",
241
242
  "editor.record.form.field.onlineResource.edit.identifier.error": "Unable to retrieve layers from protocol",
242
243
  "editor.record.form.field.onlineResource.edit.identifier.placeholder": "Layer name",
243
244
  "editor.record.form.field.onlineResource.edit.identifier.placeholder.wps": "Process name",
244
245
  "editor.record.form.field.onlineResource.edit.identifier.select.label": "Select a layer",
245
246
  "editor.record.form.field.onlineResource.edit.identifier.submit": "Link to the service",
247
+ "editor.record.form.field.onlineResource.edit.protocol": "Protocol",
246
248
  "editor.record.form.field.onlineResource.edit.title": "Title",
247
249
  "editor.record.form.field.onlineResource.fileSize": "{sizeMB}MB",
248
250
  "editor.record.form.field.onlineResource.modify": "Modify",
@@ -250,7 +252,7 @@
250
252
  "editor.record.form.field.onlineResource.toggle.service": "Link to a service",
251
253
  "editor.record.form.field.onlineResources": "Distribution",
252
254
  "editor.record.form.field.otherConstraints": "Other constraint",
253
- "editor.record.form.field.overviews": "Overviews",
255
+ "editor.record.form.field.overviews": "Overview",
254
256
  "editor.record.form.field.recordUpdated": "Record updated",
255
257
  "editor.record.form.field.resourceCreated": "Dataset created",
256
258
  "editor.record.form.field.resourceIdentifier": "Identifier",
@@ -262,6 +264,9 @@
262
264
  "editor.record.form.field.title.placeholder": "Enter a title",
263
265
  "editor.record.form.field.uniqueIdentifier": "Unique identifier",
264
266
  "editor.record.form.field.updateFrequency": "Update frequency",
267
+ "editor.record.form.keywords.place.placeholder": "Search for place keywords",
268
+ "editor.record.form.keywords.place.withoutExtent": "This keyword is not associated with any geographical extent",
269
+ "editor.record.form.keywords.placeholder": "Select a keyword",
265
270
  "editor.record.form.license.cc-by": "Creative Commons CC-BY",
266
271
  "editor.record.form.license.cc-by-sa": "Creative Commons CC-BY-SA",
267
272
  "editor.record.form.license.cc-zero": "Creative Commons CC-0",
@@ -273,26 +278,26 @@
273
278
  "editor.record.form.license.unknown": "Unknown or absent",
274
279
  "editor.record.form.page.accessAndContact": "Information for use",
275
280
  "editor.record.form.page.description": "Dataset description",
276
- "editor.record.form.page.ressources": "Resources",
277
- "editor.record.form.section.about.description": "This section describes the dataset.",
281
+ "editor.record.form.page.resources": "Resources",
282
+ "editor.record.form.section.about.description": "This section describes the dataset",
278
283
  "editor.record.form.section.about.label": "About the dataset",
279
284
  "editor.record.form.section.annexes.description": "Annexes are optional resources. They are attached to the dataset, and help understand the data (manual, etc.).",
280
285
  "editor.record.form.section.annexes.label": "Annexes",
281
- "editor.record.form.section.associatedResources.description": "Point out where the data can be found.",
286
+ "editor.record.form.section.associatedResources.description": "Point out where the data can be found",
282
287
  "editor.record.form.section.associatedResources.label": "Associated resources",
283
- "editor.record.form.section.classification.description": "Appropriate keywords help users find the dataset.",
288
+ "editor.record.form.section.classification.description": "Appropriate keywords help users find the dataset",
284
289
  "editor.record.form.section.classification.label": "Keywords",
285
- "editor.record.form.section.dataManagers.description": "The data managers are responsible for the data.",
290
+ "editor.record.form.section.dataManagers.description": "The data managers are responsible for the data",
286
291
  "editor.record.form.section.dataManagers.label": "Data managers",
287
292
  "editor.record.form.section.geographicalCoverage.label": "Geographical coverage",
288
- "editor.record.form.section.metadataPointOfContact.description": "This information concerns the metadata.",
293
+ "editor.record.form.section.metadataPointOfContact.description": "This information concerns the metadata",
289
294
  "editor.record.form.section.metadataPointOfContact.label": "Metadata point of contact",
290
295
  "editor.record.form.section.useAndAccessConditions.label": "Use and access conditions",
291
296
  "editor.record.form.temporalExtents.addDate": "Time instant",
292
297
  "editor.record.form.temporalExtents.addRange": "Time period",
293
298
  "editor.record.form.temporalExtents.date": "Date",
294
299
  "editor.record.form.temporalExtents.range": "Date range",
295
- "editor.record.form.updateFrequency.planned": "This dataset is updated regularly.",
300
+ "editor.record.form.updateFrequency.planned": "This dataset is updated regularly",
296
301
  "editor.record.importFromExternalFile.failure.body": "Failure",
297
302
  "editor.record.importFromExternalFile.failure.title": "The dataset import failed: ",
298
303
  "editor.record.importFromExternalFile.success.body": "Import successful",
@@ -450,6 +455,8 @@
450
455
  "record.metadata.api.form.productTooltip": "",
451
456
  "record.metadata.api.form.reset": "Reset",
452
457
  "record.metadata.api.form.resetTooltip": "Reset all filters",
458
+ "record.metadata.api.form.title": "Generate a custom URL",
459
+ "record.metadata.api.form.title.gpf": "Download data",
453
460
  "record.metadata.api.form.type": "Output format",
454
461
  "record.metadata.api.form.zoneTitle": "Zone",
455
462
  "record.metadata.api.form.zoneTooltip": "Dropdown for selecting a geographic zone",
@@ -518,6 +525,7 @@
518
525
  "record.tab.chart": "Chart",
519
526
  "record.tab.data": "Table",
520
527
  "record.tab.map": "Map",
528
+ "record.was.created.time": "created this dataset {time}",
521
529
  "records": "datasets",
522
530
  "results.layout.selectOne": "Results layout",
523
531
  "results.records.hits.displayedOn": "{displayed, plural, =0{No dataset.} one{1 } other{{displayed} }} {hits, plural, other{displayed on {hits} total.}}",
@@ -581,6 +589,12 @@
581
589
  "share.tab.webComponent": "Integrate",
582
590
  "table.loading.data": "Loading data...",
583
591
  "table.object.count": "Objects in this dataset",
592
+ "table.paginator.firstPage": "First page",
593
+ "table.paginator.itemsPerPage": "Items per page",
594
+ "table.paginator.lastPage": "Last page",
595
+ "table.paginator.nextPage": "Next page",
596
+ "table.paginator.previousPage": "Previous page",
597
+ "table.paginator.rangeLabel": "{startIndex} - {endIndex} of {length}",
584
598
  "table.select.data": "Data source",
585
599
  "tooltip.html.copy": "Copy HTML",
586
600
  "tooltip.id.copy": "Copy unique identifier",
@@ -588,6 +602,7 @@
588
602
  "tooltip.url.open": "Open URL",
589
603
  "ui.readLess": "Read less",
590
604
  "ui.readMore": "Read more",
605
+ "wfs.aggregations.notsupported": "Aggregations are currently not supported for WFS services",
591
606
  "wfs.feature.limit": "Too many features to display the WFS layer!",
592
607
  "wfs.featuretype.notfound": "No matching feature type was found in the service",
593
608
  "wfs.geojsongml.notsupported": "This service does not support the GeoJSON or GML format",
@@ -25,7 +25,8 @@
25
25
  "dashboard.createRecord": "",
26
26
  "dashboard.importRecord": "",
27
27
  "dashboard.importRecord.importExternal": "",
28
- "dashboard.importRecord.importExternalLabel": "",
28
+ "dashboard.importRecord.importExternal.subtitle": "",
29
+ "dashboard.importRecord.importExternal.title": "",
29
30
  "dashboard.labels.catalog": "Catálogo",
30
31
  "dashboard.labels.mySpace": "Mi espacio",
31
32
  "dashboard.records.all": "Catálogo",
@@ -194,8 +195,7 @@
194
195
  "downloads.format.unknown": "",
195
196
  "downloads.wfs.featuretype.not.found": "",
196
197
  "dropFile": "",
197
- "editor.form.keywords.placeholder": "",
198
- "editor.form.placeKeywordWithoutExtent": "",
198
+ "editor.new.record.title": "",
199
199
  "editor.record.delete.confirmation.cancelText": "",
200
200
  "editor.record.delete.confirmation.confirmText": "",
201
201
  "editor.record.delete.confirmation.message": "",
@@ -228,7 +228,9 @@
228
228
  "editor.record.form.field.abstract": "",
229
229
  "editor.record.form.field.constraintsShortcuts": "",
230
230
  "editor.record.form.field.contacts.noContact": "",
231
+ "editor.record.form.field.contacts.placeholder": "",
231
232
  "editor.record.form.field.contactsForResource.noContact": "",
233
+ "editor.record.form.field.contactsForResource.placeholder": "",
232
234
  "editor.record.form.field.keywords": "",
233
235
  "editor.record.form.field.legalConstraints": "",
234
236
  "editor.record.form.field.license": "",
@@ -237,12 +239,12 @@
237
239
  "editor.record.form.field.onlineResource.confirm": "",
238
240
  "editor.record.form.field.onlineResource.dialogTitle": "",
239
241
  "editor.record.form.field.onlineResource.edit.description": "",
240
- "editor.record.form.field.onlineResource.edit.protocol": "",
241
242
  "editor.record.form.field.onlineResource.edit.identifier.error": "No se pueden recuperar las capas del protocolo",
242
243
  "editor.record.form.field.onlineResource.edit.identifier.placeholder": "Nombre de la capa",
243
244
  "editor.record.form.field.onlineResource.edit.identifier.placeholder.wps": "Nombre del proceso",
244
245
  "editor.record.form.field.onlineResource.edit.identifier.select.label": "Selecciona una capa",
245
246
  "editor.record.form.field.onlineResource.edit.identifier.submit": "Enlace al servicio",
247
+ "editor.record.form.field.onlineResource.edit.protocol": "",
246
248
  "editor.record.form.field.onlineResource.edit.title": "",
247
249
  "editor.record.form.field.onlineResource.fileSize": "",
248
250
  "editor.record.form.field.onlineResource.modify": "",
@@ -262,6 +264,9 @@
262
264
  "editor.record.form.field.title.placeholder": "Introduzca un título",
263
265
  "editor.record.form.field.uniqueIdentifier": "",
264
266
  "editor.record.form.field.updateFrequency": "",
267
+ "editor.record.form.keywords.place.placeholder": "",
268
+ "editor.record.form.keywords.place.withoutExtent": "",
269
+ "editor.record.form.keywords.placeholder": "",
265
270
  "editor.record.form.license.cc-by": "",
266
271
  "editor.record.form.license.cc-by-sa": "",
267
272
  "editor.record.form.license.cc-zero": "",
@@ -273,7 +278,7 @@
273
278
  "editor.record.form.license.unknown": "",
274
279
  "editor.record.form.page.accessAndContact": "",
275
280
  "editor.record.form.page.description": "",
276
- "editor.record.form.page.ressources": "",
281
+ "editor.record.form.page.resources": "",
277
282
  "editor.record.form.section.about.description": "",
278
283
  "editor.record.form.section.about.label": "",
279
284
  "editor.record.form.section.annexes.description": "",
@@ -450,6 +455,8 @@
450
455
  "record.metadata.api.form.productTooltip": "",
451
456
  "record.metadata.api.form.reset": "",
452
457
  "record.metadata.api.form.resetTooltip": "",
458
+ "record.metadata.api.form.title": "",
459
+ "record.metadata.api.form.title.gpf": "",
453
460
  "record.metadata.api.form.type": "",
454
461
  "record.metadata.api.form.zoneTitle": "",
455
462
  "record.metadata.api.form.zoneTooltip": "",
@@ -518,6 +525,7 @@
518
525
  "record.tab.chart": "",
519
526
  "record.tab.data": "",
520
527
  "record.tab.map": "",
528
+ "record.was.created.time": "",
521
529
  "records": "",
522
530
  "results.layout.selectOne": "",
523
531
  "results.records.hits.displayedOn": "",
@@ -581,6 +589,12 @@
581
589
  "share.tab.webComponent": "",
582
590
  "table.loading.data": "",
583
591
  "table.object.count": "",
592
+ "table.paginator.firstPage": "Primera página",
593
+ "table.paginator.itemsPerPage": "Elementos por página",
594
+ "table.paginator.lastPage": "Última página",
595
+ "table.paginator.nextPage": "Página siguiente",
596
+ "table.paginator.previousPage": "Página anterior",
597
+ "table.paginator.rangeLabel": "{startIndex} - {endIndex} de {length}",
584
598
  "table.select.data": "",
585
599
  "tooltip.html.copy": "",
586
600
  "tooltip.id.copy": "",
@@ -588,6 +602,7 @@
588
602
  "tooltip.url.open": "",
589
603
  "ui.readLess": "",
590
604
  "ui.readMore": "",
605
+ "wfs.aggregations.notsupported": "",
591
606
  "wfs.feature.limit": "",
592
607
  "wfs.featuretype.notfound": "",
593
608
  "wfs.geojsongml.notsupported": "",