geonetwork-ui 2.4.2 → 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 (140) hide show
  1. package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.mjs +31 -16
  2. package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +2 -2
  3. package/esm2022/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.mjs +18 -16
  4. package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +17 -7
  5. package/esm2022/libs/feature/dataviz/src/lib/table-view/table-view.component.mjs +12 -17
  6. package/esm2022/libs/feature/editor/src/lib/components/wizard-summarize/wizard-summarize.component.mjs +11 -11
  7. package/esm2022/libs/feature/record/src/lib/data-view/data-view.component.mjs +3 -3
  8. package/esm2022/libs/feature/record/src/lib/feature-record.module.mjs +6 -7
  9. package/esm2022/libs/feature/search/src/lib/utils/service/fields.mjs +46 -1
  10. package/esm2022/libs/feature/search/src/lib/utils/service/fields.service.mjs +3 -2
  11. package/esm2022/libs/ui/dataviz/src/index.mjs +3 -3
  12. package/esm2022/libs/ui/dataviz/src/lib/data-table/custom.mat.paginator.intl.mjs +51 -0
  13. package/esm2022/libs/ui/dataviz/src/lib/data-table/data-table.component.mjs +133 -0
  14. package/esm2022/libs/ui/dataviz/src/lib/data-table/data-table.data.source.mjs +24 -0
  15. package/esm2022/libs/ui/dataviz/src/lib/data-table/data-table.fixtures.mjs +82 -0
  16. package/esm2022/libs/ui/elements/src/index.mjs +2 -1
  17. package/esm2022/libs/ui/elements/src/lib/application-banner/application-banner.component.mjs +78 -0
  18. package/esm2022/libs/ui/elements/src/lib/metadata-info/metadata-info.component.mjs +18 -10
  19. package/esm2022/libs/ui/elements/src/lib/record-api-form/record-api-form.component.mjs +2 -1
  20. package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +10 -4
  21. package/esm2022/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.mjs +7 -2
  22. package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +14 -12
  23. package/esm2022/libs/util/data-fetcher/src/index.mjs +3 -1
  24. package/esm2022/libs/util/data-fetcher/src/lib/model.mjs +7 -3
  25. package/esm2022/libs/util/data-fetcher/src/lib/readers/wfs.mjs +20 -2
  26. package/esm2022/libs/util/data-fetcher/src/lib/utils.mjs +3 -3
  27. package/esm2022/libs/util/shared/src/lib/services/date.service.mjs +41 -0
  28. package/esm2022/libs/util/shared/src/lib/services/index.mjs +2 -1
  29. package/esm2022/libs/util/shared/src/lib/utils/temporal-extent-union.mjs +4 -4
  30. package/esm2022/translations/de.json +7 -0
  31. package/esm2022/translations/en.json +7 -0
  32. package/esm2022/translations/es.json +7 -0
  33. package/esm2022/translations/fr.json +7 -0
  34. package/esm2022/translations/it.json +7 -0
  35. package/esm2022/translations/nl.json +7 -0
  36. package/esm2022/translations/pt.json +7 -0
  37. package/fesm2022/geonetwork-ui.mjs +828 -390
  38. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  39. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts +2 -1
  40. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts.map +1 -1
  41. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts.map +1 -1
  42. package/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.d.ts +7 -9
  43. package/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.d.ts.map +1 -1
  44. package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
  45. package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts +3 -6
  46. package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts.map +1 -1
  47. package/libs/feature/editor/src/lib/components/wizard-summarize/wizard-summarize.component.d.ts +3 -3
  48. package/libs/feature/editor/src/lib/components/wizard-summarize/wizard-summarize.component.d.ts.map +1 -1
  49. package/libs/feature/record/src/lib/feature-record.module.d.ts +2 -2
  50. package/libs/feature/record/src/lib/feature-record.module.d.ts.map +1 -1
  51. package/libs/feature/search/src/lib/utils/service/fields.d.ts +10 -0
  52. package/libs/feature/search/src/lib/utils/service/fields.d.ts.map +1 -1
  53. package/libs/feature/search/src/lib/utils/service/fields.service.d.ts.map +1 -1
  54. package/libs/ui/dataviz/src/index.d.ts +2 -2
  55. package/libs/ui/dataviz/src/index.d.ts.map +1 -1
  56. package/libs/ui/dataviz/src/lib/data-table/custom.mat.paginator.intl.d.ts +14 -0
  57. package/libs/ui/dataviz/src/lib/data-table/custom.mat.paginator.intl.d.ts.map +1 -0
  58. package/libs/ui/dataviz/src/lib/data-table/data-table.component.d.ts +45 -0
  59. package/libs/ui/dataviz/src/lib/data-table/data-table.component.d.ts.map +1 -0
  60. package/libs/ui/dataviz/src/lib/data-table/data-table.data.source.d.ts +12 -0
  61. package/libs/ui/dataviz/src/lib/data-table/data-table.data.source.d.ts.map +1 -0
  62. package/libs/ui/dataviz/src/lib/data-table/data-table.fixtures.d.ts +10 -0
  63. package/libs/ui/dataviz/src/lib/data-table/data-table.fixtures.d.ts.map +1 -0
  64. package/libs/ui/elements/src/index.d.ts +1 -0
  65. package/libs/ui/elements/src/index.d.ts.map +1 -1
  66. package/libs/ui/elements/src/lib/application-banner/application-banner.component.d.ts +16 -0
  67. package/libs/ui/elements/src/lib/application-banner/application-banner.component.d.ts.map +1 -0
  68. package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts +5 -0
  69. package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts.map +1 -1
  70. package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts.map +1 -1
  71. package/libs/ui/elements/src/lib/ui-elements.module.d.ts +2 -1
  72. package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
  73. package/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.d.ts.map +1 -1
  74. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts +3 -2
  75. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts.map +1 -1
  76. package/libs/util/data-fetcher/src/index.d.ts +3 -1
  77. package/libs/util/data-fetcher/src/index.d.ts.map +1 -1
  78. package/libs/util/data-fetcher/src/lib/model.d.ts +1 -1
  79. package/libs/util/data-fetcher/src/lib/model.d.ts.map +1 -1
  80. package/libs/util/data-fetcher/src/lib/readers/wfs.d.ts.map +1 -1
  81. package/libs/util/shared/src/lib/services/date.service.d.ts +13 -0
  82. package/libs/util/shared/src/lib/services/date.service.d.ts.map +1 -0
  83. package/libs/util/shared/src/lib/services/index.d.ts +1 -0
  84. package/libs/util/shared/src/lib/services/index.d.ts.map +1 -1
  85. package/libs/util/shared/src/lib/utils/temporal-extent-union.d.ts +2 -1
  86. package/libs/util/shared/src/lib/utils/temporal-extent-union.d.ts.map +1 -1
  87. package/package.json +1 -1
  88. package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +33 -16
  89. package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +1 -5
  90. package/src/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.html +3 -3
  91. package/src/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.ts +17 -15
  92. package/src/libs/feature/dataviz/src/lib/service/data.service.ts +21 -11
  93. package/src/libs/feature/dataviz/src/lib/table-view/table-view.component.html +4 -3
  94. package/src/libs/feature/dataviz/src/lib/table-view/table-view.component.ts +9 -18
  95. package/src/libs/feature/editor/src/lib/components/wizard-summarize/wizard-summarize.component.ts +3 -4
  96. package/src/libs/feature/record/src/lib/data-view/data-view.component.html +1 -1
  97. package/src/libs/feature/record/src/lib/feature-record.module.ts +6 -4
  98. package/src/libs/feature/search/src/lib/utils/service/fields.service.ts +2 -0
  99. package/src/libs/feature/search/src/lib/utils/service/fields.ts +55 -0
  100. package/src/libs/ui/dataviz/src/index.ts +2 -2
  101. package/src/libs/ui/dataviz/src/lib/data-table/custom.mat.paginator.intl.ts +52 -0
  102. package/src/libs/ui/dataviz/src/lib/{table/table.component.css → data-table/data-table.component.css} +4 -0
  103. package/src/libs/ui/dataviz/src/lib/data-table/data-table.component.html +67 -0
  104. package/src/libs/ui/dataviz/src/lib/data-table/data-table.component.ts +173 -0
  105. package/src/libs/ui/dataviz/src/lib/data-table/data-table.data.source.ts +33 -0
  106. package/src/libs/ui/dataviz/src/lib/data-table/data-table.fixtures.ts +84 -0
  107. package/src/libs/ui/elements/src/index.ts +1 -0
  108. package/src/libs/ui/elements/src/lib/application-banner/application-banner.component.css +0 -0
  109. package/src/libs/ui/elements/src/lib/application-banner/application-banner.component.html +25 -0
  110. package/src/libs/ui/elements/src/lib/application-banner/application-banner.component.ts +70 -0
  111. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.html +3 -3
  112. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.ts +12 -2
  113. package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.ts +2 -0
  114. package/src/libs/ui/elements/src/lib/ui-elements.module.ts +3 -0
  115. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.ts +6 -0
  116. package/src/libs/ui/search/src/lib/results-table/results-table.component.ts +4 -2
  117. package/src/libs/util/data-fetcher/src/index.ts +3 -0
  118. package/src/libs/util/data-fetcher/src/lib/model.ts +6 -2
  119. package/src/libs/util/data-fetcher/src/lib/readers/wfs.ts +23 -1
  120. package/src/libs/util/data-fetcher/src/lib/utils.ts +2 -2
  121. package/src/libs/util/shared/src/lib/services/date.service.ts +45 -0
  122. package/src/libs/util/shared/src/lib/services/index.ts +1 -0
  123. package/src/libs/util/shared/src/lib/utils/temporal-extent-union.ts +6 -3
  124. package/translations/de.json +7 -0
  125. package/translations/en.json +7 -0
  126. package/translations/es.json +7 -0
  127. package/translations/fr.json +7 -0
  128. package/translations/it.json +7 -0
  129. package/translations/nl.json +7 -0
  130. package/translations/pt.json +7 -0
  131. package/translations/sk.json +7 -0
  132. package/esm2022/libs/ui/dataviz/src/lib/table/table.component.mjs +0 -61
  133. package/esm2022/libs/ui/dataviz/src/lib/table/table.fixtures.mjs +0 -40
  134. package/libs/ui/dataviz/src/lib/table/table.component.d.ts +0 -29
  135. package/libs/ui/dataviz/src/lib/table/table.component.d.ts.map +0 -1
  136. package/libs/ui/dataviz/src/lib/table/table.fixtures.d.ts +0 -11
  137. package/libs/ui/dataviz/src/lib/table/table.fixtures.d.ts.map +0 -1
  138. package/src/libs/ui/dataviz/src/lib/table/table.component.html +0 -40
  139. package/src/libs/ui/dataviz/src/lib/table/table.component.ts +0 -80
  140. 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvZGF0YS1mZXRjaGVyL3NyYy9saWIvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLFVBQVUsRUFHVixjQUFjLEdBQ2YsTUFBTSxTQUFTLENBQUE7QUFDaEIsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxLQUFLLElBQUksU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDbkQsT0FBTyxFQUFFLFFBQVEsSUFBSSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUU1RCxNQUFNLENBQUMsS0FBSyxVQUFVLGdCQUFnQixDQUNwQyxHQUFXLEVBQ1gsUUFBd0I7SUFFeEIsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLEdBQUcsQ0FDbEMsR0FBRyxFQUNILE9BQU8sTUFBTSxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUN2RSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUE7SUFDM0IsTUFBTSxhQUFhLEdBQ2pCLG9CQUFvQixJQUFJLG9CQUFvQixDQUFDLE1BQU07UUFDakQsQ0FBQyxDQUFFLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBb0I7UUFDMUQsQ0FBQyxDQUFDLElBQUksQ0FBQTtJQUVWLGVBQWU7SUFDZixJQUFJLFFBQVE7UUFBRSxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUE7SUFFOUMseUJBQXlCO0lBQ3pCLE1BQU0sT0FBTyxHQUFHLE1BQU0sWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ3ZD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LFVBQVUsQ0FBQTtZQUM3QixDQUFDO1lBQ0QsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDbEIsQ0FBQztRQUNELEdBQUc7WUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUE7UUFDN0MsQ0FBQztLQUNGLENBQUMsQ0FBQTtBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEYXRhSXRlbSxcbiAgRGF0YXNldEhlYWRlcnMsXG4gIEZldGNoRXJyb3IsXG4gIFByb3BlcnR5SW5mbyxcbiAgU3VwcG9ydGVkVHlwZSxcbiAgU3VwcG9ydGVkVHlwZXMsXG59IGZyb20gJy4vbW9kZWwnXG5pbXBvcnQgeyBzaGFyZWRGZXRjaCwgdXNlQ2FjaGUgfSBmcm9tICdAY2FtcHRvY2FtcC9vZ2MtY2xpZW50J1xuaW1wb3J0IHsgcGFyc2VIZWFkZXJzIH0gZnJvbSAnLi9oZWFkZXJzJ1xuaW1wb3J0IHsgcGFyc2UgYXMgcGFyc2VEYXRlIH0gZnJvbSAnZGF0ZS1mbnMvcGFyc2UnXG5pbXBvcnQgeyBwYXJzZUlTTyBhcyBwYXJzZUlzb0RhdGUgfSBmcm9tICdkYXRlLWZucy9wYXJzZUlTTydcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGluZmVyRGF0YXNldFR5cGUoXG4gIHVybDogc3RyaW5nLFxuICB0eXBlSGludD86IFN1cHBvcnRlZFR5cGVcbik6IFByb21pc2U8U3VwcG9ydGVkVHlwZT4ge1xuICBjb25zdCBmaWxlRXh0ZW5zaW9uTWF0Y2hlcyA9IG5ldyBVUkwoXG4gICAgdXJsLFxuICAgIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnID8gd2luZG93LmxvY2F0aW9uLnRvU3RyaW5nKCkgOiB1bmRlZmluZWRcbiAgKS5wYXRobmFtZS5tYXRjaCgvXFwuKC4rKSQvKVxuICBjb25zdCBmaWxlRXh0ZW5zaW9uID1cbiAgICBmaWxlRXh0ZW5zaW9uTWF0Y2hlcyAmJiBmaWxlRXh0ZW5zaW9uTWF0Y2hlcy5sZW5ndGhcbiAgICAgID8gKGZpbGVFeHRlbnNpb25NYXRjaGVzWzFdLnRvTG93ZXJDYXNlKCkgYXMgU3VwcG9ydGVkVHlwZSlcbiAgICAgIDogbnVsbFxuXG4gIC8vIDEuIHR5cGUgaGludFxuICBpZiAodHlwZUhpbnQpIHJldHVybiBQcm9taXNlLnJlc29sdmUodHlwZUhpbnQpXG5cbiAgLy8gMi4gY29udGVudC10eXBlIGhlYWRlclxuICBjb25zdCBoZWFkZXJzID0gYXdhaXQgZmV0Y2hIZWFkZXJzKHVybClcbiAgaWYgKCdzdXBwb3J0ZWRUeXBlJyBpbiBoZWFkZXJzKSByZXR1cm4gaGVhZGVycy5zdXBwb3J0ZWRUeXBlXG4gIC8vIDMuIGZpbGUgZXh0ZW5zaW9uIGZyb20gdXJsXG4gIGVsc2UgaWYgKFN1cHBvcnRlZFR5cGVzLmluZGV4T2YoZmlsZUV4dGVuc2lvbikgPiAtMSkgcmV0dXJuIGZpbGVFeHRlbnNpb25cblxuICAvLyBubyB0eXBlIGluZmVycmVkIG9yIGhpbnRlZFxuICBpZiAoJ21pbWVUeXBlJyBpbiBoZWFkZXJzKSB0aHJvdyBGZXRjaEVycm9yLnVuc3VwcG9ydGVkVHlwZShoZWFkZXJzLm1pbWVUeXBlKVxuICBlbHNlIHRocm93IEZldGNoRXJyb3IudW5rbm93blR5cGUoKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZmV0Y2hIZWFkZXJzKHVybDogc3RyaW5nKTogUHJvbWlzZTxEYXRhc2V0SGVhZGVycz4ge1xuICByZXR1cm4gc2hhcmVkRmV0Y2godXJsLCAnSEVBRCcpXG4gICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgdGhyb3cgRmV0Y2hFcnJvci5jb3JzT3JOZXR3b3JrKGVycm9yLm1lc3NhZ2UpXG4gICAgfSlcbiAgICAudGhlbigocmVzcG9uc2UpID0+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=
