geonetwork-ui 2.4.0-dev.ac57b75b → 2.4.0-dev.c2a3cdd1

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 (527) hide show
  1. package/esm2022/libs/api/metadata-converter/src/index.mjs +2 -1
  2. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +10 -3
  3. package/esm2022/libs/api/metadata-converter/src/lib/gn4/types/keywords.model.mjs +1 -1
  4. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.mjs +5 -5
  5. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.mjs +7 -4
  6. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.mjs +10 -7
  7. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.mjs +11 -16
  8. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +6 -6
  9. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +28 -33
  10. package/esm2022/libs/api/metadata-converter/src/lib/xml-utils.mjs +22 -4
  11. package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +78 -39
  12. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.mjs +11 -1
  13. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +51 -7
  14. package/esm2022/libs/common/domain/src/lib/model/record/contact.model.mjs +28 -1
  15. package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
  16. package/esm2022/libs/common/domain/src/lib/model/user/user.model.mjs +1 -1
  17. package/esm2022/libs/common/domain/src/lib/platform.service.interface.mjs +1 -1
  18. package/esm2022/libs/common/domain/src/lib/repository/records-repository.interface.mjs +1 -1
  19. package/esm2022/libs/data-access/gn4/src/fixtures/site.fixtures.mjs +5 -5
  20. package/esm2022/libs/data-access/gn4/src/fixtures/ui.fixtures.mjs +3 -3
  21. package/esm2022/libs/feature/dataviz/src/lib/chart-view/chart-view.component.mjs +1 -1
  22. package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +1 -1
  23. package/esm2022/libs/feature/dataviz/src/lib/table-view/table-view.component.mjs +1 -1
  24. package/esm2022/libs/feature/editor/src/index.mjs +2 -1
  25. package/esm2022/libs/feature/editor/src/lib/+state/editor.actions.mjs +2 -1
  26. package/esm2022/libs/feature/editor/src/lib/+state/editor.effects.mjs +6 -1
  27. package/esm2022/libs/feature/editor/src/lib/+state/editor.facade.mjs +4 -1
  28. package/esm2022/libs/feature/editor/src/lib/components/contact-card/contact-card.component.mjs +17 -0
  29. package/esm2022/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.mjs +80 -0
  30. package/esm2022/libs/feature/editor/src/lib/components/import-record/import-record.component.mjs +93 -0
  31. package/esm2022/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.mjs +71 -0
  32. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.mjs +145 -0
  33. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-date-updated/form-field-date-updated.component.mjs +19 -0
  34. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.mjs +31 -40
  35. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.mjs +11 -9
  36. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.mjs +101 -0
  37. 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
  38. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.mjs +44 -0
  39. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.mjs +93 -11
  40. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.mjs +12 -16
  41. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-simple/form-field-simple.component.mjs +9 -8
  42. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.mjs +140 -5
  43. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.mjs +41 -69
  44. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.mjs +17 -15
  45. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.mjs +46 -55
  46. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/index.mjs +2 -2
  47. package/esm2022/libs/feature/editor/src/lib/components/record-form/record-form.component.mjs +5 -4
  48. package/esm2022/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.mjs +8 -8
  49. package/esm2022/libs/feature/editor/src/lib/feature-editor.module.mjs +6 -4
  50. package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +58 -7
  51. package/esm2022/libs/feature/editor/src/lib/models/editor-config.model.mjs +1 -1
  52. package/esm2022/libs/feature/editor/src/lib/services/editor.service.mjs +5 -1
  53. package/esm2022/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.mjs +6 -6
  54. package/esm2022/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.mjs +7 -6
  55. package/esm2022/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.mjs +8 -5
  56. package/esm2022/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.mjs +6 -7
  57. package/esm2022/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.mjs +8 -7
  58. package/esm2022/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.mjs +7 -6
  59. package/esm2022/libs/feature/map/src/lib/feature-map.module.mjs +7 -26
  60. package/esm2022/libs/feature/map/src/lib/layers-panel/layers-panel.component.mjs +29 -13
  61. package/esm2022/libs/feature/map/src/lib/style/map-style.fixtures.mjs +3 -3
  62. package/esm2022/libs/feature/record/src/lib/data-view/data-view.component.mjs +1 -1
  63. package/esm2022/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.mjs +1 -1
  64. package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +1 -1
  65. package/esm2022/libs/feature/record/src/lib/state/mdview.facade.mjs +4 -2
  66. package/esm2022/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.mjs +3 -3
  67. package/esm2022/libs/feature/search/src/lib/results-table/results-table-container.component.mjs +10 -4
  68. package/esm2022/libs/ui/dataviz/src/lib/table/table.fixtures.mjs +3 -3
  69. package/esm2022/libs/ui/elements/src/index.mjs +2 -2
  70. package/esm2022/libs/ui/elements/src/lib/download-item/download-item.component.mjs +2 -2
  71. package/esm2022/libs/ui/elements/src/lib/downloads-list/downloads-list.component.mjs +1 -1
  72. package/esm2022/libs/ui/elements/src/lib/link-card/link-card.component.mjs +2 -2
  73. package/esm2022/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.mjs +6 -6
  74. package/esm2022/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.mjs +2 -2
  75. package/esm2022/libs/ui/elements/src/lib/record-api-form/record-api-form.component.mjs +5 -5
  76. package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +7 -4
  77. package/esm2022/libs/ui/inputs/src/index.mjs +6 -1
  78. package/esm2022/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.mjs +24 -7
  79. package/esm2022/libs/ui/inputs/src/lib/badge/badge.component.mjs +5 -3
  80. package/esm2022/libs/ui/inputs/src/lib/button/button.component.mjs +8 -1
  81. package/esm2022/libs/ui/inputs/src/lib/date-picker/date-picker.component.mjs +11 -4
  82. package/esm2022/libs/ui/inputs/src/lib/date-range-picker/date-range-picker.component.mjs +9 -3
  83. package/esm2022/libs/ui/inputs/src/lib/editable-label/editable-label.directive.mjs +26 -24
  84. package/esm2022/libs/ui/inputs/src/lib/file-input/file-input.component.mjs +87 -0
  85. package/esm2022/libs/ui/inputs/src/lib/image-input/image-input.component.mjs +21 -23
  86. package/esm2022/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.mjs +32 -0
  87. package/esm2022/libs/ui/inputs/src/lib/text-area/text-area.component.mjs +7 -21
  88. package/esm2022/libs/ui/inputs/src/lib/text-input/text-input.component.mjs +6 -17
  89. package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +3 -7
  90. package/esm2022/libs/ui/inputs/src/lib/url-input/url-input.component.mjs +43 -0
  91. package/esm2022/libs/ui/layout/src/index.mjs +3 -1
  92. package/esm2022/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.mjs +5 -3
  93. package/esm2022/libs/ui/layout/src/lib/modal-dialog/modal-dialog.component.mjs +29 -0
  94. package/esm2022/libs/ui/layout/src/lib/sortable-list/sortable-list.component.mjs +43 -0
  95. package/esm2022/libs/ui/map/src/lib/ui-map.module.mjs +3 -3
  96. package/esm2022/libs/ui/search/src/lib/facets/fixtures/aggregations-model-response.mjs +7 -7
  97. package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +8 -8
  98. package/esm2022/libs/util/app-config/src/lib/fixtures.mjs +10 -10
  99. package/esm2022/libs/util/shared/src/lib/links/link-classifier.service.mjs +1 -1
  100. package/esm2022/libs/util/shared/src/lib/links/link-utils.mjs +1 -1
  101. package/esm2022/libs/util/shared/src/lib/services/theme.service.mjs +2 -1
  102. package/esm2022/libs/util/shared/src/lib/utils/bytes-convert.mjs +4 -1
  103. package/esm2022/translations/de.json +66 -2
  104. package/esm2022/translations/en.json +66 -2
  105. package/esm2022/translations/es.json +64 -0
  106. package/esm2022/translations/fr.json +69 -5
  107. package/esm2022/translations/it.json +66 -2
  108. package/esm2022/translations/nl.json +64 -0
  109. package/esm2022/translations/pt.json +64 -0
  110. package/fesm2022/geonetwork-ui.mjs +3093 -1619
  111. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  112. package/libs/api/metadata-converter/src/index.d.ts +1 -0
  113. package/libs/api/metadata-converter/src/index.d.ts.map +1 -1
  114. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts +3 -3
  115. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
  116. package/libs/api/metadata-converter/src/lib/gn4/types/keywords.model.d.ts +2 -6
  117. package/libs/api/metadata-converter/src/lib/gn4/types/keywords.model.d.ts.map +1 -1
  118. package/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.d.ts +2 -2
  119. package/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.d.ts.map +1 -1
  120. package/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.d.ts +1 -1
  121. package/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.d.ts.map +1 -1
  122. package/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.d.ts.map +1 -1
  123. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts +4 -5
  124. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts.map +1 -1
  125. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts +7 -7
  126. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
  127. package/libs/api/metadata-converter/src/lib/xml-utils.d.ts +6 -0
  128. package/libs/api/metadata-converter/src/lib/xml-utils.d.ts.map +1 -1
  129. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts +12 -7
  130. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts.map +1 -1
  131. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.d.ts.map +1 -1
  132. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +22 -2
  133. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
  134. package/libs/common/domain/src/lib/model/record/contact.model.d.ts +1 -0
  135. package/libs/common/domain/src/lib/model/record/contact.model.d.ts.map +1 -1
  136. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +7 -6
  137. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
  138. package/libs/common/domain/src/lib/model/user/user.model.d.ts +1 -1
  139. package/libs/common/domain/src/lib/model/user/user.model.d.ts.map +1 -1
  140. package/libs/common/domain/src/lib/platform.service.interface.d.ts +16 -0
  141. package/libs/common/domain/src/lib/platform.service.interface.d.ts.map +1 -1
  142. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts +7 -0
  143. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts.map +1 -1
  144. package/libs/data-access/gn4/src/fixtures/site.fixtures.d.ts +2 -2
  145. package/libs/data-access/gn4/src/fixtures/site.fixtures.d.ts.map +1 -1
  146. package/libs/data-access/gn4/src/fixtures/ui.fixtures.d.ts +1 -1
  147. package/libs/data-access/gn4/src/fixtures/ui.fixtures.d.ts.map +1 -1
  148. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts +2 -2
  149. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts.map +1 -1
  150. package/libs/feature/dataviz/src/lib/service/data.service.d.ts +6 -6
  151. package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
  152. package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts +3 -3
  153. package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts.map +1 -1
  154. package/libs/feature/editor/src/index.d.ts +1 -0
  155. package/libs/feature/editor/src/index.d.ts.map +1 -1
  156. package/libs/feature/editor/src/lib/+state/editor.actions.d.ts +1 -0
  157. package/libs/feature/editor/src/lib/+state/editor.actions.d.ts.map +1 -1
  158. package/libs/feature/editor/src/lib/+state/editor.effects.d.ts +5 -0
  159. package/libs/feature/editor/src/lib/+state/editor.effects.d.ts.map +1 -1
  160. package/libs/feature/editor/src/lib/+state/editor.facade.d.ts +1 -0
  161. package/libs/feature/editor/src/lib/+state/editor.facade.d.ts.map +1 -1
  162. package/libs/feature/editor/src/lib/components/contact-card/contact-card.component.d.ts +8 -0
  163. package/libs/feature/editor/src/lib/components/contact-card/contact-card.component.d.ts.map +1 -0
  164. package/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.d.ts +33 -0
  165. package/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.d.ts.map +1 -0
  166. package/libs/feature/editor/src/lib/components/import-record/import-record.component.d.ts +33 -0
  167. package/libs/feature/editor/src/lib/components/import-record/import-record.component.d.ts.map +1 -0
  168. package/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.d.ts +15 -0
  169. package/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.d.ts.map +1 -0
  170. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.d.ts +41 -0
  171. 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 -0
  172. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-date-updated/form-field-date-updated.component.d.ts +9 -0
  173. 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
  174. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.d.ts +11 -19
  175. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.d.ts.map +1 -1
  176. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.d.ts +6 -4
  177. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.d.ts.map +1 -1
  178. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.d.ts +22 -0
  179. 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
  180. 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
  181. 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
  182. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.d.ts +15 -0
  183. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.d.ts.map +1 -0
  184. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.d.ts +24 -4
  185. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.d.ts.map +1 -1
  186. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.d.ts +4 -6
  187. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.d.ts.map +1 -1
  188. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-simple/form-field-simple.component.d.ts +4 -3
  189. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-simple/form-field-simple.component.d.ts.map +1 -1
  190. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.d.ts +28 -0
  191. 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
  192. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.d.ts +10 -18
  193. 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
  194. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.d.ts +5 -5
  195. 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
  196. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts +18 -24
  197. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts.map +1 -1
  198. package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts +1 -1
  199. package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts.map +1 -1
  200. package/libs/feature/editor/src/lib/components/record-form/record-form.component.d.ts +5 -3
  201. package/libs/feature/editor/src/lib/components/record-form/record-form.component.d.ts.map +1 -1
  202. package/libs/feature/editor/src/lib/feature-editor.module.d.ts +2 -1
  203. package/libs/feature/editor/src/lib/feature-editor.module.d.ts.map +1 -1
  204. package/libs/feature/editor/src/lib/fields.config.d.ts +15 -0
  205. package/libs/feature/editor/src/lib/fields.config.d.ts.map +1 -1
  206. package/libs/feature/editor/src/lib/models/editor-config.model.d.ts +6 -0
  207. package/libs/feature/editor/src/lib/models/editor-config.model.d.ts.map +1 -1
  208. package/libs/feature/editor/src/lib/services/editor.service.d.ts +1 -0
  209. package/libs/feature/editor/src/lib/services/editor.service.d.ts.map +1 -1
  210. package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.d.ts +1 -1
  211. package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.d.ts.map +1 -1
  212. package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.d.ts +6 -6
  213. package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.d.ts.map +1 -1
  214. package/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.d.ts +1 -1
  215. package/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.d.ts.map +1 -1
  216. package/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.d.ts +1 -1
  217. package/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.d.ts.map +1 -1
  218. package/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.d.ts +1 -1
  219. package/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.d.ts.map +1 -1
  220. package/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.d.ts +1 -1
  221. package/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.d.ts.map +1 -1
  222. package/libs/feature/map/src/lib/feature-map.module.d.ts +16 -21
  223. package/libs/feature/map/src/lib/feature-map.module.d.ts.map +1 -1
  224. package/libs/feature/map/src/lib/layers-panel/layers-panel.component.d.ts +1 -1
  225. package/libs/feature/map/src/lib/layers-panel/layers-panel.component.d.ts.map +1 -1
  226. package/libs/feature/map/src/lib/style/map-style.fixtures.d.ts +2 -2
  227. package/libs/feature/map/src/lib/style/map-style.fixtures.d.ts.map +1 -1
  228. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts +3 -3
  229. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts.map +1 -1
  230. package/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.d.ts +2 -2
  231. package/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.d.ts.map +1 -1
  232. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts +2 -2
  233. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
  234. package/libs/feature/record/src/lib/state/mdview.facade.d.ts +7 -7
  235. package/libs/feature/record/src/lib/state/mdview.facade.d.ts.map +1 -1
  236. package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts +1 -0
  237. package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts.map +1 -1
  238. package/libs/ui/dataviz/src/lib/table/table.fixtures.d.ts +2 -2
  239. package/libs/ui/dataviz/src/lib/table/table.fixtures.d.ts.map +1 -1
  240. package/libs/ui/elements/src/index.d.ts +1 -1
  241. package/libs/ui/elements/src/index.d.ts.map +1 -1
  242. package/libs/ui/elements/src/lib/download-item/download-item.component.d.ts +2 -2
  243. package/libs/ui/elements/src/lib/download-item/download-item.component.d.ts.map +1 -1
  244. package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts +7 -7
  245. package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts.map +1 -1
  246. package/libs/ui/elements/src/lib/link-card/link-card.component.d.ts +2 -2
  247. package/libs/ui/elements/src/lib/link-card/link-card.component.d.ts.map +1 -1
  248. package/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.d.ts +2 -2
  249. package/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.d.ts.map +1 -1
  250. package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts +1 -1
  251. package/libs/ui/elements/src/lib/ui-elements.module.d.ts +2 -1
  252. package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
  253. package/libs/ui/inputs/src/index.d.ts +5 -0
  254. package/libs/ui/inputs/src/index.d.ts.map +1 -1
  255. package/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.d.ts +9 -1
  256. package/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.d.ts.map +1 -1
  257. package/libs/ui/inputs/src/lib/badge/badge.component.d.ts.map +1 -1
  258. package/libs/ui/inputs/src/lib/button/button.component.d.ts +1 -1
  259. package/libs/ui/inputs/src/lib/button/button.component.d.ts.map +1 -1
  260. package/libs/ui/inputs/src/lib/date-picker/date-picker.component.d.ts.map +1 -1
  261. package/libs/ui/inputs/src/lib/date-range-picker/date-range-picker.component.d.ts.map +1 -1
  262. package/libs/ui/inputs/src/lib/editable-label/editable-label.directive.d.ts +5 -3
  263. package/libs/ui/inputs/src/lib/editable-label/editable-label.directive.d.ts.map +1 -1
  264. package/libs/ui/inputs/src/lib/file-input/file-input.component.d.ts +24 -0
  265. package/libs/ui/inputs/src/lib/file-input/file-input.component.d.ts.map +1 -0
  266. package/libs/ui/inputs/src/lib/image-input/image-input.component.d.ts +6 -9
  267. package/libs/ui/inputs/src/lib/image-input/image-input.component.d.ts.map +1 -1
  268. package/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.d.ts +16 -0
  269. package/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.d.ts.map +1 -0
  270. package/libs/ui/inputs/src/lib/text-area/text-area.component.d.ts +0 -4
  271. package/libs/ui/inputs/src/lib/text-area/text-area.component.d.ts.map +1 -1
  272. package/libs/ui/inputs/src/lib/text-input/text-input.component.d.ts +2 -4
  273. package/libs/ui/inputs/src/lib/text-input/text-input.component.d.ts.map +1 -1
  274. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +34 -35
  275. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts.map +1 -1
  276. package/libs/ui/inputs/src/lib/url-input/url-input.component.d.ts +18 -0
  277. package/libs/ui/inputs/src/lib/url-input/url-input.component.d.ts.map +1 -0
  278. package/libs/ui/layout/src/index.d.ts +2 -0
  279. package/libs/ui/layout/src/index.d.ts.map +1 -1
  280. package/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.d.ts +2 -2
  281. package/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.d.ts.map +1 -1
  282. package/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.d.ts +1 -1
  283. package/libs/ui/layout/src/lib/modal-dialog/modal-dialog.component.d.ts +20 -0
  284. package/libs/ui/layout/src/lib/modal-dialog/modal-dialog.component.d.ts.map +1 -0
  285. package/libs/ui/layout/src/lib/sortable-list/sortable-list.component.d.ts +14 -0
  286. package/libs/ui/layout/src/lib/sortable-list/sortable-list.component.d.ts.map +1 -0
  287. package/libs/ui/search/src/lib/facets/fixtures/aggregations-model-response.d.ts +3 -3
  288. package/libs/ui/search/src/lib/facets/fixtures/aggregations-model-response.d.ts.map +1 -1
  289. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts +3 -3
  290. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts.map +1 -1
  291. package/libs/util/app-config/src/lib/fixtures.d.ts +8 -8
  292. package/libs/util/app-config/src/lib/fixtures.d.ts.map +1 -1
  293. package/libs/util/shared/src/lib/links/link-classifier.service.d.ts +3 -3
  294. package/libs/util/shared/src/lib/links/link-classifier.service.d.ts.map +1 -1
  295. package/libs/util/shared/src/lib/links/link-utils.d.ts +6 -6
  296. package/libs/util/shared/src/lib/links/link-utils.d.ts.map +1 -1
  297. package/libs/util/shared/src/lib/services/theme.service.d.ts.map +1 -1
  298. package/libs/util/shared/src/lib/utils/bytes-convert.d.ts +2 -1
  299. package/libs/util/shared/src/lib/utils/bytes-convert.d.ts.map +1 -1
  300. package/package.json +1 -1
  301. package/src/libs/api/metadata-converter/src/index.ts +1 -0
  302. package/src/libs/api/metadata-converter/src/lib/fixtures/generic.records.ts +7 -2
  303. package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.ts +1 -1
  304. package/src/libs/api/metadata-converter/src/lib/fixtures/geocat-ch.records.ts +1 -1
  305. package/src/libs/api/metadata-converter/src/lib/fixtures/metawal.records.ts +1 -1
  306. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +18 -16
  307. package/src/libs/api/metadata-converter/src/lib/gn4/types/keywords.model.ts +2 -6
  308. package/src/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.ts +4 -4
  309. package/src/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.ts +12 -4
  310. package/src/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.ts +14 -8
  311. package/src/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.ts +8 -15
  312. package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +13 -15
  313. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +48 -63
  314. package/src/libs/api/metadata-converter/src/lib/xml-utils.ts +25 -6
  315. package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +132 -68
  316. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.ts +12 -1
  317. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +90 -15
  318. package/src/libs/common/domain/src/lib/model/record/contact.model.ts +28 -0
  319. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +8 -7
  320. package/src/libs/common/domain/src/lib/model/user/user.model.ts +1 -1
  321. package/src/libs/common/domain/src/lib/platform.service.interface.ts +30 -0
  322. package/src/libs/common/domain/src/lib/repository/records-repository.interface.ts +10 -0
  323. package/src/libs/common/fixtures/src/index.ts +1 -1
  324. package/src/libs/common/fixtures/src/lib/editor/editor.fixtures.ts +37 -37
  325. package/src/libs/common/fixtures/src/lib/elasticsearch/{aggregations-request.ts → aggregations-request.fixtures.ts} +1 -3
  326. package/src/libs/common/fixtures/src/lib/elasticsearch/{aggregations-response.ts → aggregations-response.fixtures.ts} +6 -8
  327. package/src/libs/common/fixtures/src/lib/elasticsearch/{full-response.ts → full-response.fixtures.ts} +1 -3
  328. package/src/libs/common/fixtures/src/lib/elasticsearch/index.ts +5 -5
  329. package/src/libs/common/fixtures/src/lib/elasticsearch/metadata-links.fixtures.ts +1 -3
  330. package/src/libs/common/fixtures/src/lib/elasticsearch/metadata.fixtures.ts +1739 -1742
  331. package/src/libs/common/fixtures/src/lib/elasticsearch/{search-requests.ts → search-requests.fixtures.ts} +1 -3
  332. package/src/libs/common/fixtures/src/lib/elasticsearch/{search-responses.ts → search-responses.fixtures.ts} +4 -6
  333. package/src/libs/common/fixtures/src/lib/geojson.fixtures.ts +57178 -57195
  334. package/src/libs/common/fixtures/src/lib/gn4/groups.fixtures.ts +2 -4
  335. package/src/libs/common/fixtures/src/lib/link.fixtures.ts +233 -164
  336. package/src/libs/common/fixtures/src/lib/ol-feature.fixtures.ts +10 -0
  337. package/src/libs/common/fixtures/src/lib/organisations.fixture.ts +37 -3
  338. package/src/libs/common/fixtures/src/lib/record-link.fixtures.ts +9 -7
  339. package/src/libs/common/fixtures/src/lib/records.fixtures.ts +9 -9
  340. package/src/libs/common/fixtures/src/lib/repository.fixtures.ts +4 -4
  341. package/src/libs/common/fixtures/src/lib/search/aggregations.ts +2 -3
  342. package/src/libs/common/fixtures/src/lib/user-feedbacks.fixtures.ts +14 -15
  343. package/src/libs/common/fixtures/src/lib/user.fixtures.ts +32 -15
  344. package/src/libs/data-access/gn4/src/fixtures/site.fixtures.ts +4 -4
  345. package/src/libs/data-access/gn4/src/fixtures/ui.fixtures.ts +2 -2
  346. package/src/libs/feature/catalog/src/lib/sources/sources.fixture.ts +1 -1
  347. package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.ts +3 -3
  348. package/src/libs/feature/dataviz/src/lib/figure/figure.fixtures.ts +2 -2
  349. package/src/libs/feature/dataviz/src/lib/service/data.service.ts +6 -6
  350. package/src/libs/feature/dataviz/src/lib/table-view/table-view.component.ts +4 -4
  351. package/src/libs/feature/editor/src/index.ts +1 -0
  352. package/src/libs/feature/editor/src/lib/+state/editor.actions.ts +2 -0
  353. package/src/libs/feature/editor/src/lib/+state/editor.effects.ts +15 -0
  354. package/src/libs/feature/editor/src/lib/+state/editor.facade.ts +4 -0
  355. package/src/libs/feature/editor/src/lib/components/contact-card/contact-card.component.html +15 -0
  356. package/src/libs/feature/editor/src/lib/components/contact-card/contact-card.component.ts +18 -0
  357. package/src/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.html +26 -0
  358. package/src/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.ts +90 -0
  359. package/src/libs/feature/editor/src/lib/components/import-record/import-record.component.html +43 -0
  360. package/src/libs/feature/editor/src/lib/components/import-record/import-record.component.ts +129 -0
  361. package/src/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.html +35 -0
  362. package/src/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.ts +79 -0
  363. 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
  364. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.html +66 -0
  365. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.ts +211 -0
  366. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-date-updated/form-field-date-updated.component.css +0 -0
  367. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-date-updated/form-field-date-updated.component.html +4 -0
  368. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-date-updated/form-field-date-updated.component.ts +21 -0
  369. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.html +7 -16
  370. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.ts +44 -45
  371. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.css +8 -0
  372. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.ts +13 -5
  373. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.css +0 -0
  374. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.html +4 -0
  375. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.ts +128 -0
  376. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.css +0 -0
  377. 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
  378. 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
  379. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.css +0 -0
  380. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.html +6 -0
  381. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.ts +48 -0
  382. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.html +11 -5
  383. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.ts +107 -7
  384. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.html +15 -8
  385. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.ts +11 -14
  386. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-simple/form-field-simple.component.html +5 -3
  387. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-simple/form-field-simple.component.ts +11 -4
  388. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.html +20 -1
  389. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.ts +212 -1
  390. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.css +4 -0
  391. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.html +31 -4
  392. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.ts +43 -87
  393. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.css +4 -0
  394. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.html +16 -14
  395. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.ts +17 -15
  396. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html +110 -74
  397. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +50 -55
  398. package/src/libs/feature/editor/src/lib/components/record-form/form-field/index.ts +1 -1
  399. package/src/libs/feature/editor/src/lib/components/record-form/record-form.component.html +32 -29
  400. package/src/libs/feature/editor/src/lib/components/record-form/record-form.component.ts +9 -4
  401. package/src/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.html +1 -1
  402. package/src/libs/feature/editor/src/lib/feature-editor.module.ts +2 -1
  403. package/src/libs/feature/editor/src/lib/fields.config.ts +64 -6
  404. package/src/libs/feature/editor/src/lib/models/editor-config.model.ts +12 -0
  405. package/src/libs/feature/editor/src/lib/services/editor.service.ts +7 -0
  406. package/src/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.ts +3 -0
  407. package/src/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.ts +12 -8
  408. package/src/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.ts +5 -0
  409. package/src/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.html +1 -1
  410. package/src/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.ts +10 -7
  411. package/src/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.html +1 -1
  412. package/src/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.ts +5 -0
  413. package/src/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.html +1 -1
  414. package/src/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.ts +6 -1
  415. package/src/libs/feature/map/src/lib/feature-map.module.ts +2 -15
  416. package/src/libs/feature/map/src/lib/layers-panel/layers-panel.component.ts +24 -1
  417. package/src/libs/feature/map/src/lib/map-context/map-context.fixtures.ts +26 -22
  418. package/src/libs/feature/map/src/lib/style/map-style.fixtures.ts +29 -27
  419. package/src/libs/feature/record/src/lib/data-view/data-view.component.ts +3 -3
  420. package/src/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.ts +2 -2
  421. package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +2 -2
  422. package/src/libs/feature/record/src/lib/state/mdview.facade.ts +5 -1
  423. package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.html +2 -1
  424. package/src/libs/feature/search/src/lib/results-table/results-table-container.component.html +1 -0
  425. package/src/libs/feature/search/src/lib/results-table/results-table-container.component.ts +22 -1
  426. package/src/libs/feature/search/src/lib/state/fixtures/search-state.fixtures.ts +2 -2
  427. package/src/libs/ui/dataviz/src/lib/chart/chart.fixtures.ts +2 -2
  428. package/src/libs/ui/dataviz/src/lib/table/table.fixtures.ts +2 -2
  429. package/src/libs/ui/elements/src/index.ts +1 -1
  430. package/src/libs/ui/elements/src/lib/download-item/download-item.component.ts +4 -4
  431. package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.ts +7 -7
  432. package/src/libs/ui/elements/src/lib/link-card/link-card.component.ts +3 -3
  433. package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.html +13 -20
  434. package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.ts +1 -1
  435. package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.css +5 -0
  436. package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.html +2 -2
  437. package/src/libs/ui/elements/src/lib/ui-elements.module.ts +6 -1
  438. package/src/libs/ui/inputs/src/index.ts +5 -0
  439. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.css +25 -18
  440. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.html +38 -24
  441. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.ts +19 -4
  442. package/src/libs/ui/inputs/src/lib/badge/badge.component.html +12 -3
  443. package/src/libs/ui/inputs/src/lib/badge/badge.component.ts +2 -1
  444. package/src/libs/ui/inputs/src/lib/button/button.component.ts +15 -1
  445. package/src/libs/ui/inputs/src/lib/date-picker/date-picker.component.css +7 -2
  446. package/src/libs/ui/inputs/src/lib/date-picker/date-picker.component.html +14 -6
  447. package/src/libs/ui/inputs/src/lib/date-picker/date-picker.component.ts +7 -1
  448. package/src/libs/ui/inputs/src/lib/date-range-picker/date-range-picker.component.css +7 -2
  449. package/src/libs/ui/inputs/src/lib/date-range-picker/date-range-picker.component.html +28 -23
  450. package/src/libs/ui/inputs/src/lib/date-range-picker/date-range-picker.component.ts +7 -1
  451. package/src/libs/ui/inputs/src/lib/editable-label/editable-label.directive.ts +40 -26
  452. package/src/libs/ui/inputs/src/lib/file-input/file-input.component.css +4 -0
  453. package/src/libs/ui/inputs/src/lib/file-input/file-input.component.html +89 -0
  454. package/src/libs/ui/inputs/src/lib/file-input/file-input.component.ts +92 -0
  455. package/src/libs/ui/inputs/src/lib/image-input/image-input.component.css +4 -0
  456. package/src/libs/ui/inputs/src/lib/image-input/image-input.component.html +76 -68
  457. package/src/libs/ui/inputs/src/lib/image-input/image-input.component.ts +19 -21
  458. package/src/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.css +4 -3
  459. package/src/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.html +0 -1
  460. package/src/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.ts +1 -2
  461. package/src/libs/ui/inputs/src/lib/text-area/text-area.component.html +3 -2
  462. package/src/libs/ui/inputs/src/lib/text-area/text-area.component.ts +3 -28
  463. package/src/libs/ui/inputs/src/lib/text-input/text-input.component.html +4 -3
  464. package/src/libs/ui/inputs/src/lib/text-input/text-input.component.ts +4 -16
  465. package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +0 -3
  466. package/src/libs/ui/inputs/src/lib/url-input/url-input.component.css +9 -0
  467. package/src/libs/ui/inputs/src/lib/url-input/url-input.component.html +37 -0
  468. package/src/libs/ui/inputs/src/lib/url-input/url-input.component.ts +33 -0
  469. package/src/libs/ui/layout/src/index.ts +2 -0
  470. package/src/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.html +8 -3
  471. package/src/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.ts +4 -3
  472. package/src/libs/ui/layout/src/lib/modal-dialog/modal-dialog.component.css +0 -0
  473. package/src/libs/ui/layout/src/lib/modal-dialog/modal-dialog.component.html +15 -0
  474. package/src/libs/ui/layout/src/lib/modal-dialog/modal-dialog.component.ts +44 -0
  475. package/src/libs/ui/layout/src/lib/sortable-list/sortable-list.component.html +37 -0
  476. package/src/libs/ui/{elements → layout}/src/lib/sortable-list/sortable-list.component.ts +11 -18
  477. package/src/libs/ui/map/src/lib/ui-map.module.ts +1 -1
  478. package/src/libs/ui/search/src/lib/facets/fixtures/aggregations-model-response.ts +7 -6
  479. package/src/libs/ui/search/src/lib/results-table/results-table.component.html +9 -2
  480. package/src/libs/ui/search/src/lib/results-table/results-table.component.ts +5 -6
  481. package/src/libs/util/app-config/src/lib/fixtures.ts +9 -9
  482. package/src/libs/util/shared/src/lib/links/link-classifier.service.ts +4 -3
  483. package/src/libs/util/shared/src/lib/links/link-utils.ts +6 -6
  484. package/src/libs/util/shared/src/lib/services/theme.service.ts +1 -0
  485. package/src/libs/util/shared/src/lib/utils/bytes-convert.ts +4 -1
  486. package/tailwind.base.config.js +1 -0
  487. package/tailwind.base.css +49 -6
  488. package/translations/de.json +66 -2
  489. package/translations/en.json +66 -2
  490. package/translations/es.json +64 -0
  491. package/translations/fr.json +69 -5
  492. package/translations/it.json +66 -2
  493. package/translations/nl.json +64 -0
  494. package/translations/pt.json +64 -0
  495. package/translations/sk.json +64 -0
  496. package/esm2022/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.mjs +0 -138
  497. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.mjs +0 -15
  498. 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
  499. 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
  500. package/esm2022/libs/ui/elements/src/lib/sortable-list/sortable-list.component.mjs +0 -46
  501. package/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.d.ts +0 -27
  502. package/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.d.ts.map +0 -1
  503. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.d.ts +0 -8
  504. 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
  505. 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
  506. 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
  507. 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
  508. 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
  509. package/libs/ui/elements/src/lib/sortable-list/sortable-list.component.d.ts +0 -23
  510. package/libs/ui/elements/src/lib/sortable-list/sortable-list.component.d.ts.map +0 -1
  511. package/src/libs/common/fixtures/src/lib/ol-feature.fixture.ts +0 -7
  512. package/src/libs/common/fixtures/src/lib/utils/freeze.ts +0 -10
  513. package/src/libs/common/fixtures/src/lib/utils/index.ts +0 -1
  514. package/src/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.html +0 -10
  515. package/src/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.ts +0 -166
  516. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.html +0 -4
  517. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.ts +0 -15
  518. 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
  519. 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
  520. 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
  521. 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
  522. package/src/libs/ui/elements/src/lib/sortable-list/sortable-list.component.html +0 -38
  523. /package/src/libs/feature/editor/src/lib/components/{overview-upload/overview-upload.component.css → contact-card/contact-card.component.css} +0 -0
  524. /package/src/libs/feature/editor/src/lib/components/{record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.css → generic-keywords/generic-keywords.component.css} +0 -0
  525. /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 → import-record/import-record.component.css} +0 -0
  526. /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 → online-resource-card/online-resource-card.component.css} +0 -0
  527. /package/src/libs/ui/{elements → layout}/src/lib/sortable-list/sortable-list.component.css +0 -0
