geonetwork-ui 2.4.0-dev.b0bcda82 → 2.4.0-dev.be951976

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 (745) hide show
  1. package/esm2022/libs/api/metadata-converter/src/index.mjs +4 -1
  2. package/esm2022/libs/api/metadata-converter/src/lib/common/license.mjs +64 -0
  3. package/esm2022/libs/api/metadata-converter/src/lib/common/url.mjs +14 -0
  4. package/esm2022/libs/api/metadata-converter/src/lib/dcat-ap/dcat-ap.converter.mjs +254 -0
  5. package/esm2022/libs/api/metadata-converter/src/lib/dcat-ap/index.mjs +2 -0
  6. package/esm2022/libs/api/metadata-converter/src/lib/dcat-ap/namespaces.mjs +17 -0
  7. package/esm2022/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.mjs +196 -0
  8. package/esm2022/libs/api/metadata-converter/src/lib/dcat-ap/utils/graph-utils.mjs +46 -0
  9. package/esm2022/libs/api/metadata-converter/src/lib/dcat-ap/utils/serialize-to-xml.mjs +74 -0
  10. package/esm2022/libs/api/metadata-converter/src/lib/dcat-ap/utils/uri.mjs +2 -0
  11. package/esm2022/libs/api/metadata-converter/src/lib/dcat-ap/write-parts.mjs +27 -0
  12. package/esm2022/libs/api/metadata-converter/src/lib/find-converter.mjs +11 -1
  13. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +10 -3
  14. package/esm2022/libs/api/metadata-converter/src/lib/gn4/types/keywords.model.mjs +1 -1
  15. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.mjs +6 -6
  16. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.mjs +7 -4
  17. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.mjs +17 -29
  18. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.mjs +11 -16
  19. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +6 -6
  20. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +54 -54
  21. package/esm2022/libs/api/metadata-converter/src/lib/xml-utils.mjs +35 -3
  22. package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +78 -39
  23. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.mjs +11 -1
  24. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +51 -7
  25. package/esm2022/libs/common/domain/src/lib/model/record/contact.model.mjs +1 -1
  26. package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
  27. package/esm2022/libs/common/domain/src/lib/model/user/user.model.mjs +1 -1
  28. package/esm2022/libs/common/domain/src/lib/platform.service.interface.mjs +1 -1
  29. package/esm2022/libs/common/domain/src/lib/repository/records-repository.interface.mjs +1 -1
  30. package/esm2022/libs/data-access/gn4/src/fixtures/site.fixtures.mjs +5 -5
  31. package/esm2022/libs/data-access/gn4/src/fixtures/ui.fixtures.mjs +3 -3
  32. package/esm2022/libs/feature/catalog/src/lib/feature-catalog.module.mjs +7 -4
  33. package/esm2022/libs/feature/catalog/src/lib/organisations/organisations.component.mjs +6 -6
  34. package/esm2022/libs/feature/dataviz/src/lib/chart-view/chart-view.component.mjs +1 -1
  35. package/esm2022/libs/feature/dataviz/src/lib/feature-dataviz.module.mjs +10 -7
  36. package/esm2022/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.mjs +40 -50
  37. package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +1 -1
  38. package/esm2022/libs/feature/dataviz/src/lib/table-view/table-view.component.mjs +1 -1
  39. package/esm2022/libs/feature/editor/src/index.mjs +2 -1
  40. package/esm2022/libs/feature/editor/src/lib/+state/editor.actions.mjs +2 -1
  41. package/esm2022/libs/feature/editor/src/lib/+state/editor.effects.mjs +10 -5
  42. package/esm2022/libs/feature/editor/src/lib/+state/editor.facade.mjs +4 -1
  43. package/esm2022/libs/feature/editor/src/lib/components/contact-card/contact-card.component.mjs +4 -16
  44. package/esm2022/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.mjs +80 -0
  45. package/esm2022/libs/feature/editor/src/lib/components/import-record/import-record.component.mjs +95 -0
  46. package/esm2022/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.mjs +71 -0
  47. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.mjs +109 -0
  48. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.mjs +47 -70
  49. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-date-updated/form-field-date-updated.component.mjs +19 -0
  50. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.mjs +31 -40
  51. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.mjs +11 -9
  52. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.mjs +79 -0
  53. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.mjs +148 -0
  54. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.mjs +22 -25
  55. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.mjs +93 -11
  56. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.mjs +12 -16
  57. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-simple/form-field-simple.component.mjs +9 -8
  58. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.mjs +140 -5
  59. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.mjs +41 -69
  60. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.mjs +17 -15
  61. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.mjs +44 -65
  62. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/index.mjs +2 -2
  63. package/esm2022/libs/feature/editor/src/lib/components/record-form/record-form.component.mjs +5 -3
  64. package/esm2022/libs/feature/editor/src/lib/components/wizard/wizard.component.mjs +3 -3
  65. package/esm2022/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.mjs +8 -8
  66. package/esm2022/libs/feature/editor/src/lib/feature-editor.module.mjs +6 -4
  67. package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +48 -8
  68. package/esm2022/libs/feature/editor/src/lib/models/editor-config.model.mjs +1 -1
  69. package/esm2022/libs/feature/editor/src/lib/services/editor.service.mjs +9 -5
  70. package/esm2022/libs/feature/map/src/index.mjs +2 -9
  71. package/esm2022/libs/feature/map/src/lib/+state/map.actions.mjs +4 -7
  72. package/esm2022/libs/feature/map/src/lib/+state/map.facade.mjs +9 -15
  73. package/esm2022/libs/feature/map/src/lib/+state/map.reducer.mjs +13 -44
  74. package/esm2022/libs/feature/map/src/lib/+state/map.selectors.mjs +3 -2
  75. package/esm2022/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.mjs +6 -6
  76. package/esm2022/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.mjs +20 -19
  77. package/esm2022/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.mjs +23 -14
  78. package/esm2022/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.mjs +15 -14
  79. package/esm2022/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.mjs +18 -13
  80. package/esm2022/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.mjs +16 -11
  81. package/esm2022/libs/feature/map/src/lib/constant/index.mjs +1 -2
  82. package/esm2022/libs/feature/map/src/lib/feature-map.module.mjs +9 -68
  83. package/esm2022/libs/feature/map/src/lib/geocoding/geocoding.component.mjs +43 -29
  84. package/esm2022/libs/feature/map/src/lib/layers-panel/layers-panel.component.mjs +43 -18
  85. package/esm2022/libs/feature/map/src/lib/map-state-container/map-state-container.component.mjs +27 -0
  86. package/esm2022/libs/feature/map/src/lib/style/map-style.fixtures.mjs +3 -3
  87. package/esm2022/libs/feature/map/src/lib/utils/map-utils.service.mjs +4 -168
  88. package/esm2022/libs/feature/record/src/lib/data-view/data-view.component.mjs +1 -1
  89. package/esm2022/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.mjs +21 -17
  90. package/esm2022/libs/feature/record/src/lib/feature-record.module.mjs +14 -8
  91. package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +40 -52
  92. package/esm2022/libs/feature/record/src/lib/state/mdview.facade.mjs +4 -2
  93. package/esm2022/libs/feature/router/src/lib/default/state/router.facade.mjs +1 -1
  94. package/esm2022/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.mjs +3 -3
  95. package/esm2022/libs/feature/search/src/lib/results-table/results-table-container.component.mjs +12 -6
  96. package/esm2022/libs/ui/catalog/src/lib/organisations-filter/organisations-filter.component.mjs +7 -7
  97. package/esm2022/libs/ui/catalog/src/lib/ui-catalog.module.mjs +1 -6
  98. package/esm2022/libs/ui/dataviz/src/lib/table/table.fixtures.mjs +3 -3
  99. package/esm2022/libs/ui/elements/src/index.mjs +2 -2
  100. package/esm2022/libs/ui/elements/src/lib/download-item/download-item.component.mjs +2 -2
  101. package/esm2022/libs/ui/elements/src/lib/downloads-list/downloads-list.component.mjs +1 -1
  102. package/esm2022/libs/ui/elements/src/lib/link-card/link-card.component.mjs +2 -2
  103. package/esm2022/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.mjs +6 -6
  104. package/esm2022/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.mjs +2 -2
  105. package/esm2022/libs/ui/elements/src/lib/record-api-form/record-api-form.component.mjs +5 -5
  106. package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +7 -4
  107. package/esm2022/libs/ui/inputs/src/index.mjs +6 -1
  108. package/esm2022/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.mjs +7 -4
  109. package/esm2022/libs/ui/inputs/src/lib/badge/badge.component.mjs +5 -3
  110. package/esm2022/libs/ui/inputs/src/lib/button/button.component.mjs +8 -1
  111. package/esm2022/libs/ui/inputs/src/lib/date-picker/date-picker.component.mjs +11 -4
  112. package/esm2022/libs/ui/inputs/src/lib/date-range-picker/date-range-picker.component.mjs +9 -3
  113. package/esm2022/libs/ui/inputs/src/lib/editable-label/editable-label.directive.mjs +26 -24
  114. package/esm2022/libs/ui/inputs/src/lib/file-input/file-input.component.mjs +87 -0
  115. package/esm2022/libs/ui/inputs/src/lib/image-input/image-input.component.mjs +19 -15
  116. package/esm2022/libs/ui/inputs/src/lib/search-input/search-input.component.mjs +6 -4
  117. package/esm2022/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.mjs +32 -0
  118. package/esm2022/libs/ui/inputs/src/lib/text-area/text-area.component.mjs +7 -21
  119. package/esm2022/libs/ui/inputs/src/lib/text-input/text-input.component.mjs +6 -17
  120. package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +4 -13
  121. package/esm2022/libs/ui/inputs/src/lib/url-input/url-input.component.mjs +43 -0
  122. package/esm2022/libs/ui/layout/src/index.mjs +3 -1
  123. package/esm2022/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.mjs +5 -3
  124. package/esm2022/libs/ui/layout/src/lib/interactive-table/interactive-table.component.mjs +3 -3
  125. package/esm2022/libs/ui/layout/src/lib/modal-dialog/modal-dialog.component.mjs +29 -0
  126. package/esm2022/libs/ui/layout/src/lib/sortable-list/sortable-list.component.mjs +43 -0
  127. package/esm2022/libs/ui/map/src/index.mjs +4 -3
  128. package/esm2022/libs/ui/map/src/lib/components/feature-detail/feature-detail.component.mjs +8 -6
  129. package/esm2022/libs/ui/map/src/lib/components/map-container/map-container.component.mjs +137 -0
  130. package/esm2022/libs/ui/map/src/lib/components/map-container/map-settings.token.mjs +13 -0
  131. package/esm2022/libs/ui/map/src/lib/map-utils.mjs +37 -0
  132. package/esm2022/libs/ui/search/src/lib/facets/fixtures/aggregations-model-response.mjs +7 -7
  133. package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +8 -8
  134. package/esm2022/libs/util/app-config/src/index.mjs +2 -1
  135. package/esm2022/libs/util/app-config/src/lib/fixtures.mjs +10 -10
  136. package/esm2022/libs/util/app-config/src/lib/map-layers.mjs +27 -0
  137. package/esm2022/libs/util/shared/src/lib/links/link-classifier.service.mjs +1 -1
  138. package/esm2022/libs/util/shared/src/lib/links/link-utils.mjs +1 -1
  139. package/esm2022/libs/util/shared/src/lib/services/theme.service.mjs +2 -1
  140. package/esm2022/libs/util/shared/src/lib/utils/bytes-convert.mjs +4 -1
  141. package/esm2022/translations/de.json +46 -3
  142. package/esm2022/translations/en.json +75 -32
  143. package/esm2022/translations/es.json +43 -0
  144. package/esm2022/translations/fr.json +108 -65
  145. package/esm2022/translations/it.json +45 -2
  146. package/esm2022/translations/nl.json +43 -0
  147. package/esm2022/translations/pt.json +43 -0
  148. package/fesm2022/geonetwork-ui.mjs +10257 -8945
  149. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  150. package/libs/api/metadata-converter/src/index.d.ts +3 -0
  151. package/libs/api/metadata-converter/src/index.d.ts.map +1 -1
  152. package/libs/api/metadata-converter/src/lib/common/license.d.ts +3 -0
  153. package/libs/api/metadata-converter/src/lib/common/license.d.ts.map +1 -0
  154. package/libs/api/metadata-converter/src/lib/common/url.d.ts +7 -0
  155. package/libs/api/metadata-converter/src/lib/common/url.d.ts.map +1 -0
  156. package/libs/api/metadata-converter/src/lib/dcat-ap/dcat-ap.converter.d.ts +13 -0
  157. package/libs/api/metadata-converter/src/lib/dcat-ap/dcat-ap.converter.d.ts.map +1 -0
  158. package/libs/api/metadata-converter/src/lib/dcat-ap/index.d.ts +2 -0
  159. package/libs/api/metadata-converter/src/lib/dcat-ap/index.d.ts.map +1 -0
  160. package/libs/api/metadata-converter/src/lib/dcat-ap/namespaces.d.ts +16 -0
  161. package/libs/api/metadata-converter/src/lib/dcat-ap/namespaces.d.ts.map +1 -0
  162. package/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.d.ts +20 -0
  163. package/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.d.ts.map +1 -0
  164. package/libs/api/metadata-converter/src/lib/dcat-ap/utils/graph-utils.d.ts +9 -0
  165. package/libs/api/metadata-converter/src/lib/dcat-ap/utils/graph-utils.d.ts.map +1 -0
  166. package/libs/api/metadata-converter/src/lib/dcat-ap/utils/serialize-to-xml.d.ts +8 -0
  167. package/libs/api/metadata-converter/src/lib/dcat-ap/utils/serialize-to-xml.d.ts.map +1 -0
  168. package/libs/api/metadata-converter/src/lib/dcat-ap/utils/uri.d.ts +2 -0
  169. package/libs/api/metadata-converter/src/lib/dcat-ap/utils/uri.d.ts.map +1 -0
  170. package/libs/api/metadata-converter/src/lib/dcat-ap/write-parts.d.ts +6 -0
  171. package/libs/api/metadata-converter/src/lib/dcat-ap/write-parts.d.ts.map +1 -0
  172. package/libs/api/metadata-converter/src/lib/find-converter.d.ts.map +1 -1
  173. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts +3 -3
  174. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
  175. package/libs/api/metadata-converter/src/lib/gn4/types/keywords.model.d.ts +2 -6
  176. package/libs/api/metadata-converter/src/lib/gn4/types/keywords.model.d.ts.map +1 -1
  177. package/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.d.ts.map +1 -1
  178. package/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.d.ts +2 -2
  179. package/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.d.ts.map +1 -1
  180. package/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.d.ts +1 -2
  181. package/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.d.ts.map +1 -1
  182. package/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.d.ts.map +1 -1
  183. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts +4 -5
  184. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts.map +1 -1
  185. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts +10 -11
  186. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
  187. package/libs/api/metadata-converter/src/lib/xml-utils.d.ts +58 -0
  188. package/libs/api/metadata-converter/src/lib/xml-utils.d.ts.map +1 -1
  189. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts +12 -7
  190. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts.map +1 -1
  191. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.d.ts.map +1 -1
  192. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +22 -2
  193. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
  194. package/libs/common/domain/src/lib/model/record/contact.model.d.ts +1 -1
  195. package/libs/common/domain/src/lib/model/record/contact.model.d.ts.map +1 -1
  196. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +7 -6
  197. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
  198. package/libs/common/domain/src/lib/model/user/user.model.d.ts +1 -1
  199. package/libs/common/domain/src/lib/model/user/user.model.d.ts.map +1 -1
  200. package/libs/common/domain/src/lib/platform.service.interface.d.ts +16 -0
  201. package/libs/common/domain/src/lib/platform.service.interface.d.ts.map +1 -1
  202. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts +7 -0
  203. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts.map +1 -1
  204. package/libs/data-access/gn4/src/fixtures/site.fixtures.d.ts +2 -2
  205. package/libs/data-access/gn4/src/fixtures/site.fixtures.d.ts.map +1 -1
  206. package/libs/data-access/gn4/src/fixtures/ui.fixtures.d.ts +1 -1
  207. package/libs/data-access/gn4/src/fixtures/ui.fixtures.d.ts.map +1 -1
  208. package/libs/feature/catalog/src/lib/feature-catalog.module.d.ts +2 -1
  209. package/libs/feature/catalog/src/lib/feature-catalog.module.d.ts.map +1 -1
  210. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts +2 -2
  211. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts.map +1 -1
  212. package/libs/feature/dataviz/src/lib/feature-dataviz.module.d.ts +10 -9
  213. package/libs/feature/dataviz/src/lib/feature-dataviz.module.d.ts.map +1 -1
  214. package/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.d.ts +13 -20
  215. package/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.d.ts.map +1 -1
  216. package/libs/feature/dataviz/src/lib/service/data.service.d.ts +6 -6
  217. package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
  218. package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts +3 -3
  219. package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts.map +1 -1
  220. package/libs/feature/editor/src/index.d.ts +1 -0
  221. package/libs/feature/editor/src/index.d.ts.map +1 -1
  222. package/libs/feature/editor/src/lib/+state/editor.actions.d.ts +1 -0
  223. package/libs/feature/editor/src/lib/+state/editor.actions.d.ts.map +1 -1
  224. package/libs/feature/editor/src/lib/+state/editor.effects.d.ts +5 -0
  225. package/libs/feature/editor/src/lib/+state/editor.effects.d.ts.map +1 -1
  226. package/libs/feature/editor/src/lib/+state/editor.facade.d.ts +1 -0
  227. package/libs/feature/editor/src/lib/+state/editor.facade.d.ts.map +1 -1
  228. package/libs/feature/editor/src/lib/components/contact-card/contact-card.component.d.ts +1 -5
  229. package/libs/feature/editor/src/lib/components/contact-card/contact-card.component.d.ts.map +1 -1
  230. package/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.d.ts +33 -0
  231. package/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.d.ts.map +1 -0
  232. package/libs/feature/editor/src/lib/components/import-record/import-record.component.d.ts +34 -0
  233. package/libs/feature/editor/src/lib/components/import-record/import-record.component.d.ts.map +1 -0
  234. package/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.d.ts +15 -0
  235. package/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.d.ts.map +1 -0
  236. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.d.ts +38 -0
  237. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.d.ts.map +1 -0
  238. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.d.ts +11 -17
  239. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.d.ts.map +1 -1
  240. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-date-updated/form-field-date-updated.component.d.ts +9 -0
  241. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-date-updated/form-field-date-updated.component.d.ts.map +1 -0
  242. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.d.ts +11 -19
  243. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.d.ts.map +1 -1
  244. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.d.ts +6 -4
  245. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.d.ts.map +1 -1
  246. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.d.ts +15 -0
  247. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.d.ts.map +1 -0
  248. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.d.ts +35 -0
  249. 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 -0
  250. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.d.ts +10 -12
  251. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.d.ts.map +1 -1
  252. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.d.ts +24 -4
  253. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.d.ts.map +1 -1
  254. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.d.ts +4 -6
  255. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.d.ts.map +1 -1
  256. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-simple/form-field-simple.component.d.ts +4 -3
  257. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-simple/form-field-simple.component.d.ts.map +1 -1
  258. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.d.ts +28 -0
  259. 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
  260. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.d.ts +10 -18
  261. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.d.ts.map +1 -1
  262. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.d.ts +5 -5
  263. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.d.ts.map +1 -1
  264. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts +18 -28
  265. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts.map +1 -1
  266. package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts +1 -1
  267. package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts.map +1 -1
  268. package/libs/feature/editor/src/lib/components/record-form/record-form.component.d.ts +5 -3
  269. package/libs/feature/editor/src/lib/components/record-form/record-form.component.d.ts.map +1 -1
  270. package/libs/feature/editor/src/lib/feature-editor.module.d.ts +2 -1
  271. package/libs/feature/editor/src/lib/feature-editor.module.d.ts.map +1 -1
  272. package/libs/feature/editor/src/lib/fields.config.d.ts +11 -1
  273. package/libs/feature/editor/src/lib/fields.config.d.ts.map +1 -1
  274. package/libs/feature/editor/src/lib/models/editor-config.model.d.ts +6 -0
  275. package/libs/feature/editor/src/lib/models/editor-config.model.d.ts.map +1 -1
  276. package/libs/feature/editor/src/lib/services/editor.service.d.ts +3 -2
  277. package/libs/feature/editor/src/lib/services/editor.service.d.ts.map +1 -1
  278. package/libs/feature/map/src/index.d.ts +1 -8
  279. package/libs/feature/map/src/index.d.ts.map +1 -1
  280. package/libs/feature/map/src/lib/+state/map.actions.d.ts +13 -39
  281. package/libs/feature/map/src/lib/+state/map.actions.d.ts.map +1 -1
  282. package/libs/feature/map/src/lib/+state/map.facade.d.ts +9 -10
  283. package/libs/feature/map/src/lib/+state/map.facade.d.ts.map +1 -1
  284. package/libs/feature/map/src/lib/+state/map.reducer.d.ts +4 -2
  285. package/libs/feature/map/src/lib/+state/map.reducer.d.ts.map +1 -1
  286. package/libs/feature/map/src/lib/+state/map.selectors.d.ts +6 -1
  287. package/libs/feature/map/src/lib/+state/map.selectors.d.ts.map +1 -1
  288. package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.d.ts +1 -1
  289. package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.d.ts.map +1 -1
  290. package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.d.ts +8 -10
  291. package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.d.ts.map +1 -1
  292. package/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.d.ts +1 -1
  293. package/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.d.ts.map +1 -1
  294. package/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.d.ts +3 -3
  295. package/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.d.ts.map +1 -1
  296. package/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.d.ts +2 -2
  297. package/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.d.ts.map +1 -1
  298. package/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.d.ts +2 -2
  299. package/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.d.ts.map +1 -1
  300. package/libs/feature/map/src/lib/constant/index.d.ts +0 -1
  301. package/libs/feature/map/src/lib/constant/index.d.ts.map +1 -1
  302. package/libs/feature/map/src/lib/feature-map.module.d.ts +12 -23
  303. package/libs/feature/map/src/lib/feature-map.module.d.ts.map +1 -1
  304. package/libs/feature/map/src/lib/geocoding/geocoding.component.d.ts +7 -7
  305. package/libs/feature/map/src/lib/geocoding/geocoding.component.d.ts.map +1 -1
  306. package/libs/feature/map/src/lib/layers-panel/layers-panel.component.d.ts +5 -4
  307. package/libs/feature/map/src/lib/layers-panel/layers-panel.component.d.ts.map +1 -1
  308. package/libs/feature/map/src/lib/map-state-container/map-state-container.component.d.ts +14 -0
  309. package/libs/feature/map/src/lib/map-state-container/map-state-container.component.d.ts.map +1 -0
  310. package/libs/feature/map/src/lib/style/map-style.fixtures.d.ts +2 -2
  311. package/libs/feature/map/src/lib/style/map-style.fixtures.d.ts.map +1 -1
  312. package/libs/feature/map/src/lib/utils/map-utils.service.d.ts +0 -30
  313. package/libs/feature/map/src/lib/utils/map-utils.service.d.ts.map +1 -1
  314. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts +3 -3
  315. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts.map +1 -1
  316. package/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.d.ts +10 -7
  317. package/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.d.ts.map +1 -1
  318. package/libs/feature/record/src/lib/feature-record.module.d.ts +13 -11
  319. package/libs/feature/record/src/lib/feature-record.module.d.ts.map +1 -1
  320. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts +14 -20
  321. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
  322. package/libs/feature/record/src/lib/state/mdview.facade.d.ts +7 -7
  323. package/libs/feature/record/src/lib/state/mdview.facade.d.ts.map +1 -1
  324. package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts +5 -3
  325. package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts.map +1 -1
  326. package/libs/ui/catalog/src/lib/organisations-filter/organisations-filter.component.d.ts +1 -1
  327. package/libs/ui/catalog/src/lib/organisations-filter/organisations-filter.component.d.ts.map +1 -1
  328. package/libs/ui/catalog/src/lib/ui-catalog.module.d.ts +9 -10
  329. package/libs/ui/catalog/src/lib/ui-catalog.module.d.ts.map +1 -1
  330. package/libs/ui/dataviz/src/lib/table/table.fixtures.d.ts +2 -2
  331. package/libs/ui/dataviz/src/lib/table/table.fixtures.d.ts.map +1 -1
  332. package/libs/ui/elements/src/index.d.ts +1 -1
  333. package/libs/ui/elements/src/index.d.ts.map +1 -1
  334. package/libs/ui/elements/src/lib/download-item/download-item.component.d.ts +2 -2
  335. package/libs/ui/elements/src/lib/download-item/download-item.component.d.ts.map +1 -1
  336. package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts +7 -7
  337. package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts.map +1 -1
  338. package/libs/ui/elements/src/lib/link-card/link-card.component.d.ts +2 -2
  339. package/libs/ui/elements/src/lib/link-card/link-card.component.d.ts.map +1 -1
  340. package/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.d.ts +2 -2
  341. package/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.d.ts.map +1 -1
  342. package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts +1 -1
  343. package/libs/ui/elements/src/lib/ui-elements.module.d.ts +2 -1
  344. package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
  345. package/libs/ui/inputs/src/index.d.ts +5 -0
  346. package/libs/ui/inputs/src/index.d.ts.map +1 -1
  347. package/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.d.ts.map +1 -1
  348. package/libs/ui/inputs/src/lib/badge/badge.component.d.ts.map +1 -1
  349. package/libs/ui/inputs/src/lib/button/button.component.d.ts +1 -1
  350. package/libs/ui/inputs/src/lib/button/button.component.d.ts.map +1 -1
  351. package/libs/ui/inputs/src/lib/date-picker/date-picker.component.d.ts.map +1 -1
  352. package/libs/ui/inputs/src/lib/date-range-picker/date-range-picker.component.d.ts.map +1 -1
  353. package/libs/ui/inputs/src/lib/editable-label/editable-label.directive.d.ts +5 -3
  354. package/libs/ui/inputs/src/lib/editable-label/editable-label.directive.d.ts.map +1 -1
  355. package/libs/ui/inputs/src/lib/file-input/file-input.component.d.ts +24 -0
  356. package/libs/ui/inputs/src/lib/file-input/file-input.component.d.ts.map +1 -0
  357. package/libs/ui/inputs/src/lib/image-input/image-input.component.d.ts +4 -5
  358. package/libs/ui/inputs/src/lib/image-input/image-input.component.d.ts.map +1 -1
  359. package/libs/ui/inputs/src/lib/search-input/search-input.component.d.ts +1 -1
  360. package/libs/ui/inputs/src/lib/search-input/search-input.component.d.ts.map +1 -1
  361. package/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.d.ts +16 -0
  362. package/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.d.ts.map +1 -0
  363. package/libs/ui/inputs/src/lib/text-area/text-area.component.d.ts +0 -4
  364. package/libs/ui/inputs/src/lib/text-area/text-area.component.d.ts.map +1 -1
  365. package/libs/ui/inputs/src/lib/text-input/text-input.component.d.ts +2 -4
  366. package/libs/ui/inputs/src/lib/text-input/text-input.component.d.ts.map +1 -1
  367. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +33 -35
  368. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts.map +1 -1
  369. package/libs/ui/inputs/src/lib/url-input/url-input.component.d.ts +18 -0
  370. package/libs/ui/inputs/src/lib/url-input/url-input.component.d.ts.map +1 -0
  371. package/libs/ui/layout/src/index.d.ts +2 -0
  372. package/libs/ui/layout/src/index.d.ts.map +1 -1
  373. package/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.d.ts +2 -2
  374. package/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.d.ts.map +1 -1
  375. package/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.d.ts +1 -1
  376. package/libs/ui/layout/src/lib/modal-dialog/modal-dialog.component.d.ts +20 -0
  377. package/libs/ui/layout/src/lib/modal-dialog/modal-dialog.component.d.ts.map +1 -0
  378. package/libs/ui/layout/src/lib/sortable-list/sortable-list.component.d.ts +14 -0
  379. package/libs/ui/layout/src/lib/sortable-list/sortable-list.component.d.ts.map +1 -0
  380. package/libs/ui/map/src/index.d.ts +3 -2
  381. package/libs/ui/map/src/index.d.ts.map +1 -1
  382. package/libs/ui/map/src/lib/components/feature-detail/feature-detail.component.d.ts +3 -4
  383. package/libs/ui/map/src/lib/components/feature-detail/feature-detail.component.d.ts.map +1 -1
  384. package/libs/ui/map/src/lib/components/map-container/map-container.component.d.ts +37 -0
  385. package/libs/ui/map/src/lib/components/map-container/map-container.component.d.ts.map +1 -0
  386. package/libs/ui/map/src/lib/components/map-container/map-settings.token.d.ts +18 -0
  387. package/libs/ui/map/src/lib/components/map-container/map-settings.token.d.ts.map +1 -0
  388. package/libs/ui/map/src/lib/map-utils.d.ts +7 -0
  389. package/libs/ui/map/src/lib/map-utils.d.ts.map +1 -0
  390. package/libs/ui/search/src/lib/facets/fixtures/aggregations-model-response.d.ts +3 -3
  391. package/libs/ui/search/src/lib/facets/fixtures/aggregations-model-response.d.ts.map +1 -1
  392. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts +3 -3
  393. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts.map +1 -1
  394. package/libs/util/app-config/src/index.d.ts +1 -0
  395. package/libs/util/app-config/src/index.d.ts.map +1 -1
  396. package/libs/util/app-config/src/lib/fixtures.d.ts +8 -8
  397. package/libs/util/app-config/src/lib/fixtures.d.ts.map +1 -1
  398. package/libs/util/app-config/src/lib/map-layers.d.ts +4 -0
  399. package/libs/util/app-config/src/lib/map-layers.d.ts.map +1 -0
  400. package/libs/util/shared/src/lib/links/link-classifier.service.d.ts +3 -3
  401. package/libs/util/shared/src/lib/links/link-classifier.service.d.ts.map +1 -1
  402. package/libs/util/shared/src/lib/links/link-utils.d.ts +6 -6
  403. package/libs/util/shared/src/lib/links/link-utils.d.ts.map +1 -1
  404. package/libs/util/shared/src/lib/services/theme.service.d.ts.map +1 -1
  405. package/libs/util/shared/src/lib/utils/bytes-convert.d.ts +2 -1
  406. package/libs/util/shared/src/lib/utils/bytes-convert.d.ts.map +1 -1
  407. package/package.json +5 -3
  408. package/src/libs/api/metadata-converter/src/index.ts +3 -0
  409. package/src/libs/api/metadata-converter/src/lib/common/license.ts +66 -0
  410. package/src/libs/api/metadata-converter/src/lib/common/url.ts +15 -0
  411. package/src/libs/api/metadata-converter/src/lib/dcat-ap/dcat-ap.converter.ts +378 -0
  412. package/src/libs/api/metadata-converter/src/lib/dcat-ap/index.ts +1 -0
  413. package/src/libs/api/metadata-converter/src/lib/dcat-ap/namespaces.ts +17 -0
  414. package/src/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.ts +370 -0
  415. package/src/libs/api/metadata-converter/src/lib/dcat-ap/utils/graph-utils.ts +95 -0
  416. package/src/libs/api/metadata-converter/src/lib/dcat-ap/utils/individual-name.ts +20 -0
  417. package/src/libs/api/metadata-converter/src/lib/dcat-ap/utils/keyword.mapper.ts +16 -0
  418. package/src/libs/api/metadata-converter/src/lib/dcat-ap/utils/role.mapper.ts +48 -0
  419. package/src/libs/api/metadata-converter/src/lib/dcat-ap/utils/serialize-to-xml.ts +97 -0
  420. package/src/libs/api/metadata-converter/src/lib/dcat-ap/utils/status.mapper.ts +19 -0
  421. package/src/libs/api/metadata-converter/src/lib/dcat-ap/utils/update-frequency.mapper.ts +67 -0
  422. package/src/libs/api/metadata-converter/src/lib/dcat-ap/utils/uri.ts +1 -0
  423. package/src/libs/api/metadata-converter/src/lib/dcat-ap/write-parts.ts +68 -0
  424. package/src/libs/api/metadata-converter/src/lib/find-converter.ts +13 -0
  425. package/src/libs/api/metadata-converter/src/lib/fixtures/eu.dcat-ap.records.ts +272 -0
  426. package/src/libs/api/metadata-converter/src/lib/fixtures/generic.records.ts +7 -2
  427. package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.ts +1 -1
  428. package/src/libs/api/metadata-converter/src/lib/fixtures/geocat-ch.records.ts +1 -1
  429. package/src/libs/api/metadata-converter/src/lib/fixtures/metawal.records.ts +1 -1
  430. package/src/libs/api/metadata-converter/src/lib/fixtures/opendataswiss.records.ts +110 -0
  431. package/src/libs/api/metadata-converter/src/lib/fixtures/sextant.records.ts +85 -0
  432. package/src/libs/api/metadata-converter/src/lib/fixtures/vlaanderen.dcat-ap.records.ts +73 -0
  433. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +18 -16
  434. package/src/libs/api/metadata-converter/src/lib/gn4/types/keywords.model.ts +2 -6
  435. package/src/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.ts +5 -6
  436. package/src/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.ts +12 -4
  437. package/src/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.ts +21 -43
  438. package/src/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.ts +8 -15
  439. package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +13 -15
  440. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +133 -156
  441. package/src/libs/api/metadata-converter/src/lib/xml-utils.ts +37 -2
  442. package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +132 -68
  443. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.ts +12 -1
  444. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +90 -15
  445. package/src/libs/common/domain/src/lib/model/record/contact.model.ts +1 -1
  446. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +8 -7
  447. package/src/libs/common/domain/src/lib/model/user/user.model.ts +1 -1
  448. package/src/libs/common/domain/src/lib/platform.service.interface.ts +30 -0
  449. package/src/libs/common/domain/src/lib/repository/records-repository.interface.ts +10 -0
  450. package/src/libs/common/fixtures/src/index.ts +4 -1
  451. package/src/libs/common/fixtures/src/lib/editor/editor.fixtures.ts +37 -37
  452. package/src/libs/common/fixtures/src/lib/elasticsearch/{aggregations-request.ts → aggregations-request.fixtures.ts} +1 -3
  453. package/src/libs/common/fixtures/src/lib/elasticsearch/{aggregations-response.ts → aggregations-response.fixtures.ts} +6 -8
  454. package/src/libs/common/fixtures/src/lib/elasticsearch/{full-response.ts → full-response.fixtures.ts} +1 -3
  455. package/src/libs/common/fixtures/src/lib/elasticsearch/index.ts +5 -5
  456. package/src/libs/common/fixtures/src/lib/elasticsearch/metadata-links.fixtures.ts +1 -3
  457. package/src/libs/common/fixtures/src/lib/elasticsearch/metadata.fixtures.ts +1739 -1742
  458. package/src/libs/common/fixtures/src/lib/elasticsearch/{search-requests.ts → search-requests.fixtures.ts} +1 -3
  459. package/src/libs/common/fixtures/src/lib/elasticsearch/{search-responses.ts → search-responses.fixtures.ts} +4 -6
  460. package/src/libs/common/fixtures/src/lib/geojson.fixtures.ts +57178 -57195
  461. package/src/libs/common/fixtures/src/lib/gn4/groups.fixtures.ts +2 -4
  462. package/src/libs/common/fixtures/src/lib/individual.fixtures.ts +61 -0
  463. package/src/libs/common/fixtures/src/lib/link.fixtures.ts +233 -164
  464. package/src/libs/common/fixtures/src/lib/map/index.ts +1 -0
  465. package/src/libs/common/fixtures/src/lib/map/map-context.fixtures.ts +53 -0
  466. package/src/libs/common/fixtures/src/lib/ol-feature.fixtures.ts +10 -0
  467. package/src/libs/common/fixtures/src/lib/organisations.fixture.ts +37 -3
  468. package/src/libs/common/fixtures/src/lib/record-link.fixtures.ts +9 -7
  469. package/src/libs/common/fixtures/src/lib/records.fixtures.ts +9 -9
  470. package/src/libs/common/fixtures/src/lib/repository.fixtures.ts +4 -4
  471. package/src/libs/common/fixtures/src/lib/search/aggregations.ts +2 -3
  472. package/src/libs/common/fixtures/src/lib/user-feedbacks.fixtures.ts +14 -15
  473. package/src/libs/common/fixtures/src/lib/user.fixtures.ts +45 -15
  474. package/src/libs/data-access/gn4/src/fixtures/site.fixtures.ts +4 -4
  475. package/src/libs/data-access/gn4/src/fixtures/ui.fixtures.ts +2 -2
  476. package/src/libs/feature/catalog/src/lib/feature-catalog.module.ts +5 -1
  477. package/src/libs/feature/catalog/src/lib/sources/sources.fixture.ts +1 -1
  478. package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.ts +3 -3
  479. package/src/libs/feature/dataviz/src/lib/feature-dataviz.module.ts +6 -2
  480. package/src/libs/feature/dataviz/src/lib/figure/figure.fixtures.ts +2 -2
  481. package/src/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.html +5 -2
  482. package/src/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.ts +38 -78
  483. package/src/libs/feature/dataviz/src/lib/service/data.service.ts +6 -6
  484. package/src/libs/feature/dataviz/src/lib/table-view/table-view.component.ts +4 -4
  485. package/src/libs/feature/editor/src/index.ts +1 -0
  486. package/src/libs/feature/editor/src/lib/+state/editor.actions.ts +2 -0
  487. package/src/libs/feature/editor/src/lib/+state/editor.effects.ts +26 -4
  488. package/src/libs/feature/editor/src/lib/+state/editor.facade.ts +4 -0
  489. package/src/libs/feature/editor/src/lib/components/contact-card/contact-card.component.html +12 -22
  490. package/src/libs/feature/editor/src/lib/components/contact-card/contact-card.component.ts +1 -13
  491. package/src/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.html +26 -0
  492. package/src/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.ts +90 -0
  493. package/src/libs/feature/editor/src/lib/components/import-record/import-record.component.html +47 -0
  494. package/src/libs/feature/editor/src/lib/components/import-record/import-record.component.ts +132 -0
  495. package/src/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.html +35 -0
  496. package/src/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.ts +79 -0
  497. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.html +40 -0
  498. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.ts +170 -0
  499. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.css +4 -0
  500. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.html +13 -23
  501. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.ts +52 -113
  502. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-date-updated/form-field-date-updated.component.html +4 -0
  503. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-date-updated/form-field-date-updated.component.ts +21 -0
  504. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.html +7 -16
  505. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.ts +44 -45
  506. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.css +8 -0
  507. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.ts +13 -5
  508. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.html +1 -0
  509. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.ts +86 -0
  510. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.html +34 -0
  511. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.ts +182 -0
  512. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.html +1 -1
  513. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.ts +18 -29
  514. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.html +11 -5
  515. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.ts +107 -7
  516. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.html +15 -8
  517. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.ts +11 -14
  518. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-simple/form-field-simple.component.html +5 -3
  519. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-simple/form-field-simple.component.ts +11 -4
  520. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.html +20 -1
  521. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.ts +212 -1
  522. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.css +4 -0
  523. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.html +31 -4
  524. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.ts +43 -87
  525. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.css +4 -0
  526. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.html +16 -14
  527. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.ts +17 -15
  528. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html +113 -81
  529. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +47 -67
  530. package/src/libs/feature/editor/src/lib/components/record-form/form-field/index.ts +1 -1
  531. package/src/libs/feature/editor/src/lib/components/record-form/record-form.component.html +32 -29
  532. package/src/libs/feature/editor/src/lib/components/record-form/record-form.component.ts +9 -3
  533. package/src/libs/feature/editor/src/lib/components/wizard/wizard.component.html +2 -6
  534. package/src/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.html +1 -1
  535. package/src/libs/feature/editor/src/lib/feature-editor.module.ts +2 -1
  536. package/src/libs/feature/editor/src/lib/fields.config.ts +53 -7
  537. package/src/libs/feature/editor/src/lib/models/editor-config.model.ts +12 -0
  538. package/src/libs/feature/editor/src/lib/services/editor.service.ts +14 -3
  539. package/src/libs/feature/map/src/index.ts +1 -8
  540. package/src/libs/feature/map/src/lib/+state/map.actions.ts +10 -25
  541. package/src/libs/feature/map/src/lib/+state/map.facade.ts +11 -15
  542. package/src/libs/feature/map/src/lib/+state/map.reducer.ts +16 -53
  543. package/src/libs/feature/map/src/lib/+state/map.selectors.ts +7 -2
  544. package/src/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.ts +3 -0
  545. package/src/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.ts +23 -22
  546. package/src/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.ts +22 -11
  547. package/src/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.html +1 -1
  548. package/src/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.ts +21 -19
  549. package/src/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.html +1 -1
  550. package/src/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.ts +17 -10
  551. package/src/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.html +1 -1
  552. package/src/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.ts +17 -10
  553. package/src/libs/feature/map/src/lib/constant/index.ts +0 -1
  554. package/src/libs/feature/map/src/lib/feature-map.module.ts +2 -41
  555. package/src/libs/feature/map/src/lib/geocoding/geocoding.component.ts +38 -20
  556. package/src/libs/feature/map/src/lib/layers-panel/layers-panel.component.html +2 -2
  557. package/src/libs/feature/map/src/lib/layers-panel/layers-panel.component.ts +39 -6
  558. package/src/libs/feature/map/src/lib/map-state-container/map-state-container.component.css +0 -0
  559. package/src/libs/feature/map/src/lib/map-state-container/map-state-container.component.html +4 -0
  560. package/src/libs/feature/map/src/lib/map-state-container/map-state-container.component.ts +29 -0
  561. package/src/libs/feature/map/src/lib/style/map-style.fixtures.ts +29 -27
  562. package/src/libs/feature/map/src/lib/utils/map-utils.service.ts +1 -229
  563. package/src/libs/feature/record/src/lib/data-view/data-view.component.ts +3 -3
  564. package/src/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.ts +29 -20
  565. package/src/libs/feature/record/src/lib/feature-record.module.ts +11 -3
  566. package/src/libs/feature/record/src/lib/map-view/map-view.component.html +4 -4
  567. package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +45 -72
  568. package/src/libs/feature/record/src/lib/state/mdview.facade.ts +5 -1
  569. package/src/libs/feature/router/src/lib/default/state/router.facade.ts +1 -1
  570. package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.html +1 -0
  571. package/src/libs/feature/search/src/lib/results-table/results-table-container.component.html +5 -1
  572. package/src/libs/feature/search/src/lib/results-table/results-table-container.component.ts +14 -3
  573. package/src/libs/feature/search/src/lib/state/fixtures/search-state.fixtures.ts +2 -2
  574. package/src/libs/ui/catalog/src/lib/organisations-filter/organisations-filter.component.ts +8 -1
  575. package/src/libs/ui/catalog/src/lib/ui-catalog.module.ts +0 -3
  576. package/src/libs/ui/dataviz/src/lib/chart/chart.fixtures.ts +2 -2
  577. package/src/libs/ui/dataviz/src/lib/table/table.fixtures.ts +2 -2
  578. package/src/libs/ui/elements/src/index.ts +1 -1
  579. package/src/libs/ui/elements/src/lib/download-item/download-item.component.ts +4 -4
  580. package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.ts +7 -7
  581. package/src/libs/ui/elements/src/lib/link-card/link-card.component.ts +3 -3
  582. package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.html +13 -20
  583. package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.ts +1 -1
  584. package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.css +5 -0
  585. package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.html +2 -2
  586. package/src/libs/ui/elements/src/lib/ui-elements.module.ts +6 -1
  587. package/src/libs/ui/inputs/src/index.ts +5 -0
  588. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.css +25 -18
  589. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.html +38 -24
  590. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.ts +4 -1
  591. package/src/libs/ui/inputs/src/lib/badge/badge.component.html +11 -3
  592. package/src/libs/ui/inputs/src/lib/badge/badge.component.ts +2 -1
  593. package/src/libs/ui/inputs/src/lib/button/button.component.ts +15 -1
  594. package/src/libs/ui/inputs/src/lib/date-picker/date-picker.component.css +7 -2
  595. package/src/libs/ui/inputs/src/lib/date-picker/date-picker.component.html +14 -6
  596. package/src/libs/ui/inputs/src/lib/date-picker/date-picker.component.ts +7 -1
  597. package/src/libs/ui/inputs/src/lib/date-range-picker/date-range-picker.component.css +7 -2
  598. package/src/libs/ui/inputs/src/lib/date-range-picker/date-range-picker.component.html +28 -23
  599. package/src/libs/ui/inputs/src/lib/date-range-picker/date-range-picker.component.ts +7 -1
  600. package/src/libs/ui/inputs/src/lib/editable-label/editable-label.directive.ts +40 -26
  601. package/src/libs/ui/inputs/src/lib/file-input/file-input.component.css +4 -0
  602. package/src/libs/ui/inputs/src/lib/file-input/file-input.component.html +89 -0
  603. package/src/libs/ui/inputs/src/lib/file-input/file-input.component.ts +92 -0
  604. package/src/libs/ui/inputs/src/lib/image-input/image-input.component.css +4 -0
  605. package/src/libs/ui/inputs/src/lib/image-input/image-input.component.html +76 -68
  606. package/src/libs/ui/inputs/src/lib/image-input/image-input.component.ts +17 -14
  607. package/src/libs/ui/inputs/src/lib/search-input/search-input.component.ts +5 -1
  608. package/src/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.css +4 -3
  609. package/src/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.html +0 -1
  610. package/src/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.ts +1 -2
  611. package/src/libs/ui/inputs/src/lib/text-area/text-area.component.html +3 -2
  612. package/src/libs/ui/inputs/src/lib/text-area/text-area.component.ts +3 -28
  613. package/src/libs/ui/inputs/src/lib/text-input/text-input.component.html +4 -3
  614. package/src/libs/ui/inputs/src/lib/text-input/text-input.component.ts +4 -16
  615. package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +0 -6
  616. package/src/libs/ui/inputs/src/lib/url-input/url-input.component.css +9 -0
  617. package/src/libs/ui/inputs/src/lib/url-input/url-input.component.html +37 -0
  618. package/src/libs/ui/inputs/src/lib/url-input/url-input.component.ts +33 -0
  619. package/src/libs/ui/layout/src/index.ts +2 -0
  620. package/src/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.html +8 -3
  621. package/src/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.ts +4 -3
  622. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.css +1 -1
  623. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.html +2 -2
  624. package/src/libs/ui/layout/src/lib/modal-dialog/modal-dialog.component.css +0 -0
  625. package/src/libs/ui/layout/src/lib/modal-dialog/modal-dialog.component.html +15 -0
  626. package/src/libs/ui/layout/src/lib/modal-dialog/modal-dialog.component.ts +44 -0
  627. package/src/libs/ui/layout/src/lib/sortable-list/sortable-list.component.html +37 -0
  628. package/src/libs/ui/{elements → layout}/src/lib/sortable-list/sortable-list.component.ts +11 -18
  629. package/src/libs/ui/map/src/index.ts +3 -2
  630. package/src/libs/ui/map/src/lib/components/feature-detail/feature-detail.component.html +1 -1
  631. package/src/libs/ui/map/src/lib/components/feature-detail/feature-detail.component.ts +8 -5
  632. package/src/libs/ui/map/src/lib/components/map-container/map-container.component.css +0 -0
  633. package/src/libs/ui/map/src/lib/components/map-container/map-container.component.ts +203 -0
  634. package/src/libs/ui/map/src/lib/components/map-container/map-settings.token.ts +23 -0
  635. package/src/libs/ui/map/src/lib/map-utils.ts +54 -0
  636. package/src/libs/ui/search/src/lib/facets/fixtures/aggregations-model-response.ts +7 -6
  637. package/src/libs/ui/search/src/lib/results-table/results-table.component.html +20 -9
  638. package/src/libs/ui/search/src/lib/results-table/results-table.component.ts +5 -6
  639. package/src/libs/util/app-config/src/index.ts +1 -0
  640. package/src/libs/util/app-config/src/lib/fixtures.ts +9 -9
  641. package/src/libs/util/app-config/src/lib/map-layers.ts +31 -0
  642. package/src/libs/util/shared/src/lib/links/link-classifier.service.ts +4 -3
  643. package/src/libs/util/shared/src/lib/links/link-utils.ts +6 -6
  644. package/src/libs/util/shared/src/lib/services/theme.service.ts +1 -0
  645. package/src/libs/util/shared/src/lib/utils/bytes-convert.ts +4 -1
  646. package/tailwind.base.config.js +1 -0
  647. package/tailwind.base.css +52 -8
  648. package/translations/de.json +46 -3
  649. package/translations/en.json +75 -32
  650. package/translations/es.json +43 -0
  651. package/translations/fr.json +108 -65
  652. package/translations/it.json +45 -2
  653. package/translations/nl.json +43 -0
  654. package/translations/pt.json +43 -0
  655. package/translations/sk.json +43 -0
  656. package/esm2022/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.mjs +0 -131
  657. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.mjs +0 -15
  658. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents-date/form-field-temporal-extents-date.component.mjs +0 -17
  659. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents-range/form-field-temporal-extents-range.component.mjs +0 -17
  660. package/esm2022/libs/feature/map/src/lib/+state/map.effects.mjs +0 -15
  661. package/esm2022/libs/feature/map/src/lib/+state/map.models.mjs +0 -2
  662. package/esm2022/libs/feature/map/src/lib/constant/map-options.mjs +0 -8
  663. package/esm2022/libs/feature/map/src/lib/constant/style.constant.mjs +0 -17
  664. package/esm2022/libs/feature/map/src/lib/feature-info/feature-info.service.mjs +0 -38
  665. package/esm2022/libs/feature/map/src/lib/manager/map-instance.directive.mjs +0 -19
  666. package/esm2022/libs/feature/map/src/lib/manager/map-manager.service.mjs +0 -19
  667. package/esm2022/libs/feature/map/src/lib/map-container/map-container.component.mjs +0 -27
  668. package/esm2022/libs/feature/map/src/lib/map-context/component/map-context.component.mjs +0 -46
  669. package/esm2022/libs/feature/map/src/lib/map-context/map-context.model.mjs +0 -10
  670. package/esm2022/libs/feature/map/src/lib/map-context/map-context.service.mjs +0 -289
  671. package/esm2022/libs/ui/elements/src/lib/sortable-list/sortable-list.component.mjs +0 -47
  672. package/esm2022/libs/ui/map/src/lib/components/map/map.component.mjs +0 -40
  673. package/esm2022/libs/ui/map/src/lib/ui-map.module.mjs +0 -33
  674. package/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.d.ts +0 -27
  675. package/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.d.ts.map +0 -1
  676. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.d.ts +0 -8
  677. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.d.ts.map +0 -1
  678. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents-date/form-field-temporal-extents-date.component.d.ts +0 -8
  679. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents-date/form-field-temporal-extents-date.component.d.ts.map +0 -1
  680. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents-range/form-field-temporal-extents-range.component.d.ts +0 -8
  681. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents-range/form-field-temporal-extents-range.component.d.ts.map +0 -1
  682. package/libs/feature/map/src/lib/+state/map.effects.d.ts +0 -9
  683. package/libs/feature/map/src/lib/+state/map.effects.d.ts.map +0 -1
  684. package/libs/feature/map/src/lib/+state/map.models.d.ts +0 -9
  685. package/libs/feature/map/src/lib/+state/map.models.d.ts.map +0 -1
  686. package/libs/feature/map/src/lib/constant/map-options.d.ts +0 -9
  687. package/libs/feature/map/src/lib/constant/map-options.d.ts.map +0 -1
  688. package/libs/feature/map/src/lib/constant/style.constant.d.ts +0 -4
  689. package/libs/feature/map/src/lib/constant/style.constant.d.ts.map +0 -1
  690. package/libs/feature/map/src/lib/feature-info/feature-info.service.d.ts +0 -16
  691. package/libs/feature/map/src/lib/feature-info/feature-info.service.d.ts.map +0 -1
  692. package/libs/feature/map/src/lib/manager/map-instance.directive.d.ts +0 -9
  693. package/libs/feature/map/src/lib/manager/map-instance.directive.d.ts.map +0 -1
  694. package/libs/feature/map/src/lib/manager/map-manager.service.d.ts +0 -11
  695. package/libs/feature/map/src/lib/manager/map-manager.service.d.ts.map +0 -1
  696. package/libs/feature/map/src/lib/map-container/map-container.component.d.ts +0 -12
  697. package/libs/feature/map/src/lib/map-container/map-container.component.d.ts.map +0 -1
  698. package/libs/feature/map/src/lib/map-context/component/map-context.component.d.ts +0 -26
  699. package/libs/feature/map/src/lib/map-context/component/map-context.component.d.ts.map +0 -1
  700. package/libs/feature/map/src/lib/map-context/map-context.model.d.ts +0 -77
  701. package/libs/feature/map/src/lib/map-context/map-context.model.d.ts.map +0 -1
  702. package/libs/feature/map/src/lib/map-context/map-context.service.d.ts +0 -26
  703. package/libs/feature/map/src/lib/map-context/map-context.service.d.ts.map +0 -1
  704. package/libs/ui/elements/src/lib/sortable-list/sortable-list.component.d.ts +0 -22
  705. package/libs/ui/elements/src/lib/sortable-list/sortable-list.component.d.ts.map +0 -1
  706. package/libs/ui/map/src/lib/components/map/map.component.d.ts +0 -19
  707. package/libs/ui/map/src/lib/components/map/map.component.d.ts.map +0 -1
  708. package/libs/ui/map/src/lib/ui-map.module.d.ts +0 -13
  709. package/libs/ui/map/src/lib/ui-map.module.d.ts.map +0 -1
  710. package/src/libs/common/fixtures/src/lib/ol-feature.fixture.ts +0 -7
  711. package/src/libs/common/fixtures/src/lib/utils/freeze.ts +0 -10
  712. package/src/libs/common/fixtures/src/lib/utils/index.ts +0 -1
  713. package/src/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.html +0 -9
  714. package/src/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.ts +0 -161
  715. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.html +0 -4
  716. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.ts +0 -15
  717. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents-date/form-field-temporal-extents-date.component.html +0 -7
  718. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents-date/form-field-temporal-extents-date.component.ts +0 -16
  719. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents-range/form-field-temporal-extents-range.component.html +0 -13
  720. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents-range/form-field-temporal-extents-range.component.ts +0 -16
  721. package/src/libs/feature/map/src/lib/+state/map.effects.ts +0 -7
  722. package/src/libs/feature/map/src/lib/+state/map.models.ts +0 -9
  723. package/src/libs/feature/map/src/lib/constant/map-options.ts +0 -17
  724. package/src/libs/feature/map/src/lib/feature-info/feature-info.service.ts +0 -42
  725. package/src/libs/feature/map/src/lib/manager/map-instance.directive.ts +0 -10
  726. package/src/libs/feature/map/src/lib/manager/map-manager.service.ts +0 -13
  727. package/src/libs/feature/map/src/lib/map-container/map-container.component.html +0 -1
  728. package/src/libs/feature/map/src/lib/map-container/map-container.component.ts +0 -26
  729. package/src/libs/feature/map/src/lib/map-context/component/map-context.component.html +0 -1
  730. package/src/libs/feature/map/src/lib/map-context/component/map-context.component.ts +0 -57
  731. package/src/libs/feature/map/src/lib/map-context/map-context.fixtures.ts +0 -51
  732. package/src/libs/feature/map/src/lib/map-context/map-context.model.ts +0 -95
  733. package/src/libs/feature/map/src/lib/map-context/map-context.service.ts +0 -318
  734. package/src/libs/ui/elements/src/lib/sortable-list/sortable-list.component.html +0 -38
  735. package/src/libs/ui/map/src/lib/components/map/map.component.ts +0 -57
  736. package/src/libs/ui/map/src/lib/ui-map.module.ts +0 -19
  737. /package/src/libs/feature/editor/src/lib/components/{overview-upload/overview-upload.component.css → generic-keywords/generic-keywords.component.css} +0 -0
  738. /package/src/libs/feature/editor/src/lib/components/{record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.css → import-record/import-record.component.css} +0 -0
  739. /package/src/libs/feature/editor/src/lib/components/{record-form/form-field/form-field-temporal-extents/form-field-temporal-extents-date/form-field-temporal-extents-date.component.css → online-resource-card/online-resource-card.component.css} +0 -0
  740. /package/src/libs/feature/editor/src/lib/components/record-form/form-field/{form-field-temporal-extents/form-field-temporal-extents-range/form-field-temporal-extents-range.component.css → form-field-contacts/form-field-contacts.component.css} +0 -0
  741. /package/src/libs/feature/{map/src/lib/map-container/map-container.component.css → editor/src/lib/components/record-form/form-field/form-field-date-updated/form-field-date-updated.component.css} +0 -0
  742. /package/src/libs/feature/{map/src/lib/map-context/component/map-context.component.css → editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.css} +0 -0
  743. /package/src/libs/{ui/map/src/lib/components/map/map.component.css → feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.css} +0 -0
  744. /package/src/libs/ui/{elements → layout}/src/lib/sortable-list/sortable-list.component.css +0 -0
  745. /package/src/libs/ui/map/src/lib/components/{map/map.component.html → map-container/map-container.component.html} +0 -0