@@ -589,6 +589,12 @@
589
589
  "share.tab.webComponent": "Integrieren",
590
590
  "table.loading.data": "Daten werden geladen...",
591
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}",
592
598
  "table.select.data": "Datenquelle",
593
599
  "tooltip.html.copy": "HTML kopieren",
594
600
  "tooltip.id.copy": "Eindeutige Kennung kopieren",
@@ -596,6 +602,7 @@
596
602
  "tooltip.url.open": "URL öffnen",
597
603
  "ui.readLess": "Weniger lesen",
598
604
  "ui.readMore": "Weiterlesen",
605
+ "wfs.aggregations.notsupported": "",
599
606
  "wfs.feature.limit": "Zu viele Features, um den WFS-Layer anzuzeigen!",
600
607
  "wfs.featuretype.notfound": "Kein passender Feature-Typ wurde im Dienst gefunden",
601
608
  "wfs.geojsongml.notsupported": "Dieser Dienst unterstützt das GeoJSON- oder GML-Format nicht",
@@ -589,6 +589,12 @@
589
589
  "share.tab.webComponent": "Integrate",
590
590
  "table.loading.data": "Loading data...",
591
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}",
592
598
  "table.select.data": "Data source",
593
599
  "tooltip.html.copy": "Copy HTML",