@@ -0,0 +1,43 @@
1
+ import { ChangeDetectorRef, Component, Input, Output } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { ButtonComponent } from '../button/button.component';
4
+ import { MatIconModule } from '@angular/material/icon';
5
+ import { filter } from 'rxjs/operators';
6
+ import { Subject } from 'rxjs';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/common";
9
+ import * as i2 from "@angular/material/icon";
10
+ export class UrlInputComponent {
11
+ constructor(cd) {
12
+ this.cd = cd;
13
+ this.value = '';
14
+ this.extraClass = '';
15
+ this.placeholder = 'https://';
16
+ this.rawChange = new Subject();
17
+ this.valueChange = this.rawChange.pipe(filter((v) => !!v));
18
+ }
19
+ handleInput() {
20
+ this.cd.markForCheck();
21
+ }
22
+ handleChange(element) {
23
+ const value = element.value;
24
+ this.rawChange.next(value);
25
+ }
26
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UrlInputComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
27
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: UrlInputComponent, isStandalone: true, selector: "gn-ui-url-input", inputs: { value: "value", extraClass: "extraClass", placeholder: "placeholder", disabled: "disabled" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<span class=\"w-full inline-block relative\">\n <input\n #input\n class=\"gn-ui-text-input px-[var(--text-padding)]\"\n [ngClass]=\"extraClass\"\n type=\"url\"\n [value]=\"value\"\n (input)=\"handleInput()\"\n (keydown.enter)=\"handleChange(input)\"\n [placeholder]=\"placeholder\"\n [attr.aria-label]=\"placeholder\"\n [disabled]=\"disabled\"\n />\n <div\n class=\"absolute inset-y-[var(--side-padding)] left-[var(--2x-side-padding)] grid justify-center items-center pointer-events-none\"\n [ngClass]='{\n \"text-primary\": !disabled,\n \"text-primary-lightest\": disabled,\n }'\n >\n <mat-icon\n class=\"material-symbols-outlined h-[24px] !w-[26px] text-[28px] leading-[24px]\"\n >\n link\n </mat-icon>\n </div>\n <gn-ui-button\n extraClass=\"absolute inset-y-[var(--side-padding)] right-[var(--side-padding)]\"\n type=\"primary\"\n [disabled]=\"disabled || input.value === ''\"\n (buttonClick)=\"handleChange(input)\"\n >\n <mat-icon class=\"material-symbols-outlined text-[20px] leading-[24px]\">\n arrow_upward\n </mat-icon>\n </gn-ui-button>\n</span>\n", styles: [":host{--gn-ui-button-rounded: 8px;--gn-ui-button-width: 32px;--gn-ui-button-padding: 0;--side-padding: calc(var(--gn-ui-text-input-padding, .6em) - 6px);--2x-side-padding: calc(var(--side-padding) * 2);--text-padding: calc(var(--side-padding) + 40px)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
28
+ }
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UrlInputComponent, decorators: [{
30
+ type: Component,
31
+ args: [{ selector: 'gn-ui-url-input', standalone: true, imports: [CommonModule, ButtonComponent, MatIconModule], template: "<span class=\"w-full inline-block relative\">\n <input\n #input\n class=\"gn-ui-text-input px-[var(--text-padding)]\"\n [ngClass]=\"extraClass\"\n type=\"url\"\n [value]=\"value\"\n (input)=\"handleInput()\"\n (keydown.enter)=\"handleChange(input)\"\n [placeholder]=\"placeholder\"\n [attr.aria-label]=\"placeholder\"\n [disabled]=\"disabled\"\n />\n <div\n class=\"absolute inset-y-[var(--side-padding)] left-[var(--2x-side-padding)] grid justify-center items-center pointer-events-none\"\n [ngClass]='{\n \"text-primary\": !disabled,\n \"text-primary-lightest\": disabled,\n }'\n >\n <mat-icon\n class=\"material-symbols-outlined h-[24px] !w-[26px] text-[28px] leading-[24px]\"\n >\n link\n </mat-icon>\n </div>\n <gn-ui-button\n extraClass=\"absolute inset-y-[var(--side-padding)] right-[var(--side-padding)]\"\n type=\"primary\"\n [disabled]=\"disabled || input.value === ''\"\n (buttonClick)=\"handleChange(input)\"\n >\n <mat-icon class=\"material-symbols-outlined text-[20px] leading-[24px]\">\n arrow_upward\n </mat-icon>\n </gn-ui-button>\n</span>\n", styles: [":host{--gn-ui-button-rounded: 8px;--gn-ui-button-width: 32px;--gn-ui-button-padding: 0;--side-padding: calc(var(--gn-ui-text-input-padding, .6em) - 6px);--2x-side-padding: calc(var(--side-padding) * 2);--text-padding: calc(var(--side-padding) + 40px)}\n"] }]
32
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { value: [{
33
+ type: Input
34
+ }], extraClass: [{
35
+ type: Input
36
+ }], placeholder: [{
37
+ type: Input
38
+ }], disabled: [{
39
+ type: Input
40
+ }], valueChange: [{
41
+ type: Output
42
+ }] } });
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXJsLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvaW5wdXRzL3NyYy9saWIvdXJsLWlucHV0L3VybC1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2lucHV0cy9zcmMvbGliL3VybC1pbnB1dC91cmwtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzNFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3RELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUN2QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFBOzs7O0FBUzlCLE1BQU0sT0FBTyxpQkFBaUI7SUFRNUIsWUFBb0IsRUFBcUI7UUFBckIsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFQaEMsVUFBSyxHQUFHLEVBQUUsQ0FBQTtRQUNWLGVBQVUsR0FBRyxFQUFFLENBQUE7UUFDZixnQkFBVyxHQUFHLFVBQVUsQ0FBQTtRQUVqQyxjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQTtRQUN2QixnQkFBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFFbkIsQ0FBQztJQUU3QyxXQUFXO1FBQ1QsSUFBSSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQTtJQUN4QixDQUFDO0lBRUQsWUFBWSxDQUFDLE9BQXlCO1FBQ3BDLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUE7UUFDM0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDNUIsQ0FBQzsrR0FqQlUsaUJBQWlCO21HQUFqQixpQkFBaUIsNE5DZDlCLHVvQ0FxQ0Esc1REekJZLFlBQVksNkhBQUUsZUFBZSw4SEFBRSxhQUFhOzs0RkFFM0MsaUJBQWlCO2tCQVA3QixTQUFTOytCQUNFLGlCQUFpQixjQUdmLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxlQUFlLEVBQUUsYUFBYSxDQUFDO3dHQUc5QyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbidcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLXVybC1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi91cmwtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi91cmwtaW5wdXQuY29tcG9uZW50LmNzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBCdXR0b25Db21wb25lbnQsIE1hdEljb25Nb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBVcmxJbnB1dENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHZhbHVlID0gJydcbiAgQElucHV0KCkgZXh0cmFDbGFzcyA9ICcnXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJ2h0dHBzOi8vJ1xuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhblxuICByYXdDaGFuZ2UgPSBuZXcgU3ViamVjdDxzdHJpbmc+KClcbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gdGhpcy5yYXdDaGFuZ2UucGlwZShmaWx0ZXIoKHYpID0+ICEhdikpXG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgaGFuZGxlSW5wdXQoKSB7XG4gICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKVxuICB9XG5cbiAgaGFuZGxlQ2hhbmdlKGVsZW1lbnQ6IEhUTUxJbnB1dEVsZW1lbnQpIHtcbiAgICBjb25zdCB2YWx1ZSA9IGVsZW1lbnQudmFsdWVcbiAgICB0aGlzLnJhd0NoYW5nZS5uZXh0KHZhbHVlKVxuICB9XG59XG4iLCI8c3BhbiBjbGFzcz1cInctZnVsbCBpbmxpbmUtYmxvY2sgcmVsYXRpdmVcIj5cbiAgPGlucHV0XG4gICAgI2lucHV0XG4gICAgY2xhc3M9XCJnbi11aS10ZXh0LWlucHV0IHB4LVt2YXIoLS10ZXh0LXBhZGRpbmcpXVwiXG4gICAgW25nQ2xhc3NdPVwiZXh0cmFDbGFzc1wiXG4gICAgdHlwZT1cInVybFwiXG4gICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICAoaW5wdXQpPVwiaGFuZGxlSW5wdXQoKVwiXG4gICAgKGtleWRvd24uZW50ZXIpPVwiaGFuZGxlQ2hhbmdlKGlucHV0KVwiXG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInBsYWNlaG9sZGVyXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAvPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJhYnNvbHV0ZSBpbnNldC15LVt2YXIoLS1zaWRlLXBhZGRpbmcpXSBsZWZ0LVt2YXIoLS0yeC1zaWRlLXBhZGRpbmcpXSBncmlkIGp1c3RpZnktY2VudGVyIGl0ZW1zLWNlbnRlciBwb2ludGVyLWV2ZW50cy1ub25lXCJcbiAgICBbbmdDbGFzc109J3tcbiAgICAgIFwidGV4dC1wcmltYXJ5XCI6ICFkaXNhYmxlZCxcbiAgICAgIFwidGV4dC1wcmltYXJ5LWxpZ2h0ZXN0XCI6IGRpc2FibGVkLFxuICAgIH0nXG4gID5cbiAgICA8bWF0LWljb25cbiAgICAgIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCBoLVsyNHB4XSAhdy1bMjZweF0gdGV4dC1bMjhweF0gbGVhZGluZy1bMjRweF1cIlxuICAgID5cbiAgICAgIGxpbmtcbiAgICA8L21hdC1pY29uPlxuICA8L2Rpdj5cbiAgPGduLXVpLWJ1dHRvblxuICAgIGV4dHJhQ2xhc3M9XCJhYnNvbHV0ZSBpbnNldC15LVt2YXIoLS1zaWRlLXBhZGRpbmcpXSByaWdodC1bdmFyKC0tc2lkZS1wYWRkaW5nKV1cIlxuICAgIHR5cGU9XCJwcmltYXJ5XCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgaW5wdXQudmFsdWUgPT09ICcnXCJcbiAgICAoYnV0dG9uQ2xpY2spPVwiaGFuZGxlQ2hhbmdlKGlucHV0KVwiXG4gID5cbiAgICA8bWF0LWljb24gY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkIHRleHQtWzIwcHhdIGxlYWRpbmctWzI0cHhdXCI+XG4gICAgICBhcnJvd191cHdhcmRcbiAgICA8L21hdC1pY29uPlxuICA8L2duLXVpLWJ1dHRvbj5cbjwvc3Bhbj5cbiJdfQ==
@@ -8,5 +8,7 @@ export * from './lib/interactive-table/interactive-table-column/interactive-tabl
8
8
  export * from './lib/interactive-table/interactive-table.component';
9
9
  export * from './lib/sticky-header/sticky-header.component';
10
10
  export * from './lib/block-list/block-list.component';
11
+ export * from './lib/sortable-list/sortable-list.component';
12
+ export * from './lib/modal-dialog/modal-dialog.component';
11
13
  export * from './lib/ui-layout.module';
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2xheW91dC9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx5Q0FBeUMsQ0FBQTtBQUN2RCxjQUFjLG1DQUFtQyxDQUFBO0FBQ2pELGNBQWMsaUVBQWlFLENBQUE7QUFDL0UsY0FBYyxtREFBbUQsQ0FBQTtBQUNqRSxjQUFjLHVEQUF1RCxDQUFBO0FBQ3JFLGNBQWMscUNBQXFDLENBQUE7QUFDbkQsY0FBYyxxRkFBcUYsQ0FBQTtBQUNuRyxjQUFjLHFEQUFxRCxDQUFBO0FBQ25FLGNBQWMsNkNBQTZDLENBQUE7QUFDM0QsY0FBYyx1Q0FBdUMsQ0FBQTtBQUNyRCxjQUFjLHdCQUF3QixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvYW5jaG9yLWxpbmsvYW5jaG9yLWxpbmsuZGlyZWN0aXZlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2Fyb3VzZWwvY2Fyb3VzZWwuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZXhwYW5kYWJsZS1wYW5lbC1idXR0b24vZXhwYW5kYWJsZS1wYW5lbC1idXR0b24uY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZXhwYW5kYWJsZS1wYW5lbC9leHBhbmRhYmxlLXBhbmVsLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Zvcm0tZmllbGQtd3JhcHBlci9mb3JtLWZpZWxkLXdyYXBwZXIuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWF4LWxpbmVzL21heC1saW5lcy5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnRlcmFjdGl2ZS10YWJsZS9pbnRlcmFjdGl2ZS10YWJsZS1jb2x1bW4vaW50ZXJhY3RpdmUtdGFibGUtY29sdW1uLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ludGVyYWN0aXZlLXRhYmxlL2ludGVyYWN0aXZlLXRhYmxlLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N0aWNreS1oZWFkZXIvc3RpY2t5LWhlYWRlci5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9ibG9jay1saXN0L2Jsb2NrLWxpc3QuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdWktbGF5b3V0Lm1vZHVsZSdcbiJdfQ==
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2xheW91dC9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx5Q0FBeUMsQ0FBQTtBQUN2RCxjQUFjLG1DQUFtQyxDQUFBO0FBQ2pELGNBQWMsaUVBQWlFLENBQUE7QUFDL0UsY0FBYyxtREFBbUQsQ0FBQTtBQUNqRSxjQUFjLHVEQUF1RCxDQUFBO0FBQ3JFLGNBQWMscUNBQXFDLENBQUE7QUFDbkQsY0FBYyxxRkFBcUYsQ0FBQTtBQUNuRyxjQUFjLHFEQUFxRCxDQUFBO0FBQ25FLGNBQWMsNkNBQTZDLENBQUE7QUFDM0QsY0FBYyx1Q0FBdUMsQ0FBQTtBQUNyRCxjQUFjLDZDQUE2QyxDQUFBO0FBQzNELGNBQWMsMkNBQTJDLENBQUE7QUFDekQsY0FBYyx3QkFBd0IsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL2FuY2hvci1saW5rL2FuY2hvci1saW5rLmRpcmVjdGl2ZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Nhcm91c2VsL2Nhcm91c2VsLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2V4cGFuZGFibGUtcGFuZWwtYnV0dG9uL2V4cGFuZGFibGUtcGFuZWwtYnV0dG9uLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2V4cGFuZGFibGUtcGFuZWwvZXhwYW5kYWJsZS1wYW5lbC5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9mb3JtLWZpZWxkLXdyYXBwZXIvZm9ybS1maWVsZC13cmFwcGVyLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL21heC1saW5lcy9tYXgtbGluZXMuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaW50ZXJhY3RpdmUtdGFibGUvaW50ZXJhY3RpdmUtdGFibGUtY29sdW1uL2ludGVyYWN0aXZlLXRhYmxlLWNvbHVtbi5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnRlcmFjdGl2ZS10YWJsZS9pbnRlcmFjdGl2ZS10YWJsZS5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zdGlja3ktaGVhZGVyL3N0aWNreS1oZWFkZXIuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYmxvY2stbGlzdC9ibG9jay1saXN0LmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NvcnRhYmxlLWxpc3Qvc29ydGFibGUtbGlzdC5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RhbC1kaWFsb2cvbW9kYWwtZGlhbG9nLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL3VpLWxheW91dC5tb2R1bGUnXG4iXX0=
@@ -1,18 +1,20 @@
1
1
  import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
2
2
  import { MatIconModule } from '@angular/material/icon';
3
3
  import { MatTooltipModule } from '@angular/material/tooltip';
4
+ import { CommonModule } from '@angular/common';
4
5
  import * as i0 from "@angular/core";
5
6
  import * as i1 from "@angular/material/tooltip";
7
+ import * as i2 from "@angular/common";
6
8
  export class FormFieldWrapperComponent {
7
9
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldWrapperComponent, isStandalone: true, selector: "gn-ui-form-field-wrapper", inputs: { label: "label", hint: "hint" }, ngImport: i0, template: "<div class=\"h-full flex flex-col\">\n <div class=\"flex-none w-full flex flex-row items-center\">\n <span class=\"flex-none font-bold\">{{ label }}</span>\n <div class=\"flex-1 flex justify-end items-center\">\n <ng-content select=\"[form-field-interaction]\"></ng-content>\n <span\n class=\"material-symbols-outlined m-2 gn-ui-icon-small\"\n [matTooltip]=\"hint\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n </div>\n </div>\n <div class=\"flex-1 overflow-y-auto\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i1.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldWrapperComponent, isStandalone: true, selector: "gn-ui-form-field-wrapper", inputs: { label: "label", hint: "hint" }, ngImport: i0, template: "<div class=\"h-full flex flex-col\" *ngIf=\"label; else onlyContent\">\n <div class=\"flex-none w-full flex flex-row items-center\">\n <span class=\"flex-none font-bold\">{{ label }}</span>\n <div class=\"flex-1 flex justify-end items-center\">\n <ng-content select=\"[form-field-interaction]\"></ng-content>\n <span\n *ngIf=\"hint\"\n class=\"material-symbols-outlined m-2 gn-ui-icon-small\"\n [matTooltip]=\"hint\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n </div>\n </div>\n <div class=\"flex-1 mt-2\">\n <ng-container *ngTemplateOutlet=\"onlyContent\"> </ng-container>\n </div>\n</div>\n\n<ng-template #onlyContent>\n <ng-content></ng-content>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i1.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9
11
  }
10
12
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldWrapperComponent, decorators: [{
11
13
  type: Component,
12
- args: [{ selector: 'gn-ui-form-field-wrapper', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [MatIconModule, MatTooltipModule], template: "<div class=\"h-full flex flex-col\">\n <div class=\"flex-none w-full flex flex-row items-center\">\n <span class=\"flex-none font-bold\">{{ label }}</span>\n <div class=\"flex-1 flex justify-end items-center\">\n <ng-content select=\"[form-field-interaction]\"></ng-content>\n <span\n class=\"material-symbols-outlined m-2 gn-ui-icon-small\"\n [matTooltip]=\"hint\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n </div>\n </div>\n <div class=\"flex-1 overflow-y-auto\">\n <ng-content></ng-content>\n </div>\n</div>\n" }]
14
+ args: [{ selector: 'gn-ui-form-field-wrapper', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [MatIconModule, MatTooltipModule, CommonModule], template: "<div class=\"h-full flex flex-col\" *ngIf=\"label; else onlyContent\">\n <div class=\"flex-none w-full flex flex-row items-center\">\n <span class=\"flex-none font-bold\">{{ label }}</span>\n <div class=\"flex-1 flex justify-end items-center\">\n <ng-content select=\"[form-field-interaction]\"></ng-content>\n <span\n *ngIf=\"hint\"\n class=\"material-symbols-outlined m-2 gn-ui-icon-small\"\n [matTooltip]=\"hint\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n </div>\n </div>\n <div class=\"flex-1 mt-2\">\n <ng-container *ngTemplateOutlet=\"onlyContent\"> </ng-container>\n </div>\n</div>\n\n<ng-template #onlyContent>\n <ng-content></ng-content>\n</ng-template>\n" }]
13
15
  }], propDecorators: { label: [{
14
16
  type: Input
15
17
  }], hint: [{
16
18
  type: Input
17
19
  }] } });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC13cmFwcGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvbGF5b3V0L3NyYy9saWIvZm9ybS1maWVsZC13cmFwcGVyL2Zvcm0tZmllbGQtd3JhcHBlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2xheW91dC9zcmMvbGliL2Zvcm0tZmllbGQtd3JhcHBlci9mb3JtLWZpZWxkLXdyYXBwZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDekUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3RELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFBOzs7QUFVNUQsTUFBTSxPQUFPLHlCQUF5QjsrR0FBekIseUJBQXlCO21HQUF6Qix5QkFBeUIsOEhDWnRDLDZrQkFrQkEseUREUlksYUFBYSw4QkFBRSxnQkFBZ0I7OzRGQUU5Qix5QkFBeUI7a0JBUnJDLFNBQVM7K0JBQ0UsMEJBQTBCLG1CQUduQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFDLGFBQWEsRUFBRSxnQkFBZ0IsQ0FBQzs4QkFHakMsS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJ1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLWZvcm0tZmllbGQtd3JhcHBlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLWZpZWxkLXdyYXBwZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mb3JtLWZpZWxkLXdyYXBwZXIuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW01hdEljb25Nb2R1bGUsIE1hdFRvb2x0aXBNb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtRmllbGRXcmFwcGVyQ29tcG9uZW50IHtcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZ1xuICBASW5wdXQoKSBoaW50OiBzdHJpbmdcbn1cbiIsIjxkaXYgY2xhc3M9XCJoLWZ1bGwgZmxleCBmbGV4LWNvbFwiPlxuICA8ZGl2IGNsYXNzPVwiZmxleC1ub25lIHctZnVsbCBmbGV4IGZsZXgtcm93IGl0ZW1zLWNlbnRlclwiPlxuICAgIDxzcGFuIGNsYXNzPVwiZmxleC1ub25lIGZvbnQtYm9sZFwiPnt7IGxhYmVsIH19PC9zcGFuPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4LTEgZmxleCBqdXN0aWZ5LWVuZCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltmb3JtLWZpZWxkLWludGVyYWN0aW9uXVwiPjwvbmctY29udGVudD5cbiAgICAgIDxzcGFuXG4gICAgICAgIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCBtLTIgZ24tdWktaWNvbi1zbWFsbFwiXG4gICAgICAgIFttYXRUb29sdGlwXT1cImhpbnRcIlxuICAgICAgICBtYXRUb29sdGlwUG9zaXRpb249XCJhYm92ZVwiXG4gICAgICA+XG4gICAgICAgIGhlbHBcbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJmbGV4LTEgb3ZlcmZsb3cteS1hdXRvXCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC13cmFwcGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvbGF5b3V0L3NyYy9saWIvZm9ybS1maWVsZC13cmFwcGVyL2Zvcm0tZmllbGQtd3JhcHBlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2xheW91dC9zcmMvbGliL2Zvcm0tZmllbGQtd3JhcHBlci9mb3JtLWZpZWxkLXdyYXBwZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDekUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3RELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQzVELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTs7OztBQVU5QyxNQUFNLE9BQU8seUJBQXlCOytHQUF6Qix5QkFBeUI7bUdBQXpCLHlCQUF5Qiw4SENidEMsOHVCQXVCQSx5RERaWSxhQUFhLDhCQUFFLGdCQUFnQiw4SEFBRSxZQUFZOzs0RkFFNUMseUJBQXlCO2tCQVJyQyxTQUFTOytCQUNFLDBCQUEwQixtQkFHbkIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxDQUFDOzhCQUcvQyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nXG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCdcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktZm9ybS1maWVsZC13cmFwcGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tZmllbGQtd3JhcHBlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Zvcm0tZmllbGQtd3JhcHBlci5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbTWF0SWNvbk1vZHVsZSwgTWF0VG9vbHRpcE1vZHVsZSwgQ29tbW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUZpZWxkV3JhcHBlckNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGxhYmVsPzogc3RyaW5nXG4gIEBJbnB1dCgpIGhpbnQ/OiBzdHJpbmdcbn1cbiIsIjxkaXYgY2xhc3M9XCJoLWZ1bGwgZmxleCBmbGV4LWNvbFwiICpuZ0lmPVwibGFiZWw7IGVsc2Ugb25seUNvbnRlbnRcIj5cbiAgPGRpdiBjbGFzcz1cImZsZXgtbm9uZSB3LWZ1bGwgZmxleCBmbGV4LXJvdyBpdGVtcy1jZW50ZXJcIj5cbiAgICA8c3BhbiBjbGFzcz1cImZsZXgtbm9uZSBmb250LWJvbGRcIj57eyBsYWJlbCB9fTwvc3Bhbj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleC0xIGZsZXgganVzdGlmeS1lbmQgaXRlbXMtY2VudGVyXCI+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZm9ybS1maWVsZC1pbnRlcmFjdGlvbl1cIj48L25nLWNvbnRlbnQ+XG4gICAgICA8c3BhblxuICAgICAgICAqbmdJZj1cImhpbnRcIlxuICAgICAgICBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQgbS0yIGduLXVpLWljb24tc21hbGxcIlxuICAgICAgICBbbWF0VG9vbHRpcF09XCJoaW50XCJcbiAgICAgICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIlxuICAgICAgPlxuICAgICAgICBoZWxwXG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZmxleC0xIG10LTJcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwib25seUNvbnRlbnRcIj4gPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjb25seUNvbnRlbnQ+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -0,0 +1,29 @@