@@ -0,0 +1,137 @@
1
+ import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Inject, Input, Output, ViewChild, } from '@angular/core';
2
+ import { fromEvent, merge, of, timer } from 'rxjs';
3
+ import { delay, map, startWith, switchMap } from 'rxjs/operators';
4
+ import { CommonModule } from '@angular/common';
5
+ import { MatIconModule } from '@angular/material/icon';
6
+ import { TranslateModule } from '@ngx-translate/core';
7
+ import { computeMapContextDiff, FeaturesClickEventType, FeaturesHoverEventType, MapClickEventType, } from '@geospatial-sdk/core';
8
+ import { applyContextDiffToMap, createMapFromContext, listen, } from '@geospatial-sdk/openlayers';
9
+ import { BASEMAP_LAYERS, DO_NOT_USE_DEFAULT_BASEMAP, MAP_VIEW_CONSTRAINTS, } from './map-settings.token';
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "@angular/common";
12
+ import * as i2 from "@angular/material/icon";
13
+ import * as i3 from "@ngx-translate/core";
14
+ const DEFAULT_BASEMAP_LAYER = {
15
+ type: 'xyz',
16
+ url: `https://{a-c}.basemaps.cartocdn.com/rastertiles/voyager/{z}/{x}/{y}.png`,
17
+ attributions: `<span>© <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors, © <a href="https://carto.com/">Carto</a></span>`,
18
+ };
19
+ const DEFAULT_VIEW = {
20
+ center: [0, 15],
21
+ zoom: 2,
22
+ };
23
+ export class MapContainerComponent {
24
+ get featuresClick() {
25
+ if (!this._featuresClick) {
26
+ this.openlayersMap.then((olMap) => {
27
+ listen(olMap, FeaturesClickEventType, ({ features }) => this._featuresClick.emit(features));
28
+ });
29
+ this._featuresClick = new EventEmitter();
30
+ }
31
+ return this._featuresClick;
32
+ }
33
+ get featuresHover() {
34
+ if (!this._featuresHover) {
35
+ this.openlayersMap.then((olMap) => {
36
+ listen(olMap, FeaturesHoverEventType, ({ features }) => this._featuresHover.emit(features));
37
+ });
38
+ this._featuresHover = new EventEmitter();
39
+ }
40
+ return this._featuresHover;
41
+ }
42
+ get mapClick() {
43
+ if (!this._mapClick) {
44
+ this.openlayersMap.then((olMap) => {
45
+ listen(olMap, MapClickEventType, ({ coordinate }) => this._mapClick.emit(coordinate));
46
+ });
47
+ this._mapClick = new EventEmitter();
48
+ }
49
+ return this._mapClick;
50
+ }
51
+ constructor(doNotUseDefaultBasemap, basemapLayers, mapViewConstraints) {
52
+ this.doNotUseDefaultBasemap = doNotUseDefaultBasemap;
53
+ this.basemapLayers = basemapLayers;
54
+ this.mapViewConstraints = mapViewConstraints;
55
+ this.openlayersMap = new Promise((resolve) => {
56
+ this.olMapResolver = resolve;
57
+ });
58
+ }
59
+ async ngAfterViewInit() {
60
+ this.olMap = await createMapFromContext(this.processContext(this.context), this.container.nativeElement);
61
+ this.displayMessage$ = merge(fromEvent(this.olMap, 'mapmuted').pipe(map(() => true)), fromEvent(this.olMap, 'movestart').pipe(map(() => false)), fromEvent(this.olMap, 'singleclick').pipe(map(() => false))).pipe(switchMap((muted) => muted
62
+ ? timer(2000).pipe(map(() => false), startWith(true), delay(400))
63
+ : of(false)));
64
+ this.olMapResolver(this.olMap);
65
+ }
66
+ async ngOnChanges(changes) {
67
+ if ('context' in changes && !changes['context'].isFirstChange()) {
68
+ const diff = computeMapContextDiff(this.processContext(changes['context'].currentValue), this.processContext(changes['context'].previousValue));
69
+ await applyContextDiffToMap(this.olMap, diff);
70
+ }
71
+ }
72
+ // This will apply basemap layers & view constraints
73
+ processContext(context) {
74
+ const processed = context
75
+ ? { ...context, view: context.view ?? DEFAULT_VIEW }
76
+ : { layers: [], view: DEFAULT_VIEW };
77
+ if (this.basemapLayers.length) {
78
+ processed.layers = [...this.basemapLayers, ...processed.layers];
79
+ }
80
+ if (!this.doNotUseDefaultBasemap) {
81
+ processed.layers = [DEFAULT_BASEMAP_LAYER, ...processed.layers];
82
+ }
83
+ if (this.mapViewConstraints.maxZoom) {
84
+ processed.view = {
85
+ maxZoom: this.mapViewConstraints.maxZoom,
86
+ ...processed.view,
87
+ };
88
+ }
89
+ if (this.mapViewConstraints.maxExtent) {
90
+ processed.view = {
91
+ maxExtent: this.mapViewConstraints.maxExtent,
92
+ ...processed.view,
93
+ };
94
+ }
95
+ if (processed.view &&
96
+ !('zoom' in processed.view) &&
97
+ !('center' in processed.view)) {
98
+ if (this.mapViewConstraints.maxExtent) {
99
+ processed.view = {
100
+ extent: this.mapViewConstraints.maxExtent,
101
+ ...processed.view,
102
+ };
103
+ }
104
+ else {
105
+ processed.view = { ...DEFAULT_VIEW, ...processed.view };
106
+ }
107
+ }
108
+ return processed;
109
+ }
110
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MapContainerComponent, deps: [{ token: DO_NOT_USE_DEFAULT_BASEMAP }, { token: BASEMAP_LAYERS }, { token: MAP_VIEW_CONSTRAINTS }], target: i0.ɵɵFactoryTarget.Component }); }
111
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MapContainerComponent, isStandalone: true, selector: "gn-ui-map-container", inputs: { context: "context" }, outputs: { featuresClick: "featuresClick", featuresHover: "featuresHover", mapClick: "mapClick" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["map"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"h-full w-full\" #map></div>\n<div\n class=\"absolute inset-0 p-2 rounded z-40 transition-all flex flex-col justify-center items-center text-primary font-sans pointer-events-none\"\n [ngClass]=\"\n (displayMessage$ | async) ? 'visible opacity-100' : 'invisible opacity-0'\n \"\n>\n <div\n class=\"absolute z-[-1] inset-0 bg-gradient-to-b from-white to-primary-lightest opacity-60\"\n ></div>\n <mat-icon class=\"material-symbols-outlined !w-16 !h-16 text-[64px] mb-4\"\n >swipe</mat-icon\n >\n <p translate>map.navigation.message</p>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i3.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
112
+ }
113
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MapContainerComponent, decorators: [{
114
+ type: Component,
115
+ args: [{ selector: 'gn-ui-map-container', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, MatIconModule, TranslateModule], template: "<div class=\"h-full w-full\" #map></div>\n<div\n class=\"absolute inset-0 p-2 rounded z-40 transition-all flex flex-col justify-center items-center text-primary font-sans pointer-events-none\"\n [ngClass]=\"\n (displayMessage$ | async) ? 'visible opacity-100' : 'invisible opacity-0'\n \"\n>\n <div\n class=\"absolute z-[-1] inset-0 bg-gradient-to-b from-white to-primary-lightest opacity-60\"\n ></div>\n <mat-icon class=\"material-symbols-outlined !w-16 !h-16 text-[64px] mb-4\"\n >swipe</mat-icon\n >\n <p translate>map.navigation.message</p>\n</div>\n" }]
116
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
117
+ type: Inject,
118
+ args: [DO_NOT_USE_DEFAULT_BASEMAP]
119
+ }] }, { type: undefined, decorators: [{
120
+ type: Inject,
121
+ args: [BASEMAP_LAYERS]
122
+ }] }, { type: undefined, decorators: [{
123
+ type: Inject,
124
+ args: [MAP_VIEW_CONSTRAINTS]
125
+ }] }]; }, propDecorators: { context: [{
126
+ type: Input
127
+ }], featuresClick: [{
128
+ type: Output
129
+ }], featuresHover: [{
130
+ type: Output
131
+ }], mapClick: [{
132
+ type: Output
133
+ }], container: [{
134
+ type: ViewChild,
135
+ args: ['map']
136
+ }] } });
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL21hcC9zcmMvbGliL2NvbXBvbmVudHMvbWFwLWNvbnRhaW5lci9tYXAtY29udGFpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvbWFwL3NyYy9saWIvY29tcG9uZW50cy9tYXAtY29udGFpbmVyL21hcC1jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUVMLE1BQU0sRUFFTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWMsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUM5RCxPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDakUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDckQsT0FBTyxFQUNMLHFCQUFxQixFQUdyQixzQkFBc0IsRUFFdEIsc0JBQXNCLEVBRXRCLGlCQUFpQixHQUtsQixNQUFNLHNCQUFzQixDQUFBO0FBQzdCLE9BQU8sRUFDTCxxQkFBcUIsRUFDckIsb0JBQW9CLEVBQ3BCLE1BQU0sR0FDUCxNQUFNLDRCQUE0QixDQUFBO0FBR25DLE9BQU8sRUFDTCxjQUFjLEVBQ2QsMEJBQTBCLEVBQzFCLG9CQUFvQixHQUNyQixNQUFN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QUFJLEdBQUc7b0JBQ2YsTUFBTSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTO29CQUN6QyxHQUFHLFNBQVMsQ0FBQyxJQUFJO2lCQUNsQixDQUFBO2FBQ0Y7aUJBQU07Z0JBQ0wsU0FBUyxDQUFDLElBQUksR0FBRyxFQUFFLEdBQUcsWUFBWSxFQUFFLEdBQUcsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFBO2FBQ3hEO1NBQ0Y7UUFDRCxPQUFPLFNBQVMsQ0FBQTtJQUNsQixDQUFDOytHQXpJVSxxQkFBcUIsa0JBb0R0QiwwQkFBMEIsYUFDMUIsY0FBYyxhQUNkLG9CQUFvQjttR0F0RG5CLHFCQUFxQix5VUNoRWxDLDhqQkFlQSx5REQrQ1ksWUFBWSxpTEFBRSxhQUFhLG1MQUFFLGVBQWU7OzRGQUUzQyxxQkFBcUI7a0JBUmpDLFNBQVM7K0JBQ0UscUJBQXFCLG1CQUdkLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGFBQWEsRUFBRSxlQUFlLENBQUM7OzBCQXNEcEQsTUFBTTsyQkFBQywwQkFBMEI7OzBCQUNqQyxNQUFNOzJCQUFDLGNBQWM7OzBCQUNyQixNQUFNOzJCQUFDLG9CQUFvQjs0Q0FyRHJCLE9BQU87c0JBQWYsS0FBSztnQkFJUSxhQUFhO3NCQUExQixNQUFNO2dCQWVPLGFBQWE7c0JBQTFCLE1BQU07Z0JBZU8sUUFBUTtzQkFBckIsTUFBTTtnQkFZVyxTQUFTO3NCQUExQixTQUFTO3VCQUFDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBmcm9tRXZlbnQsIG1lcmdlLCBPYnNlcnZhYmxlLCBvZiwgdGltZXIgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgZGVsYXksIG1hcCwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJ1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7XG4gIGNvbXB1dGVNYXBDb250ZXh0RGlmZixcbiAgRXh0ZW50LFxuICBGZWF0dXJlc0NsaWNrRXZlbnQsXG4gIEZlYXR1cmVzQ2xpY2tFdmVudFR5cGUsXG4gIEZlYXR1cmVzSG92ZXJFdmVudCxcbiAgRmVhdHVyZXNIb3ZlckV2ZW50VHlwZSxcbiAgTWFwQ2xpY2tFdmVudCxcbiAgTWFwQ2xpY2tFdmVudFR5cGUsXG4gIE1hcENvbnRleHQsXG4gIE1hcENvbnRleHRMYXllcixcbiAgTWFwQ29udGV4dExheWVyWHl6LFxuICBNYXBDb250ZXh0Vmlldyxcbn0gZnJvbSAnQGdlb3NwYXRpYWwtc2RrL2NvcmUnXG5pbXBvcnQge1xuICBhcHBseUNvbnRleHREaWZmVG9NYXAsXG4gIGNyZWF0ZU1hcEZyb21Db250ZXh0LFxuICBsaXN0ZW4sXG59IGZyb20gJ0BnZW9zcGF0aWFsLXNkay9vcGVubGF5ZXJzJ1xuaW1wb3J0IHR5cGUgT2xNYXAgZnJvbSAnb2wvTWFwJ1xuaW1wb3J0IHR5cGUgeyBGZWF0dXJlIH0gZnJvbSAnZ2VvanNvbidcbmltcG9ydCB7XG4gIEJBU0VNQVBfTEFZRVJTLFxuICBET19OT1RfVVNFX0RFRkFVTFRfQkFTRU1BUCxcbiAgTUFQX1ZJRVdfQ09OU1RSQUlOVFMsXG59IGZyb20gJy4vbWFwLXNldHRpbmdzLnRva2VuJ1xuXG5jb25zdCBERUZBVUxUX0JBU0VNQVBfTEFZRVI6IE1hcENvbnRleHRMYXllclh5eiA9IHtcbiAgdHlwZTogJ3h5eicsXG4gIHVybDogYGh0dHBzOi8ve2EtY30uYmFzZW1hcHMuY2FydG9jZG4uY29tL3Jhc3RlcnRpbGVzL3ZveWFnZXIve3p9L3t4fS97eX0ucG5nYCxcbiAgYXR0cmlidXRpb25zOiBgPHNwYW4+wqkgPGEgaHJlZj1cImh0dHA6Ly93d3cub3BlbnN0cmVldG1hcC5vcmcvY29weXJpZ2h0XCI+T3BlblN0cmVldE1hcDwvYT4gY29udHJpYnV0b3JzLCDCqSA8YSBocmVmPVwiaHR0cHM6Ly9jYXJ0by5jb20vXCI+Q2FydG88L2E+PC9zcGFuPmAsXG59XG5cbmNvbnN0IERFRkFVTFRfVklFVzogTWFwQ29udGV4dFZpZXcgPSB7XG4gIGNlbnRlcjogWzAsIDE1XSxcbiAgem9vbTogMixcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktbWFwLWNvbnRhaW5lcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9tYXAtY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWFwLWNvbnRhaW5lci5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXRJY29uTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBNYXBDb250YWluZXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBjb250ZXh0OiBNYXBDb250ZXh0IHwgbnVsbFxuXG4gIC8vIHRoZXNlIGV2ZW50cyBvbmx5IGdldCByZWdpc3RlcmVkIG9uIHRoZSBtYXAgaWYgdGhleSBhcmUgdXNlZFxuICBfZmVhdHVyZXNDbGljazogRXZlbnRFbWl0dGVyPEZlYXR1cmVbXT5cbiAgQE91dHB1dCgpIGdldCBmZWF0dXJlc0NsaWNrKCkge1xuICAgIGlmICghdGhpcy5fZmVhdHVyZXNDbGljaykge1xuICAgICAgdGhpcy5vcGVubGF5ZXJzTWFwLnRoZW4oKG9sTWFwKSA9PiB7XG4gICAgICAgIGxpc3RlbihcbiAgICAgICAgICBvbE1hcCxcbiAgICAgICAgICBGZWF0dXJlc0NsaWNrRXZlbnRUeXBlLFxuICAgICAgICAgICh7IGZlYXR1cmVzIH06IEZlYXR1cmVzQ2xpY2tFdmVudCkgPT5cbiAgICAgICAgICAgIHRoaXMuX2ZlYXR1cmVzQ2xpY2suZW1pdChmZWF0dXJlcylcbiAgICAgICAgKVxuICAgICAgfSlcbiAgICAgIHRoaXMuX2ZlYXR1cmVzQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEZlYXR1cmVbXT4oKVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fZmVhdHVyZXNDbGlja1xuICB9XG4gIF9mZWF0dXJlc0hvdmVyOiBFdmVudEVtaXR0ZXI8RmVhdHVyZVtdPlxuICBAT3V0cHV0KCkgZ2V0IGZlYXR1cmVzSG92ZXIoKSB7XG4gICAgaWYgKCF0aGlzLl9mZWF0dXJlc0hvdmVyKSB7XG4gICAgICB0aGlzLm9wZW5sYXllcnNNYXAudGhlbigob2xNYXApID0+IHtcbiAgICAgICAgbGlzdGVuKFxuICAgICAgICAgIG9sTWFwLFxuICAgICAgICAgIEZlYXR1cmVzSG92ZXJFdmVudFR5cGUsXG4gICAgICAgICAgKHsgZmVhdHVyZXMgfTogRmVhdHVyZXNIb3ZlckV2ZW50KSA9PlxuICAgICAgICAgICAgdGhpcy5fZmVhdHVyZXNIb3Zlci5lbWl0KGZlYXR1cmVzKVxuICAgICAgICApXG4gICAgICB9KVxuICAgICAgdGhpcy5fZmVhdHVyZXNIb3ZlciA9IG5ldyBFdmVudEVtaXR0ZXI8RmVhdHVyZVtdPigpXG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9mZWF0dXJlc0hvdmVyXG4gIH1cbiAgX21hcENsaWNrOiBFdmVudEVtaXR0ZXI8W251bWJlciwgbnVtYmVyXT5cbiAgQE91dHB1dCgpIGdldCBtYXBDbGljaygpIHtcbiAgICBpZiAoIXRoaXMuX21hcENsaWNrKSB7XG4gICAgICB0aGlzLm9wZW5sYXllcnNNYXAudGhlbigob2xNYXApID0+IHtcbiAgICAgICAgbGlzdGVuKG9sTWFwLCBNYXBDbGlja0V2ZW50VHlwZSwgKHsgY29vcmRpbmF0ZSB9OiBNYXBDbGlja0V2ZW50KSA9PlxuICAgICAgICAgIHRoaXMuX21hcENsaWNrLmVtaXQoY29vcmRpbmF0ZSlcbiAgICAgICAgKVxuICAgICAgfSlcbiAgICAgIHRoaXMuX21hcENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxbbnVtYmVyLCBudW1iZXJdPigpXG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9tYXBDbGlja1xuICB9XG5cbiAgQFZpZXdDaGlsZCgnbWFwJykgY29udGFpbmVyOiBFbGVtZW50UmVmXG4gIGRpc3BsYXlNZXNzYWdlJDogT2JzZXJ2YWJsZTxib29sZWFuPlxuICBvbE1hcDogT2xNYXBcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KERPX05PVF9VU0VfREVGQVVMVF9CQVNFTUFQKSBwcml2YXRlIGRvTm90VXNlRGVmYXVsdEJhc2VtYXA6IGJvb2xlYW4sXG4gICAgQEluamVjdChCQVNFTUFQX0xBWUVSUykgcHJpdmF0ZSBiYXNlbWFwTGF5ZXJzOiBNYXBDb250ZXh0TGF5ZXJbXSxcbiAgICBASW5qZWN0KE1BUF9WSUVXX0NPTlNUUkFJTlRTKVxuICAgIHByaXZhdGUgbWFwVmlld0NvbnN0cmFpbnRzOiB7XG4gICAgICBtYXhab29tPzogbnVtYmVyXG4gICAgICBtYXhFeHRlbnQ/OiBFeHRlbnRcbiAgICB9XG4gICkge31cblxuICBwcml2YXRlIG9sTWFwUmVzb2x2ZXJcbiAgb3BlbmxheWVyc01hcCA9IG5ldyBQcm9taXNlPE9sTWFwPigocmVzb2x2ZSkgPT4ge1xuICAgIHRoaXMub2xNYXBSZXNvbHZlciA9IHJlc29sdmVcbiAgfSlcblxuICBhc3luYyBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5vbE1hcCA9IGF3YWl0IGNyZWF0ZU1hcEZyb21Db250ZXh0KFxuICAgICAgdGhpcy5wcm9jZXNzQ29udGV4dCh0aGlzLmNvbnRleHQpLFxuICAgICAgdGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudFxuICAgIClcbiAgICB0aGlzLmRpc3BsYXlNZXNzYWdlJCA9IG1lcmdlKFxuICAgICAgZnJvbUV2ZW50KHRoaXMub2xNYXAsICdtYXBtdXRlZCcpLnBpcGUobWFwKCgpID0+IHRydWUpKSxcbiAgICAgIGZyb21FdmVudCh0aGlzLm9sTWFwLCAnbW92ZXN0YXJ0JykucGlwZShtYXAoKCkgPT4gZmFsc2UpKSxcbiAgICAgIGZyb21FdmVudCh0aGlzLm9sTWFwLCAnc2luZ2xlY2xpY2snKS5waXBlKG1hcCgoKSA9PiBmYWxzZSkpXG4gICAgKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKChtdXRlZCkgPT5cbiAgICAgICAgbXV0ZWRcbiAgICAgICAgICA/IHRpbWVyKDIwMDApLnBpcGUoXG4gICAgICAgICAgICAgIG1hcCgoKSA9PiBmYWxzZSksXG4gICAgICAgICAgICAgIHN0YXJ0V2l0aCh0cnVlKSxcbiAgICAgICAgICAgICAgZGVsYXkoNDAwKVxuICAgICAgICAgICAgKVxuICAgICAgICAgIDogb2YoZmFsc2UpXG4gICAgICApXG4gICAgKVxuICAgIHRoaXMub2xNYXBSZXNvbHZlcih0aGlzLm9sTWFwKVxuICB9XG5cbiAgYXN5bmMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmICgnY29udGV4dCcgaW4gY2hhbmdlcyAmJiAhY2hhbmdlc1snY29udGV4dCddLmlzRmlyc3RDaGFuZ2UoKSkge1xuICAgICAgY29uc3QgZGlmZiA9IGNvbXB1dGVNYXBDb250ZXh0RGlmZihcbiAgICAgICAgdGhpcy5wcm9jZXNzQ29udGV4dChjaGFuZ2VzWydjb250ZXh0J10uY3VycmVudFZhbHVlKSxcbiAgICAgICAgdGhpcy5wcm9jZXNzQ29udGV4dChjaGFuZ2VzWydjb250ZXh0J10ucHJldmlvdXNWYWx1ZSlcbiAgICAgIClcbiAgICAgIGF3YWl0IGFwcGx5Q29udGV4dERpZmZUb01hcCh0aGlzLm9sTWFwLCBkaWZmKVxuICAgIH1cbiAgfVxuXG4gIC8vIFRoaXMgd2lsbCBhcHBseSBiYXNlbWFwIGxheWVycyAmIHZpZXcgY29uc3RyYWludHNcbiAgcHJvY2Vzc0NvbnRleHQoY29udGV4dDogTWFwQ29udGV4dCk6IE1hcENvbnRleHQge1xuICAgIGNvbnN0IHByb2Nlc3NlZCA9IGNvbnRleHRcbiAgICAgID8geyAuLi5jb250ZXh0LCB2aWV3OiBjb250ZXh0LnZpZXcgPz8gREVGQVVMVF9WSUVXIH1cbiAgICAgIDogeyBsYXllcnM6IFtdLCB2aWV3OiBERUZBVUxUX1ZJRVcgfVxuICAgIGlmICh0aGlzLmJhc2VtYXBMYXllcnMubGVuZ3RoKSB7XG4gICAgICBwcm9jZXNzZWQubGF5ZXJzID0gWy4uLnRoaXMuYmFzZW1hcExheWVycywgLi4ucHJvY2Vzc2VkLmxheWVyc11cbiAgICB9XG4gICAgaWYgKCF0aGlzLmRvTm90VXNlRGVmYXVsdEJhc2VtYXApIHtcbiAgICAgIHByb2Nlc3NlZC5sYXllcnMgPSBbREVGQVVMVF9CQVNFTUFQX0xBWUVSLCAuLi5wcm9jZXNzZWQubGF5ZXJzXVxuICAgIH1cbiAgICBpZiAodGhpcy5tYXBWaWV3Q29uc3RyYWludHMubWF4Wm9vbSkge1xuICAgICAgcHJvY2Vzc2VkLnZpZXcgPSB7XG4gICAgICAgIG1heFpvb206IHRoaXMubWFwVmlld0NvbnN0cmFpbnRzLm1heFpvb20sXG4gICAgICAgIC4uLnByb2Nlc3NlZC52aWV3LFxuICAgICAgfVxuICAgIH1cbiAgICBpZiAodGhpcy5tYXBWaWV3Q29uc3RyYWludHMubWF4RXh0ZW50KSB7XG4gICAgICBwcm9jZXNzZWQudmlldyA9IHtcbiAgICAgICAgbWF4RXh0ZW50OiB0aGlzLm1hcFZpZXdDb25zdHJhaW50cy5tYXhFeHRlbnQsXG4gICAgICAgIC4uLnByb2Nlc3NlZC52aWV3LFxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoXG4gICAgICBwcm9jZXNzZWQudmlldyAmJlxuICAgICAgISgnem9vbScgaW4gcHJvY2Vzc2VkLnZpZXcpICYmXG4gICAgICAhKCdjZW50ZXInIGluIHByb2Nlc3NlZC52aWV3KVxuICAgICkge1xuICAgICAgaWYgKHRoaXMubWFwVmlld0NvbnN0cmFpbnRzLm1heEV4dGVudCkge1xuICAgICAgICBwcm9jZXNzZWQudmlldyA9IHtcbiAgICAgICAgICBleHRlbnQ6IHRoaXMubWFwVmlld0NvbnN0cmFpbnRzLm1heEV4dGVudCxcbiAgICAgICAgICAuLi5wcm9jZXNzZWQudmlldyxcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcHJvY2Vzc2VkLnZpZXcgPSB7IC4uLkRFRkFVTFRfVklFVywgLi4ucHJvY2Vzc2VkLnZpZXcgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcHJvY2Vzc2VkXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJoLWZ1bGwgdy1mdWxsXCIgI21hcD48L2Rpdj5cbjxkaXZcbiAgY2xhc3M9XCJhYnNvbHV0ZSBpbnNldC0wIHAtMiByb3VuZGVkIHotNDAgdHJhbnNpdGlvbi1hbGwgZmxleCBmbGV4LWNvbCBqdXN0aWZ5LWNlbnRlciBpdGVtcy1jZW50ZXIgdGV4dC1wcmltYXJ5IGZvbnQtc2FucyBwb2ludGVyLWV2ZW50cy1ub25lXCJcbiAgW25nQ2xhc3NdPVwiXG4gICAgKGRpc3BsYXlNZXNzYWdlJCB8IGFzeW5jKSA/ICd2aXNpYmxlIG9wYWNpdHktMTAwJyA6ICdpbnZpc2libGUgb3BhY2l0eS0wJ1xuICBcIlxuPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJhYnNvbHV0ZSB6LVstMV0gaW5zZXQtMCBiZy1ncmFkaWVudC10by1iIGZyb20td2hpdGUgdG8tcHJpbWFyeS1saWdodGVzdCBvcGFjaXR5LTYwXCJcbiAgPjwvZGl2PlxuICA8bWF0LWljb24gY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkICF3LTE2ICFoLTE2IHRleHQtWzY0cHhdIG1iLTRcIlxuICAgID5zd2lwZTwvbWF0LWljb25cbiAgPlxuICA8cCB0cmFuc2xhdGU+bWFwLm5hdmlnYXRpb24ubWVzc2FnZTwvcD5cbjwvZGl2PlxuIl19
@@ -0,0 +1,13 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ export const DO_NOT_USE_DEFAULT_BASEMAP = new InjectionToken('doNotUseDefaultBasemap', { factory: () => false });
3
+ export const BASEMAP_LAYERS = new InjectionToken('basemapLayers', { factory: () => [] });
4
+ export const MAP_VIEW_CONSTRAINTS = new InjectionToken('mapViewConstraints', {
5
+ factory: () => ({}),
6
+ });
7
+ export const VECTOR_STYLE_DEFAULT = new InjectionToken('vectorStyleDefault', {
8
+ factory: () => ({
9
+ fill: { color: 'rgba(255, 255, 255, 0.2)' },
10
+ stroke: { color: '#ffcc33', width: 2 },
11
+ }),
12
+ });
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLXNldHRpbmdzLnRva2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9tYXAvc3JjL2xpYi9jb21wb25lbnRzL21hcC1jb250YWluZXIvbWFwLXNldHRpbmdzLnRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFHOUMsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsSUFBSSxjQUFjLENBQzFELHdCQUF3QixFQUN4QixFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FDekIsQ0FBQTtBQUNELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FDOUMsZUFBZSxFQUNmLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUN0QixDQUFBO0FBQ0QsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxjQUFjLENBR25ELG9CQUFvQixFQUFFO0lBQ3ZCLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztDQUNwQixDQUFDLENBQUE7QUFDRixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLGNBQWMsQ0FBQyxvQkFBb0IsRUFBRTtJQUMzRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUNkLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSwwQkFBMEIsRUFBRTtRQUMzQyxNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUU7S0FDdkMsQ0FBQztDQUNILENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IEV4dGVudCwgTWFwQ29udGV4dExheWVyIH0gZnJvbSAnQGdlb3NwYXRpYWwtc2RrL2NvcmUnXG5cbmV4cG9ydCBjb25zdCBET19OT1RfVVNFX0RFRkFVTFRfQkFTRU1BUCA9IG5ldyBJbmplY3Rpb25Ub2tlbihcbiAgJ2RvTm90VXNlRGVmYXVsdEJhc2VtYXAnLFxuICB7IGZhY3Rvcnk6ICgpID0+IGZhbHNlIH1cbilcbmV4cG9ydCBjb25zdCBCQVNFTUFQX0xBWUVSUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxNYXBDb250ZXh0TGF5ZXJbXT4oXG4gICdiYXNlbWFwTGF5ZXJzJyxcbiAgeyBmYWN0b3J5OiAoKSA9PiBbXSB9XG4pXG5leHBvcnQgY29uc3QgTUFQX1ZJRVdfQ09OU1RSQUlOVFMgPSBuZXcgSW5qZWN0aW9uVG9rZW48e1xuICBtYXhab29tPzogbnVtYmVyXG4gIG1heEV4dGVudD86IEV4dGVudFxufT4oJ21hcFZpZXdDb25zdHJhaW50cycsIHtcbiAgZmFjdG9yeTogKCkgPT4gKHt9KSxcbn0pXG5leHBvcnQgY29uc3QgVkVDVE9SX1NUWUxFX0RFRkFVTFQgPSBuZXcgSW5qZWN0aW9uVG9rZW4oJ3ZlY3RvclN0eWxlRGVmYXVsdCcsIHtcbiAgZmFjdG9yeTogKCkgPT4gKHtcbiAgICBmaWxsOiB7IGNvbG9yOiAncmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpJyB9LFxuICAgIHN0cm9rZTogeyBjb2xvcjogJyNmZmNjMzMnLCB3aWR0aDogMiB9LFxuICB9KSxcbn0pXG4iXX0=
@@ -0,0 +1,37 @@
1
+ import { defaults, DragPan, MouseWheelZoom } from 'ol/interaction';
2
+ import { mouseOnly, noModifierKeys, platformModifierKeyOnly, primaryAction, } from 'ol/events/condition';
3
+ export function prioritizePageScroll(interactions) {
4
+ interactions.clear();
5
+ interactions.extend(defaults({
6
+ // remove rotate interactions
7
+ altShiftDragRotate: false,
8
+ pinchRotate: false,
9
+ // replace drag and zoom interactions
10
+ dragPan: false,
11
+ mouseWheelZoom: false,
12
+ })
13
+ .extend([
14
+ new DragPan({
15
+ condition: dragPanCondition,
16
+ }),
17
+ new MouseWheelZoom({
18
+ condition: mouseWheelZoomCondition,
19
+ }),
20
+ ])
21
+ .getArray());
22
+ }
23
+ export function dragPanCondition(event) {
24
+ const dragPanCondition = this.getPointerCount() === 2 || mouseOnly(event);
25
+ if (!dragPanCondition) {
26
+ this.getMap().dispatchEvent('mapmuted');
27
+ }
28
+ // combine the condition with the default DragPan conditions
29
+ return dragPanCondition && noModifierKeys(event) && primaryAction(event);
30
+ }
31
+ export function mouseWheelZoomCondition(event) {
32
+ if (!platformModifierKeyOnly(event) && event.type === 'wheel') {
33
+ this.getMap().dispatchEvent('mapmuted');
34
+ }
35
+ return platformModifierKeyOnly(event);
36
+ }
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9tYXAvc3JjL2xpYi9tYXAtdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQWUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFFL0UsT0FBTyxFQUNMLFNBQVMsRUFDVCxjQUFjLEVBQ2QsdUJBQXVCLEVBQ3ZCLGFBQWEsR0FDZCxNQUFNLHFCQUFxQixDQUFBO0FBRTVCLE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxZQUFxQztJQUN4RSxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUE7SUFDcEIsWUFBWSxDQUFDLE1BQU0sQ0FDakIsUUFBUSxDQUFDO1FBQ1AsNkJBQTZCO1FBQzdCLGtCQUFrQixFQUFFLEtBQUs7UUFDekIsV0FBVyxFQUFFLEtBQUs7UUFDbEIscUNBQXFDO1FBQ3JDLE9BQU8sRUFBRSxLQUFLO1FBQ2QsY0FBYyxFQUFFLEtBQUs7S0FDdEIsQ0FBQztTQUNDLE1BQU0sQ0FBQztRQUNOLElBQUksT0FBTyxDQUFDO1lBQ1YsU0FBUyxFQUFFLGdCQUFnQjtTQUM1QixDQUFDO1FBQ0YsSUFBSSxjQUFjLENBQUM7WUFDakIsU0FBUyxFQUFFLHVCQUF1QjtTQUNuQyxDQUFDO0tBQ0gsQ0FBQztTQUNELFFBQVEsRUFBRSxDQUNkLENBQUE7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLGdCQUFnQixDQUU5QixLQUFvQztJQUVwQyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLElBQUksU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3pFLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtRQUNyQixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFBO0tBQ3hDO0lBQ0QsNERBQTREO0lBQzVELE9BQU8sZ0JBQWdCLElBQUksY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQTtBQUMxRSxDQUFDO0FBRUQsTUFBTSxVQUFVLHVCQUF1QixDQUVyQyxLQUErQjtJQUUvQixJQUFJLENBQUMsdUJBQXVCLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxPQUFPLEVBQUU7UUFDN0QsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQTtLQUN4QztJQUNELE9BQU8sdUJBQXVCLENBQUMsS0FBSyxDQUFDLENBQUE7QUFDdkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDb2xsZWN0aW9uIGZyb20gJ29sL0NvbGxlY3Rpb24nXG5pbXBvcnQgeyBkZWZhdWx0cywgRHJhZ1BhbiwgSW50ZXJhY3Rpb24sIE1vdXNlV2hlZWxab29tIH0gZnJvbSAnb2wvaW50ZXJhY3Rpb24nXG5pbXBvcnQgTWFwQnJvd3NlckV2ZW50IGZyb20gJ29sL01hcEJyb3dzZXJFdmVudCdcbmltcG9ydCB7XG4gIG1vdXNlT25seSxcbiAgbm9Nb2RpZmllcktleXMsXG4gIHBsYXRmb3JtTW9kaWZpZXJLZXlPbmx5LFxuICBwcmltYXJ5QWN0aW9uLFxufSBmcm9tICdvbC9ldmVudHMvY29uZGl0aW9uJ1xuXG5leHBvcnQgZnVuY3Rpb24gcHJpb3JpdGl6ZVBhZ2VTY3JvbGwoaW50ZXJhY3Rpb25zOiBDb2xsZWN0aW9uPEludGVyYWN0aW9uPikge1xuICBpbnRlcmFjdGlvbnMuY2xlYXIoKVxuICBpbnRlcmFjdGlvbnMuZXh0ZW5kKFxuICAgIGRlZmF1bHRzKHtcbiAgICAgIC8vIHJlbW92ZSByb3RhdGUgaW50ZXJhY3Rpb25zXG4gICAgICBhbHRTaGlmdERyYWdSb3RhdGU6IGZhbHNlLFxuICAgICAgcGluY2hSb3RhdGU6IGZhbHNlLFxuICAgICAgLy8gcmVwbGFjZSBkcmFnIGFuZCB6b29tIGludGVyYWN0aW9uc1xuICAgICAgZHJhZ1BhbjogZmFsc2UsXG4gICAgICBtb3VzZVdoZWVsWm9vbTogZmFsc2UsXG4gICAgfSlcbiAgICAgIC5leHRlbmQoW1xuICAgICAgICBuZXcgRHJhZ1Bhbih7XG4gICAgICAgICAgY29uZGl0aW9uOiBkcmFnUGFuQ29uZGl0aW9uLFxuICAgICAgICB9KSxcbiAgICAgICAgbmV3IE1vdXNlV2hlZWxab29tKHtcbiAgICAgICAgICBjb25kaXRpb246IG1vdXNlV2hlZWxab29tQ29uZGl0aW9uLFxuICAgICAgICB9KSxcbiAgICAgIF0pXG4gICAgICAuZ2V0QXJyYXkoKVxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkcmFnUGFuQ29uZGl0aW9uKFxuICB0aGlzOiBEcmFnUGFuLFxuICBldmVudDogTWFwQnJvd3NlckV2ZW50PFBvaW50ZXJFdmVudD5cbikge1xuICBjb25zdCBkcmFnUGFuQ29uZGl0aW9uID0gdGhpcy5nZXRQb2ludGVyQ291bnQoKSA9PT0gMiB8fCBtb3VzZU9ubHkoZXZlbnQpXG4gIGlmICghZHJhZ1BhbkNvbmRpdGlvbikge1xuICAgIHRoaXMuZ2V0TWFwKCkuZGlzcGF0Y2hFdmVudCgnbWFwbXV0ZWQnKVxuICB9XG4gIC8vIGNvbWJpbmUgdGhlIGNvbmRpdGlvbiB3aXRoIHRoZSBkZWZhdWx0IERyYWdQYW4gY29uZGl0aW9uc1xuICByZXR1cm4gZHJhZ1BhbkNvbmRpdGlvbiAmJiBub01vZGlmaWVyS2V5cyhldmVudCkgJiYgcHJpbWFyeUFjdGlvbihldmVudClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vdXNlV2hlZWxab29tQ29uZGl0aW9uKFxuICB0aGlzOiBNb3VzZVdoZWVsWm9vbSxcbiAgZXZlbnQ6IE1hcEJyb3dzZXJFdmVudDxVSUV2ZW50PlxuKSB7XG4gIGlmICghcGxhdGZvcm1Nb2RpZmllcktleU9ubHkoZXZlbnQpICYmIGV2ZW50LnR5cGUgPT09ICd3aGVlbCcpIHtcbiAgICB0aGlzLmdldE1hcCgpLmRpc3BhdGNoRXZlbnQoJ21hcG11dGVkJylcbiAgfVxuICByZXR1cm4gcGxhdGZvcm1Nb2RpZmllcktleU9ubHkoZXZlbnQpXG59XG4iXX0=
@@ -1,4 +1,4 @@
1
- export const BLOCK_MODEL_FIXTURE = {
1
+ export const blockModelFixture = () => ({
2
2
  key: 'tag',
3
3
  items: [
4
4
  { value: 'Hungary', count: 20, path: ['tag', 'Hungary'] },
@@ -29,8 +29,8 @@ export const BLOCK_MODEL_FIXTURE = {
29
29
  more: true,
30
30
  includeFilter: true,
31
31
  excludeFilter: false,
32
- };
33
- export const EMPTY_BLOCK_MODEL_FIXTURE = {
32
+ });
33
+ export const emptyBlockModelFixture = () => ({
34
34
  key: 'emptytag',
35
35
  items: [],
36
36
  path: ['emptytag'],
@@ -39,12 +39,12 @@ export const EMPTY_BLOCK_MODEL_FIXTURE = {
39
39
  more: true,
40
40
  includeFilter: false,
41
41
  excludeFilter: false,
42
- };
43
- export const FACET_ITEM_FIXTURE = {
42
+ });
43
+ export const itemModelFixture = () => ({
44
44
  path: ['tag.default', 'land use'],
45
45
  value: 'land use',
46
46
  count: 500,
47
47
  selected: true,
48
48
  inverted: false,
49
- };
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdncmVnYXRpb25zLW1vZGVsLXJlc3BvbnNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9zZWFyY2gvc3JjL2xpYi9mYWNldHMvZml4dHVyZXMvYWdncmVnYXRpb25zLW1vZGVsLXJlc3BvbnNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFlO0lBQzdDLEdBQUcsRUFBRSxLQUFLO0lBQ1YsS0FBSyxFQUFFO1FBQ0wsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxFQUFFO1FBQ3pELEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsRUFBRTtRQUN6RCxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLEVBQUU7UUFDekQsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxFQUFFO1FBQzNELEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsRUFBRTtRQUN6RCxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLEVBQUU7UUFDdkQsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxFQUFFO1FBQ3pELEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsRUFBRTtRQUN6RCxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLEVBQUU7UUFDekQsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxFQUFFO1FBQ3pELEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsRUFBRTtRQUN2RCxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLEVBQUU7UUFDekQsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxFQUFFO1FBQ3JELEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsRUFBRTtRQUN2RCxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxLQUFLLEVBQUUsWUFBWSxDQUFDLEVBQUU7UUFDL0QsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxFQUFFO1FBQ3JELEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEtBQUssRUFBRSxhQUFhLENBQUMsRUFBRTtRQUNqRSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLEVBQUU7UUFDdkQsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxFQUFFO1FBQzNELEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsRUFBRTtRQUN6RCxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLEVBQUU7S0FDNUQ7SUFDRCxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUM7SUFDYixJQUFJLEVBQUUsT0FBTztJQUNiLElBQUksRUFBRSxFQUFFO0lBQ1IsSUFBSSxFQUFFLElBQUk7SUFDVixhQUFhLEVBQUUsSUFBSTtJQUNuQixhQUFhLEVBQUUsS0FBSztDQUNyQixDQUFBO0FBQ0QsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQWU7SUFDbkQsR0FBRyxFQUFFLFVBQVU7SUFDZixLQUFLLEVBQUUsRUFBRTtJQUNULElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQztJQUNsQixJQUFJLEVBQUUsT0FBTztJQUNiLElBQUksRUFBRSxFQUFFO0lBQ1IsSUFBSSxFQUFFLElBQUk7SUFDVixhQUFhLEVBQUUsS0FBSztJQUNwQixhQUFhLEVBQUUsS0FBSztDQUNyQixDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQWM7SUFDM0MsSUFBSSxFQUFFLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQztJQUNqQyxLQUFLLEVBQUUsVUFBVTtJQUNqQixLQUFLLEVBQUUsR0FBRztJQUNWLFFBQVEsRUFBRSxJQUFJO0lBQ2QsUUFBUSxFQUFFLEtBQUs7Q0FDaEIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZGVsQmxvY2ssIE1vZGVsSXRlbSB9IGZyb20gJy4uL2ZhY2V0cy5tb2RlbCdcblxuZXhwb3J0IGNvbnN0IEJMT0NLX01PREVMX0ZJWFRVUkU6IE1vZGVsQmxvY2sgPSB7XG4gIGtleTogJ3RhZycsXG4gIGl0ZW1zOiBbXG4gICAgeyB2YWx1ZTogJ0h1bmdhcnknLCBjb3VudDogMjAsIHBhdGg6IFsndGFnJywgJ0h1bmdhcnknXSB9LFxuICAgIHsgdmFsdWU6ICdBdXN0cmlhJywgY291bnQ6IDE3LCBwYXRoOiBbJ3RhZycsICdBdXN0cmlhJ10gfSxcbiAgICB7IHZhbHVlOiAnQmVsZ2l1bScsIGNvdW50OiAxNywgcGF0aDogWyd0YWcnLCAnQmVsZ2l1bSddIH0sXG4gICAgeyB2YWx1ZTogJ0J1bGdhcmlhJywgY291bnQ6IDE3LCBwYXRoOiBbJ3RhZycsICdCdWxnYXJpYSddIH0sXG4gICAgeyB2YWx1ZTogJ0Nyb2F0aWEnLCBjb3VudDogMTcsIHBhdGg6IFsndGFnJywgJ0Nyb2F0aWEnXSB9LFxuICAgIHsgdmFsdWU6ICdDeXBydXMnLCBjb3VudDogMTcsIHBhdGg6IFsndGFnJywgJ0N5cHJ1cyddIH0sXG4gICAgeyB2YWx1ZTogJ0N6ZWNoaWEnLCBjb3VudDogMTcsIHBhdGg6IFsndGFnJywgJ0N6ZWNoaWEnXSB9LFxuICAgIHsgdmFsdWU6ICdEZW5tYXJrJywgY291bnQ6IDE3LCBwYXRoOiBbJ3RhZycsICdEZW5tYXJrJ10gfSxcbiAgICB7IHZhbHVlOiAnRXN0b25pYScsIGNvdW50OiAxNywgcGF0aDogWyd0YWcnLCAnRXN0b25pYSddIH0sXG4gICAgeyB2YWx1ZTogJ0ZpbmxhbmQnLCBjb3VudDogMTcsIHBhdGg6IFsndGFnJywgJ0ZpbmxhbmQnXSB9LFxuICAgIHsgdmFsdWU6ICdGcmFuY2UnLCBjb3VudDogMTcsIHBhdGg6IFsndGFnJywgJ0ZyYW5jZSddIH0sXG4gICAgeyB2YWx1ZTogJ0dlcm1hbnknLCBjb3VudDogMTcsIHBhdGg6IFsndGFnJywgJ0dlcm1hbnknXSB9LFxuICAgIHsgdmFsdWU6ICdJdGFseScsIGNvdW50OiAxNywgcGF0aDogWyd0YWcnLCAnSXRhbHknXSB9LFxuICAgIHsgdmFsdWU6ICdMYXR2aWEnLCBjb3VudDogMTcsIHBhdGg6IFsndGFnJywgJ0xhdHZpYSddIH0sXG4gICAgeyB2YWx1ZTogJ0x1eGVtYm91cmcnLCBjb3VudDogMTcsIHBhdGg6IFsndGFnJywgJ0x1eGVtYm91cmcnXSB9LFxuICAgIHsgdmFsdWU6ICdNYWx0YScsIGNvdW50OiAxNywgcGF0aDogWyd0YWcnLCAnTWFsdGEnXSB9LFxuICAgIHsgdmFsdWU6ICdOZXRoZXJsYW5kcycsIGNvdW50OiAxNywgcGF0aDogWyd0YWcnLCAnTmV0aGVybGFuZHMnXSB9LFxuICAgIHsgdmFsdWU6ICdQb2xhbmQnLCBjb3VudDogMTcsIHBhdGg6IFsndGFnJywgJ1BvbGFuZCddIH0sXG4gICAgeyB2YWx1ZTogJ1BvcnR1Z2FsJywgY291bnQ6IDE3LCBwYXRoOiBbJ3RhZycsICdQb3J0dWdhbCddIH0sXG4gICAgeyB2YWx1ZTogJ1JvbWFuaWEnLCBjb3VudDogMTcsIHBhdGg6IFsndGFnJywgJ1JvbWFuaWEnXSB9LFxuICAgIHsgdmFsdWU6ICdTbG92YWtpYScsIGNvdW50OiAxNywgcGF0aDogWyd0YWcnLCAnU2xvdmFraWEnXSB9LFxuICBdLFxuICBwYXRoOiBbJ3RhZyddLFxuICB0eXBlOiAndGVybXMnLFxuICBzaXplOiAyMSxcbiAgbW9yZTogdHJ1ZSxcbiAgaW5jbHVkZUZpbHRlcjogdHJ1ZSxcbiAgZXhjbHVkZUZpbHRlcjogZmFsc2UsXG59XG5leHBvcnQgY29uc3QgRU1QVFlfQkxPQ0tfTU9ERUxfRklYVFVSRTogTW9kZWxCbG9jayA9IHtcbiAga2V5OiAnZW1wdHl0YWcnLFxuICBpdGVtczogW10sXG4gIHBhdGg6IFsnZW1wdHl0YWcnXSxcbiAgdHlwZTogJ3Rlcm1zJyxcbiAgc2l6ZTogMjEsXG4gIG1vcmU6IHRydWUsXG4gIGluY2x1ZGVGaWx0ZXI6IGZhbHNlLFxuICBleGNsdWRlRmlsdGVyOiBmYWxzZSxcbn1cblxuZXhwb3J0IGNvbnN0IEZBQ0VUX0lURU1fRklYVFVSRTogTW9kZWxJdGVtID0ge1xuICBwYXRoOiBbJ3RhZy5kZWZhdWx0JywgJ2xhbmQgdXNlJ10sXG4gIHZhbHVlOiAnbGFuZCB1c2UnLFxuICBjb3VudDogNTAwLFxuICBzZWxlY3RlZDogdHJ1ZSxcbiAgaW52ZXJ0ZWQ6IGZhbHNlLFxufVxuIl19
49
+ });
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdncmVnYXRpb25zLW1vZGVsLXJlc3BvbnNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9zZWFyY2gvc3JjL2xpYi9mYWNldHMvZml4dHVyZXMvYWdncmVnYXRpb25zLW1vZGVsLXJlc3BvbnNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLEdBQWUsRUFBRSxDQUFDLENBQUM7SUFDbEQsR0FBRyxFQUFFLEtBQUs7SUFDVixLQUFLLEVBQUU7UUFDTCxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLEVBQUU7UUFDekQsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxFQUFFO1FBQ3pELEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsRUFBRTtRQUN6RCxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLEVBQUU7UUFDM0QsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxFQUFFO1FBQ3pELEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsRUFBRTtRQUN2RCxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLEVBQUU7UUFDekQsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxFQUFFO1FBQ3pELEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsRUFBRTtRQUN6RCxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLEVBQUU7UUFDekQsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxFQUFFO1FBQ3ZELEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsRUFBRTtRQUN6RCxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEVBQUU7UUFDckQsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxFQUFFO1FBQ3ZELEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsRUFBRTtRQUMvRCxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEVBQUU7UUFDckQsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLGFBQWEsQ0FBQyxFQUFFO1FBQ2pFLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsRUFBRTtRQUN2RCxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLEVBQUU7UUFDM0QsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxFQUFFO1FBQ3pELEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsRUFBRTtLQUM1RDtJQUNELElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQztJQUNiLElBQUksRUFBRSxPQUFPO0lBQ2IsSUFBSSxFQUFFLEVBQUU7SUFDUixJQUFJLEVBQUUsSUFBSTtJQUNWLGFBQWEsRUFBRSxJQUFJO0lBQ25CLGFBQWEsRUFBRSxLQUFLO0NBQ3JCLENBQUMsQ0FBQTtBQUVGLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLEdBQWUsRUFBRSxDQUFDLENBQUM7SUFDdkQsR0FBRyxFQUFFLFVBQVU7SUFDZixLQUFLLEVBQUUsRUFBRTtJQUNULElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQztJQUNsQixJQUFJLEVBQUUsT0FBTztJQUNiLElBQUksRUFBRSxFQUFFO0lBQ1IsSUFBSSxFQUFFLElBQUk7SUFDVixhQUFhLEVBQUUsS0FBSztJQUNwQixhQUFhLEVBQUUsS0FBSztDQUNyQixDQUFDLENBQUE7QUFFRixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxHQUFjLEVBQUUsQ0FBQyxDQUFDO0lBQ2hELElBQUksRUFBRSxDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUM7SUFDakMsS0FBSyxFQUFFLFVBQVU7SUFDakIsS0FBSyxFQUFFLEdBQUc7SUFDVixRQUFRLEVBQUUsSUFBSTtJQUNkLFFBQVEsRUFBRSxLQUFLO0NBQ2hCLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZGVsQmxvY2ssIE1vZGVsSXRlbSB9IGZyb20gJy4uL2ZhY2V0cy5tb2RlbCdcblxuZXhwb3J0IGNvbnN0IGJsb2NrTW9kZWxGaXh0dXJlID0gKCk6IE1vZGVsQmxvY2sgPT4gKHtcbiAga2V5OiAndGFnJyxcbiAgaXRlbXM6IFtcbiAgICB7IHZhbHVlOiAnSHVuZ2FyeScsIGNvdW50OiAyMCwgcGF0aDogWyd0YWcnLCAnSHVuZ2FyeSddIH0sXG4gICAgeyB2YWx1ZTogJ0F1c3RyaWEnLCBjb3VudDogMTcsIHBhdGg6IFsndGFnJywgJ0F1c3RyaWEnXSB9LFxuICAgIHsgdmFsdWU6ICdCZWxnaXVtJywgY291bnQ6IDE3LCBwYXRoOiBbJ3RhZycsICdCZWxnaXVtJ10gfSxcbiAgICB7IHZhbHVlOiAnQnVsZ2FyaWEnLCBjb3VudDogMTcsIHBhdGg6IFsndGFnJywgJ0J1bGdhcmlhJ10gfSxcbiAgICB7IHZhbHVlOiAnQ3JvYXRpYScsIGNvdW50OiAxNywgcGF0aDogWyd0YWcnLCAnQ3JvYXRpYSddIH0sXG4gICAgeyB2YWx1ZTogJ0N5cHJ1cycsIGNvdW50OiAxNywgcGF0aDogWyd0YWcnLCAnQ3lwcnVzJ10gfSxcbiAgICB7IHZhbHVlOiAnQ3plY2hpYScsIGNvdW50OiAxNywgcGF0aDogWyd0YWcnLCAnQ3plY2hpYSddIH0sXG4gICAgeyB2YWx1ZTogJ0Rlbm1hcmsnLCBjb3VudDogMTcsIHBhdGg6IFsndGFnJywgJ0Rlbm1hcmsnXSB9LFxuICAgIHsgdmFsdWU6ICdFc3RvbmlhJywgY291bnQ6IDE3LCBwYXRoOiBbJ3RhZycsICdFc3RvbmlhJ10gfSxcbiAgICB7IHZhbHVlOiAnRmlubGFuZCcsIGNvdW50OiAxNywgcGF0aDogWyd0YWcnLCAnRmlubGFuZCddIH0sXG4gICAgeyB2YWx1ZTogJ0ZyYW5jZScsIGNvdW50OiAxNywgcGF0aDogWyd0YWcnLCAnRnJhbmNlJ10gfSxcbiAgICB7IHZhbHVlOiAnR2VybWFueScsIGNvdW50OiAxNywgcGF0aDogWyd0YWcnLCAnR2VybWFueSddIH0sXG4gICAgeyB2YWx1ZTogJ0l0YWx5JywgY291bnQ6IDE3LCBwYXRoOiBbJ3RhZycsICdJdGFseSddIH0sXG4gICAgeyB2YWx1ZTogJ0xhdHZpYScsIGNvdW50OiAxNywgcGF0aDogWyd0YWcnLCAnTGF0dmlhJ10gfSxcbiAgICB7IHZhbHVlOiAnTHV4ZW1ib3VyZycsIGNvdW50OiAxNywgcGF0aDogWyd0YWcnLCAnTHV4ZW1ib3VyZyddIH0sXG4gICAgeyB2YWx1ZTogJ01hbHRhJywgY291bnQ6IDE3LCBwYXRoOiBbJ3RhZycsICdNYWx0YSddIH0sXG4gICAgeyB2YWx1ZTogJ05ldGhlcmxhbmRzJywgY291bnQ6IDE3LCBwYXRoOiBbJ3RhZycsICdOZXRoZXJsYW5kcyddIH0sXG4gICAgeyB2YWx1ZTogJ1BvbGFuZCcsIGNvdW50OiAxNywgcGF0aDogWyd0YWcnLCAnUG9sYW5kJ10gfSxcbiAgICB7IHZhbHVlOiAnUG9ydHVnYWwnLCBjb3VudDogMTcsIHBhdGg6IFsndGFnJywgJ1BvcnR1Z2FsJ10gfSxcbiAgICB7IHZhbHVlOiAnUm9tYW5pYScsIGNvdW50OiAxNywgcGF0aDogWyd0YWcnLCAnUm9tYW5pYSddIH0sXG4gICAgeyB2YWx1ZTogJ1Nsb3Zha2lhJywgY291bnQ6IDE3LCBwYXRoOiBbJ3RhZycsICdTbG92YWtpYSddIH0sXG4gIF0sXG4gIHBhdGg6IFsndGFnJ10sXG4gIHR5cGU6ICd0ZXJtcycsXG4gIHNpemU6IDIxLFxuICBtb3JlOiB0cnVlLFxuICBpbmNsdWRlRmlsdGVyOiB0cnVlLFxuICBleGNsdWRlRmlsdGVyOiBmYWxzZSxcbn0pXG5cbmV4cG9ydCBjb25zdCBlbXB0eUJsb2NrTW9kZWxGaXh0dXJlID0gKCk6IE1vZGVsQmxvY2sgPT4gKHtcbiAga2V5OiAnZW1wdHl0YWcnLFxuICBpdGVtczogW10sXG4gIHBhdGg6IFsnZW1wdHl0YWcnXSxcbiAgdHlwZTogJ3Rlcm1zJyxcbiAgc2l6ZTogMjEsXG4gIG1vcmU6IHRydWUsXG4gIGluY2x1ZGVGaWx0ZXI6IGZhbHNlLFxuICBleGNsdWRlRmlsdGVyOiBmYWxzZSxcbn0pXG5cbmV4cG9ydCBjb25zdCBpdGVtTW9kZWxGaXh0dXJlID0gKCk6IE1vZGVsSXRlbSA9PiAoe1xuICBwYXRoOiBbJ3RhZy5kZWZhdWx0JywgJ2xhbmQgdXNlJ10sXG4gIHZhbHVlOiAnbGFuZCB1c2UnLFxuICBjb3VudDogNTAwLFxuICBzZWxlY3RlZDogdHJ1ZSxcbiAgaW52ZXJ0ZWQ6IGZhbHNlLFxufSlcbiJdfQ==
@@ -19,6 +19,7 @@ export class ResultsTableComponent {
19
19
  this.sortOrder = null;
20
20
  this.hasDraft = () => false;
21
21
  this.canDuplicate = () => true;
22
+ this.isUnsavedDraft = () => true;
22
23
  this.canDelete = () => true;
23
24
  // emits the column (field) as well as the order
24
25
  this.sortByChange = new EventEmitter();
@@ -35,14 +36,11 @@ export class ResultsTableComponent {
35
36
  timeZone: 'UTC',
36
37
  });
37
38
  }
38
- getStatus(isPublishedToAll) {
39
- return isPublishedToAll ? 'published' : 'not published';
40
- }
41
39
  getRecordFormats(record) {
42
- if (record.kind === 'service' || !('distributions' in record)) {
40
+ if (record.kind === 'service' || !('onlineResources' in record)) {
43
41
  return [];
44
42
  }
45
- const formats = Array.from(new Set(record.distributions.map((distribution) => getFileFormat(distribution)))).filter((format) => !!format);
43
+ const formats = Array.from(new Set(record.onlineResources.map((onlineResource) => getFileFormat(onlineResource)))).filter((format) => !!format);
46
44
  formats.sort((a, b) => getFormatPriority(b) - getFormatPriority(a));
47
45
  return formats;
48
46
  }
@@ -100,7 +98,7 @@ export class ResultsTableComponent {
100
98
  return !allSelected && someSelected;
101
99
  }
102
100
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ResultsTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
103
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ResultsTableComponent, isStandalone: true, selector: "gn-ui-results-table", inputs: { records: "records", selectedRecordsIdentifiers: "selectedRecordsIdentifiers", sortOrder: "sortOrder", hasDraft: "hasDraft", canDuplicate: "canDuplicate", canDelete: "canDelete" }, outputs: { sortByChange: "sortByChange", recordClick: "recordClick", duplicateRecord: "duplicateRecord", deleteRecord: "deleteRecord", recordsSelectedChange: "recordsSelectedChange" }, ngImport: i0, template: "<gn-ui-interactive-table\n [items]=\"records\"\n (itemClick)=\"handleRecordClick($event)\"\n>\n <!-- SELECTED COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <gn-ui-checkbox\n [checked]=\"isAllSelected()\"\n [indeterminate]=\"isSomeSelected()\"\n (changed)=\"toggleSelectAll()\"\n type=\"default\"\n class=\"-m-2 mr-3\"\n >\n </gn-ui-checkbox>\n </ng-template>\n <ng-template #cell let-item>\n <gn-ui-checkbox\n [checked]=\"isChecked(item)\"\n (changed)=\"handleRecordSelectedChange($event, item)\"\n class=\"-m-2\"\n type=\"default\"\n ></gn-ui-checkbox>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- TITLE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('resourceTitleObject.default.keyword')\"\n (sortChange)=\"setSortBy('resourceTitleObject.default.keyword', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.title</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex flex-row items-center gap-2 max-w-full\">\n <span class=\"overflow-hidden text-ellipsis\">{{ item.title }}</span>\n <gn-ui-badge\n *ngIf=\"hasDraft(item)\"\n [style.--gn-ui-badge-padding]=\"'0.4em 0.6em'\"\n [style.--gn-ui-badge-text-color]=\"'#3d2006'\"\n [style.--gn-ui-badge-background-color]=\"'#ffbc7b'\"\n [style.--gn-ui-badge-rounded]=\"'4px'\"\n >\n <span translate>dashboard.records.hasDraft</span>\n </gn-ui-badge>\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- FORMATS COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <span translate>record.metadata.formats</span>\n </ng-template>\n <ng-template #cell let-item>\n <div\n class=\"flex justify-start items-center gap-2\"\n *ngIf=\"getRecordFormats(item) as formats\"\n [title]=\"formats.join(', ')\"\n >\n <span\n class=\"badge-btn min-w-[45px] text-sm text-white px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[0])\"\n *ngIf=\"formats[0]\"\n >\n {{ formats[0] }}\n </span>\n <span\n class=\"badge-btn min-w-[45px] text-sm text-white px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[1])\"\n *ngIf=\"formats[1]\"\n >\n {{ formats[1] }}\n </span>\n <div class=\"shrink-0\" *ngIf=\"formats.slice(2).length > 0\">\n <span>+{{ formats.slice(2).length }}</span>\n </div>\n </div>\n <div *ngIf=\"!getRecordFormats(item)\"></div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- OWNER COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('recordOwner')\"\n (sortChange)=\"setSortBy('recordOwner', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.author</span>\n </ng-template>\n <ng-template #cell let-item>\n <mat-icon class=\"material-symbols-outlined\">person</mat-icon>\n <span>{{ formatUserInfo(item.extras?.ownerInfo) }}</span>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- STATUS COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <span translate>record.metadata.status</span>\n </ng-template>\n <ng-template #cell let-item>\n {{ item.status }}\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- UPDATE DATE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('changeDate')\"\n (sortChange)=\"setSortBy('changeDate', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.updatedOn</span>\n </ng-template>\n <ng-template #cell let-item>\n {{ dateToString(item.recordUpdated) }}\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- ACTION MENU COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header> </ng-template>\n <ng-template #cell let-item>\n <gn-ui-action-menu\n [canDuplicate]=\"canDuplicate(item)\"\n [canDelete]=\"canDelete(item)\"\n (duplicate)=\"handleDuplicate(item)\"\n (delete)=\"handleDelete(item)\"\n >\n </gn-ui-action-menu>\n </ng-template>\n </gn-ui-interactive-table-column>\n</gn-ui-interactive-table>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: UiInputsModule }, { kind: "component", type: i2.CheckboxComponent, selector: "gn-ui-checkbox", inputs: ["type", "checked", "indeterminate"], outputs: ["changed"] }, { kind: "component", type: i3.BadgeComponent, selector: "gn-ui-badge", inputs: ["clickable", "removable"], outputs: ["badgeRemoveClicked"] }, { kind: "component", type: InteractiveTableComponent, selector: "gn-ui-interactive-table", inputs: ["items"], outputs: ["itemClick"] }, { kind: "component", type: InteractiveTableColumnComponent, selector: "gn-ui-interactive-table-column", inputs: ["grow", "sortable", "activeSort"], outputs: ["sortChange"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i5.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: ActionMenuComponent, selector: "gn-ui-action-menu", inputs: ["canDuplicate", "canDelete"], outputs: ["duplicate", "delete"] }] }); }
101
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ResultsTableComponent, isStandalone: true, selector: "gn-ui-results-table", inputs: { records: "records", selectedRecordsIdentifiers: "selectedRecordsIdentifiers", sortOrder: "sortOrder", hasDraft: "hasDraft", canDuplicate: "canDuplicate", isUnsavedDraft: "isUnsavedDraft", canDelete: "canDelete" }, outputs: { sortByChange: "sortByChange", recordClick: "recordClick", duplicateRecord: "duplicateRecord", deleteRecord: "deleteRecord", recordsSelectedChange: "recordsSelectedChange" }, ngImport: i0, template: "<gn-ui-interactive-table\n [items]=\"records\"\n (itemClick)=\"handleRecordClick($event)\"\n>\n <!-- SELECTED COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <gn-ui-checkbox\n [checked]=\"isAllSelected()\"\n [indeterminate]=\"isSomeSelected()\"\n (changed)=\"toggleSelectAll()\"\n type=\"default\"\n class=\"-m-2 mr-3\"\n >\n </gn-ui-checkbox>\n </ng-template>\n <ng-template #cell let-item>\n <gn-ui-checkbox\n [checked]=\"isChecked(item)\"\n (changed)=\"handleRecordSelectedChange($event, item)\"\n class=\"-m-2\"\n type=\"default\"\n ></gn-ui-checkbox>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- TITLE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [grow]=\"true\"\n [activeSort]=\"isSortedBy('resourceTitleObject.default.keyword')\"\n (sortChange)=\"setSortBy('resourceTitleObject.default.keyword', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.title</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex flex-row items-center gap-2 max-w-full font-semibold\">\n <span class=\"overflow-hidden text-ellipsis\">{{ item.title }}</span>\n <gn-ui-badge\n *ngIf=\"hasDraft(item)\"\n [style.--gn-ui-badge-padding]=\"'0.2em 0.6em'\"\n [style.--gn-ui-badge-text-size]=\"'12px'\"\n [style.--gn-ui-badge-text-color]=\"'#3d2006'\"\n [style.--gn-ui-badge-background-color]=\"'#ffbc7b'\"\n [style.--gn-ui-badge-rounded]=\"'4px'\"\n >\n <span translate>dashboard.records.hasDraft</span>\n </gn-ui-badge>\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- FORMATS COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <span translate>record.metadata.formats</span>\n </ng-template>\n <ng-template #cell let-item>\n <div\n class=\"flex justify-start items-center gap-2 font-medium\"\n *ngIf=\"getRecordFormats(item) as formats\"\n [title]=\"formats.join(', ')\"\n >\n <span\n class=\"badge-btn min-w-[45px] text-xs text-white px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[0])\"\n *ngIf=\"formats[0]\"\n >\n {{ formats[0] }}\n </span>\n <span\n class=\"badge-btn min-w-[45px] text-xs text-white px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[1])\"\n *ngIf=\"formats[1]\"\n >\n {{ formats[1] }}\n </span>\n <div class=\"shrink-0 text-xs\" *ngIf=\"formats.slice(2).length > 0\">\n <span>+{{ formats.slice(2).length }}</span>\n </div>\n </div>\n <div *ngIf=\"!getRecordFormats(item)\"></div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- OWNER COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('recordOwner')\"\n (sortChange)=\"setSortBy('recordOwner', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.author</span>\n </ng-template>\n <ng-template #cell let-item>\n <mat-icon class=\"material-symbols-outlined\">person</mat-icon>\n <span class=\"text-xs\">{{ formatUserInfo(item.extras?.ownerInfo) }}</span>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- STATUS COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <span translate>record.metadata.status</span>\n </ng-template>\n <ng-template #cell let-item>\n <span class=\"text-xs\">\n {{\n (isUnsavedDraft(item)\n ? 'record.metadata.status.notPublished'\n : 'record.metadata.status.published'\n ) | translate\n }}</span\n >\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- UPDATE DATE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('changeDate')\"\n (sortChange)=\"setSortBy('changeDate', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.updatedOn</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex justify-center w-full text-xs\">\n {{ isUnsavedDraft(item) ? '-' : dateToString(item.recordUpdated) }}\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- ACTION MENU COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header> </ng-template>\n <ng-template #cell let-item>\n <gn-ui-action-menu\n [canDuplicate]=\"canDuplicate(item)\"\n [canDelete]=\"canDelete(item)\"\n (duplicate)=\"handleDuplicate(item)\"\n (delete)=\"handleDelete(item)\"\n >\n </gn-ui-action-menu>\n </ng-template>\n </gn-ui-interactive-table-column>\n</gn-ui-interactive-table>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: UiInputsModule }, { kind: "component", type: i2.CheckboxComponent, selector: "gn-ui-checkbox", inputs: ["type", "checked", "indeterminate"], outputs: ["changed"] }, { kind: "component", type: i3.BadgeComponent, selector: "gn-ui-badge", inputs: ["clickable", "removable"], outputs: ["badgeRemoveClicked"] }, { kind: "component", type: InteractiveTableComponent, selector: "gn-ui-interactive-table", inputs: ["items"], outputs: ["itemClick"] }, { kind: "component", type: InteractiveTableColumnComponent, selector: "gn-ui-interactive-table-column", inputs: ["grow", "sortable", "activeSort"], outputs: ["sortChange"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "directive", type: i5.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: ActionMenuComponent, selector: "gn-ui-action-menu", inputs: ["canDuplicate", "canDelete"], outputs: ["duplicate", "delete"] }] }); }
104
102
  }
105
103
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ResultsTableComponent, decorators: [{
106
104
  type: Component,
@@ -113,7 +111,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
113
111
  TranslateModule,
114
112
  BadgeComponent,
115
113
  ActionMenuComponent,
116
- ], template: "<gn-ui-interactive-table\n [items]=\"records\"\n (itemClick)=\"handleRecordClick($event)\"\n>\n <!-- SELECTED COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <gn-ui-checkbox\n [checked]=\"isAllSelected()\"\n [indeterminate]=\"isSomeSelected()\"\n (changed)=\"toggleSelectAll()\"\n type=\"default\"\n class=\"-m-2 mr-3\"\n >\n </gn-ui-checkbox>\n </ng-template>\n <ng-template #cell let-item>\n <gn-ui-checkbox\n [checked]=\"isChecked(item)\"\n (changed)=\"handleRecordSelectedChange($event, item)\"\n class=\"-m-2\"\n type=\"default\"\n ></gn-ui-checkbox>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- TITLE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('resourceTitleObject.default.keyword')\"\n (sortChange)=\"setSortBy('resourceTitleObject.default.keyword', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.title</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex flex-row items-center gap-2 max-w-full\">\n <span class=\"overflow-hidden text-ellipsis\">{{ item.title }}</span>\n <gn-ui-badge\n *ngIf=\"hasDraft(item)\"\n [style.--gn-ui-badge-padding]=\"'0.4em 0.6em'\"\n [style.--gn-ui-badge-text-color]=\"'#3d2006'\"\n [style.--gn-ui-badge-background-color]=\"'#ffbc7b'\"\n [style.--gn-ui-badge-rounded]=\"'4px'\"\n >\n <span translate>dashboard.records.hasDraft</span>\n </gn-ui-badge>\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- FORMATS COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <span translate>record.metadata.formats</span>\n </ng-template>\n <ng-template #cell let-item>\n <div\n class=\"flex justify-start items-center gap-2\"\n *ngIf=\"getRecordFormats(item) as formats\"\n [title]=\"formats.join(', ')\"\n >\n <span\n class=\"badge-btn min-w-[45px] text-sm text-white px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[0])\"\n *ngIf=\"formats[0]\"\n >\n {{ formats[0] }}\n </span>\n <span\n class=\"badge-btn min-w-[45px] text-sm text-white px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[1])\"\n *ngIf=\"formats[1]\"\n >\n {{ formats[1] }}\n </span>\n <div class=\"shrink-0\" *ngIf=\"formats.slice(2).length > 0\">\n <span>+{{ formats.slice(2).length }}</span>\n </div>\n </div>\n <div *ngIf=\"!getRecordFormats(item)\"></div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- OWNER COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('recordOwner')\"\n (sortChange)=\"setSortBy('recordOwner', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.author</span>\n </ng-template>\n <ng-template #cell let-item>\n <mat-icon class=\"material-symbols-outlined\">person</mat-icon>\n <span>{{ formatUserInfo(item.extras?.ownerInfo) }}</span>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- STATUS COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <span translate>record.metadata.status</span>\n </ng-template>\n <ng-template #cell let-item>\n {{ item.status }}\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- UPDATE DATE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('changeDate')\"\n (sortChange)=\"setSortBy('changeDate', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.updatedOn</span>\n </ng-template>\n <ng-template #cell let-item>\n {{ dateToString(item.recordUpdated) }}\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- ACTION MENU COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header> </ng-template>\n <ng-template #cell let-item>\n <gn-ui-action-menu\n [canDuplicate]=\"canDuplicate(item)\"\n [canDelete]=\"canDelete(item)\"\n (duplicate)=\"handleDuplicate(item)\"\n (delete)=\"handleDelete(item)\"\n >\n </gn-ui-action-menu>\n </ng-template>\n </gn-ui-interactive-table-column>\n</gn-ui-interactive-table>\n" }]
114
+ ], template: "<gn-ui-interactive-table\n [items]=\"records\"\n (itemClick)=\"handleRecordClick($event)\"\n>\n <!-- SELECTED COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <gn-ui-checkbox\n [checked]=\"isAllSelected()\"\n [indeterminate]=\"isSomeSelected()\"\n (changed)=\"toggleSelectAll()\"\n type=\"default\"\n class=\"-m-2 mr-3\"\n >\n </gn-ui-checkbox>\n </ng-template>\n <ng-template #cell let-item>\n <gn-ui-checkbox\n [checked]=\"isChecked(item)\"\n (changed)=\"handleRecordSelectedChange($event, item)\"\n class=\"-m-2\"\n type=\"default\"\n ></gn-ui-checkbox>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- TITLE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [grow]=\"true\"\n [activeSort]=\"isSortedBy('resourceTitleObject.default.keyword')\"\n (sortChange)=\"setSortBy('resourceTitleObject.default.keyword', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.title</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex flex-row items-center gap-2 max-w-full font-semibold\">\n <span class=\"overflow-hidden text-ellipsis\">{{ item.title }}</span>\n <gn-ui-badge\n *ngIf=\"hasDraft(item)\"\n [style.--gn-ui-badge-padding]=\"'0.2em 0.6em'\"\n [style.--gn-ui-badge-text-size]=\"'12px'\"\n [style.--gn-ui-badge-text-color]=\"'#3d2006'\"\n [style.--gn-ui-badge-background-color]=\"'#ffbc7b'\"\n [style.--gn-ui-badge-rounded]=\"'4px'\"\n >\n <span translate>dashboard.records.hasDraft</span>\n </gn-ui-badge>\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- FORMATS COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <span translate>record.metadata.formats</span>\n </ng-template>\n <ng-template #cell let-item>\n <div\n class=\"flex justify-start items-center gap-2 font-medium\"\n *ngIf=\"getRecordFormats(item) as formats\"\n [title]=\"formats.join(', ')\"\n >\n <span\n class=\"badge-btn min-w-[45px] text-xs text-white px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[0])\"\n *ngIf=\"formats[0]\"\n >\n {{ formats[0] }}\n </span>\n <span\n class=\"badge-btn min-w-[45px] text-xs text-white px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[1])\"\n *ngIf=\"formats[1]\"\n >\n {{ formats[1] }}\n </span>\n <div class=\"shrink-0 text-xs\" *ngIf=\"formats.slice(2).length > 0\">\n <span>+{{ formats.slice(2).length }}</span>\n </div>\n </div>\n <div *ngIf=\"!getRecordFormats(item)\"></div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- OWNER COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('recordOwner')\"\n (sortChange)=\"setSortBy('recordOwner', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.author</span>\n </ng-template>\n <ng-template #cell let-item>\n <mat-icon class=\"material-symbols-outlined\">person</mat-icon>\n <span class=\"text-xs\">{{ formatUserInfo(item.extras?.ownerInfo) }}</span>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- STATUS COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <span translate>record.metadata.status</span>\n </ng-template>\n <ng-template #cell let-item>\n <span class=\"text-xs\">\n {{\n (isUnsavedDraft(item)\n ? 'record.metadata.status.notPublished'\n : 'record.metadata.status.published'\n ) | translate\n }}</span\n >\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- UPDATE DATE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('changeDate')\"\n (sortChange)=\"setSortBy('changeDate', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.updatedOn</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex justify-center w-full text-xs\">\n {{ isUnsavedDraft(item) ? '-' : dateToString(item.recordUpdated) }}\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- ACTION MENU COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header> </ng-template>\n <ng-template #cell let-item>\n <gn-ui-action-menu\n [canDuplicate]=\"canDuplicate(item)\"\n [canDelete]=\"canDelete(item)\"\n (duplicate)=\"handleDuplicate(item)\"\n (delete)=\"handleDelete(item)\"\n >\n </gn-ui-action-menu>\n </ng-template>\n </gn-ui-interactive-table-column>\n</gn-ui-interactive-table>\n" }]
117
115
  }], propDecorators: { records: [{
118
116
  type: Input
119
117
  }], selectedRecordsIdentifiers: [{
@@ -124,6 +122,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
124
122
  type: Input
125
123
  }], canDuplicate: [{
126
124
  type: Input
125
+ }], isUnsavedDraft: [{
126
+ type: Input
127
127
  }], canDelete: [{
128
128
  type: Input
129
129
  }], sortByChange: [{
@@ -137,4 +137,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
137
137
  }], recordsSelectedChange: [{
138
138
  type: Output
139
139
  }] } });