594
600
  "tooltip.id.copy": "Copy unique identifier",
@@ -596,6 +602,7 @@
596
602
  "tooltip.url.open": "Open URL",
597
603
  "ui.readLess": "Read less",
598
604
  "ui.readMore": "Read more",
605
+ "wfs.aggregations.notsupported": "Aggregations are currently not supported for WFS services",
599
606
  "wfs.feature.limit": "Too many features to display the WFS layer!",
600
607
  "wfs.featuretype.notfound": "No matching feature type was found in the service",
601
608
  "wfs.geojsongml.notsupported": "This service does not support the GeoJSON or GML format",
@@ -589,6 +589,12 @@
589
589
  "share.tab.webComponent": "",
590
590
  "table.loading.data": "",
591
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}",
592
598
  "table.select.data": "",
593
599
  "tooltip.html.copy": "",
594
600
  "tooltip.id.copy": "",
@@ -596,6 +602,7 @@
596
602
  "tooltip.url.open": "",
597
603
  "ui.readLess": "",
598
604
  "ui.readMore": "",
605
+ "wfs.aggregations.notsupported": "",
599
606
  "wfs.feature.limit": "",
600
607
  "wfs.featuretype.notfound": "",
601
608
  "wfs.geojsongml.notsupported": "",
@@ -589,6 +589,12 @@
589
589
  "share.tab.webComponent": "Intégrer",