1
+ import { ChangeDetectionStrategy, Component, Inject, } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef, } from '@angular/material/dialog';
4
+ import { ButtonComponent } from '../../../../../../libs/ui/inputs/src';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/material/dialog";
7
+ import * as i2 from "@angular/common";
8
+ export class ModalDialogComponent {
9
+ constructor(dialogRef, data) {
10
+ this.dialogRef = dialogRef;
11
+ this.data = data;
12
+ }
13
+ onConfirm() {
14
+ this.dialogRef.close(true);
15
+ }
16
+ onCancel() {
17
+ this.dialogRef.close(false);
18
+ }
19
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ModalDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
20
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ModalDialogComponent, isStandalone: true, selector: "gn-ui-modal-dialog", ngImport: i0, template: "<h1 mat-dialog-title>{{ data.title }}</h1>\n<div mat-dialog-content>\n <ng-container\n *ngTemplateOutlet=\"data.body; context: { $implicit: data.bodyContext }\"\n ></ng-container>\n</div>\n<div mat-dialog-actions>\n <gn-ui-button (buttonClick)=\"onCancel()\">{{ data.cancelText }}</gn-ui-button>\n <gn-ui-button\n (buttonClick)=\"onConfirm()\"\n class=\"ml-2\"\n data-cy=\"confirm-button\"\n >{{ data.confirmText }}</gn-ui-button\n >\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
21
+ }
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ModalDialogComponent, decorators: [{
23
+ type: Component,
24
+ args: [{ selector: 'gn-ui-modal-dialog', standalone: true, imports: [CommonModule, MatDialogModule, ButtonComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<h1 mat-dialog-title>{{ data.title }}</h1>\n<div mat-dialog-content>\n <ng-container\n *ngTemplateOutlet=\"data.body; context: { $implicit: data.bodyContext }\"\n ></ng-container>\n</div>\n<div mat-dialog-actions>\n <gn-ui-button (buttonClick)=\"onCancel()\">{{ data.cancelText }}</gn-ui-button>\n <gn-ui-button\n (buttonClick)=\"onConfirm()\"\n class=\"ml-2\"\n data-cy=\"confirm-button\"\n >{{ data.confirmText }}</gn-ui-button\n >\n</div>\n" }]
25
+ }], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
26
+ type: Inject,
27
+ args: [MAT_DIALOG_DATA]
28
+ }] }]; } });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvbGF5b3V0L3NyYy9saWIvbW9kYWwtZGlhbG9nL21vZGFsLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2xheW91dC9zcmMvbGliL21vZGFsLWRpYWxvZy9tb2RhbC1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQ0wsZUFBZSxFQUNmLGVBQWUsRUFDZixZQUFZLEdBQ2IsTUFBTSwwQkFBMEIsQ0FBQTtBQUNqQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUE7Ozs7QUFrQnRFLE1BQU0sT0FBTyxvQkFBb0I7SUFDL0IsWUFDUyxTQUE2QyxFQUNwQixJQUFxQjtRQUQ5QyxjQUFTLEdBQVQsU0FBUyxDQUFvQztRQUNwQixTQUFJLEdBQUosSUFBSSxDQUFpQjtJQUNwRCxDQUFDO0lBRUosU0FBUztRQUNQLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQzVCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDN0IsQ0FBQzsrR0FaVSxvQkFBb0IsOENBR3JCLGVBQWU7bUdBSGQsb0JBQW9CLDhFQzlCakMsaWRBZUEseUREVVksWUFBWSxxTUFBRSxlQUFlLDBiQUFFLGVBQWU7OzRGQUs3QyxvQkFBb0I7a0JBUmhDLFNBQVM7K0JBQ0Usb0JBQW9CLGNBQ2xCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxlQUFlLEVBQUUsZUFBZSxDQUFDLG1CQUd4Qyx1QkFBdUIsQ0FBQyxNQUFNOzswQkFLNUMsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSW5qZWN0LFxuICBUZW1wbGF0ZVJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7XG4gIE1BVF9ESUFMT0dfREFUQSxcbiAgTWF0RGlhbG9nTW9kdWxlLFxuICBNYXREaWFsb2dSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZydcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvaW5wdXRzL3NyYydcblxuZXhwb3J0IGludGVyZmFjZSBNb2RhbERpYWxvZ0RhdGEge1xuICB0aXRsZTogc3RyaW5nXG4gIGJvZHk6IFRlbXBsYXRlUmVmPHVua25vd24+XG4gIGJvZHlDb250ZXh0OiB1bmtub3duXG4gIGNvbmZpcm1UZXh0OiBzdHJpbmdcbiAgY2FuY2VsVGV4dDogc3RyaW5nXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLW1vZGFsLWRpYWxvZycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE1hdERpYWxvZ01vZHVsZSwgQnV0dG9uQ29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL21vZGFsLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21vZGFsLWRpYWxvZy5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBNb2RhbERpYWxvZ0NvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxNb2RhbERpYWxvZ0NvbXBvbmVudD4sXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiBNb2RhbERpYWxvZ0RhdGFcbiAgKSB7fVxuXG4gIG9uQ29uZmlybSgpIHtcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh0cnVlKVxuICB9XG5cbiAgb25DYW5jZWwoKSB7XG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoZmFsc2UpXG4gIH1cbn1cbiIsIjxoMSBtYXQtZGlhbG9nLXRpdGxlPnt7IGRhdGEudGl0bGUgfX08L2gxPlxuPGRpdiBtYXQtZGlhbG9nLWNvbnRlbnQ+XG4gIDxuZy1jb250YWluZXJcbiAgICAqbmdUZW1wbGF0ZU91dGxldD1cImRhdGEuYm9keTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGRhdGEuYm9keUNvbnRleHQgfVwiXG4gID48L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuPGRpdiBtYXQtZGlhbG9nLWFjdGlvbnM+XG4gIDxnbi11aS1idXR0b24gKGJ1dHRvbkNsaWNrKT1cIm9uQ2FuY2VsKClcIj57eyBkYXRhLmNhbmNlbFRleHQgfX08L2duLXVpLWJ1dHRvbj5cbiAgPGduLXVpLWJ1dHRvblxuICAgIChidXR0b25DbGljayk9XCJvbkNvbmZpcm0oKVwiXG4gICAgY2xhc3M9XCJtbC0yXCJcbiAgICBkYXRhLWN5PVwiY29uZmlybS1idXR0b25cIlxuICAgID57eyBkYXRhLmNvbmZpcm1UZXh0IH19PC9nbi11aS1idXR0b25cbiAgPlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,43 @@
1
+ import { CdkDrag, CdkDragHandle, CdkDropList, moveItemInArray, } from '@angular/cdk/drag-drop';
2
+ import { CommonModule } from '@angular/common';
3
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, TemplateRef, } from '@angular/core';
4
+ import { MatIconModule } from '@angular/material/icon';
5
+ import { ButtonComponent } from '../../../../../../libs/ui/inputs/src';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/common";
8
+ export class SortableListComponent {
9
+ constructor() {
10
+ this.itemsOrderChange = new EventEmitter();
11
+ }
12
+ drop(event) {
13
+ moveItemInArray(this.items, event.previousIndex, event.currentIndex);
14
+ this.itemsOrderChange.emit([...this.items]);
15
+ }
16
+ removeItem(index) {
17
+ this.items = this.items.filter((_, i) => i !== index);
18
+ this.itemsOrderChange.emit(this.items);
19
+ }
20
+ trackByFn(index) {
21
+ return index;
22
+ }
23
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SortableListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
24
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SortableListComponent, isStandalone: true, selector: "gn-ui-sortable-list", inputs: { elementTemplate: "elementTemplate", items: "items" }, outputs: { itemsOrderChange: "itemsOrderChange" }, ngImport: i0, template: "<div\n cdkDropList\n class=\"sortable-list flex flex-col gap-3 p-2\"\n (cdkDropListDropped)=\"drop($event)\"\n>\n <ng-container *ngFor=\"let item of items; index as index; trackBy: trackByFn\">\n <div class=\"sortable-box bg-white flex items-center\" cdkDrag>\n <span\n cdkDragHandle\n class=\"material-symbols-outlined mx-[10px] cursor-grab gn-ui-icon-medium flex-none\"\n >\n drag_handle\n </span>\n <div class=\"flex-1\">\n <ng-container\n *ngTemplateOutlet=\"\n elementTemplate;\n context: { $implicit: item, index }\n \"\n ></ng-container>\n </div>\n\n <gn-ui-button\n type=\"light\"\n style=\"\n --gn-ui-button-padding: 0px;\n --gn-ui-button-width: 24px;\n --gn-ui-button-height: 24px;\n \"\n class=\"ml-[8px] mr-[10px]\"\n (buttonClick)=\"removeItem(index)\"\n data-test=\"remove-item\"\n ><span class=\"material-symbols-outlined gn-ui-icon-medium\">close</span>\n </gn-ui-button>\n </div>\n </ng-container>\n</div>\n", styles: [".cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.sortable-list.cdk-drop-list-dragging .sortable-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
25
+ }
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SortableListComponent, decorators: [{
27
+ type: Component,
28
+ args: [{ selector: 'gn-ui-sortable-list', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
29
+ CommonModule,
30
+ CdkDropList,
31
+ CdkDrag,
32
+ CdkDragHandle,
33
+ MatIconModule,
34
+ ButtonComponent,
35
+ ], template: "<div\n cdkDropList\n class=\"sortable-list flex flex-col gap-3 p-2\"\n (cdkDropListDropped)=\"drop($event)\"\n>\n <ng-container *ngFor=\"let item of items; index as index; trackBy: trackByFn\">\n <div class=\"sortable-box bg-white flex items-center\" cdkDrag>\n <span\n cdkDragHandle\n class=\"material-symbols-outlined mx-[10px] cursor-grab gn-ui-icon-medium flex-none\"\n >\n drag_handle\n </span>\n <div class=\"flex-1\">\n <ng-container\n *ngTemplateOutlet=\"\n elementTemplate;\n context: { $implicit: item, index }\n \"\n ></ng-container>\n </div>\n\n <gn-ui-button\n type=\"light\"\n style=\"\n --gn-ui-button-padding: 0px;\n --gn-ui-button-width: 24px;\n --gn-ui-button-height: 24px;\n \"\n class=\"ml-[8px] mr-[10px]\"\n (buttonClick)=\"removeItem(index)\"\n data-test=\"remove-item\"\n ><span class=\"material-symbols-outlined gn-ui-icon-medium\">close</span>\n </gn-ui-button>\n </div>\n </ng-container>\n</div>\n", styles: [".cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.sortable-list.cdk-drop-list-dragging .sortable-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}\n"] }]
36
+ }], propDecorators: { elementTemplate: [{
37
+ type: Input
38
+ }], items: [{
39
+ type: Input
40
+ }], itemsOrderChange: [{
41
+ type: Output
42
+ }] } });
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydGFibGUtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2xheW91dC9zcmMvbGliL3NvcnRhYmxlLWxpc3Qvc29ydGFibGUtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2xheW91dC9zcmMvbGliL3NvcnRhYmxlLWxpc3Qvc29ydGFibGUtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsT0FBTyxFQUVQLGFBQWEsRUFDYixXQUFXLEVBQ1gsZUFBZSxHQUNoQixNQUFNLHdCQUF3QixDQUFBO0FBQy9CLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixXQUFXLEdBQ1osTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQTs7O0FBaUJ0RSxNQUFNLE9BQU8scUJBQXFCO0lBZmxDO1FBa0JZLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFhLENBQUE7S0FlM0Q7SUFiQyxJQUFJLENBQUMsS0FBNEI7UUFDL0IsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUE7UUFDcEUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7SUFDN0MsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFhO1FBQ3RCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUE7UUFDckQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDeEMsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFhO1FBQ3JCLE9BQU8sS0FBSyxDQUFBO0lBQ2QsQ0FBQzsrR0FqQlUscUJBQXFCO21HQUFyQixxQkFBcUIsa01DbENsQyxtbUNBcUNBLDRhRFhJLFlBQVksbVVBQ1osV0FBVywrZEFDWCxPQUFPLHdiQUNQLGFBQWEsOEZBQ2IsYUFBYSwrQkFDYixlQUFlOzs0RkFHTixxQkFBcUI7a0JBZmpDLFNBQVM7K0JBQ0UscUJBQXFCLG1CQUdkLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxPQUFPO3dCQUNQLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYixlQUFlO3FCQUNoQjs4QkFHUSxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDSSxnQkFBZ0I7c0JBQXpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDZGtEcmFnLFxuICBDZGtEcmFnRHJvcCxcbiAgQ2RrRHJhZ0hhbmRsZSxcbiAgQ2RrRHJvcExpc3QsXG4gIG1vdmVJdGVtSW5BcnJheSxcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCdcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVGVtcGxhdGVSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbidcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvaW5wdXRzL3NyYydcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktc29ydGFibGUtbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnc29ydGFibGUtbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydzb3J0YWJsZS1saXN0LmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQ2RrRHJvcExpc3QsXG4gICAgQ2RrRHJhZyxcbiAgICBDZGtEcmFnSGFuZGxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgQnV0dG9uQ29tcG9uZW50LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTb3J0YWJsZUxpc3RDb21wb25lbnQge1xuICBASW5wdXQoKSBlbGVtZW50VGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+XG4gIEBJbnB1dCgpIGl0ZW1zOiB1bmtub3duW11cbiAgQE91dHB1dCgpIGl0ZW1zT3JkZXJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHVua25vd25bXT4oKVxuXG4gIGRyb3AoZXZlbnQ6IENka0RyYWdEcm9wPHN0cmluZ1tdPikge1xuICAgIG1vdmVJdGVtSW5BcnJheSh0aGlzLml0ZW1zLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpXG4gICAgdGhpcy5pdGVtc09yZGVyQ2hhbmdlLmVtaXQoWy4uLnRoaXMuaXRlbXNdKVxuICB9XG5cbiAgcmVtb3ZlSXRlbShpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5pdGVtcyA9IHRoaXMuaXRlbXMuZmlsdGVyKChfLCBpKSA9PiBpICE9PSBpbmRleClcbiAgICB0aGlzLml0ZW1zT3JkZXJDaGFuZ2UuZW1pdCh0aGlzLml0ZW1zKVxuICB9XG5cbiAgdHJhY2tCeUZuKGluZGV4OiBudW1iZXIpIHtcbiAgICByZXR1cm4gaW5kZXhcbiAgfVxufVxuIiwiPGRpdlxuICBjZGtEcm9wTGlzdFxuICBjbGFzcz1cInNvcnRhYmxlLWxpc3QgZmxleCBmbGV4LWNvbCBnYXAtMyBwLTJcIlxuICAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3AoJGV2ZW50KVwiXG4+XG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXM7IGluZGV4IGFzIGluZGV4OyB0cmFja0J5OiB0cmFja0J5Rm5cIj5cbiAgICA8ZGl2IGNsYXNzPVwic29ydGFibGUtYm94IGJnLXdoaXRlIGZsZXggaXRlbXMtY2VudGVyXCIgY2RrRHJhZz5cbiAgICAgIDxzcGFuXG4gICAgICAgIGNka0RyYWdIYW5kbGVcbiAgICAgICAgY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkIG14LVsxMHB4XSBjdXJzb3ItZ3JhYiBnbi11aS1pY29uLW1lZGl1bSBmbGV4LW5vbmVcIlxuICAgICAgPlxuICAgICAgICBkcmFnX2hhbmRsZVxuICAgICAgPC9zcGFuPlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXgtMVwiPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgIGVsZW1lbnRUZW1wbGF0ZTtcbiAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtLCBpbmRleCB9XG4gICAgICAgICAgXCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxnbi11aS1idXR0b25cbiAgICAgICAgdHlwZT1cImxpZ2h0XCJcbiAgICAgICAgc3R5bGU9XCJcbiAgICAgICAgICAtLWduLXVpLWJ1dHRvbi1wYWRkaW5nOiAwcHg7XG4gICAgICAgICAgLS1nbi11aS1idXR0b24td2lkdGg6IDI0cHg7XG4gICAgICAgICAgLS1nbi11aS1idXR0b24taGVpZ2h0OiAyNHB4O1xuICAgICAgICBcIlxuICAgICAgICBjbGFzcz1cIm1sLVs4cHhdIG1yLVsxMHB4XVwiXG4gICAgICAgIChidXR0b25DbGljayk9XCJyZW1vdmVJdGVtKGluZGV4KVwiXG4gICAgICAgIGRhdGEtdGVzdD1cInJlbW92ZS1pdGVtXCJcbiAgICAgICAgPjxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCBnbi11aS1pY29uLW1lZGl1bVwiPmNsb3NlPC9zcGFuPlxuICAgICAgPC9nbi11aS1idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG4iXX0=
@@ -15,7 +15,7 @@ export class UiMapModule {
15
15
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UiMapModule, imports: [CommonModule,
16
16
  HttpClientModule,
17
17
  MatIconModule,
18
- TranslateModule.forRoot()] }); }
18
+ TranslateModule.forChild()] }); }
19
19
  }