140
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdWx0cy10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL3NlYXJjaC9zcmMvbGliL3Jlc3VsdHMtdGFibGUvcmVzdWx0cy10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL3NlYXJjaC9zcmMvbGliL3Jlc3VsdHMtdGFibGUvcmVzdWx0cy10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUN0RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFNdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQTtBQUNyRixPQUFPLEVBQ0wsK0JBQStCLEVBQy9CLHlCQUF5QixHQUMxQixNQUFNLHNDQUFzQyxDQUFBO0FBQzdDLE9BQU8sRUFFTCxhQUFhLEVBQ2IsYUFBYSxFQUNiLGlCQUFpQixHQUNsQixNQUFNLHdDQUF3QyxDQUFBO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQTs7Ozs7OztBQWtCekUsTUFBTSxPQUFPLHFCQUFxQjtJQWhCbEM7UUFpQlcsWUFBTyxHQUFvQixFQUFFLENBQUE7UUFDN0IsK0JBQTBCLEdBQWEsRUFBRSxDQUFBO1FBQ3pDLGNBQVMsR0FBZ0IsSUFBSSxDQUFBO1FBQzdCLGFBQVEsR0FBdUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFBO1FBQzFELGlCQUFZLEdBQXVDLEdBQUcsRUFBRSxDQUFDLElB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L2NvbW1vbidcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJ1xuaW1wb3J0IHsgQ2F0YWxvZ1JlY29yZCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcbmltcG9ydCB7XG4gIEZpZWxkU29ydCxcbiAgU29ydEJ5RmllbGQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3NlYXJjaCdcbmltcG9ydCB7IEJhZGdlQ29tcG9uZW50LCBVaUlucHV0c01vZHVsZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvaW5wdXRzL3NyYydcbmltcG9ydCB7XG4gIEludGVyYWN0aXZlVGFibGVDb2x1bW5Db21wb25lbnQsXG4gIEludGVyYWN0aXZlVGFibGVDb21wb25lbnQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvbGF5b3V0L3NyYydcbmltcG9ydCB7XG4gIEZpbGVGb3JtYXQsXG4gIGdldEJhZGdlQ29sb3IsXG4gIGdldEZpbGVGb3JtYXQsXG4gIGdldEZvcm1hdFByaW9yaXR5LFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYydcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBBY3Rpb25NZW51Q29tcG9uZW50IH0gZnJvbSAnLi9hY3Rpb24tbWVudS9hY3Rpb24tbWVudS5jb21wb25lbnQnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLXJlc3VsdHMtdGFibGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVzdWx0cy10YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Jlc3VsdHMtdGFibGUuY29tcG9uZW50LmNzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFVpSW5wdXRzTW9kdWxlLFxuICAgIEludGVyYWN0aXZlVGFibGVDb21wb25lbnQsXG4gICAgSW50ZXJhY3RpdmVUYWJsZUNvbHVtbkNvbXBvbmVudCxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBCYWRnZUNvbXBvbmVudCxcbiAgICBBY3Rpb25NZW51Q29tcG9uZW50LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBSZXN1bHRzVGFibGVDb21wb25lbnQge1xuICBASW5wdXQoKSByZWNvcmRzOiBDYXRhbG9nUmVjb3JkW10gPSBbXVxuICBASW5wdXQoKSBzZWxlY3RlZFJlY29yZHNJZGVudGlmaWVyczogc3RyaW5nW10gPSBbXVxuICBASW5wdXQoKSBzb3J0T3JkZXI6IFNvcnRCeUZpZWxkID0gbnVsbFxuICBASW5wdXQoKSBoYXNEcmFmdDogKHJlY29yZDogQ2F0YWxvZ1JlY29yZCkgPT4gYm9vbGVhbiA9ICgpID0+IGZhbHNlXG4gIEBJbnB1dCgpIGNhbkR1cGxpY2F0ZTogKHJlY29yZDogQ2F0YWxvZ1JlY29yZCkgPT4gYm9vbGVhbiA9ICgpID0+IHRydWVcbiAgQElucHV0KCkgY2FuRGVsZXRlOiAocmVjb3JkOiBDYXRhbG9nUmVjb3JkKSA9PiBib29sZWFuID0gKCkgPT4gdHJ1ZVxuXG4gIC8vIGVtaXRzIHRoZSBjb2x1bW4gKGZpZWxkKSBhcyB3ZWxsIGFzIHRoZSBvcmRlclxuICBAT3V0cHV0KCkgc29ydEJ5Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxbc3RyaW5nLCAnYXNjJyB8ICdkZXNjJ10+KClcbiAgQE91dHB1dCgpIHJlY29yZENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxDYXRhbG9nUmVjb3JkPigpXG4gIEBPdXRwdXQoKSBkdXBsaWNhdGVSZWNvcmQgPSBuZXcgRXZlbnRFbWl0dGVyPENhdGFsb2dSZWNvcmQ+KClcbiAgQE91dHB1dCgpIGRlbGV0ZVJlY29yZCA9IG5ldyBFdmVudEVtaXR0ZXI8Q2F0YWxvZ1JlY29yZD4oKVxuICBAT3V0cHV0KCkgcmVjb3Jkc1NlbGVjdGVkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxcbiAgICBbQ2F0YWxvZ1JlY29yZFtdLCBib29sZWFuXVxuICA+KClcblxuICBkYXRlVG9TdHJpbmcoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGRhdGU/LnRvTG9jYWxlRGF0ZVN0cmluZyh1bmRlZmluZWQsIHtcbiAgICAgIHllYXI6ICdudW1lcmljJyxcbiAgICAgIG1vbnRoOiAnbG9uZycsXG4gICAgICBkYXk6ICdudW1lcmljJyxcbiAgICAgIHRpbWVab25lOiAnVVRDJyxcbiAgICB9KVxuICB9XG5cbiAgZ2V0U3RhdHVzKGlzUHVibGlzaGVkVG9BbGw6IGJvb2xlYW4gfCB1bmtub3duKSB7XG4gICAgcmV0dXJuIGlzUHVibGlzaGVkVG9BbGwgPyAncHVibGlzaGVkJyA6ICdub3QgcHVibGlzaGVkJ1xuICB9XG5cbiAgZ2V0UmVjb3JkRm9ybWF0cyhyZWNvcmQ6IENhdGFsb2dSZWNvcmQpOiBGaWxlRm9ybWF0W10ge1xuICAgIGlmIChyZWNvcmQua2luZCA9PT0gJ3NlcnZpY2UnIHx8ICEoJ2Rpc3RyaWJ1dGlvbnMnIGluIHJlY29yZCkpIHtcbiAgICAgIHJldHVybiBbXVxuICAgIH1cbiAgICBjb25zdCBmb3JtYXRzID0gQXJyYXkuZnJvbShcbiAgICAgIG5ldyBTZXQoXG4gICAgICAgIHJlY29yZC5kaXN0cmlidXRpb25zLm1hcCgoZGlzdHJpYnV0aW9uKSA9PiBnZXRGaWxlRm9ybWF0KGRpc3RyaWJ1dGlvbikpXG4gICAgICApXG4gICAgKS5maWx0ZXIoKGZvcm1hdCkgPT4gISFmb3JtYXQpXG4gICAgZm9ybWF0cy5zb3J0KChhLCBiKSA9PiBnZXRGb3JtYXRQcmlvcml0eShiKSAtIGdldEZvcm1hdFByaW9yaXR5KGEpKVxuICAgIHJldHVybiBmb3JtYXRzXG4gIH1cblxuICBmb3JtYXRVc2VySW5mbyh1c2VySW5mbzogc3RyaW5nIHwgdW5rbm93bik6IHN0cmluZyB7XG4gICAgY29uc3QgaW5mb3MgPSAodHlwZW9mIHVzZXJJbmZvID09PSAnc3RyaW5nJyA/IHVzZXJJbmZvIDogJycpLnNwbGl0KCd8JylcbiAgICBpZiAoaW5mb3MgJiYgaW5mb3MubGVuZ3RoID09PSA0KSB7XG4gICAgICByZXR1cm4gYCR7aW5mb3NbMl19ICR7aW5mb3NbMV19YFxuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH1cblxuICBnZXRCYWRnZUNvbG9yKGZvcm1hdDogRmlsZUZvcm1hdCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGdldEJhZGdlQ29sb3IoZm9ybWF0KVxuICB9XG5cbiAgaGFuZGxlUmVjb3JkQ2xpY2soaXRlbTogdW5rbm93bikge1xuICAgIHRoaXMucmVjb3JkQ2xpY2suZW1pdChpdGVtIGFzIENhdGFsb2dSZWNvcmQpXG4gIH1cblxuICBoYW5kbGVEdXBsaWNhdGUoaXRlbTogdW5rbm93bikge1xuICAgIHRoaXMuZHVwbGljYXRlUmVjb3JkLmVtaXQoaXRlbSBhcyBDYXRhbG9nUmVjb3JkKVxuICB9XG5cbiAgaGFuZGxlRGVsZXRlKGl0ZW06IHVua25vd24pIHtcbiAgICB0aGlzLmRlbGV0ZVJlY29yZC5lbWl0KGl0ZW0gYXMgQ2F0YWxvZ1JlY29yZClcbiAgfVxuXG4gIHNldFNvcnRCeShjb2w6IHN0cmluZywgb3JkZXI6ICdhc2MnIHwgJ2Rlc2MnKSB7XG4gICAgdGhpcy5zb3J0QnlDaGFuZ2UuZW1pdChbY29sLCBvcmRlcl0pXG4gIH1cblxuICBpc1NvcnRlZEJ5KGNvbDogc3RyaW5nKTogJ2Rlc2MnIHwgJ2FzYycgfCBudWxsIHtcbiAgICBpZiAoIXRoaXMuc29ydE9yZGVyKSB7XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cbiAgICBjb25zdCBzb3J0QXJyYXkgPSBBcnJheS5pc0FycmF5KHRoaXMuc29ydE9yZGVyWzBdKVxuICAgICAgPyAodGhpcy5zb3J0T3JkZXIgYXMgRmllbGRTb3J0W10pXG4gICAgICA6IChbdGhpcy5zb3J0T3JkZXJdIGFzIEZpZWxkU29ydFtdKVxuICAgIGZvciAoY29uc3Qgc29ydCBvZiBzb3J0QXJyYXkpIHtcbiAgICAgIGlmIChzb3J0WzFdID09PSBjb2wpIHtcbiAgICAgICAgcmV0dXJuIHNvcnRbMF1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGlzQ2hlY2tlZChyZWNvcmQ6IENhdGFsb2dSZWNvcmQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZFJlY29yZHNJZGVudGlmaWVycy5pbmNsdWRlcyhyZWNvcmQudW5pcXVlSWRlbnRpZmllcilcbiAgfVxuXG4gIGhhbmRsZVJlY29yZFNlbGVjdGVkQ2hhbmdlKHNlbGVjdGVkOiBib29sZWFuLCByZWNvcmQ6IENhdGFsb2dSZWNvcmQpIHtcbiAgICB0aGlzLnJlY29yZHNTZWxlY3RlZENoYW5nZS5lbWl0KFtbcmVjb3JkXSwgc2VsZWN0ZWRdKVxuICB9XG5cbiAgYXN5bmMgdG9nZ2xlU2VsZWN0QWxsKCkge1xuICAgIHRoaXMucmVjb3Jkc1NlbGVjdGVkQ2hhbmdlLmVtaXQoW3RoaXMucmVjb3JkcywgIXRoaXMuaXNBbGxTZWxlY3RlZCgpXSlcbiAgfVxuXG4gIGlzQWxsU2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucmVjb3Jkcy5ldmVyeSgocmVjb3JkKSA9PlxuICAgICAgdGhpcy5zZWxlY3RlZFJlY29yZHNJZGVudGlmaWVycy5pbmNsdWRlcyhyZWNvcmQudW5pcXVlSWRlbnRpZmllcilcbiAgICApXG4gIH1cblxuICBpc1NvbWVTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICBjb25zdCBhbGxTZWxlY3RlZCA9IHRoaXMucmVjb3Jkcy5ldmVyeSgocmVjb3JkKSA9PlxuICAgICAgdGhpcy5zZWxlY3RlZFJlY29yZHNJZGVudGlmaWVycy5pbmNsdWRlcyhyZWNvcmQudW5pcXVlSWRlbnRpZmllcilcbiAgICApXG4gICAgY29uc3Qgc29tZVNlbGVjdGVkID0gdGhpcy5yZWNvcmRzLnNvbWUoKHJlY29yZCkgPT5cbiAgICAgIHRoaXMuc2VsZWN0ZWRSZWNvcmRzSWRlbnRpZmllcnMuaW5jbHVkZXMocmVjb3JkLnVuaXF1ZUlkZW50aWZpZXIpXG4gICAgKVxuICAgIHJldHVybiAhYWxsU2VsZWN0ZWQgJiYgc29tZVNlbGVjdGVkXG4gIH1cbn1cbiIsIjxnbi11aS1pbnRlcmFjdGl2ZS10YWJsZVxuICBbaXRlbXNdPVwicmVjb3Jkc1wiXG4gIChpdGVtQ2xpY2spPVwiaGFuZGxlUmVjb3JkQ2xpY2soJGV2ZW50KVwiXG4+XG4gIDwhLS0gU0VMRUNURUQgQ09MVU1OIC0tPlxuICA8Z24tdWktaW50ZXJhY3RpdmUtdGFibGUtY29sdW1uPlxuICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGVyPlxuICAgICAgPGduLXVpLWNoZWNrYm94XG4gICAgICAgIFtjaGVja2VkXT1cImlzQWxsU2VsZWN0ZWQoKVwiXG4gICAgICAgIFtpbmRldGVybWluYXRlXT1cImlzU29tZVNlbGVjdGVkKClcIlxuICAgICAgICAoY2hhbmdlZCk9XCJ0b2dnbGVTZWxlY3RBbGwoKVwiXG4gICAgICAgIHR5cGU9XCJkZWZhdWx0XCJcbiAgICAgICAgY2xhc3M9XCItbS0yIG1yLTNcIlxuICAgICAgPlxuICAgICAgPC9nbi11aS1jaGVja2JveD5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjY2VsbCBsZXQtaXRlbT5cbiAgICAgIDxnbi11aS1jaGVja2JveFxuICAgICAgICBbY2hlY2tlZF09XCJpc0NoZWNrZWQoaXRlbSlcIlxuICAgICAgICAoY2hhbmdlZCk9XCJoYW5kbGVSZWNvcmRTZWxlY3RlZENoYW5nZSgkZXZlbnQsIGl0ZW0pXCJcbiAgICAgICAgY2xhc3M9XCItbS0yXCJcbiAgICAgICAgdHlwZT1cImRlZmF1bHRcIlxuICAgICAgPjwvZ24tdWktY2hlY2tib3g+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9nbi11aS1pbnRlcmFjdGl2ZS10YWJsZS1jb2x1bW4+XG5cbiAgPCEtLSBUSVRMRSBDT0xVTU4gLS0+XG4gIDxnbi11aS1pbnRlcmFjdGl2ZS10YWJsZS1jb2x1bW5cbiAgICBbc29ydGFibGVdPVwidHJ1ZVwiXG4gICAgW2FjdGl2ZVNvcnRdPVwiaXNTb3J0ZWRCeSgncmVzb3VyY2VUaXRsZU9iamVjdC5kZWZhdWx0LmtleXdvcmQnKVwiXG4gICAgKHNvcnRDaGFuZ2UpPVwic2V0U29ydEJ5KCdyZXNvdXJjZVRpdGxlT2JqZWN0LmRlZmF1bHQua2V5d29yZCcsICRldmVudClcIlxuICA+XG4gICAgPG5nLXRlbXBsYXRlICNoZWFkZXI+XG4gICAgICA8c3BhbiB0cmFuc2xhdGU+cmVjb3JkLm1ldGFkYXRhLnRpdGxlPC9zcGFuPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNjZWxsIGxldC1pdGVtPlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgaXRlbXMtY2VudGVyIGdhcC0yIG1heC13LWZ1bGxcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJvdmVyZmxvdy1oaWRkZW4gdGV4dC1lbGxpcHNpc1wiPnt7IGl0ZW0udGl0bGUgfX08L3NwYW4+XG4gICAgICAgIDxnbi11aS1iYWRnZVxuICAgICAgICAgICpuZ0lmPVwiaGFzRHJhZnQoaXRlbSlcIlxuICAgICAgICAgIFtzdHlsZS4tLWduLXVpLWJhZGdlLXBhZGRpbmddPVwiJzAuNGVtIDAuNmVtJ1wiXG4gICAgICAgICAgW3N0eWxlLi0tZ24tdWktYmFkZ2UtdGV4dC1jb2xvcl09XCInIzNkMjAwNidcIlxuICAgICAgICAgIFtzdHlsZS4tLWduLXVpLWJhZGdlLWJhY2tncm91bmQtY29sb3JdPVwiJyNmZmJjN2InXCJcbiAgICAgICAgICBbc3R5bGUuLS1nbi11aS1iYWRnZS1yb3VuZGVkXT1cIic0cHgnXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxzcGFuIHRyYW5zbGF0ZT5kYXNoYm9hcmQucmVjb3Jkcy5oYXNEcmFmdDwvc3Bhbj5cbiAgICAgICAgPC9nbi11aS1iYWRnZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZ24tdWktaW50ZXJhY3RpdmUtdGFibGUtY29sdW1uPlxuXG4gIDwhLS0gRk9STUFUUyBDT0xVTU4gLS0+XG4gIDxnbi11aS1pbnRlcmFjdGl2ZS10YWJsZS1jb2x1bW4+XG4gICAgPG5nLXRlbXBsYXRlICNoZWFkZXI+XG4gICAgICA8c3BhbiB0cmFuc2xhdGU+cmVjb3JkLm1ldGFkYXRhLmZvcm1hdHM8L3NwYW4+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI2NlbGwgbGV0LWl0ZW0+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiZmxleCBqdXN0aWZ5LXN0YXJ0IGl0ZW1zLWNlbnRlciBnYXAtMlwiXG4gICAgICAgICpuZ0lmPVwiZ2V0UmVjb3JkRm9ybWF0cyhpdGVtKSBhcyBmb3JtYXRzXCJcbiAgICAgICAgW3RpdGxlXT1cImZvcm1hdHMuam9pbignLCAnKVwiXG4gICAgICA+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgY2xhc3M9XCJiYWRnZS1idG4gbWluLXctWzQ1cHhdIHRleHQtc20gdGV4dC13aGl0ZSBweC0yIHNocmluay0wXCJcbiAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJnZXRCYWRnZUNvbG9yKGZvcm1hdHNbMF0pXCJcbiAgICAgICAgICAqbmdJZj1cImZvcm1hdHNbMF1cIlxuICAgICAgICA+XG4gICAgICAgICAge3sgZm9ybWF0c1swXSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgY2xhc3M9XCJiYWRnZS1idG4gbWluLXctWzQ1cHhdIHRleHQtc20gdGV4dC13aGl0ZSBweC0yIHNocmluay0wXCJcbiAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJnZXRCYWRnZUNvbG9yKGZvcm1hdHNbMV0pXCJcbiAgICAgICAgICAqbmdJZj1cImZvcm1hdHNbMV1cIlxuICAgICAgICA+XG4gICAgICAgICAge3sgZm9ybWF0c1sxXSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzaHJpbmstMFwiICpuZ0lmPVwiZm9ybWF0cy5zbGljZSgyKS5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgPHNwYW4+K3t7IGZvcm1hdHMuc2xpY2UoMikubGVuZ3RoIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cIiFnZXRSZWNvcmRGb3JtYXRzKGl0ZW0pXCI+PC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9nbi11aS1pbnRlcmFjdGl2ZS10YWJsZS1jb2x1bW4+XG5cbiAgPCEtLSBPV05FUiBDT0xVTU4gLS0+XG4gIDxnbi11aS1pbnRlcmFjdGl2ZS10YWJsZS1jb2x1bW5cbiAgICBbc29ydGFibGVdPVwidHJ1ZVwiXG4gICAgW2FjdGl2ZVNvcnRdPVwiaXNTb3J0ZWRCeSgncmVjb3JkT3duZXInKVwiXG4gICAgKHNvcnRDaGFuZ2UpPVwic2V0U29ydEJ5KCdyZWNvcmRPd25lcicsICRldmVudClcIlxuICA+XG4gICAgPG5nLXRlbXBsYXRlICNoZWFkZXI+XG4gICAgICA8c3BhbiB0cmFuc2xhdGU+cmVjb3JkLm1ldGFkYXRhLmF1dGhvcjwvc3Bhbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjY2VsbCBsZXQtaXRlbT5cbiAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWRcIj5wZXJzb248L21hdC1pY29uPlxuICAgICAgPHNwYW4+e3sgZm9ybWF0VXNlckluZm8oaXRlbS5leHRyYXM/Lm93bmVySW5mbykgfX08L3NwYW4+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9nbi11aS1pbnRlcmFjdGl2ZS10YWJsZS1jb2x1bW4+XG5cbiAgPCEtLSBTVEFUVVMgQ09MVU1OIC0tPlxuICA8Z24tdWktaW50ZXJhY3RpdmUtdGFibGUtY29sdW1uPlxuICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGVyPlxuICAgICAgPHNwYW4gdHJhbnNsYXRlPnJlY29yZC5tZXRhZGF0YS5zdGF0dXM8L3NwYW4+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI2NlbGwgbGV0LWl0ZW0+XG4gICAgICB7eyBpdGVtLnN0YXR1cyB9fVxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZ24tdWktaW50ZXJhY3RpdmUtdGFibGUtY29sdW1uPlxuXG4gIDwhLS0gVVBEQVRFIERBVEUgQ09MVU1OIC0tPlxuICA8Z24tdWktaW50ZXJhY3RpdmUtdGFibGUtY29sdW1uXG4gICAgW3NvcnRhYmxlXT1cInRydWVcIlxuICAgIFthY3RpdmVTb3J0XT1cImlzU29ydGVkQnkoJ2NoYW5nZURhdGUnKVwiXG4gICAgKHNvcnRDaGFuZ2UpPVwic2V0U29ydEJ5KCdjaGFuZ2VEYXRlJywgJGV2ZW50KVwiXG4gID5cbiAgICA8bmctdGVtcGxhdGUgI2hlYWRlcj5cbiAgICAgIDxzcGFuIHRyYW5zbGF0ZT5yZWNvcmQubWV0YWRhdGEudXBkYXRlZE9uPC9zcGFuPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNjZWxsIGxldC1pdGVtPlxuICAgICAge3sgZGF0ZVRvU3RyaW5nKGl0ZW0ucmVjb3JkVXBkYXRlZCkgfX1cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2duLXVpLWludGVyYWN0aXZlLXRhYmxlLWNvbHVtbj5cblxuICA8IS0tIEFDVElPTiBNRU5VIENPTFVNTiAtLT5cbiAgPGduLXVpLWludGVyYWN0aXZlLXRhYmxlLWNvbHVtbj5cbiAgICA8bmctdGVtcGxhdGUgI2hlYWRlcj4gPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI2NlbGwgbGV0LWl0ZW0+XG4gICAgICA8Z24tdWktYWN0aW9uLW1lbnVcbiAgICAgICAgW2NhbkR1cGxpY2F0ZV09XCJjYW5EdXBsaWNhdGUoaXRlbSlcIlxuICAgICAgICBbY2FuRGVsZXRlXT1cImNhbkRlbGV0ZShpdGVtKVwiXG4gICAgICAgIChkdXBsaWNhdGUpPVwiaGFuZGxlRHVwbGljYXRlKGl0ZW0pXCJcbiAgICAgICAgKGRlbGV0ZSk9XCJoYW5kbGVEZWxldGUoaXRlbSlcIlxuICAgICAgPlxuICAgICAgPC9nbi11aS1hY3Rpb24tbWVudT5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2duLXVpLWludGVyYWN0aXZlLXRhYmxlLWNvbHVtbj5cbjwvZ24tdWktaW50ZXJhY3RpdmUtdGFibGU+XG4iXX0=
140
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdWx0cy10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL3NlYXJjaC9zcmMvbGliL3Jlc3VsdHMtdGFibGUvcmVzdWx0cy10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL3NlYXJjaC9zcmMvbGliL3Jlc3VsdHMtdGFibGUvcmVzdWx0cy10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUN0RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFNdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQTtBQUNyRixPQUFPLEVBQ0wsK0JBQStCLEVBQy9CLHlCQUF5QixHQUMxQixNQUFNLHNDQUFzQyxDQUFBO0FBQzdDLE9BQU8sRUFFTCxhQUFhLEVBQ2IsYUFBYSxFQUNiLGlCQUFpQixHQUNsQixNQUFNLHdDQUF3QyxDQUFBO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQTs7Ozs7OztBQWtCekUsTUFBTSxPQUFPLHFCQUFxQjtJQWhCbEM7UUFpQlcsWUFBTyxHQUFvQixFQUFFLENBQUE7UUFDN0IsK0JBQTBCLEdBQWEsRUFBRSxDQUFBO1FBQ3pDLGNBQVMsR0FBZ0IsSUFBSSxDQUFBO1FBQzdCLGFBQVEsR0FBdUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFBO1FBQzFELGlCQUFZLEdBQXVDLEdBQUcsRUFBRSxDQUFDLElB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Q0FBQywwQkFBMEIsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQ2xFLENBQUE7UUFDRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQ2hELElBQUksQ0FBQywwQkFBMEIsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQ2xFLENBQUE7UUFDRCxPQUFPLENBQUMsV0FBVyxJQUFJLFlBQVksQ0FBQTtJQUNyQyxDQUFDOytHQS9HVSxxQkFBcUI7bUdBQXJCLHFCQUFxQix3ZUN0Q2xDLHE0SkFvSkEseUREeEhJLFlBQVksa0lBQ1osY0FBYyxnVUFDZCx5QkFBeUIsK0dBQ3pCLCtCQUErQiwrSUFDL0IsYUFBYSxtTEFDYixlQUFlLG1PQUVmLG1CQUFtQjs7NEZBR1YscUJBQXFCO2tCQWhCakMsU0FBUzsrQkFDRSxxQkFBcUIsY0FHbkIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCx5QkFBeUI7d0JBQ3pCLCtCQUErQjt3QkFDL0IsYUFBYTt3QkFDYixlQUFlO3dCQUNmLGNBQWM7d0JBQ2QsbUJBQW1CO3FCQUNwQjs4QkFHUSxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csMEJBQTBCO3NCQUFsQyxLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFHSSxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLHFCQUFxQjtzQkFBOUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJ1xuaW1wb3J0IHsgQ2F0YWxvZ1JlY29yZCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcbmltcG9ydCB7XG4gIEZpZWxkU29ydCxcbiAgU29ydEJ5RmllbGQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3NlYXJjaCdcbmltcG9ydCB7IEJhZGdlQ29tcG9uZW50LCBVaUlucHV0c01vZHVsZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvaW5wdXRzL3NyYydcbmltcG9ydCB7XG4gIEludGVyYWN0aXZlVGFibGVDb2x1bW5Db21wb25lbnQsXG4gIEludGVyYWN0aXZlVGFibGVDb21wb25lbnQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvbGF5b3V0L3NyYydcbmltcG9ydCB7XG4gIEZpbGVGb3JtYXQsXG4gIGdldEJhZGdlQ29sb3IsXG4gIGdldEZpbGVGb3JtYXQsXG4gIGdldEZvcm1hdFByaW9yaXR5LFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYydcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBBY3Rpb25NZW51Q29tcG9uZW50IH0gZnJvbSAnLi9hY3Rpb24tbWVudS9hY3Rpb24tbWVudS5jb21wb25lbnQnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLXJlc3VsdHMtdGFibGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVzdWx0cy10YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Jlc3VsdHMtdGFibGUuY29tcG9uZW50LmNzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFVpSW5wdXRzTW9kdWxlLFxuICAgIEludGVyYWN0aXZlVGFibGVDb21wb25lbnQsXG4gICAgSW50ZXJhY3RpdmVUYWJsZUNvbHVtbkNvbXBvbmVudCxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBCYWRnZUNvbXBvbmVudCxcbiAgICBBY3Rpb25NZW51Q29tcG9uZW50LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBSZXN1bHRzVGFibGVDb21wb25lbnQge1xuICBASW5wdXQoKSByZWNvcmRzOiBDYXRhbG9nUmVjb3JkW10gPSBbXVxuICBASW5wdXQoKSBzZWxlY3RlZFJlY29yZHNJZGVudGlmaWVyczogc3RyaW5nW10gPSBbXVxuICBASW5wdXQoKSBzb3J0T3JkZXI6IFNvcnRCeUZpZWxkID0gbnVsbFxuICBASW5wdXQoKSBoYXNEcmFmdDogKHJlY29yZDogQ2F0YWxvZ1JlY29yZCkgPT4gYm9vbGVhbiA9ICgpID0+IGZhbHNlXG4gIEBJbnB1dCgpIGNhbkR1cGxpY2F0ZTogKHJlY29yZDogQ2F0YWxvZ1JlY29yZCkgPT4gYm9vbGVhbiA9ICgpID0+IHRydWVcbiAgQElucHV0KCkgaXNVbnNhdmVkRHJhZnQ6IChyZWNvcmQ6IENhdGFsb2dSZWNvcmQpID0+IGJvb2xlYW4gPSAoKSA9PiB0cnVlXG4gIEBJbnB1dCgpIGNhbkRlbGV0ZTogKHJlY29yZDogQ2F0YWxvZ1JlY29yZCkgPT4gYm9vbGVhbiA9ICgpID0+IHRydWVcblxuICAvLyBlbWl0cyB0aGUgY29sdW1uIChmaWVsZCkgYXMgd2VsbCBhcyB0aGUgb3JkZXJcbiAgQE91dHB1dCgpIHNvcnRCeUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8W3N0cmluZywgJ2FzYycgfCAnZGVzYyddPigpXG4gIEBPdXRwdXQoKSByZWNvcmRDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Q2F0YWxvZ1JlY29yZD4oKVxuICBAT3V0cHV0KCkgZHVwbGljYXRlUmVjb3JkID0gbmV3IEV2ZW50RW1pdHRlcjxDYXRhbG9nUmVjb3JkPigpXG4gIEBPdXRwdXQoKSBkZWxldGVSZWNvcmQgPSBuZXcgRXZlbnRFbWl0dGVyPENhdGFsb2dSZWNvcmQ+KClcbiAgQE91dHB1dCgpIHJlY29yZHNTZWxlY3RlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8XG4gICAgW0NhdGFsb2dSZWNvcmRbXSwgYm9vbGVhbl1cbiAgPigpXG5cbiAgZGF0ZVRvU3RyaW5nKGRhdGU6IERhdGUpOiBzdHJpbmcge1xuICAgIHJldHVybiBkYXRlPy50b0xvY2FsZURhdGVTdHJpbmcodW5kZWZpbmVkLCB7XG4gICAgICB5ZWFyOiAnbnVtZXJpYycsXG4gICAgICBtb250aDogJ2xvbmcnLFxuICAgICAgZGF5OiAnbnVtZXJpYycsXG4gICAgICB0aW1lWm9uZTogJ1VUQycsXG4gICAgfSlcbiAgfVxuXG4gIGdldFJlY29yZEZvcm1hdHMocmVjb3JkOiBDYXRhbG9nUmVjb3JkKTogRmlsZUZvcm1hdFtdIHtcbiAgICBpZiAocmVjb3JkLmtpbmQgPT09ICdzZXJ2aWNlJyB8fCAhKCdvbmxpbmVSZXNvdXJjZXMnIGluIHJlY29yZCkpIHtcbiAgICAgIHJldHVybiBbXVxuICAgIH1cbiAgICBjb25zdCBmb3JtYXRzID0gQXJyYXkuZnJvbShcbiAgICAgIG5ldyBTZXQoXG4gICAgICAgIHJlY29yZC5vbmxpbmVSZXNvdXJjZXMubWFwKChvbmxpbmVSZXNvdXJjZSkgPT5cbiAgICAgICAgICBnZXRGaWxlRm9ybWF0KG9ubGluZVJlc291cmNlKVxuICAgICAgICApXG4gICAgICApXG4gICAgKS5maWx0ZXIoKGZvcm1hdCkgPT4gISFmb3JtYXQpXG4gICAgZm9ybWF0cy5zb3J0KChhLCBiKSA9PiBnZXRGb3JtYXRQcmlvcml0eShiKSAtIGdldEZvcm1hdFByaW9yaXR5KGEpKVxuICAgIHJldHVybiBmb3JtYXRzXG4gIH1cblxuICBmb3JtYXRVc2VySW5mbyh1c2VySW5mbzogc3RyaW5nIHwgdW5rbm93bik6IHN0cmluZyB7XG4gICAgY29uc3QgaW5mb3MgPSAodHlwZW9mIHVzZXJJbmZvID09PSAnc3RyaW5nJyA/IHVzZXJJbmZvIDogJycpLnNwbGl0KCd8JylcbiAgICBpZiAoaW5mb3MgJiYgaW5mb3MubGVuZ3RoID09PSA0KSB7XG4gICAgICByZXR1cm4gYCR7aW5mb3NbMl19ICR7aW5mb3NbMV19YFxuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH1cblxuICBnZXRCYWRnZUNvbG9yKGZvcm1hdDogRmlsZUZvcm1hdCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGdldEJhZGdlQ29sb3IoZm9ybWF0KVxuICB9XG5cbiAgaGFuZGxlUmVjb3JkQ2xpY2soaXRlbTogdW5rbm93bikge1xuICAgIHRoaXMucmVjb3JkQ2xpY2suZW1pdChpdGVtIGFzIENhdGFsb2dSZWNvcmQpXG4gIH1cblxuICBoYW5kbGVEdXBsaWNhdGUoaXRlbTogdW5rbm93bikge1xuICAgIHRoaXMuZHVwbGljYXRlUmVjb3JkLmVtaXQoaXRlbSBhcyBDYXRhbG9nUmVjb3JkKVxuICB9XG5cbiAgaGFuZGxlRGVsZXRlKGl0ZW06IHVua25vd24pIHtcbiAgICB0aGlzLmRlbGV0ZVJlY29yZC5lbWl0KGl0ZW0gYXMgQ2F0YWxvZ1JlY29yZClcbiAgfVxuXG4gIHNldFNvcnRCeShjb2w6IHN0cmluZywgb3JkZXI6ICdhc2MnIHwgJ2Rlc2MnKSB7XG4gICAgdGhpcy5zb3J0QnlDaGFuZ2UuZW1pdChbY29sLCBvcmRlcl0pXG4gIH1cblxuICBpc1NvcnRlZEJ5KGNvbDogc3RyaW5nKTogJ2Rlc2MnIHwgJ2FzYycgfCBudWxsIHtcbiAgICBpZiAoIXRoaXMuc29ydE9yZGVyKSB7XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cbiAgICBjb25zdCBzb3J0QXJyYXkgPSBBcnJheS5pc0FycmF5KHRoaXMuc29ydE9yZGVyWzBdKVxuICAgICAgPyAodGhpcy5zb3J0T3JkZXIgYXMgRmllbGRTb3J0W10pXG4gICAgICA6IChbdGhpcy5zb3J0T3JkZXJdIGFzIEZpZWxkU29ydFtdKVxuICAgIGZvciAoY29uc3Qgc29ydCBvZiBzb3J0QXJyYXkpIHtcbiAgICAgIGlmIChzb3J0WzFdID09PSBjb2wpIHtcbiAgICAgICAgcmV0dXJuIHNvcnRbMF1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGlzQ2hlY2tlZChyZWNvcmQ6IENhdGFsb2dSZWNvcmQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZFJlY29yZHNJZGVudGlmaWVycy5pbmNsdWRlcyhyZWNvcmQudW5pcXVlSWRlbnRpZmllcilcbiAgfVxuXG4gIGhhbmRsZVJlY29yZFNlbGVjdGVkQ2hhbmdlKHNlbGVjdGVkOiBib29sZWFuLCByZWNvcmQ6IENhdGFsb2dSZWNvcmQpIHtcbiAgICB0aGlzLnJlY29yZHNTZWxlY3RlZENoYW5nZS5lbWl0KFtbcmVjb3JkXSwgc2VsZWN0ZWRdKVxuICB9XG5cbiAgYXN5bmMgdG9nZ2xlU2VsZWN0QWxsKCkge1xuICAgIHRoaXMucmVjb3Jkc1NlbGVjdGVkQ2hhbmdlLmVtaXQoW3RoaXMucmVjb3JkcywgIXRoaXMuaXNBbGxTZWxlY3RlZCgpXSlcbiAgfVxuXG4gIGlzQWxsU2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucmVjb3Jkcy5ldmVyeSgocmVjb3JkKSA9PlxuICAgICAgdGhpcy5zZWxlY3RlZFJlY29yZHNJZGVudGlmaWVycy5pbmNsdWRlcyhyZWNvcmQudW5pcXVlSWRlbnRpZmllcilcbiAgICApXG4gIH1cblxuICBpc1NvbWVTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICBjb25zdCBhbGxTZWxlY3RlZCA9IHRoaXMucmVjb3Jkcy5ldmVyeSgocmVjb3JkKSA9PlxuICAgICAgdGhpcy5zZWxlY3RlZFJlY29yZHNJZGVudGlmaWVycy5pbmNsdWRlcyhyZWNvcmQudW5pcXVlSWRlbnRpZmllcilcbiAgICApXG4gICAgY29uc3Qgc29tZVNlbGVjdGVkID0gdGhpcy5yZWNvcmRzLnNvbWUoKHJlY29yZCkgPT5cbiAgICAgIHRoaXMuc2VsZWN0ZWRSZWNvcmRzSWRlbnRpZmllcnMuaW5jbHVkZXMocmVjb3JkLnVuaXF1ZUlkZW50aWZpZXIpXG4gICAgKVxuICAgIHJldHVybiAhYWxsU2VsZWN0ZWQgJiYgc29tZVNlbGVjdGVkXG4gIH1cbn1cbiIsIjxnbi11aS1pbnRlcmFjdGl2ZS10YWJsZVxuICBbaXRlbXNdPVwicmVjb3Jkc1wiXG4gIChpdGVtQ2xpY2spPVwiaGFuZGxlUmVjb3JkQ2xpY2soJGV2ZW50KVwiXG4+XG4gIDwhLS0gU0VMRUNURUQgQ09MVU1OIC0tPlxuICA8Z24tdWktaW50ZXJhY3RpdmUtdGFibGUtY29sdW1uPlxuICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGVyPlxuICAgICAgPGduLXVpLWNoZWNrYm94XG4gICAgICAgIFtjaGVja2VkXT1cImlzQWxsU2VsZWN0ZWQoKVwiXG4gICAgICAgIFtpbmRldGVybWluYXRlXT1cImlzU29tZVNlbGVjdGVkKClcIlxuICAgICAgICAoY2hhbmdlZCk9XCJ0b2dnbGVTZWxlY3RBbGwoKVwiXG4gICAgICAgIHR5cGU9XCJkZWZhdWx0XCJcbiAgICAgICAgY2xhc3M9XCItbS0yIG1yLTNcIlxuICAgICAgPlxuICAgICAgPC9nbi11aS1jaGVja2JveD5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjY2VsbCBsZXQtaXRlbT5cbiAgICAgIDxnbi11aS1jaGVja2JveFxuICAgICAgICBbY2hlY2tlZF09XCJpc0NoZWNrZWQoaXRlbSlcIlxuICAgICAgICAoY2hhbmdlZCk9XCJoYW5kbGVSZWNvcmRTZWxlY3RlZENoYW5nZSgkZXZlbnQsIGl0ZW0pXCJcbiAgICAgICAgY2xhc3M9XCItbS0yXCJcbiAgICAgICAgdHlwZT1cImRlZmF1bHRcIlxuICAgICAgPjwvZ24tdWktY2hlY2tib3g+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9nbi11aS1pbnRlcmFjdGl2ZS10YWJsZS1jb2x1bW4+XG5cbiAgPCEtLSBUSVRMRSBDT0xVTU4gLS0+XG4gIDxnbi11aS1pbnRlcmFjdGl2ZS10YWJsZS1jb2x1bW5cbiAgICBbc29ydGFibGVdPVwidHJ1ZVwiXG4gICAgW2dyb3ddPVwidHJ1ZVwiXG4gICAgW2FjdGl2ZVNvcnRdPVwiaXNTb3J0ZWRCeSgncmVzb3VyY2VUaXRsZU9iamVjdC5kZWZhdWx0LmtleXdvcmQnKVwiXG4gICAgKHNvcnRDaGFuZ2UpPVwic2V0U29ydEJ5KCdyZXNvdXJjZVRpdGxlT2JqZWN0LmRlZmF1bHQua2V5d29yZCcsICRldmVudClcIlxuICA+XG4gICAgPG5nLXRlbXBsYXRlICNoZWFkZXI+XG4gICAgICA8c3BhbiB0cmFuc2xhdGU+cmVjb3JkLm1ldGFkYXRhLnRpdGxlPC9zcGFuPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNjZWxsIGxldC1pdGVtPlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgaXRlbXMtY2VudGVyIGdhcC0yIG1heC13LWZ1bGwgZm9udC1zZW1pYm9sZFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm92ZXJmbG93LWhpZGRlbiB0ZXh0LWVsbGlwc2lzXCI+e3sgaXRlbS50aXRsZSB9fTwvc3Bhbj5cbiAgICAgICAgPGduLXVpLWJhZGdlXG4gICAgICAgICAgKm5nSWY9XCJoYXNEcmFmdChpdGVtKVwiXG4gICAgICAgICAgW3N0eWxlLi0tZ24tdWktYmFkZ2UtcGFkZGluZ109XCInMC4yZW0gMC42ZW0nXCJcbiAgICAgICAgICBbc3R5bGUuLS1nbi11aS1iYWRnZS10ZXh0LXNpemVdPVwiJzEycHgnXCJcbiAgICAgICAgICBbc3R5bGUuLS1nbi11aS1iYWRnZS10ZXh0LWNvbG9yXT1cIicjM2QyMDA2J1wiXG4gICAgICAgICAgW3N0eWxlLi0tZ24tdWktYmFkZ2UtYmFja2dyb3VuZC1jb2xvcl09XCInI2ZmYmM3YidcIlxuICAgICAgICAgIFtzdHlsZS4tLWduLXVpLWJhZGdlLXJvdW5kZWRdPVwiJzRweCdcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNwYW4gdHJhbnNsYXRlPmRhc2hib2FyZC5yZWNvcmRzLmhhc0RyYWZ0PC9zcGFuPlxuICAgICAgICA8L2duLXVpLWJhZGdlPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9nbi11aS1pbnRlcmFjdGl2ZS10YWJsZS1jb2x1bW4+XG5cbiAgPCEtLSBGT1JNQVRTIENPTFVNTiAtLT5cbiAgPGduLXVpLWludGVyYWN0aXZlLXRhYmxlLWNvbHVtbj5cbiAgICA8bmctdGVtcGxhdGUgI2hlYWRlcj5cbiAgICAgIDxzcGFuIHRyYW5zbGF0ZT5yZWNvcmQubWV0YWRhdGEuZm9ybWF0czwvc3Bhbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjY2VsbCBsZXQtaXRlbT5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJmbGV4IGp1c3RpZnktc3RhcnQgaXRlbXMtY2VudGVyIGdhcC0yIGZvbnQtbWVkaXVtXCJcbiAgICAgICAgKm5nSWY9XCJnZXRSZWNvcmRGb3JtYXRzKGl0ZW0pIGFzIGZvcm1hdHNcIlxuICAgICAgICBbdGl0bGVdPVwiZm9ybWF0cy5qb2luKCcsICcpXCJcbiAgICAgID5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBjbGFzcz1cImJhZGdlLWJ0biBtaW4tdy1bNDVweF0gdGV4dC14cyB0ZXh0LXdoaXRlIHB4LTIgc2hyaW5rLTBcIlxuICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImdldEJhZGdlQ29sb3IoZm9ybWF0c1swXSlcIlxuICAgICAgICAgICpuZ0lmPVwiZm9ybWF0c1swXVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBmb3JtYXRzWzBdIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBjbGFzcz1cImJhZGdlLWJ0biBtaW4tdy1bNDVweF0gdGV4dC14cyB0ZXh0LXdoaXRlIHB4LTIgc2hyaW5rLTBcIlxuICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImdldEJhZGdlQ29sb3IoZm9ybWF0c1sxXSlcIlxuICAgICAgICAgICpuZ0lmPVwiZm9ybWF0c1sxXVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBmb3JtYXRzWzFdIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNocmluay0wIHRleHQteHNcIiAqbmdJZj1cImZvcm1hdHMuc2xpY2UoMikubGVuZ3RoID4gMFwiPlxuICAgICAgICAgIDxzcGFuPit7eyBmb3JtYXRzLnNsaWNlKDIpLmxlbmd0aCB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCIhZ2V0UmVjb3JkRm9ybWF0cyhpdGVtKVwiPjwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZ24tdWktaW50ZXJhY3RpdmUtdGFibGUtY29sdW1uPlxuXG4gIDwhLS0gT1dORVIgQ09MVU1OIC0tPlxuICA8Z24tdWktaW50ZXJhY3RpdmUtdGFibGUtY29sdW1uXG4gICAgW3NvcnRhYmxlXT1cInRydWVcIlxuICAgIFthY3RpdmVTb3J0XT1cImlzU29ydGVkQnkoJ3JlY29yZE93bmVyJylcIlxuICAgIChzb3J0Q2hhbmdlKT1cInNldFNvcnRCeSgncmVjb3JkT3duZXInLCAkZXZlbnQpXCJcbiAgPlxuICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGVyPlxuICAgICAgPHNwYW4gdHJhbnNsYXRlPnJlY29yZC5tZXRhZGF0YS5hdXRob3I8L3NwYW4+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI2NlbGwgbGV0LWl0ZW0+XG4gICAgICA8bWF0LWljb24gY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkXCI+cGVyc29uPC9tYXQtaWNvbj5cbiAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC14c1wiPnt7IGZvcm1hdFVzZXJJbmZvKGl0ZW0uZXh0cmFzPy5vd25lckluZm8pIH19PC9zcGFuPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZ24tdWktaW50ZXJhY3RpdmUtdGFibGUtY29sdW1uPlxuXG4gIDwhLS0gU1RBVFVTIENPTFVNTiAtLT5cbiAgPGduLXVpLWludGVyYWN0aXZlLXRhYmxlLWNvbHVtbj5cbiAgICA8bmctdGVtcGxhdGUgI2hlYWRlcj5cbiAgICAgIDxzcGFuIHRyYW5zbGF0ZT5yZWNvcmQubWV0YWRhdGEuc3RhdHVzPC9zcGFuPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNjZWxsIGxldC1pdGVtPlxuICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXhzXCI+XG4gICAgICAgIHt7XG4gICAgICAgICAgKGlzVW5zYXZlZERyYWZ0KGl0ZW0pXG4gICAgICAgICAgICA/ICdyZWNvcmQubWV0YWRhdGEuc3RhdHVzLm5vdFB1Ymxpc2hlZCdcbiAgICAgICAgICAgIDogJ3JlY29yZC5tZXRhZGF0YS5zdGF0dXMucHVibGlzaGVkJ1xuICAgICAgICAgICkgfCB0cmFuc2xhdGVcbiAgICAgICAgfX08L3NwYW5cbiAgICAgID5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2duLXVpLWludGVyYWN0aXZlLXRhYmxlLWNvbHVtbj5cblxuICA8IS0tIFVQREFURSBEQVRFIENPTFVNTiAtLT5cbiAgPGduLXVpLWludGVyYWN0aXZlLXRhYmxlLWNvbHVtblxuICAgIFtzb3J0YWJsZV09XCJ0cnVlXCJcbiAgICBbYWN0aXZlU29ydF09XCJpc1NvcnRlZEJ5KCdjaGFuZ2VEYXRlJylcIlxuICAgIChzb3J0Q2hhbmdlKT1cInNldFNvcnRCeSgnY2hhbmdlRGF0ZScsICRldmVudClcIlxuICA+XG4gICAgPG5nLXRlbXBsYXRlICNoZWFkZXI+XG4gICAgICA8c3BhbiB0cmFuc2xhdGU+cmVjb3JkLm1ldGFkYXRhLnVwZGF0ZWRPbjwvc3Bhbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjY2VsbCBsZXQtaXRlbT5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY2VudGVyIHctZnVsbCB0ZXh0LXhzXCI+XG4gICAgICAgIHt7IGlzVW5zYXZlZERyYWZ0KGl0ZW0pID8gJy0nIDogZGF0ZVRvU3RyaW5nKGl0ZW0ucmVjb3JkVXBkYXRlZCkgfX1cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZ24tdWktaW50ZXJhY3RpdmUtdGFibGUtY29sdW1uPlxuXG4gIDwhLS0gQUNUSU9OIE1FTlUgQ09MVU1OIC0tPlxuICA8Z24tdWktaW50ZXJhY3RpdmUtdGFibGUtY29sdW1uPlxuICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGVyPiA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjY2VsbCBsZXQtaXRlbT5cbiAgICAgIDxnbi11aS1hY3Rpb24tbWVudVxuICAgICAgICBbY2FuRHVwbGljYXRlXT1cImNhbkR1cGxpY2F0ZShpdGVtKVwiXG4gICAgICAgIFtjYW5EZWxldGVdPVwiY2FuRGVsZXRlKGl0ZW0pXCJcbiAgICAgICAgKGR1cGxpY2F0ZSk9XCJoYW5kbGVEdXBsaWNhdGUoaXRlbSlcIlxuICAgICAgICAoZGVsZXRlKT1cImhhbmRsZURlbGV0ZShpdGVtKVwiXG4gICAgICA+XG4gICAgICA8L2duLXVpLWFjdGlvbi1tZW51PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZ24tdWktaW50ZXJhY3RpdmUtdGFibGUtY29sdW1uPlxuPC9nbi11aS1pbnRlcmFjdGl2ZS10YWJsZT5cbiJdfQ==
@@ -1,4 +1,5 @@
1
1
  export * from './lib/app-config';