590
590
  "table.loading.data": "Chargement des données...",
591
591
  "table.object.count": "enregistrements dans ces données",
592
+ "table.paginator.firstPage": "Première page",
593
+ "table.paginator.itemsPerPage": "Éléments par page",
594
+ "table.paginator.lastPage": "Dernière page",
595
+ "table.paginator.nextPage": "Page suivante",
596
+ "table.paginator.previousPage": "Page précédente",
597
+ "table.paginator.rangeLabel": "{startIndex} - {endIndex} sur {length}",
592
598
  "table.select.data": "Source de données",
593
599
  "tooltip.html.copy": "Copier le HTML",
594
600
  "tooltip.id.copy": "Copier l'identifiant unique",
@@ -596,6 +602,7 @@
596
602
  "tooltip.url.open": "Ouvrir l'URL",
597
603
  "ui.readLess": "Réduire",
598
604
  "ui.readMore": "Lire la suite",
605
+ "wfs.aggregations.notsupported": "Agrégations non supportées pour les services WFS",
599
606
  "wfs.feature.limit": "Trop d'objets pour afficher la couche WFS !",
600
607
  "wfs.featuretype.notfound": "La classe d'objets n'a pas été trouvée dans le service",
601
608
  "wfs.geojsongml.notsupported": "Le service ne supporte pas le format GeoJSON ou GML",