20
20
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UiMapModule, decorators: [{
21
21
  type: NgModule,
@@ -25,9 +25,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
25
25
  CommonModule,
26
26
  HttpClientModule,
27
27
  MatIconModule,
28
- TranslateModule.forRoot(),
28
+ TranslateModule.forChild(),
29
29
  ],
30
30
  exports: [MapComponent, FeatureDetailComponent],
31
31
  }]
32
32
  }] });
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktbWFwLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvbWFwL3NyYy9saWIvdWktbWFwLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUN2RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0NBQWdDLENBQUE7QUFDN0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0RBQXNELENBQUE7QUFDN0YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTs7O0FBWXRELE1BQU0sT0FBTyxXQUFXOytHQUFYLFdBQVc7Z0hBQVgsV0FBVyxpQkFUUCxZQUFZLEVBQUUsc0JBQXNCLGFBRWpELFlBQVk7WUFDWixnQkFBZ0I7WUFDaEIsYUFBYSxpQ0FHTCxZQUFZLEVBQUUsc0JBQXNCO2dIQUVuQyxXQUFXLFlBUHBCLFlBQVk7WUFDWixnQkFBZ0I7WUFDaEIsYUFBYTtZQUNiLGVBQWUsQ0FBQyxPQUFPLEVBQUU7OzRGQUloQixXQUFXO2tCQVZ2QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLFlBQVksRUFBRSxzQkFBc0IsQ0FBQztvQkFDcEQsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osZ0JBQWdCO3dCQUNoQixhQUFhO3dCQUNiLGVBQWUsQ0FBQyxPQUFPLEVBQUU7cUJBQzFCO29CQUNELE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxzQkFBc0IsQ0FBQztpQkFDaEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBNYXBDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbWFwL21hcC5jb21wb25lbnQnXG5pbXBvcnQgeyBGZWF0dXJlRGV0YWlsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ZlYXR1cmUtZGV0YWlsL2ZlYXR1cmUtZGV0YWlsLmNvbXBvbmVudCdcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbidcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbTWFwQ29tcG9uZW50LCBGZWF0dXJlRGV0YWlsQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBIdHRwQ2xpZW50TW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLmZvclJvb3QoKSxcbiAgXSxcbiAgZXhwb3J0czogW01hcENvbXBvbmVudCwgRmVhdHVyZURldGFpbENvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFVpTWFwTW9kdWxlIHt9XG4iXX0=
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktbWFwLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvbWFwL3NyYy9saWIvdWktbWFwLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUN2RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0NBQWdDLENBQUE7QUFDN0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0RBQXNELENBQUE7QUFDN0YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTs7O0FBWXRELE1BQU0sT0FBTyxXQUFXOytHQUFYLFdBQVc7Z0hBQVgsV0FBVyxpQkFUUCxZQUFZLEVBQUUsc0JBQXNCLGFBRWpELFlBQVk7WUFDWixnQkFBZ0I7WUFDaEIsYUFBYSxpQ0FHTCxZQUFZLEVBQUUsc0JBQXNCO2dIQUVuQyxXQUFXLFlBUHBCLFlBQVk7WUFDWixnQkFBZ0I7WUFDaEIsYUFBYTtZQUNiLGVBQWUsQ0FBQyxRQUFRLEVBQUU7OzRGQUlqQixXQUFXO2tCQVZ2QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLFlBQVksRUFBRSxzQkFBc0IsQ0FBQztvQkFDcEQsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osZ0JBQWdCO3dCQUNoQixhQUFhO3dCQUNiLGVBQWUsQ0FBQyxRQUFRLEVBQUU7cUJBQzNCO29CQUNELE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxzQkFBc0IsQ0FBQztpQkFDaEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBNYXBDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbWFwL21hcC5jb21wb25lbnQnXG5pbXBvcnQgeyBGZWF0dXJlRGV0YWlsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ZlYXR1cmUtZGV0YWlsL2ZlYXR1cmUtZGV0YWlsLmNvbXBvbmVudCdcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbidcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbTWFwQ29tcG9uZW50LCBGZWF0dXJlRGV0YWlsQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBIdHRwQ2xpZW50TW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLmZvckNoaWxkKCksXG4gIF0sXG4gIGV4cG9ydHM6IFtNYXBDb21wb25lbnQsIEZlYXR1cmVEZXRhaWxDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBVaU1hcE1vZHVsZSB7fVxuIl19
@@ -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 [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 {{\n (isUnsavedDraft(item)\n ? 'record.metadata.status.notPublished'\n : 'record.metadata.status.published'\n ) | translate\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\">\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 [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 {{\n (isUnsavedDraft(item)\n ? 'record.metadata.status.notPublished'\n : 'record.metadata.status.published'\n ) | translate\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\">\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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Q0FBQywwQkFBMEIsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQ2xFLENBQUE7UUFDRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQ2hELElBQUksQ0FBQywwQkFBMEIsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQ2xFLENBQUE7UUFDRCxPQUFPLENBQUMsV0FBVyxJQUFJLFlBQVksQ0FBQTtJQUNyQyxDQUFDOytHQS9HVSxxQkFBcUI7bUdBQXJCLHFCQUFxQix3ZUN0Q2xDLG1zSkFnSkEseUREcEhJLFlBQVksa0lBQ1osY0FBYyxnVUFDZCx5QkFBeUIsK0dBQ3pCLCtCQUErQiwrSUFDL0IsYUFBYSxtTEFDYixlQUFlLG1PQUVmLG1CQUFtQjs7NEZBR1YscUJBQXFCO2tCQWhCakMsU0FBUzsrQkFDRSxxQkFBcUIsY0FHbkIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCx5QkFBeUI7d0JBQ3pCLCtCQUErQjt3QkFDL0IsYUFBYTt3QkFDYixlQUFlO3dCQUNmLGNBQWM7d0JBQ2QsbUJBQW1CO3FCQUNwQjs4QkFHUSxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csMEJBQTBCO3NCQUFsQyxLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFHSSxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLHFCQUFxQjtzQkFBOUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJ1xuaW1wb3J0IHsgQ2F0YWxvZ1JlY29yZCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcbmltcG9ydCB7XG4gIEZpZWxkU29ydCxcbiAgU29ydEJ5RmllbGQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3NlYXJjaCdcbmltcG9ydCB7IEJhZGdlQ29tcG9uZW50LCBVaUlucHV0c01vZHVsZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvaW5wdXRzL3NyYydcbmltcG9ydCB7XG4gIEludGVyYWN0aXZlVGFibGVDb2x1bW5Db21wb25lbnQsXG4gIEludGVyYWN0aXZlVGFibGVDb21wb25lbnQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvbGF5b3V0L3NyYydcbmltcG9ydCB7XG4gIEZpbGVGb3JtYXQsXG4gIGdldEJhZGdlQ29sb3IsXG4gIGdldEZpbGVGb3JtYXQsXG4gIGdldEZvcm1hdFByaW9yaXR5LFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYydcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBBY3Rpb25NZW51Q29tcG9uZW50IH0gZnJvbSAnLi9hY3Rpb24tbWVudS9hY3Rpb24tbWVudS5jb21wb25lbnQnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLXJlc3VsdHMtdGFibGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVzdWx0cy10YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Jlc3VsdHMtdGFibGUuY29tcG9uZW50LmNzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFVpSW5wdXRzTW9kdWxlLFxuICAgIEludGVyYWN0aXZlVGFibGVDb21wb25lbnQsXG4gICAgSW50ZXJhY3RpdmVUYWJsZUNvbHVtbkNvbXBvbmVudCxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBCYWRnZUNvbXBvbmVudCxcbiAgICBBY3Rpb25NZW51Q29tcG9uZW50LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBSZXN1bHRzVGFibGVDb21wb25lbnQge1xuICBASW5wdXQoKSByZWNvcmRzOiBDYXRhbG9nUmVjb3JkW10gPSBbXVxuICBASW5wdXQoKSBzZWxlY3RlZFJlY29yZHNJZGVudGlmaWVyczogc3RyaW5nW10gPSBbXVxuICBASW5wdXQoKSBzb3J0T3JkZXI6IFNvcnRCeUZpZWxkID0gbnVsbFxuICBASW5wdXQoKSBoYXNEcmFmdDogKHJlY29yZDogQ2F0YWxvZ1JlY29yZCkgPT4gYm9vbGVhbiA9ICgpID0+IGZhbHNlXG4gIEBJbnB1dCgpIGNhbkR1cGxpY2F0ZTogKHJlY29yZDogQ2F0YWxvZ1JlY29yZCkgPT4gYm9vbGVhbiA9ICgpID0+IHRydWVcbiAgQElucHV0KCkgaXNVbnNhdmVkRHJhZnQ6IChyZWNvcmQ6IENhdGFsb2dSZWNvcmQpID0+IGJvb2xlYW4gPSAoKSA9PiB0cnVlXG4gIEBJbnB1dCgpIGNhbkRlbGV0ZTogKHJlY29yZDogQ2F0YWxvZ1JlY29yZCkgPT4gYm9vbGVhbiA9ICgpID0+IHRydWVcblxuICAvLyBlbWl0cyB0aGUgY29sdW1uIChmaWVsZCkgYXMgd2VsbCBhcyB0aGUgb3JkZXJcbiAgQE91dHB1dCgpIHNvcnRCeUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8W3N0cmluZywgJ2FzYycgfCAnZGVzYyddPigpXG4gIEBPdXRwdXQoKSByZWNvcmRDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Q2F0YWxvZ1JlY29yZD4oKVxuICBAT3V0cHV0KCkgZHVwbGljYXRlUmVjb3JkID0gbmV3IEV2ZW50RW1pdHRlcjxDYXRhbG9nUmVjb3JkPigpXG4gIEBPdXRwdXQoKSBkZWxldGVSZWNvcmQgPSBuZXcgRXZlbnRFbWl0dGVyPENhdGFsb2dSZWNvcmQ+KClcbiAgQE91dHB1dCgpIHJlY29yZHNTZWxlY3RlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8XG4gICAgW0NhdGFsb2dSZWNvcmRbXSwgYm9vbGVhbl1cbiAgPigpXG5cbiAgZGF0ZVRvU3RyaW5nKGRhdGU6IERhdGUpOiBzdHJpbmcge1xuICAgIHJldHVybiBkYXRlPy50b0xvY2FsZURhdGVTdHJpbmcodW5kZWZpbmVkLCB7XG4gICAgICB5ZWFyOiAnbnVtZXJpYycsXG4gICAgICBtb250aDogJ2xvbmcnLFxuICAgICAgZGF5OiAnbnVtZXJpYycsXG4gICAgICB0aW1lWm9uZTogJ1VUQycsXG4gICAgfSlcbiAgfVxuXG4gIGdldFJlY29yZEZvcm1hdHMocmVjb3JkOiBDYXRhbG9nUmVjb3JkKTogRmlsZUZvcm1hdFtdIHtcbiAgICBpZiAocmVjb3JkLmtpbmQgPT09ICdzZXJ2aWNlJyB8fCAhKCdvbmxpbmVSZXNvdXJjZXMnIGluIHJlY29yZCkpIHtcbiAgICAgIHJldHVybiBbXVxuICAgIH1cbiAgICBjb25zdCBmb3JtYXRzID0gQXJyYXkuZnJvbShcbiAgICAgIG5ldyBTZXQoXG4gICAgICAgIHJlY29yZC5vbmxpbmVSZXNvdXJjZXMubWFwKChvbmxpbmVSZXNvdXJjZSkgPT5cbiAgICAgICAgICBnZXRGaWxlRm9ybWF0KG9ubGluZVJlc291cmNlKVxuICAgICAgICApXG4gICAgICApXG4gICAgKS5maWx0ZXIoKGZvcm1hdCkgPT4gISFmb3JtYXQpXG4gICAgZm9ybWF0cy5zb3J0KChhLCBiKSA9PiBnZXRGb3JtYXRQcmlvcml0eShiKSAtIGdldEZvcm1hdFByaW9yaXR5KGEpKVxuICAgIHJldHVybiBmb3JtYXRzXG4gIH1cblxuICBmb3JtYXRVc2VySW5mbyh1c2VySW5mbzogc3RyaW5nIHwgdW5rbm93bik6IHN0cmluZyB7XG4gICAgY29uc3QgaW5mb3MgPSAodHlwZW9mIHVzZXJJbmZvID09PSAnc3RyaW5nJyA/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+XG4gICAgICB7e1xuICAgICAgICAoaXNVbnNhdmVkRHJhZnQoaXRlbSlcbiAgICAgICAgICA/ICdyZWNvcmQubWV0YWRhdGEuc3RhdHVzLm5vdFB1Ymxpc2hlZCdcbiAgICAgICAgICA6ICdyZWNvcmQubWV0YWRhdGEuc3RhdHVzLnB1Ymxpc2hlZCdcbiAgICAgICAgKSB8IHRyYW5zbGF0ZVxuICAgICAgfX1cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2duLXVpLWludGVyYWN0aXZlLXRhYmxlLWNvbHVtbj5cblxuICA8IS0tIFVQREFURSBEQVRFIENPTFVNTiAtLT5cbiAgPGduLXVpLWludGVyYWN0aXZlLXRhYmxlLWNvbHVtblxuICAgIFtzb3J0YWJsZV09XCJ0cnVlXCJcbiAgICBbYWN0aXZlU29ydF09XCJpc1NvcnRlZEJ5KCdjaGFuZ2VEYXRlJylcIlxuICAgIChzb3J0Q2hhbmdlKT1cInNldFNvcnRCeSgnY2hhbmdlRGF0ZScsICRldmVudClcIlxuICA+XG4gICAgPG5nLXRlbXBsYXRlICNoZWFkZXI+XG4gICAgICA8c3BhbiB0cmFuc2xhdGU+cmVjb3JkLm1ldGFkYXRhLnVwZGF0ZWRPbjwvc3Bhbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjY2VsbCBsZXQtaXRlbT5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY2VudGVyIHctZnVsbFwiPlxuICAgICAgICB7eyBpc1Vuc2F2ZWREcmFmdChpdGVtKSA/ICctJyA6IGRhdGVUb1N0cmluZyhpdGVtLnJlY29yZFVwZGF0ZWQpIH19XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2duLXVpLWludGVyYWN0aXZlLXRhYmxlLWNvbHVtbj5cblxuICA8IS0tIEFDVElPTiBNRU5VIENPTFVNTiAtLT5cbiAgPGduLXVpLWludGVyYWN0aXZlLXRhYmxlLWNvbHVtbj5cbiAgICA8bmctdGVtcGxhdGUgI2hlYWRlcj4gPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI2NlbGwgbGV0LWl0ZW0+XG4gICAgICA8Z24tdWktYWN0aW9uLW1lbnVcbiAgICAgICAgW2NhbkR1cGxpY2F0ZV09XCJjYW5EdXBsaWNhdGUoaXRlbSlcIlxuICAgICAgICBbY2FuRGVsZXRlXT1cImNhbkRlbGV0ZShpdGVtKVwiXG4gICAgICAgIChkdXBsaWNhdGUpPVwiaGFuZGxlRHVwbGljYXRlKGl0ZW0pXCJcbiAgICAgICAgKGRlbGV0ZSk9XCJoYW5kbGVEZWxldGUoaXRlbSlcIlxuICAgICAgPlxuICAgICAgPC9nbi11aS1hY3Rpb24tbWVudT5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2duLXVpLWludGVyYWN0aXZlLXRhYmxlLWNvbHVtbj5cbjwvZ24tdWktaW50ZXJhY3RpdmUtdGFibGU+XG4iXX0=