2
2
  export * from './lib/fixtures';
3
3
  export * from './lib/model';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvYXBwLWNvbmZpZy9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQkFBa0IsQ0FBQTtBQUNoQyxjQUFjLGdCQUFnQixDQUFBO0FBQzlCLGNBQWMsYUFBYSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvYXBwLWNvbmZpZydcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpeHR1cmVzJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWwnXG4iXX0=
4
+ export * from './lib/map-layers';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvYXBwLWNvbmZpZy9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQkFBa0IsQ0FBQTtBQUNoQyxjQUFjLGdCQUFnQixDQUFBO0FBQzlCLGNBQWMsYUFBYSxDQUFBO0FBQzNCLGNBQWMsa0JBQWtCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9hcHAtY29uZmlnJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZml4dHVyZXMnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL21hcC1sYXllcnMnXG4iXX0=
@@ -1,4 +1,4 @@
1
- export const CONFIG_OK = `
1
+ export const okAppConfigFixture = () => `
2
2
  [global]
3
3
  geonetwork4_api_url = "/geonetwork/srv/api"
4
4
  proxy_path = "/proxy/?url="
@@ -60,8 +60,8 @@ my.first.key = 'Erste Etikett.'
60
60
  my.sample.text = "Un bon exemple de texte."
61
61
  "my.quoted.text" = 'du texte entre guillements.'