@@ -589,6 +589,12 @@
589
589
  "share.tab.webComponent": "Incorporare",
590
590
  "table.loading.data": "Caricamento dei dati...",
591
591
  "table.object.count": "record in questi dati",
592
+ "table.paginator.firstPage": "Prima pagina",
593
+ "table.paginator.itemsPerPage": "Elementi per pagina",
594
+ "table.paginator.lastPage": "Ultima pagina",
595
+ "table.paginator.nextPage": "Pagina successiva",
596
+ "table.paginator.previousPage": "Pagina precedente",
597
+ "table.paginator.rangeLabel": "{startIndex} - {endIndex} di {total}",
592
598
  "table.select.data": "Sorgente dati",
593
599
  "tooltip.html.copy": "Copiare il HTML",
594
600
  "tooltip.id.copy": "Copiare l'identificatore unico",
@@ -596,6 +602,7 @@
596
602
  "tooltip.url.open": "Aprire l'URL",
597
603
  "ui.readLess": "Ridurre",
598
604
  "ui.readMore": "Leggere di più",
605
+ "wfs.aggregations.notsupported": "",
599
606
  "wfs.feature.limit": "Troppi oggetti per visualizzare il WFS layer!",
600
607
  "wfs.featuretype.notfound": "La classe di oggetto non è stata trovata nel servizio",