62
62
  `;
63
- export const CONFIG_WITH_TRANSLATIONS = CONFIG_OK;
64
- export const CONFIG_MINIMAL = `
63
+ export const appConfigWithTranslationFixture = () => okAppConfigFixture();
64
+ export const minimalAppConfigFixture = () => `
65
65
  [global]
66
66
  geonetwork4_api_url = "/geonetwork/srv/api"
67
67
  proxy_path = "/proxy/?url="
@@ -72,7 +72,7 @@ secondary_color = "#c2e9dc"
72
72
  main_color = "#212029" # All-purpose text color
73
73
  background_color = "#fdfbff"
74
74
  `;
75
- export const MAP_CONFIG_FIXTURE = {
75
+ export const mapConfigFixture = () => ({
76
76
  MAX_ZOOM: 10,
77
77
  MAX_EXTENT: [-418263.418776, 5251529.591305, 961272.067714, 6706890.609855],
78
78
  DO_NOT_USE_DEFAULT_BASEMAP: false,
@@ -95,20 +95,20 @@ export const MAP_CONFIG_FIXTURE = {
95
95
  NAME: 'some_layername',
96
96
  },
97
97
  ],
98
- };
99
- export const CONFIG_MALFORMED = `
98
+ });
99
+ export const malformedConfigFixture = () => `
100
100
  {
101
101
  "I thought": "we were still doing json"
102
102
  }
103
103
  `;
104
- export const CONFIG_MISSING_MANDATORY = `
104
+ export const missingMandatoryConfigFixture = () => `
105
105
  [theme]
106
106
  primary_color = "#093564"
107
107
  secondary_color = "#c2e9dc"
108
108
  background_color = "#fdfbff"
109
109
  main_font = 'sans-serif'
110
110
  `;
111
- export const CONFIG_WRONG_LANGUAGE_CODE = `
111
+ export const wrongLanguageCodeConfigFixture = () => `
112
112
  [global]
113
113
  geonetwork4_api_url = "/geonetwork/srv/api"
114
114
  proxy_path = "/proxy/?url="
@@ -122,7 +122,7 @@ secondary_color = "#c2e9dc"
122
122
  main_color = "#212029" # All-purpose text color
123
123
  background_color = "#fdfbff"
124
124
  `;
125
- export const CONFIG_UNRECOGNIZED_KEYS = `
125
+ export const unrecognizedKeysConfigFixture = () => `
126
126
  [global]
127
127
  geonetwork4_api_url = "/geonetwork/srv/api"
128
128
  proxy_path = "/proxy/?url="
@@ -158,4 +158,4 @@ main_font = 'sans-serif'
158
158
  title_font = 'serif'
159
159
  another_color = 'red'
160
160
  `;
161
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvYXBwLWNvbmZpZy9zcmMvbGliL2ZpeHR1cmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQTZEeEIsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLFNBQVMsQ0FBQTtBQUVqRCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUc7Ozs7Ozs7Ozs7Q0FVN0IsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFjO0lBQzNDLFFBQVEsRUFBRSxFQUFFO0lBQ1osVUFBVSxFQUFFLENBQUMsQ0FBQyxhQUFhLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxjQUFjLENBQUM7SUFDM0UsMEJBQTBCLEVBQUUsS0FBSztJQUNqQyxlQUFlLEVBQUUsS0FBSztJQUN0Qiw0QkFBNEIsRUFDMUIsZ0xBQWdMO0lBQ2xMLDRCQUE0QixFQUFFLElBQUk7SUFDbEMsVUFBVSxFQUFFO1FBQ1Y7WUFDRSxJQUFJLEVBQUUsS0FBSztZQUNYLEdBQUcsRUFBRSw2QkFBNkI7U0FDbkM7UUFDRDtZQUNFLElBQUksRUFBRSxLQUFLO1lBQ1gsR0FBRyxFQUFFLHlCQUF5QjtZQUM5QixJQUFJLEVBQUUsZ0JBQWdCO1NBQ3ZCO1FBQ0Q7WUFDRSxJQUFJLEVBQUUsS0FBSztZQUNYLEdBQUcsRUFBRSx5QkFBeUI7WUFDOUIsSUFBSSxFQUFFLGdCQUFnQjtTQUN2QjtLQUNGO0NBQ0YsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHOzs7O0NBSS9CLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRzs7Ozs7O0NBTXZDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRzs7Ozs7Ozs7Ozs7OztDQWF6QyxDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBbUN2QyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWFwQ29uZmlnIH0gZnJvbSAnLi9tb2RlbCdcblxuZXhwb3J0IGNvbnN0IENPTkZJR19PSyA9IGBcbltnbG9iYWxdXG5nZW9uZXR3b3JrNF9hcGlfdXJsID0gXCIvZ2VvbmV0d29yay9zcnYvYXBpXCJcbnByb3h5X3BhdGggPSBcIi9wcm94eS8/dXJsPVwiXG5tZXRhZGF0YV9sYW5ndWFnZSA9IFwiZnJlXCJcbmxvZ2luX3VybCA9IFwiL2Nhcy9sb2dpbj9zZXJ2aWNlPVwiXG53ZWJfY29tcG9uZW50X2VtYmVkZGVyX3VybCA9IFwiL2RhdGFodWIvd2MtZW1iZWRkZXIuaHRtbFwiXG5cblttYXBdXG5tYXhfem9vbSA9IDEwXG5tYXhfZXh0ZW50ID0gWy00MTgyNjMuNDE4Nzc2LCA1MjUxNTI5LjU5MTMwNSwgOTYxMjcyLjA2NzcxNCwgNjcwNjg5MC42MDk4NTVdXG5kb19ub3RfdXNlX2RlZmF1bHRfYmFzZW1hcCA9IGZhbHNlXG5leHRlcm5hbF92aWV3ZXJfdXJsX3RlbXBsYXRlID0gJ2h0dHBzOi8vZXhhbXBsZS5jb20vbXl2aWV3ZXI/J1xuZXh0ZXJuYWxfdmlld2VyX29wZW5fbmV3X3RhYiA9IHRydWVcbltbbWFwX2xheWVyXV1cbnR5cGUgPSBcIndtc1wiXG51cmwgPSBcImh0dHBzOi8vd3d3LmdlbzJmcmFuY2UuZnIvZ2Vvc2VydmVyL2NyX2hkZi9vd3NcIlxubmFtZSA9IFwibWFzcXVlX2hkZl9pZ25fY2FydG9fbGF0aW4xXCJcbltbbWFwX2xheWVyXV1cbnR5cGUgPSBcIndmc1wiXG51cmwgPSBcImh0dHBzOi8vd3d3LmdlbzJmcmFuY2UuZnIvZ2Vvc2VydmVyL2NyX2hkZi9vd3NcIlxubmFtZSA9IFwibWFzcXVlX2hkZl9pZ25fY2FydG9fbGF0aW4xXCJcblxuW3RoZW1lXVxucHJpbWFyeV9jb2xvciA9IFwiIzA5MzU2NFwiXG5zZWNvbmRhcnlfY29sb3IgPSBcIiNjMmU5ZGNcIlxubWFpbl9jb2xvciA9IFwiIzIxMjAyOVwiICMgQWxsLXB1cnBvc2UgdGV4dCBjb2xvclxuYmFja2dyb3VuZF9jb2xvciA9IFwiI2ZkZmJmZlwiXG50aHVtYm5haWxfcGxhY2Vob2xkZXIgPSAnYXNzZXRzL2ltZy9wbGFjZWhvbGRlci5zdmcnXG5oZWFkZXJfYmFja2dyb3VuZCA9ICd0ZWFsJ1xuaGVhZGVyX2ZvcmVncm91bmRfY29sb3IgPSBcIiM4NzJlMmVcIlxubWFpbl9mb250ID0gJ3NhbnMtc2VyaWYnXG50aXRsZV9mb250ID0gJ3NlcmlmJ1xuZm9udHNfc3R5bGVzaGVldF91cmwgPSBcImh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9T3BlbitTYW5zXCJcblxuW3NlYXJjaF1cbmZpbHRlcl9nZW9tZXRyeV91cmwgPSAnaHR0cHM6Ly9teS5kb21haW4ub3JnL2dlb20uanNvbidcbmFkdmFuY2VkX2ZpbHRlcnMgPSBbJ3B1YmxpY2F0aW9uWWVhcicsICdkb2N1bWVudFN0YW5kYXJkJywgJ2luc3BpcmVLZXl3b3JkJywgJ3RvcGljJywgJ2xpY2Vuc2UnXVxuXG5bW3NlYXJjaF9wcmVzZXRdXVxuc29ydCA9IFwiLWNyZWF0ZURhdGVcIlxubmFtZSA9ICdmaWx0ZXJCeU9yZ3MnXG5maWx0ZXJzLnEgPSAnQ2FydG8nXG5maWx0ZXJzLm9yZ2FuaXNhdGlvbiA9IFsnT3JnMScsICdPcmcyJ11cbmZpbHRlcnMuZm9ybWF0ID0gWydFU1JJIFNoYXBlZmlsZSddXG5maWx0ZXJzLnRvcGljID0gWydib3VuZGFyaWVzJ11cbmZpbHRlcnMucHVibGljYXRpb25ZZWFyID0gWycyMDIzJywgJzIwMjInXVxuZmlsdGVycy5zcGF0aWFsID0gWyd5ZXMnXVxuXG5bdHJhbnNsYXRpb25zLmVuXVxuXCJteS5maXJzdC5rZXlcIiA9ICdGaXJzdCBsYWJlbC4nXG5cIm15LnNlY29uZC5rZXlcIiA9IFwiXCJcIlxuU2Vjb25kIGxhYmVsLFxub24gdHdvIGxpbmVzLlwiXCJcIlxuXG5bdHJhbnNsYXRpb25zLmRlXVxubXkuZmlyc3Qua2V5ID0gJ0Vyc3RlIEV0aWtldHQuJ1xuXG5bdHJhbnNsYXRpb25zLmZyXVxubXkuc2FtcGxlLnRleHQgPSBcIlVuIGJvbiBleGVtcGxlIGRlIHRleHRlLlwiXG5cIm15LnF1b3RlZC50ZXh0XCIgPSAnZHUgdGV4dGUgZW50cmUgZ3VpbGxlbWVudHMuJ1xuYFxuXG5leHBvcnQgY29uc3QgQ09ORklHX1dJVEhfVFJBTlNMQVRJT05TID0gQ09ORklHX09LXG5cbmV4cG9ydCBjb25zdCBDT05GSUdfTUlOSU1BTCA9IGBcbltnbG9iYWxdXG5nZW9uZXR3b3JrNF9hcGlfdXJsID0gXCIvZ2VvbmV0d29yay9zcnYvYXBpXCJcbnByb3h5X3BhdGggPSBcIi9wcm94eS8/dXJsPVwiXG5cblt0aGVtZV1cbnByaW1hcnlfY29sb3IgPSBcIiMwOTM1NjRcIlxuc2Vjb25kYXJ5X2NvbG9yID0gXCIjYzJlOWRjXCJcbm1haW5fY29sb3IgPSBcIiMyMTIwMjlcIiAjIEFsbC1wdXJwb3NlIHRleHQgY29sb3JcbmJhY2tncm91bmRfY29sb3IgPSBcIiNmZGZiZmZcIlxuYFxuXG5leHBvcnQgY29uc3QgTUFQX0NPTkZJR19GSVhUVVJFOiBNYXBDb25maWcgPSB7XG4gIE1BWF9aT09NOiAxMCxcbiAgTUFYX0VYVEVOVDogWy00MTgyNjMuNDE4Nzc2LCA1MjUxNTI5LjU5MTMwNSwgOTYxMjcyLjA2NzcxNCwgNjcwNjg5MC42MDk4NTVdLFxuICBET19OT1RfVVNFX0RFRkFVTFRfQkFTRU1BUDogZmFsc2UsXG4gIERPX05PVF9USUxFX1dNUzogZmFsc2UsXG4gIEVYVEVSTkFMX1ZJRVdFUl9VUkxfVEVNUExBVEU6XG4gICAgJ2h0dHBzOi8vZXhhbXBsZS5jb20vbXl2aWV3ZXIvIy8/YWN0aW9ucz1be1widHlwZVwiOlwiQ0FUQUxPRzpBRERfTEFZRVJTX0ZST01fQ0FUQUxPR1NcIixcImxheWVyc1wiOltcIiR7bGF5ZXJfbmFtZX1cIl0sXCJzb3VyY2VzXCI6W3tcInVybFwiOlwiJHtzZXJ2aWNlX3VybH1cIixcInR5cGVcIjpcIiR7c2VydmljZV90eXBlfVwifV19XScsXG4gIEVYVEVSTkFMX1ZJRVdFUl9PUEVOX05FV19UQUI6IHRydWUsXG4gIE1BUF9MQVlFUlM6IFtcbiAgICB7XG4gICAgICBUWVBFOiAneHl6JyxcbiAgICAgIFVSTDogJ2h0dHBzOi8vc29tZS1iYXNlbWFwLXNlcnZlcicsXG4gICAgfSxcbiAgICB7XG4gICAgICBUWVBFOiAnd21zJyxcbiAgICAgIFVSTDogJ2h0dHBzOi8vc29tZS13bXMtc2VydmVyJyxcbiAgICAgIE5BTUU6ICdzb21lX2xheWVybmFtZScsXG4gICAgfSxcbiAgICB7XG4gICAgICBUWVBFOiAnd2ZzJyxcbiAgICAgIFVSTDogJ2h0dHBzOi8vc29tZS13ZnMtc2VydmVyJyxcbiAgICAgIE5BTUU6ICdzb21lX2xheWVybmFtZScsXG4gICAgfSxcbiAgXSxcbn1cblxuZXhwb3J0IGNvbnN0IENPTkZJR19NQUxGT1JNRUQgPSBgXG57XG4gIFwiSSB0aG91Z2h0XCI6IFwid2Ugd2VyZSBzdGlsbCBkb2luZyBqc29uXCJcbn1cbmBcblxuZXhwb3J0IGNvbnN0IENPTkZJR19NSVNTSU5HX01BTkRBVE9SWSA9IGBcblt0aGVtZV1cbnByaW1hcnlfY29sb3IgPSBcIiMwOTM1NjRcIlxuc2Vjb25kYXJ5X2NvbG9yID0gXCIjYzJlOWRjXCJcbmJhY2tncm91bmRfY29sb3IgPSBcIiNmZGZiZmZcIlxubWFpbl9mb250ID0gJ3NhbnMtc2VyaWYnXG5gXG5cbmV4cG9ydCBjb25zdCBDT05GSUdfV1JPTkdfTEFOR1VBR0VfQ09ERSA9IGBcbltnbG9iYWxdXG5nZW9uZXR3b3JrNF9hcGlfdXJsID0gXCIvZ2VvbmV0d29yay9zcnYvYXBpXCJcbnByb3h5X3BhdGggPSBcIi9wcm94eS8/dXJsPVwiXG5tZXRhZGF0YV9sYW5ndWFnZSA9IFwiZnJhXCJcblxuW21hcF1cblxuW3RoZW1lXVxucHJpbWFyeV9jb2xvciA9IFwiIzA5MzU2NFwiXG5zZWNvbmRhcnlfY29sb3IgPSBcIiNjMmU5ZGNcIlxubWFpbl9jb2xvciA9IFwiIzIxMjAyOVwiICMgQWxsLXB1cnBvc2UgdGV4dCBjb2xvclxuYmFja2dyb3VuZF9jb2xvciA9IFwiI2ZkZmJmZlwiXG5gXG5cbmV4cG9ydCBjb25zdCBDT05GSUdfVU5SRUNPR05JWkVEX0tFWVMgPSBgXG5bZ2xvYmFsXVxuZ2VvbmV0d29yazRfYXBpX3VybCA9IFwiL2dlb25ldHdvcmsvc3J2L2FwaVwiXG5wcm94eV9wYXRoID0gXCIvcHJveHkvP3VybD1cIlxubWV0YWRhdGFfbGFuZ3VhZ2UgPSBcImZyZVwiXG5hbm90aGVyX3BhdGggPSAnL3doYXRldmVyJ1xuXG5bbWFwXVxubWF4X3pvb20gPSAxMFxubWF4X2V4dGVudCA9IFstNDE4MjYzLjQxODc3NiwgNTI1MTUyOS41OTEzMDUsIDk2MTI3Mi4wNjc3MTQsIDY3MDY4OTAuNjA5ODU1XVxuZG9fbm90X3VzZV9kZWZhdWx0X2Jhc2VtYXAgPSBmYWxzZVxuZXh0ZXJuYWxfdmlld2VyX3VybF90ZW1wbGF0ZSA9ICdodHRwczovL2V4YW1wbGUuY29tL215dmlld2VyPydcbmV4dGVybmFsX3ZpZXdlcl9vcGVuX25ld190YWIgPSB0cnVlXG5hbm90aGVyX3pvb20gPSAxNVxuW1ttYXBfbGF5ZXJdXVxudHlwZSA9IFwid21zXCJcbnVybCA9IFwiaHR0cHM6Ly93d3cuZ2VvMmZyYW5jZS5mci9nZW9zZXJ2ZXIvY3JfaGRmL293c1wiXG5uYW1lID0gXCJtYXNxdWVfaGRmX2lnbl9jYXJ0b19sYXRpbjFcIlxuW1ttYXBfbGF5ZXJdXVxudHlwZSA9IFwid2ZzXCJcbnVybCA9IFwiaHR0cHM6Ly93d3cuZ2VvMmZyYW5jZS5mci9nZW9zZXJ2ZXIvY3JfaGRmL293c1wiXG5uYW1lID0gXCJtYXNxdWVfaGRmX2lnbl9jYXJ0b19sYXRpbjFcIlxuYW5vdGhlcl9sYXllciA9IFwid3JvbmcgbGF5ZXIgZGVmaW5pdGlvblwiXG5cblt0aGVtZV1cbnByaW1hcnlfY29sb3IgPSBcIiMwOTM1NjRcIlxuc2Vjb25kYXJ5X2NvbG9yID0gXCIjYzJlOWRjXCJcbm1haW5fY29sb3IgPSBcIiMyMTIwMjlcIiAjIEFsbC1wdXJwb3NlIHRleHQgY29sb3JcbmJhY2tncm91bmRfY29sb3IgPSBcIiNmZGZiZmZcIlxudGh1bWJuYWlsX3BsYWNlaG9sZGVyID0gJ2Fzc2V0cy9pbWcvcGxhY2Vob2xkZXIuc3ZnJ1xuaGVhZGVyX2JhY2tncm91bmQgPSAndGVhbCdcbmhlYWRlcl9mb3JlZ3JvdW5kX2NvbG9yID0gXCIjODcyZTJlXCJcbm1haW5fZm9udCA9ICdzYW5zLXNlcmlmJ1xudGl0bGVfZm9udCA9ICdzZXJpZidcbmFub3RoZXJfY29sb3IgPSAncmVkJ1xuYFxuIl19
161
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvYXBwLWNvbmZpZy9zcmMvbGliL2ZpeHR1cmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLEdBQUcsRUFBRSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBNkR2QyxDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQUcsR0FBRyxFQUFFLENBQUMsa0JBQWtCLEVBQUUsQ0FBQTtBQUV6RSxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxHQUFHLEVBQUUsQ0FBQzs7Ozs7Ozs7OztDQVU1QyxDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsR0FBYyxFQUFFLENBQUMsQ0FBQztJQUNoRCxRQUFRLEVBQUUsRUFBRTtJQUNaLFVBQVUsRUFBRSxDQUFDLENBQUMsYUFBYSxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsY0FBYyxDQUFDO0lBQzNFLDBCQUEwQixFQUFFLEtBQUs7SUFDakMsZUFBZSxFQUFFLEtBQUs7SUFDdEIsNEJBQTRCLEVBQzFCLGdMQUFnTDtJQUNsTCw0QkFBNEIsRUFBRSxJQUFJO0lBQ2xDLFVBQVUsRUFBRTtRQUNWO1lBQ0UsSUFBSSxFQUFFLEtBQUs7WUFDWCxHQUFHLEVBQUUsNkJBQTZCO1NBQ25DO1FBQ0Q7WUFDRSxJQUFJLEVBQUUsS0FBSztZQUNYLEdBQUcsRUFBRSx5QkFBeUI7WUFDOUIsSUFBSSxFQUFFLGdCQUFnQjtTQUN2QjtRQUNEO1lBQ0UsSUFBSSxFQUFFLEtBQUs7WUFDWCxHQUFHLEVBQUUseUJBQXlCO1lBQzlCLElBQUksRUFBRSxnQkFBZ0I7U0FDdkI7S0FDRjtDQUNGLENBQUMsQ0FBQTtBQUVGLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLEdBQUcsRUFBRSxDQUFDOzs7O0NBSTNDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRyxHQUFHLEVBQUUsQ0FBQzs7Ozs7O0NBTWxELENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxHQUFHLEVBQUUsQ0FBQzs7Ozs7Ozs7Ozs7OztDQWFuRCxDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQUcsR0FBRyxFQUFFLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBbUNsRCxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWFwQ29uZmlnIH0gZnJvbSAnLi9tb2RlbCdcblxuZXhwb3J0IGNvbnN0IG9rQXBwQ29uZmlnRml4dHVyZSA9ICgpID0+IGBcbltnbG9iYWxdXG5nZW9uZXR3b3JrNF9hcGlfdXJsID0gXCIvZ2VvbmV0d29yay9zcnYvYXBpXCJcbnByb3h5X3BhdGggPSBcIi9wcm94eS8/dXJsPVwiXG5tZXRhZGF0YV9sYW5ndWFnZSA9IFwiZnJlXCJcbmxvZ2luX3VybCA9IFwiL2Nhcy9sb2dpbj9zZXJ2aWNlPVwiXG53ZWJfY29tcG9uZW50X2VtYmVkZGVyX3VybCA9IFwiL2RhdGFodWIvd2MtZW1iZWRkZXIuaHRtbFwiXG5cblttYXBdXG5tYXhfem9vbSA9IDEwXG5tYXhfZXh0ZW50ID0gWy00MTgyNjMuNDE4Nzc2LCA1MjUxNTI5LjU5MTMwNSwgOTYxMjcyLjA2NzcxNCwgNjcwNjg5MC42MDk4NTVdXG5kb19ub3RfdXNlX2RlZmF1bHRfYmFzZW1hcCA9IGZhbHNlXG5leHRlcm5hbF92aWV3ZXJfdXJsX3RlbXBsYXRlID0gJ2h0dHBzOi8vZXhhbXBsZS5jb20vbXl2aWV3ZXI/J1xuZXh0ZXJuYWxfdmlld2VyX29wZW5fbmV3X3RhYiA9IHRydWVcbltbbWFwX2xheWVyXV1cbnR5cGUgPSBcIndtc1wiXG51cmwgPSBcImh0dHBzOi8vd3d3LmdlbzJmcmFuY2UuZnIvZ2Vvc2VydmVyL2NyX2hkZi9vd3NcIlxubmFtZSA9IFwibWFzcXVlX2hkZl9pZ25fY2FydG9fbGF0aW4xXCJcbltbbWFwX2xheWVyXV1cbnR5cGUgPSBcIndmc1wiXG51cmwgPSBcImh0dHBzOi8vd3d3LmdlbzJmcmFuY2UuZnIvZ2Vvc2VydmVyL2NyX2hkZi9vd3NcIlxubmFtZSA9IFwibWFzcXVlX2hkZl9pZ25fY2FydG9fbGF0aW4xXCJcblxuW3RoZW1lXVxucHJpbWFyeV9jb2xvciA9IFwiIzA5MzU2NFwiXG5zZWNvbmRhcnlfY29sb3IgPSBcIiNjMmU5ZGNcIlxubWFpbl9jb2xvciA9IFwiIzIxMjAyOVwiICMgQWxsLXB1cnBvc2UgdGV4dCBjb2xvclxuYmFja2dyb3VuZF9jb2xvciA9IFwiI2ZkZmJmZlwiXG50aHVtYm5haWxfcGxhY2Vob2xkZXIgPSAnYXNzZXRzL2ltZy9wbGFjZWhvbGRlci5zdmcnXG5oZWFkZXJfYmFja2dyb3VuZCA9ICd0ZWFsJ1xuaGVhZGVyX2ZvcmVncm91bmRfY29sb3IgPSBcIiM4NzJlMmVcIlxubWFpbl9mb250ID0gJ3NhbnMtc2VyaWYnXG50aXRsZV9mb250ID0gJ3NlcmlmJ1xuZm9udHNfc3R5bGVzaGVldF91cmwgPSBcImh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9T3BlbitTYW5zXCJcblxuW3NlYXJjaF1cbmZpbHRlcl9nZW9tZXRyeV91cmwgPSAnaHR0cHM6Ly9teS5kb21haW4ub3JnL2dlb20uanNvbidcbmFkdmFuY2VkX2ZpbHRlcnMgPSBbJ3B1YmxpY2F0aW9uWWVhcicsICdkb2N1bWVudFN0YW5kYXJkJywgJ2luc3BpcmVLZXl3b3JkJywgJ3RvcGljJywgJ2xpY2Vuc2UnXVxuXG5bW3NlYXJjaF9wcmVzZXRdXVxuc29ydCA9IFwiLWNyZWF0ZURhdGVcIlxubmFtZSA9ICdmaWx0ZXJCeU9yZ3MnXG5maWx0ZXJzLnEgPSAnQ2FydG8nXG5maWx0ZXJzLm9yZ2FuaXNhdGlvbiA9IFsnT3JnMScsICdPcmcyJ11cbmZpbHRlcnMuZm9ybWF0ID0gWydFU1JJIFNoYXBlZmlsZSddXG5maWx0ZXJzLnRvcGljID0gWydib3VuZGFyaWVzJ11cbmZpbHRlcnMucHVibGljYXRpb25ZZWFyID0gWycyMDIzJywgJzIwMjInXVxuZmlsdGVycy5zcGF0aWFsID0gWyd5ZXMnXVxuXG5bdHJhbnNsYXRpb25zLmVuXVxuXCJteS5maXJzdC5rZXlcIiA9ICdGaXJzdCBsYWJlbC4nXG5cIm15LnNlY29uZC5rZXlcIiA9IFwiXCJcIlxuU2Vjb25kIGxhYmVsLFxub24gdHdvIGxpbmVzLlwiXCJcIlxuXG5bdHJhbnNsYXRpb25zLmRlXVxubXkuZmlyc3Qua2V5ID0gJ0Vyc3RlIEV0aWtldHQuJ1xuXG5bdHJhbnNsYXRpb25zLmZyXVxubXkuc2FtcGxlLnRleHQgPSBcIlVuIGJvbiBleGVtcGxlIGRlIHRleHRlLlwiXG5cIm15LnF1b3RlZC50ZXh0XCIgPSAnZHUgdGV4dGUgZW50cmUgZ3VpbGxlbWVudHMuJ1xuYFxuXG5leHBvcnQgY29uc3QgYXBwQ29uZmlnV2l0aFRyYW5zbGF0aW9uRml4dHVyZSA9ICgpID0+IG9rQXBwQ29uZmlnRml4dHVyZSgpXG5cbmV4cG9ydCBjb25zdCBtaW5pbWFsQXBwQ29uZmlnRml4dHVyZSA9ICgpID0+IGBcbltnbG9iYWxdXG5nZW9uZXR3b3JrNF9hcGlfdXJsID0gXCIvZ2VvbmV0d29yay9zcnYvYXBpXCJcbnByb3h5X3BhdGggPSBcIi9wcm94eS8/dXJsPVwiXG5cblt0aGVtZV1cbnByaW1hcnlfY29sb3IgPSBcIiMwOTM1NjRcIlxuc2Vjb25kYXJ5X2NvbG9yID0gXCIjYzJlOWRjXCJcbm1haW5fY29sb3IgPSBcIiMyMTIwMjlcIiAjIEFsbC1wdXJwb3NlIHRleHQgY29sb3JcbmJhY2tncm91bmRfY29sb3IgPSBcIiNmZGZiZmZcIlxuYFxuXG5leHBvcnQgY29uc3QgbWFwQ29uZmlnRml4dHVyZSA9ICgpOiBNYXBDb25maWcgPT4gKHtcbiAgTUFYX1pPT006IDEwLFxuICBNQVhfRVhURU5UOiBbLTQxODI2My40MTg3NzYsIDUyNTE1MjkuNTkxMzA1LCA5NjEyNzIuMDY3NzE0LCA2NzA2ODkwLjYwOTg1NV0sXG4gIERPX05PVF9VU0VfREVGQVVMVF9CQVNFTUFQOiBmYWxzZSxcbiAgRE9fTk9UX1RJTEVfV01TOiBmYWxzZSxcbiAgRVhURVJOQUxfVklFV0VSX1VSTF9URU1QTEFURTpcbiAgICAnaHR0cHM6Ly9leGFtcGxlLmNvbS9teXZpZXdlci8jLz9hY3Rpb25zPVt7XCJ0eXBlXCI6XCJDQVRBTE9HOkFERF9MQVlFUlNfRlJPTV9DQVRBTE9HU1wiLFwibGF5ZXJzXCI6W1wiJHtsYXllcl9uYW1lfVwiXSxcInNvdXJjZXNcIjpbe1widXJsXCI6XCIke3NlcnZpY2VfdXJsfVwiLFwidHlwZVwiOlwiJHtzZXJ2aWNlX3R5cGV9XCJ9XX1dJyxcbiAgRVhURVJOQUxfVklFV0VSX09QRU5fTkVXX1RBQjogdHJ1ZSxcbiAgTUFQX0xBWUVSUzogW1xuICAgIHtcbiAgICAgIFRZUEU6ICd4eXonLFxuICAgICAgVVJMOiAnaHR0cHM6Ly9zb21lLWJhc2VtYXAtc2VydmVyJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIFRZUEU6ICd3bXMnLFxuICAgICAgVVJMOiAnaHR0cHM6Ly9zb21lLXdtcy1zZXJ2ZXInLFxuICAgICAgTkFNRTogJ3NvbWVfbGF5ZXJuYW1lJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIFRZUEU6ICd3ZnMnLFxuICAgICAgVVJMOiAnaHR0cHM6Ly9zb21lLXdmcy1zZXJ2ZXInLFxuICAgICAgTkFNRTogJ3NvbWVfbGF5ZXJuYW1lJyxcbiAgICB9LFxuICBdLFxufSlcblxuZXhwb3J0IGNvbnN0IG1hbGZvcm1lZENvbmZpZ0ZpeHR1cmUgPSAoKSA9PiBgXG57XG4gIFwiSSB0aG91Z2h0XCI6IFwid2Ugd2VyZSBzdGlsbCBkb2luZyBqc29uXCJcbn1cbmBcblxuZXhwb3J0IGNvbnN0IG1pc3NpbmdNYW5kYXRvcnlDb25maWdGaXh0dXJlID0gKCkgPT4gYFxuW3RoZW1lXVxucHJpbWFyeV9jb2xvciA9IFwiIzA5MzU2NFwiXG5zZWNvbmRhcnlfY29sb3IgPSBcIiNjMmU5ZGNcIlxuYmFja2dyb3VuZF9jb2xvciA9IFwiI2ZkZmJmZlwiXG5tYWluX2ZvbnQgPSAnc2Fucy1zZXJpZidcbmBcblxuZXhwb3J0IGNvbnN0IHdyb25nTGFuZ3VhZ2VDb2RlQ29uZmlnRml4dHVyZSA9ICgpID0+IGBcbltnbG9iYWxdXG5nZW9uZXR3b3JrNF9hcGlfdXJsID0gXCIvZ2VvbmV0d29yay9zcnYvYXBpXCJcbnByb3h5X3BhdGggPSBcIi9wcm94eS8/dXJsPVwiXG5tZXRhZGF0YV9sYW5ndWFnZSA9IFwiZnJhXCJcblxuW21hcF1cblxuW3RoZW1lXVxucHJpbWFyeV9jb2xvciA9IFwiIzA5MzU2NFwiXG5zZWNvbmRhcnlfY29sb3IgPSBcIiNjMmU5ZGNcIlxubWFpbl9jb2xvciA9IFwiIzIxMjAyOVwiICMgQWxsLXB1cnBvc2UgdGV4dCBjb2xvclxuYmFja2dyb3VuZF9jb2xvciA9IFwiI2ZkZmJmZlwiXG5gXG5cbmV4cG9ydCBjb25zdCB1bnJlY29nbml6ZWRLZXlzQ29uZmlnRml4dHVyZSA9ICgpID0+IGBcbltnbG9iYWxdXG5nZW9uZXR3b3JrNF9hcGlfdXJsID0gXCIvZ2VvbmV0d29yay9zcnYvYXBpXCJcbnByb3h5X3BhdGggPSBcIi9wcm94eS8/dXJsPVwiXG5tZXRhZGF0YV9sYW5ndWFnZSA9IFwiZnJlXCJcbmFub3RoZXJfcGF0aCA9ICcvd2hhdGV2ZXInXG5cblttYXBdXG5tYXhfem9vbSA9IDEwXG5tYXhfZXh0ZW50ID0gWy00MTgyNjMuNDE4Nzc2LCA1MjUxNTI5LjU5MTMwNSwgOTYxMjcyLjA2NzcxNCwgNjcwNjg5MC42MDk4NTVdXG5kb19ub3RfdXNlX2RlZmF1bHRfYmFzZW1hcCA9IGZhbHNlXG5leHRlcm5hbF92aWV3ZXJfdXJsX3RlbXBsYXRlID0gJ2h0dHBzOi8vZXhhbXBsZS5jb20vbXl2aWV3ZXI/J1xuZXh0ZXJuYWxfdmlld2VyX29wZW5fbmV3X3RhYiA9IHRydWVcbmFub3RoZXJfem9vbSA9IDE1XG5bW21hcF9sYXllcl1dXG50eXBlID0gXCJ3bXNcIlxudXJsID0gXCJodHRwczovL3d3dy5nZW8yZnJhbmNlLmZyL2dlb3NlcnZlci9jcl9oZGYvb3dzXCJcbm5hbWUgPSBcIm1hc3F1ZV9oZGZfaWduX2NhcnRvX2xhdGluMVwiXG5bW21hcF9sYXllcl1dXG50eXBlID0gXCJ3ZnNcIlxudXJsID0gXCJodHRwczovL3d3dy5nZW8yZnJhbmNlLmZyL2dlb3NlcnZlci9jcl9oZGYvb3dzXCJcbm5hbWUgPSBcIm1hc3F1ZV9oZGZfaWduX2NhcnRvX2xhdGluMVwiXG5hbm90aGVyX2xheWVyID0gXCJ3cm9uZyBsYXllciBkZWZpbml0aW9uXCJcblxuW3RoZW1lXVxucHJpbWFyeV9jb2xvciA9IFwiIzA5MzU2NFwiXG5zZWNvbmRhcnlfY29sb3IgPSBcIiNjMmU5ZGNcIlxubWFpbl9jb2xvciA9IFwiIzIxMjAyOVwiICMgQWxsLXB1cnBvc2UgdGV4dCBjb2xvclxuYmFja2dyb3VuZF9jb2xvciA9IFwiI2ZkZmJmZlwiXG50aHVtYm5haWxfcGxhY2Vob2xkZXIgPSAnYXNzZXRzL2ltZy9wbGFjZWhvbGRlci5zdmcnXG5oZWFkZXJfYmFja2dyb3VuZCA9ICd0ZWFsJ1xuaGVhZGVyX2ZvcmVncm91bmRfY29sb3IgPSBcIiM4NzJlMmVcIlxubWFpbl9mb250ID0gJ3NhbnMtc2VyaWYnXG50aXRsZV9mb250ID0gJ3NlcmlmJ1xuYW5vdGhlcl9jb2xvciA9ICdyZWQnXG5gXG4iXX0=