601
608
  "wfs.geojsongml.notsupported": "Il servizio non supporta il formato GeoJSON o GML",
@@ -589,6 +589,12 @@
589
589
  "share.tab.webComponent": "",
590
590
  "table.loading.data": "",
591
591
  "table.object.count": "",
592
+ "table.paginator.firstPage": "",
593
+ "table.paginator.itemsPerPage": "",
594
+ "table.paginator.lastPage": "",
595
+ "table.paginator.nextPage": "",
596
+ "table.paginator.previousPage": "",
597
+ "table.paginator.rangeLabel": "",
592
598
  "table.select.data": "",
593
599
  "tooltip.html.copy": "",
594
600
  "tooltip.id.copy": "",
@@ -596,6 +602,7 @@
596
602
  "tooltip.url.open": "",
597
603
  "ui.readLess": "",
598
604
  "ui.readMore": "",
605
+ "wfs.aggregations.notsupported": "",
599
606
  "wfs.feature.limit": "",
600
607
  "wfs.featuretype.notfound": "",
601
608
  "wfs.geojsongml.notsupported": "",
@@ -589,6 +589,12 @@
589
589
  "share.tab.webComponent": "",
590
590
  "table.loading.data": "",
591
591
  "table.object.count": "",
592
+ "table.paginator.firstPage": "",
593
+ "table.paginator.itemsPerPage": "",
594
+ "table.paginator.lastPage": "",
595
+ "table.paginator.nextPage": "",
596
+ "table.paginator.previousPage": "",
597
+ "table.paginator.rangeLabel": "",
592
598
  "table.select.data": "",
593
599
  "tooltip.html.copy": "",
594
600
  "tooltip.id.copy": "",
@@ -596,6 +602,7 @@
596
602
  "tooltip.url.open": "",
597
603
  "ui.readLess": "",
598
604
  "ui.readMore": "",
605
+ "wfs.aggregations.notsupported": "",
599
606
  "wfs.feature.limit": "",
600
607
  "wfs.featuretype.notfound": "",
601
608
  "wfs.geojsongml.notsupported": "",