geonetwork-ui 2.4.0-dev.00c93bef → 2.4.0-dev.0925104f

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 (404) hide show
  1. package/esm2022/libs/api/metadata-converter/src/lib/gn4/types/keywords.model.mjs +1 -1
  2. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.mjs +7 -5
  3. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +30 -2
  4. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/geometry.mjs +31 -0
  5. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +23 -1
  6. package/esm2022/libs/api/metadata-converter/src/lib/xml-utils.mjs +10 -3
  7. package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +31 -3
  8. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.mjs +11 -1
  9. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +11 -1
  10. package/esm2022/libs/common/domain/src/lib/model/record/contact.model.mjs +28 -1
  11. package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
  12. package/esm2022/libs/common/domain/src/lib/model/user/user.model.mjs +1 -1
  13. package/esm2022/libs/common/domain/src/lib/platform.service.interface.mjs +1 -1
  14. package/esm2022/libs/common/domain/src/lib/repository/records-repository.interface.mjs +1 -1
  15. package/esm2022/libs/data-access/gn4/src/fixtures/site.fixtures.mjs +5 -5
  16. package/esm2022/libs/data-access/gn4/src/fixtures/ui.fixtures.mjs +3 -3
  17. package/esm2022/libs/data-access/gn4/src/openapi/api/records.api.service.mjs +2 -6
  18. package/esm2022/libs/feature/editor/src/lib/+state/editor.actions.mjs +2 -1
  19. package/esm2022/libs/feature/editor/src/lib/+state/editor.effects.mjs +6 -1
  20. package/esm2022/libs/feature/editor/src/lib/+state/editor.facade.mjs +4 -1
  21. package/esm2022/libs/feature/editor/src/lib/components/contact-card/contact-card.component.mjs +29 -0
  22. package/esm2022/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.mjs +78 -0
  23. package/esm2022/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.mjs +96 -0
  24. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.mjs +164 -0
  25. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.mjs +19 -41
  26. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.mjs +10 -8
  27. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.mjs +101 -0
  28. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.mjs +44 -0
  29. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.mjs +28 -0
  30. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.mjs +10 -6
  31. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.mjs +11 -11
  32. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-simple/form-field-simple.component.mjs +9 -8
  33. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.mjs +111 -5
  34. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.mjs +49 -52
  35. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.mjs +16 -14
  36. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.mjs +37 -43
  37. package/esm2022/libs/feature/editor/src/lib/components/record-form/record-form.component.mjs +5 -3
  38. package/esm2022/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.mjs +8 -8
  39. package/esm2022/libs/feature/editor/src/lib/feature-editor.module.mjs +6 -4
  40. package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +37 -4
  41. package/esm2022/libs/feature/editor/src/lib/services/editor.service.mjs +5 -1
  42. package/esm2022/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.mjs +6 -6
  43. package/esm2022/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.mjs +6 -5
  44. package/esm2022/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.mjs +8 -5
  45. package/esm2022/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.mjs +6 -7
  46. package/esm2022/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.mjs +8 -7
  47. package/esm2022/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.mjs +7 -6
  48. package/esm2022/libs/feature/map/src/lib/feature-map.module.mjs +7 -26
  49. package/esm2022/libs/feature/map/src/lib/layers-panel/layers-panel.component.mjs +29 -13
  50. package/esm2022/libs/feature/map/src/lib/style/map-style.fixtures.mjs +3 -3
  51. package/esm2022/libs/feature/map/src/lib/utils/map-utils.service.mjs +10 -5
  52. package/esm2022/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.mjs +3 -3
  53. package/esm2022/libs/feature/search/src/lib/results-table/results-table-container.component.mjs +48 -8
  54. package/esm2022/libs/feature/search/src/lib/state/search.facade.mjs +6 -2
  55. package/esm2022/libs/ui/dataviz/src/lib/table/table.fixtures.mjs +3 -3
  56. package/esm2022/libs/ui/elements/src/index.mjs +2 -1
  57. package/esm2022/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.mjs +27 -0
  58. package/esm2022/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.mjs +4 -3
  59. package/esm2022/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.mjs +2 -2
  60. package/esm2022/libs/ui/elements/src/lib/metadata-info/metadata-info.component.mjs +3 -3
  61. package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +5 -11
  62. package/esm2022/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.mjs +3 -3
  63. package/esm2022/libs/ui/elements/src/lib/record-api-form/record-api-form.component.mjs +5 -5
  64. package/esm2022/libs/ui/elements/src/lib/sortable-list/sortable-list.component.mjs +6 -10
  65. package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +11 -5
  66. package/esm2022/libs/ui/inputs/src/index.mjs +2 -1
  67. package/esm2022/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.mjs +19 -5
  68. package/esm2022/libs/ui/inputs/src/lib/editable-label/editable-label.directive.mjs +26 -24
  69. package/esm2022/libs/ui/inputs/src/lib/image-input/image-input.component.mjs +17 -14
  70. package/esm2022/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.mjs +32 -0
  71. package/esm2022/libs/ui/inputs/src/lib/text-area/text-area.component.mjs +6 -21
  72. package/esm2022/libs/ui/inputs/src/lib/text-input/text-input.component.mjs +6 -17
  73. package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +3 -7
  74. package/esm2022/libs/ui/inputs/src/lib/url-input/url-input.component.mjs +43 -0
  75. package/esm2022/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.mjs +3 -3
  76. package/esm2022/libs/ui/layout/src/lib/interactive-table/interactive-table.component.mjs +3 -3
  77. package/esm2022/libs/ui/map/src/lib/ui-map.module.mjs +3 -3
  78. package/esm2022/libs/ui/search/src/lib/facets/fixtures/aggregations-model-response.mjs +7 -7
  79. package/esm2022/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.mjs +67 -0
  80. package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +31 -11
  81. package/esm2022/libs/ui/widgets/src/index.mjs +2 -1
  82. package/esm2022/libs/ui/widgets/src/lib/popover/popover.component.mjs +68 -0
  83. package/esm2022/libs/util/app-config/src/lib/fixtures.mjs +10 -10
  84. package/esm2022/translations/de.json +64 -19
  85. package/esm2022/translations/en.json +57 -12
  86. package/esm2022/translations/es.json +54 -9
  87. package/esm2022/translations/fr.json +68 -23
  88. package/esm2022/translations/it.json +57 -12
  89. package/esm2022/translations/nl.json +54 -9
  90. package/esm2022/translations/pt.json +54 -9
  91. package/fesm2022/geonetwork-ui.mjs +4665 -3305
  92. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  93. package/libs/api/metadata-converter/src/lib/gn4/types/keywords.model.d.ts +2 -6
  94. package/libs/api/metadata-converter/src/lib/gn4/types/keywords.model.d.ts.map +1 -1
  95. package/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.d.ts.map +1 -1
  96. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts +8 -1
  97. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts.map +1 -1
  98. package/libs/api/metadata-converter/src/lib/iso19139/utils/geometry.d.ts +5 -0
  99. package/libs/api/metadata-converter/src/lib/iso19139/utils/geometry.d.ts.map +1 -0
  100. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts +3 -1
  101. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
  102. package/libs/api/metadata-converter/src/lib/xml-utils.d.ts +1 -0
  103. package/libs/api/metadata-converter/src/lib/xml-utils.d.ts.map +1 -1
  104. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts +7 -1
  105. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts.map +1 -1
  106. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.d.ts.map +1 -1
  107. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +1 -0
  108. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
  109. package/libs/common/domain/src/lib/model/record/contact.model.d.ts +1 -0
  110. package/libs/common/domain/src/lib/model/record/contact.model.d.ts.map +1 -1
  111. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +3 -1
  112. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
  113. package/libs/common/domain/src/lib/model/user/user.model.d.ts +1 -1
  114. package/libs/common/domain/src/lib/model/user/user.model.d.ts.map +1 -1
  115. package/libs/common/domain/src/lib/platform.service.interface.d.ts +1 -0
  116. package/libs/common/domain/src/lib/platform.service.interface.d.ts.map +1 -1
  117. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts +17 -0
  118. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts.map +1 -1
  119. package/libs/data-access/gn4/src/fixtures/site.fixtures.d.ts +2 -2
  120. package/libs/data-access/gn4/src/fixtures/site.fixtures.d.ts.map +1 -1
  121. package/libs/data-access/gn4/src/fixtures/ui.fixtures.d.ts +1 -1
  122. package/libs/data-access/gn4/src/fixtures/ui.fixtures.d.ts.map +1 -1
  123. package/libs/data-access/gn4/src/openapi/api/records.api.service.d.ts.map +1 -1
  124. package/libs/feature/editor/src/lib/+state/editor.actions.d.ts +1 -0
  125. package/libs/feature/editor/src/lib/+state/editor.actions.d.ts.map +1 -1
  126. package/libs/feature/editor/src/lib/+state/editor.effects.d.ts +5 -0
  127. package/libs/feature/editor/src/lib/+state/editor.effects.d.ts.map +1 -1
  128. package/libs/feature/editor/src/lib/+state/editor.facade.d.ts +1 -0
  129. package/libs/feature/editor/src/lib/+state/editor.facade.d.ts.map +1 -1
  130. package/libs/feature/editor/src/lib/components/contact-card/contact-card.component.d.ts +12 -0
  131. package/libs/feature/editor/src/lib/components/contact-card/contact-card.component.d.ts.map +1 -0
  132. package/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.d.ts +32 -0
  133. package/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.d.ts.map +1 -0
  134. package/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.d.ts +27 -0
  135. package/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.d.ts.map +1 -0
  136. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.d.ts +44 -0
  137. 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
  138. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.d.ts +8 -19
  139. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.d.ts.map +1 -1
  140. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.d.ts +6 -4
  141. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.d.ts.map +1 -1
  142. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.d.ts +22 -0
  143. 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
  144. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.d.ts +15 -0
  145. 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
  146. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.d.ts +13 -0
  147. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.d.ts.map +1 -0
  148. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.d.ts +4 -3
  149. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.d.ts.map +1 -1
  150. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.d.ts +4 -4
  151. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.d.ts.map +1 -1
  152. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-simple/form-field-simple.component.d.ts +4 -3
  153. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-simple/form-field-simple.component.d.ts.map +1 -1
  154. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.d.ts +23 -0
  155. 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
  156. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.d.ts +15 -15
  157. 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
  158. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.d.ts +5 -5
  159. 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
  160. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts +15 -19
  161. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts.map +1 -1
  162. package/libs/feature/editor/src/lib/components/record-form/record-form.component.d.ts +3 -2
  163. package/libs/feature/editor/src/lib/components/record-form/record-form.component.d.ts.map +1 -1
  164. package/libs/feature/editor/src/lib/feature-editor.module.d.ts +2 -1
  165. package/libs/feature/editor/src/lib/feature-editor.module.d.ts.map +1 -1
  166. package/libs/feature/editor/src/lib/fields.config.d.ts +8 -0
  167. package/libs/feature/editor/src/lib/fields.config.d.ts.map +1 -1
  168. package/libs/feature/editor/src/lib/services/editor.service.d.ts +1 -0
  169. package/libs/feature/editor/src/lib/services/editor.service.d.ts.map +1 -1
  170. package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.d.ts +1 -1
  171. package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.d.ts.map +1 -1
  172. package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.d.ts +1 -1
  173. package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.d.ts.map +1 -1
  174. package/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.d.ts +1 -1
  175. package/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.d.ts.map +1 -1
  176. package/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.d.ts +1 -1
  177. package/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.d.ts.map +1 -1
  178. package/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.d.ts +1 -1
  179. package/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.d.ts.map +1 -1
  180. package/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.d.ts +1 -1
  181. package/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.d.ts.map +1 -1
  182. package/libs/feature/map/src/lib/feature-map.module.d.ts +16 -21
  183. package/libs/feature/map/src/lib/feature-map.module.d.ts.map +1 -1
  184. package/libs/feature/map/src/lib/layers-panel/layers-panel.component.d.ts +1 -1
  185. package/libs/feature/map/src/lib/layers-panel/layers-panel.component.d.ts.map +1 -1
  186. package/libs/feature/map/src/lib/style/map-style.fixtures.d.ts +2 -2
  187. package/libs/feature/map/src/lib/style/map-style.fixtures.d.ts.map +1 -1
  188. package/libs/feature/map/src/lib/utils/map-utils.service.d.ts.map +1 -1
  189. package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts +15 -4
  190. package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts.map +1 -1
  191. package/libs/feature/search/src/lib/state/search.facade.d.ts +1 -0
  192. package/libs/feature/search/src/lib/state/search.facade.d.ts.map +1 -1
  193. package/libs/ui/dataviz/src/lib/table/table.fixtures.d.ts +2 -2
  194. package/libs/ui/dataviz/src/lib/table/table.fixtures.d.ts.map +1 -1
  195. package/libs/ui/elements/src/index.d.ts +1 -0
  196. package/libs/ui/elements/src/index.d.ts.map +1 -1
  197. package/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.d.ts +18 -0
  198. package/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.d.ts.map +1 -0
  199. package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts +1 -1
  200. package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts +0 -3
  201. package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts.map +1 -1
  202. package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts +1 -1
  203. package/libs/ui/elements/src/lib/sortable-list/sortable-list.component.d.ts +5 -10
  204. package/libs/ui/elements/src/lib/sortable-list/sortable-list.component.d.ts.map +1 -1
  205. package/libs/ui/elements/src/lib/ui-elements.module.d.ts +8 -6
  206. package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
  207. package/libs/ui/inputs/src/index.d.ts +1 -0
  208. package/libs/ui/inputs/src/index.d.ts.map +1 -1
  209. package/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.d.ts +9 -1
  210. package/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.d.ts.map +1 -1
  211. package/libs/ui/inputs/src/lib/editable-label/editable-label.directive.d.ts +5 -3
  212. package/libs/ui/inputs/src/lib/editable-label/editable-label.directive.d.ts.map +1 -1
  213. package/libs/ui/inputs/src/lib/image-input/image-input.component.d.ts +3 -4
  214. package/libs/ui/inputs/src/lib/image-input/image-input.component.d.ts.map +1 -1
  215. package/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.d.ts +17 -0
  216. package/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.d.ts.map +1 -0
  217. package/libs/ui/inputs/src/lib/text-area/text-area.component.d.ts +0 -4
  218. package/libs/ui/inputs/src/lib/text-area/text-area.component.d.ts.map +1 -1
  219. package/libs/ui/inputs/src/lib/text-input/text-input.component.d.ts +2 -4
  220. package/libs/ui/inputs/src/lib/text-input/text-input.component.d.ts.map +1 -1
  221. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +34 -35
  222. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts.map +1 -1
  223. package/libs/ui/inputs/src/lib/url-input/url-input.component.d.ts +18 -0
  224. package/libs/ui/inputs/src/lib/url-input/url-input.component.d.ts.map +1 -0
  225. package/libs/ui/search/src/lib/facets/fixtures/aggregations-model-response.d.ts +3 -3
  226. package/libs/ui/search/src/lib/facets/fixtures/aggregations-model-response.d.ts.map +1 -1
  227. package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts +20 -0
  228. package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts.map +1 -0
  229. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts +10 -4
  230. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts.map +1 -1
  231. package/libs/ui/widgets/src/index.d.ts +1 -0
  232. package/libs/ui/widgets/src/index.d.ts.map +1 -1
  233. package/libs/ui/widgets/src/lib/popover/popover.component.d.ts +19 -0
  234. package/libs/ui/widgets/src/lib/popover/popover.component.d.ts.map +1 -0
  235. package/libs/util/app-config/src/lib/fixtures.d.ts +8 -8
  236. package/libs/util/app-config/src/lib/fixtures.d.ts.map +1 -1
  237. package/package.json +1 -1
  238. package/src/libs/api/metadata-converter/src/lib/fixtures/generic.records.ts +6 -1
  239. package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.ts +5 -1
  240. package/src/libs/api/metadata-converter/src/lib/fixtures/geocat-ch.records.ts +37 -12
  241. package/src/libs/api/metadata-converter/src/lib/fixtures/metawal.records.ts +5 -1
  242. package/src/libs/api/metadata-converter/src/lib/gn4/types/keywords.model.ts +2 -6
  243. package/src/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.ts +6 -2
  244. package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +72 -2
  245. package/src/libs/api/metadata-converter/src/lib/iso19139/utils/geometry.ts +39 -0
  246. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +70 -1
  247. package/src/libs/api/metadata-converter/src/lib/xml-utils.ts +13 -5
  248. package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +42 -2
  249. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.ts +12 -1
  250. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +43 -12
  251. package/src/libs/common/domain/src/lib/model/record/contact.model.ts +28 -0
  252. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +3 -1
  253. package/src/libs/common/domain/src/lib/model/user/user.model.ts +1 -1
  254. package/src/libs/common/domain/src/lib/platform.service.interface.ts +4 -0
  255. package/src/libs/common/domain/src/lib/repository/records-repository.interface.ts +22 -0
  256. package/src/libs/common/fixtures/src/index.ts +1 -1
  257. package/src/libs/common/fixtures/src/lib/editor/editor.fixtures.ts +37 -37
  258. package/src/libs/common/fixtures/src/lib/elasticsearch/{aggregations-request.ts → aggregations-request.fixtures.ts} +1 -3
  259. package/src/libs/common/fixtures/src/lib/elasticsearch/{aggregations-response.ts → aggregations-response.fixtures.ts} +6 -8
  260. package/src/libs/common/fixtures/src/lib/elasticsearch/{full-response.ts → full-response.fixtures.ts} +1 -3
  261. package/src/libs/common/fixtures/src/lib/elasticsearch/index.ts +5 -5
  262. package/src/libs/common/fixtures/src/lib/elasticsearch/metadata-links.fixtures.ts +1 -3
  263. package/src/libs/common/fixtures/src/lib/elasticsearch/metadata.fixtures.ts +1739 -1742
  264. package/src/libs/common/fixtures/src/lib/elasticsearch/{search-requests.ts → search-requests.fixtures.ts} +1 -3
  265. package/src/libs/common/fixtures/src/lib/elasticsearch/{search-responses.ts → search-responses.fixtures.ts} +4 -6
  266. package/src/libs/common/fixtures/src/lib/geojson.fixtures.ts +57178 -57195
  267. package/src/libs/common/fixtures/src/lib/gn4/groups.fixtures.ts +2 -4
  268. package/src/libs/common/fixtures/src/lib/link.fixtures.ts +84 -56
  269. package/src/libs/common/fixtures/src/lib/ol-feature.fixtures.ts +10 -0
  270. package/src/libs/common/fixtures/src/lib/organisations.fixture.ts +37 -3
  271. package/src/libs/common/fixtures/src/lib/record-link.fixtures.ts +9 -7
  272. package/src/libs/common/fixtures/src/lib/records.fixtures.ts +6 -6
  273. package/src/libs/common/fixtures/src/lib/repository.fixtures.ts +4 -4
  274. package/src/libs/common/fixtures/src/lib/search/aggregations.ts +2 -3
  275. package/src/libs/common/fixtures/src/lib/user-feedbacks.fixtures.ts +14 -15
  276. package/src/libs/common/fixtures/src/lib/user.fixtures.ts +32 -15
  277. package/src/libs/data-access/gn4/src/fixtures/site.fixtures.ts +4 -4
  278. package/src/libs/data-access/gn4/src/fixtures/ui.fixtures.ts +2 -2
  279. package/src/libs/data-access/gn4/src/openapi/api/records.api.service.ts +1 -5
  280. package/src/libs/data-access/gn4/src/spec.yaml +0 -8
  281. package/src/libs/feature/catalog/src/lib/sources/sources.fixture.ts +1 -1
  282. package/src/libs/feature/dataviz/src/lib/figure/figure.fixtures.ts +2 -2
  283. package/src/libs/feature/editor/src/lib/+state/editor.actions.ts +2 -0
  284. package/src/libs/feature/editor/src/lib/+state/editor.effects.ts +15 -0
  285. package/src/libs/feature/editor/src/lib/+state/editor.facade.ts +4 -0
  286. package/src/libs/feature/editor/src/lib/components/contact-card/contact-card.component.css +0 -0
  287. package/src/libs/feature/editor/src/lib/components/contact-card/contact-card.component.html +27 -0
  288. package/src/libs/feature/editor/src/lib/components/contact-card/contact-card.component.ts +30 -0
  289. package/src/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.css +0 -0
  290. package/src/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.html +26 -0
  291. package/src/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.ts +89 -0
  292. package/src/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.html +2 -1
  293. package/src/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.ts +74 -31
  294. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.css +0 -0
  295. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.html +76 -0
  296. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.ts +249 -0
  297. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.html +7 -17
  298. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.ts +18 -51
  299. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.ts +13 -5
  300. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.css +0 -0
  301. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.html +4 -0
  302. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.ts +128 -0
  303. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.css +0 -0
  304. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.html +6 -0
  305. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.ts +48 -0
  306. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.css +0 -0
  307. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.html +5 -0
  308. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.ts +33 -0
  309. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.html +2 -2
  310. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.ts +9 -3
  311. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.html +2 -2
  312. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.ts +13 -7
  313. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-simple/form-field-simple.component.html +5 -3
  314. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-simple/form-field-simple.component.ts +11 -4
  315. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.html +15 -1
  316. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.ts +156 -1
  317. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.html +9 -2
  318. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.ts +59 -70
  319. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.ts +17 -15
  320. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html +103 -68
  321. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +43 -43
  322. package/src/libs/feature/editor/src/lib/components/record-form/record-form.component.html +2 -1
  323. package/src/libs/feature/editor/src/lib/components/record-form/record-form.component.ts +7 -2
  324. package/src/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.html +1 -1
  325. package/src/libs/feature/editor/src/lib/feature-editor.module.ts +2 -1
  326. package/src/libs/feature/editor/src/lib/fields.config.ts +40 -3
  327. package/src/libs/feature/editor/src/lib/services/editor.service.ts +7 -0
  328. package/src/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.ts +3 -0
  329. package/src/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.ts +5 -1
  330. package/src/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.ts +5 -0
  331. package/src/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.html +1 -1
  332. package/src/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.ts +10 -7
  333. package/src/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.html +1 -1
  334. package/src/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.ts +5 -0
  335. package/src/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.html +1 -1
  336. package/src/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.ts +6 -1
  337. package/src/libs/feature/map/src/lib/feature-map.module.ts +2 -15
  338. package/src/libs/feature/map/src/lib/layers-panel/layers-panel.component.ts +24 -1
  339. package/src/libs/feature/map/src/lib/map-context/map-context.fixtures.ts +26 -22
  340. package/src/libs/feature/map/src/lib/style/map-style.fixtures.ts +29 -27
  341. package/src/libs/feature/map/src/lib/utils/map-utils.service.ts +8 -4
  342. package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.html +1 -1
  343. package/src/libs/feature/search/src/lib/results-table/results-table-container.component.html +4 -1
  344. package/src/libs/feature/search/src/lib/results-table/results-table-container.component.ts +66 -3
  345. package/src/libs/feature/search/src/lib/state/fixtures/search-state.fixtures.ts +2 -2
  346. package/src/libs/feature/search/src/lib/state/search.facade.ts +6 -0
  347. package/src/libs/ui/dataviz/src/lib/chart/chart.fixtures.ts +2 -2
  348. package/src/libs/ui/dataviz/src/lib/table/table.fixtures.ts +2 -2
  349. package/src/libs/ui/elements/src/index.ts +1 -0
  350. package/src/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.css +0 -0
  351. package/src/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.html +12 -0
  352. package/src/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.ts +37 -0
  353. package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.html +4 -1
  354. package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.css +2 -1
  355. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.html +12 -8
  356. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.html +14 -20
  357. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.ts +0 -10
  358. package/src/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.html +1 -1
  359. package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.html +2 -2
  360. package/src/libs/ui/elements/src/lib/sortable-list/sortable-list.component.html +3 -10
  361. package/src/libs/ui/elements/src/lib/sortable-list/sortable-list.component.ts +7 -7
  362. package/src/libs/ui/elements/src/lib/ui-elements.module.ts +8 -2
  363. package/src/libs/ui/inputs/src/index.ts +1 -0
  364. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.ts +15 -3
  365. package/src/libs/ui/inputs/src/lib/editable-label/editable-label.directive.ts +40 -26
  366. package/src/libs/ui/inputs/src/lib/file-input/file-input.component.css +0 -0
  367. package/src/libs/ui/inputs/src/lib/file-input/file-input.component.html +85 -0
  368. package/src/libs/ui/inputs/src/lib/file-input/file-input.component.ts +91 -0
  369. package/src/libs/ui/inputs/src/lib/image-input/image-input.component.html +49 -49
  370. package/src/libs/ui/inputs/src/lib/image-input/image-input.component.ts +15 -13
  371. package/src/libs/ui/inputs/src/lib/text-area/text-area.component.html +2 -1
  372. package/src/libs/ui/inputs/src/lib/text-area/text-area.component.ts +2 -27
  373. package/src/libs/ui/inputs/src/lib/text-input/text-input.component.html +4 -3
  374. package/src/libs/ui/inputs/src/lib/text-input/text-input.component.ts +4 -16
  375. package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +0 -3
  376. package/src/libs/ui/inputs/src/lib/url-input/url-input.component.css +9 -0
  377. package/src/libs/ui/inputs/src/lib/url-input/url-input.component.html +37 -0
  378. package/src/libs/ui/inputs/src/lib/url-input/url-input.component.ts +33 -0
  379. package/src/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.html +1 -1
  380. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.html +1 -0
  381. package/src/libs/ui/map/src/lib/ui-map.module.ts +1 -1
  382. package/src/libs/ui/search/src/lib/facets/fixtures/aggregations-model-response.ts +7 -6
  383. package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.css +0 -0
  384. package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.html +26 -0
  385. package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.ts +74 -0
  386. package/src/libs/ui/search/src/lib/results-table/results-table.component.html +24 -3
  387. package/src/libs/ui/search/src/lib/results-table/results-table.component.ts +27 -16
  388. package/src/libs/ui/widgets/src/index.ts +1 -0
  389. package/src/libs/ui/widgets/src/lib/popover/popover.component.css +0 -0
  390. package/src/libs/ui/widgets/src/lib/popover/popover.component.html +3 -0
  391. package/src/libs/ui/widgets/src/lib/popover/popover.component.ts +85 -0
  392. package/src/libs/util/app-config/src/lib/fixtures.ts +9 -9
  393. package/tailwind.base.css +18 -5
  394. package/translations/de.json +64 -19
  395. package/translations/en.json +57 -12
  396. package/translations/es.json +54 -9
  397. package/translations/fr.json +68 -23
  398. package/translations/it.json +57 -12
  399. package/translations/nl.json +54 -9
  400. package/translations/pt.json +54 -9
  401. package/translations/sk.json +55 -10
  402. package/src/libs/common/fixtures/src/lib/ol-feature.fixture.ts +0 -7
  403. package/src/libs/common/fixtures/src/lib/utils/freeze.ts +0 -10
  404. package/src/libs/common/fixtures/src/lib/utils/index.ts +0 -1
@@ -1,11 +1,117 @@
1
+ import { CommonModule } from '@angular/common';
1
2
  import { ChangeDetectionStrategy, Component } from '@angular/core';
3
+ import { GenericKeywordsComponent } from '../../../generic-keywords/generic-keywords.component';
4
+ import { PlatformServiceInterface } from '../../../../../../../../../libs/common/domain/src/lib/platform.service.interface';
5
+ import { firstValueFrom, map, shareReplay } from 'rxjs';
6
+ import { EditorFacade } from '../../../../+state/editor.facade';
7
+ import { switchMap } from 'rxjs/operators';
8
+ import { FormFieldMapContainerComponent } from '../form-field-map-container/form-field-map-container.component';
9
+ import { TranslateService } from '@ngx-translate/core';
2
10
  import * as i0 from "@angular/core";
11
+ import * as i1 from "../../../../../../../../../libs/common/domain/src/lib/platform.service.interface";
12
+ import * as i2 from "../../../../+state/editor.facade";
13
+ import * as i3 from "@ngx-translate/core";
14
+ import * as i4 from "@angular/common";
15
+ /**
16
+ * This form field is not like the others, as it will read directly from the state to handle both spatial extents
17
+ * and place keywords.
18
+ * Other types of keywords will not be touched by this field.
19
+ */
3
20
  export class FormFieldSpatialExtentComponent {
4
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldSpatialExtentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldSpatialExtentComponent, isStandalone: true, selector: "gn-ui-form-field-spatial-extent", ngImport: i0, template: "<p>form-field-spatial-extent works!</p>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
21
+ constructor(platformService, editorFacade, translateService) {
22
+ this.platformService = platformService;
23
+ this.editorFacade = editorFacade;
24
+ this.translateService = translateService;
25
+ this.spatialExtents$ = this.editorFacade.record$.pipe(map((record) => ('spatialExtents' in record ? record?.spatialExtents : [])));
26
+ this.shownKeywords$ = this.editorFacade.record$.pipe(map((record) => record?.keywords.filter((k) => k.type === 'place')),
27
+ // look for full keywords in the thesauri
28
+ switchMap((keywords) => Promise.all(keywords.map(async (keyword) => {
29
+ if (!keyword.thesaurus)
30
+ return keyword;
31
+ const allKeywords = await firstValueFrom(this.platformService.searchKeywordsInThesaurus(keyword.label, keyword.thesaurus.id));
32
+ const found = allKeywords.find((k) => k.label === keyword.label);
33
+ return found ?? keyword;
34
+ }))),
35
+ // add additional "unnamed" keywords for extents without a matching keyword
36
+ switchMap(async (keywords) => {
37
+ const spatialExtents = await firstValueFrom(this.spatialExtents$);
38
+ const keywordsFromExtents = await Promise.all(spatialExtents.map(async (extent) => {
39
+ const existingKeyword = extent.description &&
40
+ keywords.find((k) => k.key === extent.description);
41
+ if (existingKeyword) {
42
+ existingKeyword._linkedExtent = extent;
43
+ return null;
44
+ }
45
+ let bbox = null;
46
+ if ('geometry' in extent) {
47
+ bbox = extent.geometry; // FIXME: this should be a bbox too but for now it works...
48
+ }
49
+ else if ('bbox' in extent) {
50
+ bbox = extent.bbox;
51
+ }
52
+ const label = await firstValueFrom(this.translateService.get('editor.record.placeKeywordWithoutLabel'));
53
+ return {
54
+ label,
55
+ type: 'place',
56
+ ...(bbox && { bbox }),
57
+ _linkedExtent: extent,
58
+ _doNotSave: true,
59
+ };
60
+ })).then((keywords) => keywords.filter((k) => !!k));
61
+ return [...keywords, ...keywordsFromExtents];
62
+ }), shareReplay(1));
63
+ }
64
+ async handleKeywordDelete(keyword) {
65
+ const spatialExtents = await firstValueFrom(this.spatialExtents$);
66
+ const shownKeywords = (await firstValueFrom(this.shownKeywords$));
67
+ const newKeywords = shownKeywords.filter((k) => k !== keyword);
68
+ const linkedExtent = '_linkedExtent' in keyword ? keyword._linkedExtent : null;
69
+ const newExtents = linkedExtent
70
+ ? spatialExtents.filter((extent) => linkedExtent !== extent)
71
+ : spatialExtents;
72
+ return this.emitChanges(newKeywords, newExtents);
73
+ }
74
+ async handleKeywordAdd(keyword) {
75
+ const spatialExtents = await firstValueFrom(this.spatialExtents$);
76
+ const shownKeywords = await firstValueFrom(this.shownKeywords$);
77
+ const newKeywords = [...shownKeywords, keyword];
78
+ let newExtents = spatialExtents;
79
+ if (keyword.bbox) {
80
+ newExtents = [
81
+ ...spatialExtents,
82
+ {
83
+ bbox: keyword.bbox,
84
+ description: keyword.key ?? undefined,
85
+ },
86
+ ];
87
+ }
88
+ return this.emitChanges(newKeywords, newExtents);
89
+ }
90
+ async emitChanges(placeKeywords, spatialExtents) {
91
+ // some keywords are only present to allow control over extents; they **should not** be saved!
92
+ const filteredPlaceKeywords = placeKeywords
93
+ .filter((keyword) => !keyword._doNotSave)
94
+ .map(({ label, thesaurus, type }) => ({
95
+ label,
96
+ type,
97
+ ...(thesaurus && { thesaurus }),
98
+ }));
99
+ const notPlaceKeywords = await firstValueFrom(this.editorFacade.record$.pipe(map((record) => record.keywords.filter((k) => k.type !== 'place'))));
100
+ this.editorFacade.updateRecordField('keywords', [
101
+ ...notPlaceKeywords,
102
+ ...filteredPlaceKeywords,
103
+ ]);
104
+ this.editorFacade.updateRecordField('spatialExtents', spatialExtents);
105
+ }
106
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldSpatialExtentComponent, deps: [{ token: i1.PlatformServiceInterface }, { token: i2.EditorFacade }, { token: i3.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
107
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldSpatialExtentComponent, isStandalone: true, selector: "gn-ui-form-field-spatial-extent", ngImport: i0, template: "<div class=\"flex flex-col gap-3\">\n <gn-ui-generic-keywords\n [placeholder]=\"'Search for place keywords'\"\n [keywords]=\"shownKeywords$ | async\"\n [keywordTypes]=\"['place']\"\n (deletedKeyword)=\"handleKeywordDelete($event)\"\n (addedKeyword)=\"handleKeywordAdd($event)\"\n >\n </gn-ui-generic-keywords>\n</div>\n<div class=\"w-full h-96\">\n <gn-ui-form-field-map-container\n [spatialExtents]=\"spatialExtents$ | async\"\n ></gn-ui-form-field-map-container>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "component", type: GenericKeywordsComponent, selector: "gn-ui-generic-keywords", inputs: ["keywords", "keywordTypes", "placeholder"], outputs: ["changedKeywords", "addedKeyword", "deletedKeyword"] }, { kind: "component", type: FormFieldMapContainerComponent, selector: "gn-ui-form-field-map-container", inputs: ["spatialExtents"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
6
108
  }
7
109
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldSpatialExtentComponent, decorators: [{
8
110
  type: Component,
9
- args: [{ selector: 'gn-ui-form-field-spatial-extent', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<p>form-field-spatial-extent works!</p>\n" }]
10
- }] });
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1zcGF0aWFsLWV4dGVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9yZWNvcmQtZm9ybS9mb3JtLWZpZWxkL2Zvcm0tZmllbGQtc3BhdGlhbC1leHRlbnQvZm9ybS1maWVsZC1zcGF0aWFsLWV4dGVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9yZWNvcmQtZm9ybS9mb3JtLWZpZWxkL2Zvcm0tZmllbGQtc3BhdGlhbC1leHRlbnQvZm9ybS1maWVsZC1zcGF0aWFsLWV4dGVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFBOztBQVNsRSxNQUFNLE9BQU8sK0JBQStCOytHQUEvQiwrQkFBK0I7bUdBQS9CLCtCQUErQiwyRkNUNUMsMkNBQ0E7OzRGRFFhLCtCQUErQjtrQkFQM0MsU0FBUzsrQkFDRSxpQ0FBaUMsbUJBRzFCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1mb3JtLWZpZWxkLXNwYXRpYWwtZXh0ZW50JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tZmllbGQtc3BhdGlhbC1leHRlbnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mb3JtLWZpZWxkLXNwYXRpYWwtZXh0ZW50LmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1GaWVsZFNwYXRpYWxFeHRlbnRDb21wb25lbnQge31cbiIsIjxwPmZvcm0tZmllbGQtc3BhdGlhbC1leHRlbnQgd29ya3MhPC9wPlxuIl19
111
+ args: [{ selector: 'gn-ui-form-field-spatial-extent', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
112
+ CommonModule,
113
+ GenericKeywordsComponent,
114
+ FormFieldMapContainerComponent,
115
+ ], template: "<div class=\"flex flex-col gap-3\">\n <gn-ui-generic-keywords\n [placeholder]=\"'Search for place keywords'\"\n [keywords]=\"shownKeywords$ | async\"\n [keywordTypes]=\"['place']\"\n (deletedKeyword)=\"handleKeywordDelete($event)\"\n (addedKeyword)=\"handleKeywordAdd($event)\"\n >\n </gn-ui-generic-keywords>\n</div>\n<div class=\"w-full h-96\">\n <gn-ui-form-field-map-container\n [spatialExtents]=\"spatialExtents$ | async\"\n ></gn-ui-form-field-map-container>\n</div>\n" }]
116
+ }], ctorParameters: function () { return [{ type: i1.PlatformServiceInterface }, { type: i2.EditorFacade }, { type: i3.TranslateService }]; } });
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1zcGF0aWFsLWV4dGVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9yZWNvcmQtZm9ybS9mb3JtLWZpZWxkL2Zvcm0tZmllbGQtc3BhdGlhbC1leHRlbnQvZm9ybS1maWVsZC1zcGF0aWFsLWV4dGVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9yZWNvcmQtZm9ybS9mb3JtLWZpZWxkL2Zvcm0tZmllbGQtc3BhdGlhbC1leHRlbnQvZm9ybS1maWVsZC1zcGF0aWFsLWV4dGVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUtsRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQTtBQUMvRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrRkFBa0YsQ0FBQTtBQUMzSCxPQUFPLEVBQUUsY0FBYyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtDQUFrQyxDQUFBO0FBQy9ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQTtBQUMvRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTs7Ozs7O0FBU3REOzs7O0dBSUc7QUFjSCxNQUFNLE9BQU8sK0JBQStCO0lBNkQxQyxZQUNVLGVBQXlDLEVBQ3pDLFlBQTBCLEVBQzFCLGdCQUFrQztRQUZsQyxvQkFBZSxHQUFmLGVBQWUsQ0FBMEI7UUFDekMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQS9ENUMsb0JBQWUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQzlDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxnQkFBZ0IsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQzVFLENBQUE7UUFFRCxtQkFBYyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDN0MsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxPQUFPLENBQUMsQ0FBQztRQUNuRSx5Q0FBeUM7UUFDekMsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FDckIsT0FBTyxDQUFDLEdBQUcsQ0FDVCxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtZQUM3QixJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVM7Z0JBQUUsT0FBTyxPQUFPLENBQUE7WUFDdEMsTUFBTSxXQUFXLEdBQUcsTUFBTSxjQUFjLENBQ3RDLElBQUksQ0FBQyxlQUFlLENBQUMseUJBQXlCLENBQzVDLE9BQU8sQ0FBQyxLQUFLLEVBQ2IsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQ3JCLENBQ0YsQ0FBQTtZQUNELE1BQU0sS0FBSyxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO1lBQ2hFLE9BQU8sS0FBSyxJQUFJLE9BQU8sQ0FBQTtRQUN6QixDQUFDLENBQUMsQ0FDSCxDQUNGO1FBQ0QsMkVBQTJFO1FBQzNFLFNBQVMsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLEVBQUU7WUFDM0IsTUFBTSxjQUFjLEdBQUcsTUFBTSxjQUFjLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFBO1lBQ2pFLE1BQU0sbUJBQW1CLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUMzQyxjQUFjLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFBRTtnQkFDbEMsTUFBTSxlQUFlLEdBQ25CLE1BQU0sQ0FBQyxXQUFXO29CQUNqQixRQUFRLENBQUMsSUFBSSxDQUNaLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLE1BQU0sQ0FBQyxXQUFXLENBQ2QsQ0FBQTtnQkFDekIsSUFBSSxlQUFlLEVBQUU7b0JBQ25CLGVBQWUsQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFBO29CQUN0QyxPQUFPLElBQUksQ0FBQTtpQkFDWjtnQkFDRCxJQUFJLElBQUksR0FBRyxJQUFJLENBQUE7Z0JBQ2YsSUFBSSxVQUFVLElBQUksTUFBTSxFQUFFO29CQUN4QixJQUFJLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQSxDQUFDLDJEQUEyRDtpQkFDbkY7cUJBQU0sSUFBSSxNQUFNLElBQUksTUFBTSxFQUFFO29CQUMzQixJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQTtpQkFDbkI7Z0JBQ0QsTUFBTSxLQUFLLEdBQUcsTUFBTSxjQUFjLENBQ2hDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsd0NBQXdDLENBQUMsQ0FDcEUsQ0FBQTtnQkFDRCxPQUFPO29CQUNMLEtBQUs7b0JBQ0wsSUFBSSxFQUFFLE9BQU87b0JBQ2IsR0FBRyxDQUFDLElBQUksSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDO29CQUNyQixhQUFhLEVBQUUsTUFBTTtvQkFDckIsVUFBVSxFQUFFLElBQUk7aUJBQ0ksQ0FBQTtZQUN4QixDQUFDLENBQUMsQ0FDSCxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFFakQsT0FBTyxDQUFDLEdBQUcsUUFBUSxFQUFFLEdBQUcsbUJBQW1CLENBQUMsQ0FBQTtRQUM5QyxDQUFDLENBQUMsRUFDRixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQTtJQU1FLENBQUM7SUFFSixLQUFLLENBQUMsbUJBQW1CLENBQUMsT0FBZ0I7UUFDeEMsTUFBTSxjQUFjLEdBQUcsTUFBTSxjQUFjLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFBO1FBQ2pFLE1BQU0sYUFBYSxHQUFHLENBQUMsTUFBTSxjQUFjLENBQ3pDLElBQUksQ0FBQyxjQUFjLENBQ3BCLENBQXdCLENBQUE7UUFDekIsTUFBTSxXQUFXLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLE9BQU8sQ0FBQyxDQUFBO1FBQzlELE1BQU0sWUFBWSxHQUNoQixlQUFlLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUE7UUFDM0QsTUFBTSxVQUFVLEdBQUcsWUFBWTtZQUM3QixDQUFDLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsWUFBWSxLQUFLLE1BQU0sQ0FBQztZQUM1RCxDQUFDLENBQUMsY0FBYyxDQUFBO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUE7SUFDbEQsQ0FBQztJQUVELEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFnQjtRQUNyQyxNQUFNLGNBQWMsR0FBRyxNQUFNLGNBQWMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUE7UUFDakUsTUFBTSxhQUFhLEdBQUcsTUFBTSxjQUFjLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFBO1FBQy9ELE1BQU0sV0FBVyxHQUFHLENBQUMsR0FBRyxhQUFhLEVBQUUsT0FBTyxDQUF3QixDQUFBO1FBQ3RFLElBQUksVUFBVSxHQUFHLGNBQWMsQ0FBQTtRQUMvQixJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUU7WUFDaEIsVUFBVSxHQUFHO2dCQUNYLEdBQUcsY0FBYztnQkFDakI7b0JBQ0UsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO29CQUNsQixXQUFXLEVBQUUsT0FBTyxDQUFDLEdBQUcsSUFBSSxTQUFTO2lCQUN0QzthQUNGLENBQUE7U0FDRjtRQUNELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUE7SUFDbEQsQ0FBQztJQUVELEtBQUssQ0FBQyxXQUFXLENBQ2YsYUFBa0MsRUFDbEMsY0FBc0M7UUFFdEMsOEZBQThGO1FBQzlGLE1BQU0scUJBQXFCLEdBQUcsYUFBYTthQUN4QyxNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQzthQUN4QyxHQUFHLENBQ0YsQ0FBQyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUM3QixDQUFDO1lBQ0MsS0FBSztZQUNMLElBQUk7WUFDSixHQUFHLENBQUMsU0FBUyxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7U0FDcEIsQ0FBQSxDQUNoQixDQUFBO1FBQ0gsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLGNBQWMsQ0FDM0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUM1QixHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQ25FLENBQ0YsQ0FBQTtRQUVELElBQUksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsVUFBVSxFQUFFO1lBQzlDLEdBQUcsZ0JBQWdCO1lBQ25CLEdBQUcscUJBQXFCO1NBQ3pCLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLEVBQUUsY0FBYyxDQUFDLENBQUE7SUFDdkUsQ0FBQzsrR0E1SFUsK0JBQStCO21HQUEvQiwrQkFBK0IsMkZDdkM1QyxtZkFlQSx5RERtQkksWUFBWSxvRkFDWix3QkFBd0Isd0xBQ3hCLDhCQUE4Qjs7NEZBR3JCLCtCQUErQjtrQkFaM0MsU0FBUzsrQkFDRSxpQ0FBaUMsbUJBRzFCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osd0JBQXdCO3dCQUN4Qiw4QkFBOEI7cUJBQy9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQge1xuICBEYXRhc2V0U3BhdGlhbEV4dGVudCxcbiAgS2V5d29yZCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHsgR2VuZXJpY0tleXdvcmRzQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vZ2VuZXJpYy1rZXl3b3Jkcy9nZW5lcmljLWtleXdvcmRzLmNvbXBvbmVudCdcbmltcG9ydCB7IFBsYXRmb3JtU2VydmljZUludGVyZmFjZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL3BsYXRmb3JtLnNlcnZpY2UuaW50ZXJmYWNlJ1xuaW1wb3J0IHsgZmlyc3RWYWx1ZUZyb20sIG1hcCwgc2hhcmVSZXBsYXkgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgRWRpdG9yRmFjYWRlIH0gZnJvbSAnLi4vLi4vLi4vLi4vK3N0YXRlL2VkaXRvci5mYWNhZGUnXG5pbXBvcnQgeyBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcbmltcG9ydCB7IEZvcm1GaWVsZE1hcENvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4uL2Zvcm0tZmllbGQtbWFwLWNvbnRhaW5lci9mb3JtLWZpZWxkLW1hcC1jb250YWluZXIuY29tcG9uZW50J1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5cbi8vIFRoaXMgaW50ZXJtZWRpYXJ5IHR5cGUgd2lsbCBsZXQgdXMga2VlcCB0cmFjayBvZiB3aGljaCBrZXl3b3JkIGlzIGJvdW5kIHRvXG4vLyB3aGljaCBleHRlbnQ7IHRoZXNlIHByb3BlcnRpZXMgd2lsbCBub3QgYmUgcGVyc2lzdGVkXG50eXBlIEtleXdvcmRXaXRoRXh0ZW50ID0gS2V5d29yZCAmIHtcbiAgX2xpbmtlZEV4dGVudDogRGF0YXNldFNwYXRpYWxFeHRlbnRcbiAgX2RvTm90U2F2ZTogYm9vbGVhblxufVxuXG4vKipcbiAqIFRoaXMgZm9ybSBmaWVsZCBpcyBub3QgbGlrZSB0aGUgb3RoZXJzLCBhcyBpdCB3aWxsIHJlYWQgZGlyZWN0bHkgZnJvbSB0aGUgc3RhdGUgdG8gaGFuZGxlIGJvdGggc3BhdGlhbCBleHRlbnRzXG4gKiBhbmQgcGxhY2Uga2V5d29yZHMuXG4gKiBPdGhlciB0eXBlcyBvZiBrZXl3b3JkcyB3aWxsIG5vdCBiZSB0b3VjaGVkIGJ5IHRoaXMgZmllbGQuXG4gKi9cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktZm9ybS1maWVsZC1zcGF0aWFsLWV4dGVudCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLWZpZWxkLXNwYXRpYWwtZXh0ZW50LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS1maWVsZC1zcGF0aWFsLWV4dGVudC5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEdlbmVyaWNLZXl3b3Jkc0NvbXBvbmVudCxcbiAgICBGb3JtRmllbGRNYXBDb250YWluZXJDb21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1GaWVsZFNwYXRpYWxFeHRlbnRDb21wb25lbnQge1xuICBzcGF0aWFsRXh0ZW50cyQgPSB0aGlzLmVkaXRvckZhY2FkZS5yZWNvcmQkLnBpcGUoXG4gICAgbWFwKChyZWNvcmQpID0+ICgnc3BhdGlhbEV4dGVudHMnIGluIHJlY29yZCA/IHJlY29yZD8uc3BhdGlhbEV4dGVudHMgOiBbXSkpXG4gIClcblxuICBzaG93bktleXdvcmRzJCA9IHRoaXMuZWRpdG9yRmFjYWRlLnJlY29yZCQucGlwZShcbiAgICBtYXAoKHJlY29yZCkgPT4gcmVjb3JkPy5rZXl3b3Jkcy5maWx0ZXIoKGspID0+IGsudHlwZSA9PT0gJ3BsYWNlJykpLFxuICAgIC8vIGxvb2sgZm9yIGZ1bGwga2V5d29yZHMgaW4gdGhlIHRoZXNhdXJpXG4gICAgc3dpdGNoTWFwKChrZXl3b3JkcykgPT5cbiAgICAgIFByb21pc2UuYWxsKFxuICAgICAgICBrZXl3b3Jkcy5tYXAoYXN5bmMgKGtleXdvcmQpID0+IHtcbiAgICAgICAgICBpZiAoIWtleXdvcmQudGhlc2F1cnVzKSByZXR1cm4ga2V5d29yZFxuICAgICAgICAgIGNvbnN0IGFsbEtleXdvcmRzID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20oXG4gICAgICAgICAgICB0aGlzLnBsYXRmb3JtU2VydmljZS5zZWFyY2hLZXl3b3Jkc0luVGhlc2F1cnVzKFxuICAgICAgICAgICAgICBrZXl3b3JkLmxhYmVsLFxuICAgICAgICAgICAgICBrZXl3b3JkLnRoZXNhdXJ1cy5pZFxuICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgICBjb25zdCBmb3VuZCA9IGFsbEtleXdvcmRzLmZpbmQoKGspID0+IGsubGFiZWwgPT09IGtleXdvcmQubGFiZWwpXG4gICAgICAgICAgcmV0dXJuIGZvdW5kID8/IGtleXdvcmRcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICApLFxuICAgIC8vIGFkZCBhZGRpdGlvbmFsIFwidW5uYW1lZFwiIGtleXdvcmRzIGZvciBleHRlbnRzIHdpdGhvdXQgYSBtYXRjaGluZyBrZXl3b3JkXG4gICAgc3dpdGNoTWFwKGFzeW5jIChrZXl3b3JkcykgPT4ge1xuICAgICAgY29uc3Qgc3BhdGlhbEV4dGVudHMgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLnNwYXRpYWxFeHRlbnRzJClcbiAgICAgIGNvbnN0IGtleXdvcmRzRnJvbUV4dGVudHMgPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgICAgc3BhdGlhbEV4dGVudHMubWFwKGFzeW5jIChleHRlbnQpID0+IHtcbiAgICAgICAgICBjb25zdCBleGlzdGluZ0tleXdvcmQgPVxuICAgICAgICAgICAgZXh0ZW50LmRlc2NyaXB0aW9uICYmXG4gICAgICAgICAgICAoa2V5d29yZHMuZmluZChcbiAgICAgICAgICAgICAgKGspID0+IGsua2V5ID09PSBleHRlbnQuZGVzY3JpcHRpb25cbiAgICAgICAgICAgICkgYXMgS2V5d29yZFdpdGhFeHRlbnQpXG4gICAgICAgICAgaWYgKGV4aXN0aW5nS2V5d29yZCkge1xuICAgICAgICAgICAgZXhpc3RpbmdLZXl3b3JkLl9saW5rZWRFeHRlbnQgPSBleHRlbnRcbiAgICAgICAgICAgIHJldHVybiBudWxsXG4gICAgICAgICAgfVxuICAgICAgICAgIGxldCBiYm94ID0gbnVsbFxuICAgICAgICAgIGlmICgnZ2VvbWV0cnknIGluIGV4dGVudCkge1xuICAgICAgICAgICAgYmJveCA9IGV4dGVudC5nZW9tZXRyeSAvLyBGSVhNRTogdGhpcyBzaG91bGQgYmUgYSBiYm94IHRvbyBidXQgZm9yIG5vdyBpdCB3b3Jrcy4uLlxuICAgICAgICAgIH0gZWxzZSBpZiAoJ2Jib3gnIGluIGV4dGVudCkge1xuICAgICAgICAgICAgYmJveCA9IGV4dGVudC5iYm94XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IGxhYmVsID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20oXG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuZ2V0KCdlZGl0b3IucmVjb3JkLnBsYWNlS2V5d29yZFdpdGhvdXRMYWJlbCcpXG4gICAgICAgICAgKVxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBsYWJlbCxcbiAgICAgICAgICAgIHR5cGU6ICdwbGFjZScsXG4gICAgICAgICAgICAuLi4oYmJveCAmJiB7IGJib3ggfSksXG4gICAgICAgICAgICBfbGlua2VkRXh0ZW50OiBleHRlbnQsXG4gICAgICAgICAgICBfZG9Ob3RTYXZlOiB0cnVlLFxuICAgICAgICAgIH0gYXMgS2V5d29yZFdpdGhFeHRlbnRcbiAgICAgICAgfSlcbiAgICAgICkudGhlbigoa2V5d29yZHMpID0+IGtleXdvcmRzLmZpbHRlcigoaykgPT4gISFrKSlcblxuICAgICAgcmV0dXJuIFsuLi5rZXl3b3JkcywgLi4ua2V5d29yZHNGcm9tRXh0ZW50c11cbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBwbGF0Zm9ybVNlcnZpY2U6IFBsYXRmb3JtU2VydmljZUludGVyZmFjZSxcbiAgICBwcml2YXRlIGVkaXRvckZhY2FkZTogRWRpdG9yRmFjYWRlLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZVxuICApIHt9XG5cbiAgYXN5bmMgaGFuZGxlS2V5d29yZERlbGV0ZShrZXl3b3JkOiBLZXl3b3JkKSB7XG4gICAgY29uc3Qgc3BhdGlhbEV4dGVudHMgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLnNwYXRpYWxFeHRlbnRzJClcbiAgICBjb25zdCBzaG93bktleXdvcmRzID0gKGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxuICAgICAgdGhpcy5zaG93bktleXdvcmRzJFxuICAgICkpIGFzIEtleXdvcmRXaXRoRXh0ZW50W11cbiAgICBjb25zdCBuZXdLZXl3b3JkcyA9IHNob3duS2V5d29yZHMuZmlsdGVyKChrKSA9PiBrICE9PSBrZXl3b3JkKVxuICAgIGNvbnN0IGxpbmtlZEV4dGVudCA9XG4gICAgICAnX2xpbmtlZEV4dGVudCcgaW4ga2V5d29yZCA/IGtleXdvcmQuX2xpbmtlZEV4dGVudCA6IG51bGxcbiAgICBjb25zdCBuZXdFeHRlbnRzID0gbGlua2VkRXh0ZW50XG4gICAgICA/IHNwYXRpYWxFeHRlbnRzLmZpbHRlcigoZXh0ZW50KSA9PiBsaW5rZWRFeHRlbnQgIT09IGV4dGVudClcbiAgICAgIDogc3BhdGlhbEV4dGVudHNcbiAgICByZXR1cm4gdGhpcy5lbWl0Q2hhbmdlcyhuZXdLZXl3b3JkcywgbmV3RXh0ZW50cylcbiAgfVxuXG4gIGFzeW5jIGhhbmRsZUtleXdvcmRBZGQoa2V5d29yZDogS2V5d29yZCkge1xuICAgIGNvbnN0IHNwYXRpYWxFeHRlbnRzID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5zcGF0aWFsRXh0ZW50cyQpXG4gICAgY29uc3Qgc2hvd25LZXl3b3JkcyA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuc2hvd25LZXl3b3JkcyQpXG4gICAgY29uc3QgbmV3S2V5d29yZHMgPSBbLi4uc2hvd25LZXl3b3Jkcywga2V5d29yZF0gYXMgS2V5d29yZFdpdGhFeHRlbnRbXVxuICAgIGxldCBuZXdFeHRlbnRzID0gc3BhdGlhbEV4dGVudHNcbiAgICBpZiAoa2V5d29yZC5iYm94KSB7XG4gICAgICBuZXdFeHRlbnRzID0gW1xuICAgICAgICAuLi5zcGF0aWFsRXh0ZW50cyxcbiAgICAgICAge1xuICAgICAgICAgIGJib3g6IGtleXdvcmQuYmJveCxcbiAgICAgICAgICBkZXNjcmlwdGlvbjoga2V5d29yZC5rZXkgPz8gdW5kZWZpbmVkLFxuICAgICAgICB9LFxuICAgICAgXVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5lbWl0Q2hhbmdlcyhuZXdLZXl3b3JkcywgbmV3RXh0ZW50cylcbiAgfVxuXG4gIGFzeW5jIGVtaXRDaGFuZ2VzKFxuICAgIHBsYWNlS2V5d29yZHM6IEtleXdvcmRXaXRoRXh0ZW50W10sXG4gICAgc3BhdGlhbEV4dGVudHM6IERhdGFzZXRTcGF0aWFsRXh0ZW50W11cbiAgKSB7XG4gICAgLy8gc29tZSBrZXl3b3JkcyBhcmUgb25seSBwcmVzZW50IHRvIGFsbG93IGNvbnRyb2wgb3ZlciBleHRlbnRzOyB0aGV5ICoqc2hvdWxkIG5vdCoqIGJlIHNhdmVkIVxuICAgIGNvbnN0IGZpbHRlcmVkUGxhY2VLZXl3b3JkcyA9IHBsYWNlS2V5d29yZHNcbiAgICAgIC5maWx0ZXIoKGtleXdvcmQpID0+ICFrZXl3b3JkLl9kb05vdFNhdmUpXG4gICAgICAubWFwKFxuICAgICAgICAoeyBsYWJlbCwgdGhlc2F1cnVzLCB0eXBlIH0pID0+XG4gICAgICAgICAgKHtcbiAgICAgICAgICAgIGxhYmVsLFxuICAgICAgICAgICAgdHlwZSxcbiAgICAgICAgICAgIC4uLih0aGVzYXVydXMgJiYgeyB0aGVzYXVydXMgfSksXG4gICAgICAgICAgfSBhcyBLZXl3b3JkKVxuICAgICAgKVxuICAgIGNvbnN0IG5vdFBsYWNlS2V5d29yZHMgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbShcbiAgICAgIHRoaXMuZWRpdG9yRmFjYWRlLnJlY29yZCQucGlwZShcbiAgICAgICAgbWFwKChyZWNvcmQpID0+IHJlY29yZC5rZXl3b3Jkcy5maWx0ZXIoKGspID0+IGsudHlwZSAhPT0gJ3BsYWNlJykpXG4gICAgICApXG4gICAgKVxuXG4gICAgdGhpcy5lZGl0b3JGYWNhZGUudXBkYXRlUmVjb3JkRmllbGQoJ2tleXdvcmRzJywgW1xuICAgICAgLi4ubm90UGxhY2VLZXl3b3JkcyxcbiAgICAgIC4uLmZpbHRlcmVkUGxhY2VLZXl3b3JkcyxcbiAgICBdKVxuICAgIHRoaXMuZWRpdG9yRmFjYWRlLnVwZGF0ZVJlY29yZEZpZWxkKCdzcGF0aWFsRXh0ZW50cycsIHNwYXRpYWxFeHRlbnRzKVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtM1wiPlxuICA8Z24tdWktZ2VuZXJpYy1rZXl3b3Jkc1xuICAgIFtwbGFjZWhvbGRlcl09XCInU2VhcmNoIGZvciBwbGFjZSBrZXl3b3JkcydcIlxuICAgIFtrZXl3b3Jkc109XCJzaG93bktleXdvcmRzJCB8IGFzeW5jXCJcbiAgICBba2V5d29yZFR5cGVzXT1cIlsncGxhY2UnXVwiXG4gICAgKGRlbGV0ZWRLZXl3b3JkKT1cImhhbmRsZUtleXdvcmREZWxldGUoJGV2ZW50KVwiXG4gICAgKGFkZGVkS2V5d29yZCk9XCJoYW5kbGVLZXl3b3JkQWRkKCRldmVudClcIlxuICA+XG4gIDwvZ24tdWktZ2VuZXJpYy1rZXl3b3Jkcz5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cInctZnVsbCBoLTk2XCI+XG4gIDxnbi11aS1mb3JtLWZpZWxkLW1hcC1jb250YWluZXJcbiAgICBbc3BhdGlhbEV4dGVudHNdPVwic3BhdGlhbEV4dGVudHMkIHwgYXN5bmNcIlxuICA+PC9nbi11aS1mb3JtLWZpZWxkLW1hcC1jb250YWluZXI+XG48L2Rpdj5cbiJdfQ==
@@ -1,11 +1,12 @@
1
- import { ChangeDetectionStrategy, Component, Input, } from '@angular/core';
1
+ import { CommonModule } from '@angular/common';
2
+ import { ChangeDetectionStrategy, Component, Input, Output, } from '@angular/core';
2
3
  import { FormArray, FormControl } from '@angular/forms';
3
- import { SortableListComponent } from '../../../../../../../../../libs/ui/elements/src';
4
- import { Subscription, combineLatest, map } from 'rxjs';
4
+ import { SortableListComponent, } from '../../../../../../../../../libs/ui/elements/src';
5
+ import { ButtonComponent } from '../../../../../../../../../libs/ui/inputs/src';
6
+ import { TranslateService } from '@ngx-translate/core';
7
+ import { Observable, combineLatest, map } from 'rxjs';
5
8
  import { FormFieldTemporalExtentsDateComponent } from './form-field-temporal-extents-date/form-field-temporal-extents-date.component';
6
9
  import { FormFieldTemporalExtentsRangeComponent } from './form-field-temporal-extents-range/form-field-temporal-extents-range.component';
7
- import { TranslateService } from '@ngx-translate/core';
8
- import { CommonModule } from '@angular/common';
9
10
  import * as i0 from "@angular/core";
10
11
  import * as i1 from "@ngx-translate/core";
11
12
  import * as i2 from "@angular/common";
@@ -13,6 +14,7 @@ export class FormFieldTemporalExtentsComponent {
13
14
  constructor(translateService) {
14
15
  this.translateService = translateService;
15
16
  this.array = new FormArray([]);
17
+ this.elements = [];
16
18
  this.addOptions$ = combineLatest([
17
19
  this.translateService
18
20
  .get('editor.record.form.temporalExtents.addDate')
@@ -21,85 +23,80 @@ export class FormFieldTemporalExtentsComponent {
21
23
  .get('editor.record.form.temporalExtents.addRange')
22
24
  .pipe(map((buttonLabel) => ({ buttonLabel, eventName: 'range' }))),
23
25
  ]);
26
+ this.valueChange = this.array.valueChanges;
24
27
  }
25
- ngOnInit() {
26
- this.resetValueFromInput(this.control.value);
27
- this.subscription = new Subscription();
28
- this.subscription.add(this.control.valueChanges.subscribe((value) => {
29
- this.resetValueFromInput(value);
30
- }));
31
- this.subscription.add(this.array.valueChanges.subscribe((value) => {
32
- this.control.setValue(value);
33
- }));
28
+ ngOnChanges() {
29
+ this.resetValueFromInput(this.value);
34
30
  }
35
31
  onElementsChange(elements) {
32
+ this.elements = elements;
36
33
  this.array.clear({ emitEvent: false });
37
- elements.forEach((e, i) => this.array.push(e.inputs.control, {
34
+ this.elements.forEach((e, i) => this.array.push(e.inputs.control, {
38
35
  emitEvent: i === elements.length - 1,
39
36
  }));
40
37
  }
41
38
  onAdd(eventName) {
42
39
  switch (eventName) {
43
40
  case 'date': {
44
- const dateControl = new FormControl({ start: new Date() });
45
- this.array.push(dateControl);
41
+ const instant = { start: new Date() };
42
+ this.pushDate(instant, this.elements, true);
46
43
  break;
47
44
  }
48
45
  case 'range': {
49
- const rangeControl = new FormControl({
46
+ const range = {
50
47
  start: new Date(),
51
48
  end: new Date(),
52
- });
53
- this.array.push(rangeControl);
49
+ };
50
+ this.pushRange(range, this.elements, true);
54
51
  break;
55
52
  }
56
53
  }
57
54
  }
58
- ngOnDestroy() {
59
- this.subscription.unsubscribe();
60
- }
61
55
  resetValueFromInput(value) {
62
56
  this.array.clear({ emitEvent: false });
63
57
  this.elements = [];
58
+ if (!value)
59
+ return;
60
+ const newElements = [];
64
61
  value.forEach((v) => {
65
62
  if ('start' in v && 'end' in v) {
66
- const rangeControl = new FormControl({
67
- start: v.start,
68
- end: v.end,
69
- });
70
- this.array.push(rangeControl, { emitEvent: false });
71
- this.elements = [
72
- ...this.elements,
73
- {
74
- component: FormFieldTemporalExtentsRangeComponent,
75
- inputs: {
76
- control: rangeControl,
77
- },
78
- },
79
- ];
63
+ this.pushRange(v, newElements, false);
80
64
  }
81
65
  else {
82
- const dateControl = new FormControl({ start: v.start });
83
- this.array.push(dateControl, { emitEvent: false });
84
- this.elements = [
85
- ...this.elements,
86
- {
87
- component: FormFieldTemporalExtentsDateComponent,
88
- inputs: {
89
- control: dateControl,
90
- },
91
- },
92
- ];
66
+ this.pushDate(v, newElements, false);
93
67
  }
94
68
  });
69
+ this.elements = newElements;
70
+ }
71
+ pushDate(instant, elements, emitEvent) {
72
+ const dateControl = new FormControl(instant);
73
+ this.array.push(dateControl, { emitEvent });
74
+ elements.push({
75
+ component: FormFieldTemporalExtentsDateComponent,
76
+ inputs: {
77
+ control: dateControl,
78
+ },
79
+ });
80
+ }
81
+ pushRange(period, elements, emitEvent) {
82
+ const rangeControl = new FormControl(period);
83
+ this.array.push(rangeControl, { emitEvent });
84
+ elements.push({
85
+ component: FormFieldTemporalExtentsRangeComponent,
86
+ inputs: {
87
+ control: rangeControl,
88
+ },
89
+ });
95
90
  }
96
91
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldTemporalExtentsComponent, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
97
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldTemporalExtentsComponent, isStandalone: true, selector: "gn-ui-form-field-temporal-extents", inputs: { control: "control" }, ngImport: i0, template: "<gn-ui-sortable-list\n [elements]=\"elements\"\n (elementsChange)=\"onElementsChange($event)\"\n [addOptions]=\"addOptions$ | async\"\n (add)=\"onAdd($event)\"\n></gn-ui-sortable-list>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "component", type: SortableListComponent, selector: "gn-ui-sortable-list", inputs: ["elements", "addOptions"], outputs: ["elementsChange", "add"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
92
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldTemporalExtentsComponent, isStandalone: true, selector: "gn-ui-form-field-temporal-extents", inputs: { value: "value" }, outputs: { valueChange: "valueChange" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"flex gap-2 mb-2\">\n <gn-ui-button\n *ngFor=\"let addOption of addOptions$ | async\"\n (buttonClick)=\"onAdd(addOption.eventName)\"\n >\n <span class=\"material-symbols-outlined gn-ui-icon-small\"> add </span>\n &nbsp;{{ addOption.buttonLabel }}</gn-ui-button\n >\n</div>\n<gn-ui-sortable-list\n [elements]=\"elements\"\n (elementsChange)=\"onElementsChange($event)\"\n></gn-ui-sortable-list>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: SortableListComponent, selector: "gn-ui-sortable-list", inputs: ["elements"], outputs: ["elementsChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
98
93
  }
99
94
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldTemporalExtentsComponent, decorators: [{
100
95
  type: Component,
101
- args: [{ selector: 'gn-ui-form-field-temporal-extents', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, SortableListComponent], template: "<gn-ui-sortable-list\n [elements]=\"elements\"\n (elementsChange)=\"onElementsChange($event)\"\n [addOptions]=\"addOptions$ | async\"\n (add)=\"onAdd($event)\"\n></gn-ui-sortable-list>\n" }]
102
- }], ctorParameters: function () { return [{ type: i1.TranslateService }]; }, propDecorators: { control: [{
96
+ args: [{ selector: 'gn-ui-form-field-temporal-extents', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, ButtonComponent, SortableListComponent], template: "<div class=\"flex gap-2 mb-2\">\n <gn-ui-button\n *ngFor=\"let addOption of addOptions$ | async\"\n (buttonClick)=\"onAdd(addOption.eventName)\"\n >\n <span class=\"material-symbols-outlined gn-ui-icon-small\"> add </span>\n &nbsp;{{ addOption.buttonLabel }}</gn-ui-button\n >\n</div>\n<gn-ui-sortable-list\n [elements]=\"elements\"\n (elementsChange)=\"onElementsChange($event)\"\n></gn-ui-sortable-list>\n" }]
97
+ }], ctorParameters: function () { return [{ type: i1.TranslateService }]; }, propDecorators: { value: [{
103
98
  type: Input
99
+ }], valueChange: [{
100
+ type: Output
104
101
  }] } });
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC10ZW1wb3JhbC1leHRlbnRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9lZGl0b3Ivc3JjL2xpYi9jb21wb25lbnRzL3JlY29yZC1mb3JtL2Zvcm0tZmllbGQvZm9ybS1maWVsZC10ZW1wb3JhbC1leHRlbnRzL2Zvcm0tZmllbGQtdGVtcG9yYWwtZXh0ZW50cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9yZWNvcmQtZm9ybS9mb3JtLWZpZWxkL2Zvcm0tZmllbGQtdGVtcG9yYWwtZXh0ZW50cy9mb3JtLWZpZWxkLXRlbXBvcmFsLWV4dGVudHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxHQUlOLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDdkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saURBQWlELENBQUE7QUFDdkYsT0FBTyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ3ZELE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLCtFQUErRSxDQUFBO0FBQ3JJLE9BQU8sRUFBRSxzQ0FBc0MsRUFBRSxNQUFNLGlGQUFpRixDQUFBO0FBQ3hJLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTs7OztBQVU5QyxNQUFNLE9BQU8saUNBQWlDO0lBb0I1QyxZQUFvQixnQkFBa0M7UUFBbEMs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Qjs7NEZBRWxDLGlDQUFpQztrQkFSN0MsU0FBUzsrQkFDRSxtQ0FBbUMsbUJBRzVCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLHFCQUFxQixDQUFDO3VHQUdyQyxPQUFPO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFR5cGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBGb3JtQXJyYXksIEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXG5pbXBvcnQgeyBTb3J0YWJsZUxpc3RDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2VsZW1lbnRzL3NyYydcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgY29tYmluZUxhdGVzdCwgbWFwIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IEZvcm1GaWVsZFRlbXBvcmFsRXh0ZW50c0RhdGVDb21wb25lbnQgfSBmcm9tICcuL2Zvcm0tZmllbGQtdGVtcG9yYWwtZXh0ZW50cy1kYXRlL2Zvcm0tZmllbGQtdGVtcG9yYWwtZXh0ZW50cy1kYXRlLmNvbXBvbmVudCdcbmltcG9ydCB7IEZvcm1GaWVsZFRlbXBvcmFsRXh0ZW50c1JhbmdlQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtLWZpZWxkLXRlbXBvcmFsLWV4dGVudHMtcmFuZ2UvZm9ybS1maWVsZC10ZW1wb3JhbC1leHRlbnRzLXJhbmdlLmNvbXBvbmVudCdcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1mb3JtLWZpZWxkLXRlbXBvcmFsLWV4dGVudHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1maWVsZC10ZW1wb3JhbC1leHRlbnRzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS1maWVsZC10ZW1wb3JhbC1leHRlbnRzLmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFNvcnRhYmxlTGlzdENvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1GaWVsZFRlbXBvcmFsRXh0ZW50c0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgY29udHJvbCE6IEZvcm1Db250cm9sXG5cbiAgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb25cblxuICBhcnJheTogRm9ybUFycmF5ID0gbmV3IEZvcm1BcnJheShbXSlcbiAgZWxlbWVudHM6IEFycmF5PHtcbiAgICBjb21wb25lbnQ6IFR5cGU8YW55PlxuICAgIGlucHV0czogUmVjb3JkPHN0cmluZywgYW55PlxuICB9PlxuXG4gIGFkZE9wdGlvbnMkID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlXG4gICAgICAuZ2V0KCdlZGl0b3IucmVjb3JkLmZvcm0udGVtcG9yYWxFeHRlbnRzLmFkZERhdGUnKVxuICAgICAgLnBpcGUobWFwKChidXR0b25MYWJlbCkgPT4gKHsgYnV0dG9uTGFiZWwsIGV2ZW50TmFtZTogJ2RhdGUnIH0pKSksXG4gICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlXG4gICAgICAuZ2V0KCdlZGl0b3IucmVjb3JkLmZvcm0udGVtcG9yYWxFeHRlbnRzLmFkZFJhbmdlJylcbiAgICAgIC5waXBlKG1hcCgoYnV0dG9uTGFiZWwpID0+ICh7IGJ1dHRvbkxhYmVsLCBldmVudE5hbWU6ICdyYW5nZScgfSkpKSxcbiAgXSlcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5yZXNldFZhbHVlRnJvbUlucHV0KHRoaXMuY29udHJvbC52YWx1ZSlcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpXG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQoXG4gICAgICB0aGlzLmNvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgdGhpcy5yZXNldFZhbHVlRnJvbUlucHV0KHZhbHVlKVxuICAgICAgfSlcbiAgICApXG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQoXG4gICAgICB0aGlzLmFycmF5LnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZSh2YWx1ZSlcbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgb25FbGVtZW50c0NoYW5nZShlbGVtZW50czogYW55KSB7XG4gICAgdGhpcy5hcnJheS5jbGVhcih7IGVtaXRFdmVudDogZmFsc2UgfSlcbiAgICBlbGVtZW50cy5mb3JFYWNoKChlOiBhbnksIGk6IG51bWJlcikgPT5cbiAgICAgIHRoaXMuYXJyYXkucHVzaChlLmlucHV0cy5jb250cm9sLCB7XG4gICAgICAgIGVtaXRFdmVudDogaSA9PT0gZWxlbWVudHMubGVuZ3RoIC0gMSxcbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgb25BZGQoZXZlbnROYW1lOiBzdHJpbmcpIHtcbiAgICBzd2l0Y2ggKGV2ZW50TmFtZSkge1xuICAgICAgY2FzZSAnZGF0ZSc6IHtcbiAgICAgICAgY29uc3QgZGF0ZUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woeyBzdGFydDogbmV3IERhdGUoKSB9KVxuICAgICAgICB0aGlzLmFycmF5LnB1c2goZGF0ZUNvbnRyb2wpXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgICBjYXNlICdyYW5nZSc6IHtcbiAgICAgICAgY29uc3QgcmFuZ2VDb250cm9sID0gbmV3IEZvcm1Db250cm9sKHtcbiAgICAgICAgICBzdGFydDogbmV3IERhdGUoKSxcbiAgICAgICAgICBlbmQ6IG5ldyBEYXRlKCksXG4gICAgICAgIH0pXG4gICAgICAgIHRoaXMuYXJyYXkucHVzaChyYW5nZUNvbnRyb2wpXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKVxuICB9XG5cbiAgcHJpdmF0ZSByZXNldFZhbHVlRnJvbUlucHV0KHZhbHVlKSB7XG4gICAgdGhpcy5hcnJheS5jbGVhcih7IGVtaXRFdmVudDogZmFsc2UgfSlcbiAgICB0aGlzLmVsZW1lbnRzID0gW11cbiAgICB2YWx1ZS5mb3JFYWNoKCh2OiBhbnkpID0+IHtcbiAgICAgIGlmICgnc3RhcnQnIGluIHYgJiYgJ2VuZCcgaW4gdikge1xuICAgICAgICBjb25zdCByYW5nZUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woe1xuICAgICAgICAgIHN0YXJ0OiB2LnN0YXJ0LFxuICAgICAgICAgIGVuZDogdi5lbmQsXG4gICAgICAgIH0pXG4gICAgICAgIHRoaXMuYXJyYXkucHVzaChyYW5nZUNvbnRyb2wsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KVxuICAgICAgICB0aGlzLmVsZW1lbnRzID0gW1xuICAgICAgICAgIC4uLnRoaXMuZWxlbWVudHMsXG4gICAgICAgICAge1xuICAgICAgICAgICAgY29tcG9uZW50OiBGb3JtRmllbGRUZW1wb3JhbEV4dGVudHNSYW5nZUNvbXBvbmVudCxcbiAgICAgICAgICAgIGlucHV0czoge1xuICAgICAgICAgICAgICBjb250cm9sOiByYW5nZUNvbnRyb2wsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIF1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGRhdGVDb250cm9sID0gbmV3IEZvcm1Db250cm9sKHsgc3RhcnQ6IHYuc3RhcnQgfSlcbiAgICAgICAgdGhpcy5hcnJheS5wdXNoKGRhdGVDb250cm9sLCB7IGVtaXRFdmVudDogZmFsc2UgfSlcbiAgICAgICAgdGhpcy5lbGVtZW50cyA9IFtcbiAgICAgICAgICAuLi50aGlzLmVsZW1lbnRzLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNvbXBvbmVudDogRm9ybUZpZWxkVGVtcG9yYWxFeHRlbnRzRGF0ZUNvbXBvbmVudCxcbiAgICAgICAgICAgIGlucHV0czoge1xuICAgICAgICAgICAgICBjb250cm9sOiBkYXRlQ29udHJvbCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgXVxuICAgICAgfVxuICAgIH0pXG4gIH1cbn1cbiIsIjxnbi11aS1zb3J0YWJsZS1saXN0XG4gIFtlbGVtZW50c109XCJlbGVtZW50c1wiXG4gIChlbGVtZW50c0NoYW5nZSk9XCJvbkVsZW1lbnRzQ2hhbmdlKCRldmVudClcIlxuICBbYWRkT3B0aW9uc109XCJhZGRPcHRpb25zJCB8IGFzeW5jXCJcbiAgKGFkZCk9XCJvbkFkZCgkZXZlbnQpXCJcbj48L2duLXVpLXNvcnRhYmxlLWxpc3Q+XG4iXX0=
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC10ZW1wb3JhbC1leHRlbnRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9lZGl0b3Ivc3JjL2xpYi9jb21wb25lbnRzL3JlY29yZC1mb3JtL2Zvcm0tZmllbGQvZm9ybS1maWVsZC10ZW1wb3JhbC1leHRlbnRzL2Zvcm0tZmllbGQtdGVtcG9yYWwtZXh0ZW50cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9yZWNvcmQtZm9ybS9mb3JtLWZpZWxkL2Zvcm0tZmllbGQtdGVtcG9yYWwtZXh0ZW50cy9mb3JtLWZpZWxkLXRlbXBvcmFsLWV4dGVudHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULEtBQUssRUFFTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUV2RCxPQUFPLEVBRUwscUJBQXFCLEdBQ3RCLE1BQU0saURBQWlELENBQUE7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtDQUErQyxDQUFBO0FBQy9FLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3RELE9BQU8sRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUNyRCxPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSwrRUFBK0UsQ0FBQTtBQUNySSxPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSxpRkFBaUYsQ0FB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QUFiLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IEZvcm1BcnJheSwgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3JtcydcbmltcG9ydCB7IERhdGFzZXRUZW1wb3JhbEV4dGVudCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcbmltcG9ydCB7XG4gIER5bmFtaWNFbGVtZW50LFxuICBTb3J0YWJsZUxpc3RDb21wb25lbnQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjJ1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9pbnB1dHMvc3JjJ1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBjb21iaW5lTGF0ZXN0LCBtYXAgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgRm9ybUZpZWxkVGVtcG9yYWxFeHRlbnRzRGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vZm9ybS1maWVsZC10ZW1wb3JhbC1leHRlbnRzLWRhdGUvZm9ybS1maWVsZC10ZW1wb3JhbC1leHRlbnRzLWRhdGUuY29tcG9uZW50J1xuaW1wb3J0IHsgRm9ybUZpZWxkVGVtcG9yYWxFeHRlbnRzUmFuZ2VDb21wb25lbnQgfSBmcm9tICcuL2Zvcm0tZmllbGQtdGVtcG9yYWwtZXh0ZW50cy1yYW5nZS9mb3JtLWZpZWxkLXRlbXBvcmFsLWV4dGVudHMtcmFuZ2UuY29tcG9uZW50J1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1mb3JtLWZpZWxkLXRlbXBvcmFsLWV4dGVudHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1maWVsZC10ZW1wb3JhbC1leHRlbnRzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS1maWVsZC10ZW1wb3JhbC1leHRlbnRzLmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEJ1dHRvbkNvbXBvbmVudCwgU29ydGFibGVMaXN0Q29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUZpZWxkVGVtcG9yYWxFeHRlbnRzQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgdmFsdWU6IEFycmF5PERhdGFzZXRUZW1wb3JhbEV4dGVudD5cbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlOiBPYnNlcnZhYmxlPEFycmF5PERhdGFzZXRUZW1wb3JhbEV4dGVudD4+XG5cbiAgYXJyYXk6IEZvcm1BcnJheSA9IG5ldyBGb3JtQXJyYXkoW10pXG4gIGVsZW1lbnRzOiBEeW5hbWljRWxlbWVudFtdID0gW11cblxuICBhZGRPcHRpb25zJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMudHJhbnNsYXRlU2VydmljZVxuICAgICAgLmdldCgnZWRpdG9yLnJlY29yZC5mb3JtLnRlbXBvcmFsRXh0ZW50cy5hZGREYXRlJylcbiAgICAgIC5waXBlKG1hcCgoYnV0dG9uTGFiZWwpID0+ICh7IGJ1dHRvbkxhYmVsLCBldmVudE5hbWU6ICdkYXRlJyB9KSkpLFxuICAgIHRoaXMudHJhbnNsYXRlU2VydmljZVxuICAgICAgLmdldCgnZWRpdG9yLnJlY29yZC5mb3JtLnRlbXBvcmFsRXh0ZW50cy5hZGRSYW5nZScpXG4gICAgICAucGlwZShtYXAoKGJ1dHRvbkxhYmVsKSA9PiAoeyBidXR0b25MYWJlbCwgZXZlbnROYW1lOiAncmFuZ2UnIH0pKSksXG4gIF0pXG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7XG4gICAgdGhpcy52YWx1ZUNoYW5nZSA9IHRoaXMuYXJyYXkudmFsdWVDaGFuZ2VzXG4gIH1cblxuICBuZ09uQ2hhbmdlcygpIHtcbiAgICB0aGlzLnJlc2V0VmFsdWVGcm9tSW5wdXQodGhpcy52YWx1ZSlcbiAgfVxuXG4gIG9uRWxlbWVudHNDaGFuZ2UoZWxlbWVudHM6IER5bmFtaWNFbGVtZW50W10pIHtcbiAgICB0aGlzLmVsZW1lbnRzID0gZWxlbWVudHNcbiAgICB0aGlzLmFycmF5LmNsZWFyKHsgZW1pdEV2ZW50OiBmYWxzZSB9KVxuXG4gICAgdGhpcy5lbGVtZW50cy5mb3JFYWNoKChlOiBEeW5hbWljRWxlbWVudCwgaTogbnVtYmVyKSA9PlxuICAgICAgdGhpcy5hcnJheS5wdXNoKGUuaW5wdXRzLmNvbnRyb2wsIHtcbiAgICAgICAgZW1pdEV2ZW50OiBpID09PSBlbGVtZW50cy5sZW5ndGggLSAxLFxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBvbkFkZChldmVudE5hbWU6IHN0cmluZykge1xuICAgIHN3aXRjaCAoZXZlbnROYW1lKSB7XG4gICAgICBjYXNlICdkYXRlJzoge1xuICAgICAgICBjb25zdCBpbnN0YW50ID0geyBzdGFydDogbmV3IERhdGUoKSB9XG4gICAgICAgIHRoaXMucHVzaERhdGUoaW5zdGFudCwgdGhpcy5lbGVtZW50cywgdHJ1ZSlcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICAgIGNhc2UgJ3JhbmdlJzoge1xuICAgICAgICBjb25zdCByYW5nZSA9IHtcbiAgICAgICAgICBzdGFydDogbmV3IERhdGUoKSxcbiAgICAgICAgICBlbmQ6IG5ldyBEYXRlKCksXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wdXNoUmFuZ2UocmFuZ2UsIHRoaXMuZWxlbWVudHMsIHRydWUpXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZXNldFZhbHVlRnJvbUlucHV0KHZhbHVlKSB7XG4gICAgdGhpcy5hcnJheS5jbGVhcih7IGVtaXRFdmVudDogZmFsc2UgfSlcbiAgICB0aGlzLmVsZW1lbnRzID0gW11cbiAgICBpZiAoIXZhbHVlKSByZXR1cm5cblxuICAgIGNvbnN0IG5ld0VsZW1lbnRzID0gW11cbiAgICB2YWx1ZS5mb3JFYWNoKCh2OiBEYXRhc2V0VGVtcG9yYWxFeHRlbnQpID0+IHtcbiAgICAgIGlmICgnc3RhcnQnIGluIHYgJiYgJ2VuZCcgaW4gdikge1xuICAgICAgICB0aGlzLnB1c2hSYW5nZSh2LCBuZXdFbGVtZW50cywgZmFsc2UpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnB1c2hEYXRlKHYsIG5ld0VsZW1lbnRzLCBmYWxzZSlcbiAgICAgIH1cbiAgICB9KVxuICAgIHRoaXMuZWxlbWVudHMgPSBuZXdFbGVtZW50c1xuICB9XG5cbiAgcHJpdmF0ZSBwdXNoRGF0ZShpbnN0YW50LCBlbGVtZW50cywgZW1pdEV2ZW50KSB7XG4gICAgY29uc3QgZGF0ZUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woaW5zdGFudClcbiAgICB0aGlzLmFycmF5LnB1c2goZGF0ZUNvbnRyb2wsIHsgZW1pdEV2ZW50IH0pXG4gICAgZWxlbWVudHMucHVzaCh7XG4gICAgICBjb21wb25lbnQ6IEZvcm1GaWVsZFRlbXBvcmFsRXh0ZW50c0RhdGVDb21wb25lbnQsXG4gICAgICBpbnB1dHM6IHtcbiAgICAgICAgY29udHJvbDogZGF0ZUNvbnRyb2wsXG4gICAgICB9LFxuICAgIH0pXG4gIH1cblxuICBwcml2YXRlIHB1c2hSYW5nZShwZXJpb2QsIGVsZW1lbnRzLCBlbWl0RXZlbnQpIHtcbiAgICBjb25zdCByYW5nZUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2wocGVyaW9kKVxuICAgIHRoaXMuYXJyYXkucHVzaChyYW5nZUNvbnRyb2wsIHsgZW1pdEV2ZW50IH0pXG4gICAgZWxlbWVudHMucHVzaCh7XG4gICAgICBjb21wb25lbnQ6IEZvcm1GaWVsZFRlbXBvcmFsRXh0ZW50c1JhbmdlQ29tcG9uZW50LFxuICAgICAgaW5wdXRzOiB7XG4gICAgICAgIGNvbnRyb2w6IHJhbmdlQ29udHJvbCxcbiAgICAgIH0sXG4gICAgfSlcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZsZXggZ2FwLTIgbWItMlwiPlxuICA8Z24tdWktYnV0dG9uXG4gICAgKm5nRm9yPVwibGV0IGFkZE9wdGlvbiBvZiBhZGRPcHRpb25zJCB8IGFzeW5jXCJcbiAgICAoYnV0dG9uQ2xpY2spPVwib25BZGQoYWRkT3B0aW9uLmV2ZW50TmFtZSlcIlxuICA+XG4gICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkIGduLXVpLWljb24tc21hbGxcIj4gYWRkIDwvc3Bhbj5cbiAgICAmbmJzcDt7eyBhZGRPcHRpb24uYnV0dG9uTGFiZWwgfX08L2duLXVpLWJ1dHRvblxuICA+XG48L2Rpdj5cbjxnbi11aS1zb3J0YWJsZS1saXN0XG4gIFtlbGVtZW50c109XCJlbGVtZW50c1wiXG4gIChlbGVtZW50c0NoYW5nZSk9XCJvbkVsZW1lbnRzQ2hhbmdlKCRldmVudClcIlxuPjwvZ24tdWktc29ydGFibGUtbGlzdD5cbiJdfQ==
@@ -1,5 +1,4 @@
1
- import { ChangeDetectionStrategy, Component, Input, } from '@angular/core';
2
- import { FormControl } from '@angular/forms';
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from '@angular/core';
3
2
  import { CheckToggleComponent, DropdownSelectorComponent, } from '../../../../../../../../../libs/ui/inputs/src';
4
3
  import { TranslateModule, TranslateService } from '@ngx-translate/core';
5
4
  import { firstValueFrom } from 'rxjs';
@@ -7,19 +6,20 @@ import * as i0 from "@angular/core";
7
6
  import * as i1 from "@ngx-translate/core";
8
7
  export class FormFieldUpdateFrequencyComponent {
9
8
  get planned() {
10
- return typeof this.control.value !== 'string';
9
+ return typeof this.value !== 'string';
11
10
  }
12
11
  constructor(translateService) {
13
12
  this.translateService = translateService;
13
+ this.valueChange = new EventEmitter();
14
14
  this.choices = [];
15
15
  }
16
16
  async ngOnInit() {
17
17
  this.choices = await this.getInitialChoices();
18
- if (typeof this.control.value === 'string') {
18
+ if (typeof this.value === 'string') {
19
19
  return;
20
20
  }
21
- const updatedTimes = this.control.value.updatedTimes;
22
- const per = this.control.value.per;
21
+ const updatedTimes = this.value.updatedTimes;
22
+ const per = this.value.per;
23
23
  // the update frequency is not in the list; make it appear there
24
24
  if (updatedTimes && updatedTimes !== 1 && updatedTimes !== 2) {
25
25
  this.choices = [
@@ -35,21 +35,21 @@ export class FormFieldUpdateFrequencyComponent {
35
35
  }
36
36
  onPlannedToggled() {
37
37
  if (this.planned) {
38
- this.control.setValue('notPlanned');
38
+ this.valueChange.emit('notPlanned');
39
39
  }
40
40
  else {
41
- this.control.setValue({ updatedTimes: 1, per: 'day' });
41
+ this.valueChange.emit({ updatedTimes: 1, per: 'day' });
42
42
  }
43
43
  }
44
44
  get selectedFrequency() {
45
- if (typeof this.control.value === 'string')
45
+ if (typeof this.value === 'string')
46
46
  return null;
47
- const { updatedTimes, per } = this.control.value;
47
+ const { updatedTimes, per } = this.value;
48
48
  return `${per}.${updatedTimes}`;
49
49
  }
50
50
  onSelectFrequencyValue(value) {
51
51
  const split = value.split('.');
52
- this.control.setValue({
52
+ this.valueChange.emit({
53
53
  updatedTimes: Number(split[1]),
54
54
  per: split[0],
55
55
  });
@@ -107,12 +107,14 @@ export class FormFieldUpdateFrequencyComponent {
107
107
  ];
108
108
  }
109
109
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldUpdateFrequencyComponent, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
110
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldUpdateFrequencyComponent, isStandalone: true, selector: "gn-ui-form-field-update-frequency", inputs: { control: "control" }, ngImport: i0, template: "<gn-ui-check-toggle\n [label]=\"'editor.record.form.updateFrequency.planned' | translate\"\n [value]=\"planned\"\n (toggled)=\"onPlannedToggled()\"\n></gn-ui-check-toggle>\n<gn-ui-dropdown-selector\n title=\"updateFrequency\"\n [showTitle]=\"false\"\n [choices]=\"choices\"\n [selected]=\"selectedFrequency\"\n (selectValue)=\"onSelectFrequencyValue($event)\"\n [disabled]=\"!planned\"\n>\n</gn-ui-dropdown-selector>\n", styles: [""], dependencies: [{ kind: "component", type: CheckToggleComponent, selector: "gn-ui-check-toggle", inputs: ["title", "label", "value", "color"], outputs: ["toggled"] }, { kind: "component", type: DropdownSelectorComponent, selector: "gn-ui-dropdown-selector", inputs: ["title", "showTitle", "ariaName", "choices", "selected", "maxRows", "extraBtnClass", "minWidth", "disabled"], outputs: ["selectValue"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
110
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldUpdateFrequencyComponent, isStandalone: true, selector: "gn-ui-form-field-update-frequency", inputs: { value: "value" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<gn-ui-check-toggle\n [label]=\"'editor.record.form.updateFrequency.planned' | translate\"\n [value]=\"planned\"\n (toggled)=\"onPlannedToggled()\"\n></gn-ui-check-toggle>\n<gn-ui-dropdown-selector\n title=\"updateFrequency\"\n [showTitle]=\"false\"\n [choices]=\"choices\"\n [selected]=\"selectedFrequency\"\n (selectValue)=\"onSelectFrequencyValue($event)\"\n [disabled]=\"!planned\"\n>\n</gn-ui-dropdown-selector>\n", styles: [""], dependencies: [{ kind: "component", type: CheckToggleComponent, selector: "gn-ui-check-toggle", inputs: ["title", "label", "value", "color"], outputs: ["toggled"] }, { kind: "component", type: DropdownSelectorComponent, selector: "gn-ui-dropdown-selector", inputs: ["title", "showTitle", "ariaName", "choices", "selected", "maxRows", "extraBtnClass", "minWidth", "disabled"], outputs: ["selectValue"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
111
111
  }
112
112
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldUpdateFrequencyComponent, decorators: [{
113
113
  type: Component,
114
114
  args: [{ selector: 'gn-ui-form-field-update-frequency', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CheckToggleComponent, DropdownSelectorComponent, TranslateModule], template: "<gn-ui-check-toggle\n [label]=\"'editor.record.form.updateFrequency.planned' | translate\"\n [value]=\"planned\"\n (toggled)=\"onPlannedToggled()\"\n></gn-ui-check-toggle>\n<gn-ui-dropdown-selector\n title=\"updateFrequency\"\n [showTitle]=\"false\"\n [choices]=\"choices\"\n [selected]=\"selectedFrequency\"\n (selectValue)=\"onSelectFrequencyValue($event)\"\n [disabled]=\"!planned\"\n>\n</gn-ui-dropdown-selector>\n" }]
115
- }], ctorParameters: function () { return [{ type: i1.TranslateService }]; }, propDecorators: { control: [{
115
+ }], ctorParameters: function () { return [{ type: i1.TranslateService }]; }, propDecorators: { value: [{
116
116
  type: Input
117
+ }], valueChange: [{
118
+ type: Output
117
119
  }] } });
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC11cGRhdGUtZnJlcXVlbmN5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9lZGl0b3Ivc3JjL2xpYi9jb21wb25lbnRzL3JlY29yZC1mb3JtL2Zvcm0tZmllbGQvZm9ybS1maWVsZC11cGRhdGUtZnJlcXVlbmN5L2Zvcm0tZmllbGQtdXBkYXRlLWZyZXF1ZW5jeS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9yZWNvcmQtZm9ybS9mb3JtLWZpZWxkL2Zvcm0tZmllbGQtdXBkYXRlLWZyZXF1ZW5jeS9mb3JtLWZpZWxkLXVwZGF0ZS1mcmVxdWVuY3kuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxHQUVOLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUM1QyxPQUFPLEVBQ0wsb0JBQW9CLEVBRXBCLHlCQUF5QixHQUMxQixNQUFNLCtDQUErQyxDQUFBO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUt2RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFBOzs7QUFVckMsTUFBTSxPQUFPLGlDQUFpQztJQUs1QyxJQUFJLE9BQU87UUFDVCxPQUFPLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEtBQUssUUFBUSxDQUFBO0lBQy9DLENBQUM7SUFFRCxZQUFvQixnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQU41QyxZQUFPLEdBQXFCLEVBQUUsQ0FBQTtJQU1pQixD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c0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXG5pbXBvcnQge1xuICBDaGVja1RvZ2dsZUNvbXBvbmVudCxcbiAgRHJvcGRvd25DaG9pY2UsXG4gIERyb3Bkb3duU2VsZWN0b3JDb21wb25lbnQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvaW5wdXRzL3NyYydcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQge1xuICBVcGRhdGVGcmVxdWVuY3ksXG4gIFVwZGF0ZUZyZXF1ZW5jeUN1c3RvbSxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHsgZmlyc3RWYWx1ZUZyb20gfSBmcm9tICdyeGpzJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1mb3JtLWZpZWxkLXVwZGF0ZS1mcmVxdWVuY3knLFxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1maWVsZC11cGRhdGUtZnJlcXVlbmN5LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS1maWVsZC11cGRhdGUtZnJlcXVlbmN5LmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDaGVja1RvZ2dsZUNvbXBvbmVudCwgRHJvcGRvd25TZWxlY3RvckNvbXBvbmVudCwgVHJhbnNsYXRlTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUZpZWxkVXBkYXRlRnJlcXVlbmN5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgY29udHJvbDogRm9ybUNvbnRyb2w8VXBkYXRlRnJlcXVlbmN5PlxuXG4gIHByb3RlY3RlZCBjaG9pY2VzOiBEcm9wZG93bkNob2ljZVtdID0gW11cblxuICBnZXQgcGxhbm5lZCgpIHtcbiAgICByZXR1cm4gdHlwZW9mIHRoaXMuY29udHJvbC52YWx1ZSAhPT0gJ3N0cmluZydcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSkge31cblxuICBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmNob2ljZXMgPSBhd2FpdCB0aGlzLmdldEluaXRpYWxDaG9pY2VzKClcbiAgICBpZiAodHlwZW9mIHRoaXMuY29udHJvbC52YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBjb25zdCB1cGRhdGVkVGltZXMgPSB0aGlzLmNvbnRyb2wudmFsdWUudXBkYXRlZFRpbWVzXG4gICAgY29uc3QgcGVyID0gdGhpcy5jb250cm9sLnZhbHVlLnBlclxuICAgIC8vIHRoZSB1cGRhdGUgZnJlcXVlbmN5IGlzIG5vdCBpbiB0aGUgbGlzdDsgbWFrZSBpdCBhcHBlYXIgdGhlcmVcbiAgICBpZiAodXBkYXRlZFRpbWVzICYmIHVwZGF0ZWRUaW1lcyAhPT0gMSAmJiB1cGRhdGVkVGltZXMgIT09IDIpIHtcbiAgICAgIHRoaXMuY2hvaWNlcyA9IFtcbiAgICAgICAge1xuICAgICAgICAgIHZhbHVlOiBgJHtwZXJ9LiR7dXBkYXRlZFRpbWVzfWAsXG4gICAgICAgICAgbGFiZWw6IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmdldChgZG9tYWluLnJlY29yZC51cGRhdGVGcmVxdWVuY3kuJHtwZXJ9YCwge1xuICAgICAgICAgICAgICBjb3VudDogdXBkYXRlZFRpbWVzLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApLFxuICAgICAgICB9LFxuICAgICAgICAuLi50aGlzLmNob2ljZXMsXG4gICAgICBdXG4gICAgfVxuICB9XG5cbiAgb25QbGFubmVkVG9nZ2xlZCgpIHtcbiAgICBpZiAodGhpcy5wbGFubmVkKSB7XG4gICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUoJ25vdFBsYW5uZWQnKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUoeyB1cGRhdGVkVGltZXM6IDEsIHBlcjogJ2RheScgfSlcbiAgICB9XG4gIH1cblxuICBnZXQgc2VsZWN0ZWRGcmVxdWVuY3koKTogc3RyaW5nIHtcbiAgICBpZiAodHlwZW9mIHRoaXMuY29udHJvbC52YWx1ZSA9PT0gJ3N0cmluZycpIHJldHVybiBudWxsXG4gICAgY29uc3QgeyB1cGRhdGVkVGltZXMsIHBlciB9ID0gdGhpcy5jb250cm9sLnZhbHVlXG4gICAgcmV0dXJuIGAke3Blcn0uJHt1cGRhdGVkVGltZXN9YFxuICB9XG5cbiAgb25TZWxlY3RGcmVxdWVuY3lWYWx1ZSh2YWx1ZTogdW5rbm93bikge1xuICAgIGNvbnN0IHNwbGl0ID0gKHZhbHVlIGFzIHN0cmluZykuc3BsaXQoJy4nKVxuICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZSh7XG4gICAgICB1cGRhdGVkVGltZXM6IE51bWJlcihzcGxpdFsxXSksXG4gICAgICBwZXI6IHNwbGl0WzBdIGFzIFVwZGF0ZUZyZXF1ZW5jeUN1c3RvbVsncGVyJ10sXG4gICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0SW5pdGlhbENob2ljZXMoKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHtcbiAgICAgICAgdmFsdWU6ICdkYXkuMScsXG4gICAgICAgIGxhYmVsOiBhd2FpdCBmaXJzdFZhbHVlRnJvbShcbiAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuZ2V0KCdkb21haW4ucmVjb3JkLnVwZGF0ZUZyZXF1ZW5jeS5kYXknLCB7XG4gICAgICAgICAgICBjb3VudDogMSxcbiAgICAgICAgICB9KVxuICAgICAgICApLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdmFsdWU6ICdkYXkuMicsXG4gICAgICAgIGxhYmVsOiBhd2FpdCBmaXJzdFZhbHVlRnJvbShcbiAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuZ2V0KCdkb21haW4ucmVjb3JkLnVwZGF0ZUZyZXF1ZW5jeS5kYXknLCB7XG4gICAgICAgICAgICBjb3VudDogMixcbiAgICAgICAgICB9KVxuICAgICAgICApLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdmFsdWU6ICd3ZWVrLjEnLFxuICAgICAgICBsYWJlbDogYXdhaXQgZmlyc3RWYWx1ZUZyb20oXG4gICAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmdldCgnZG9tYWluLnJlY29yZC51cGRhdGVGcmVxdWVuY3kud2VlaycsIHtcbiAgICAgICAgICAgIGNvdW50OiAxLFxuICAgICAgICAgIH0pXG4gICAgICAgICksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB2YWx1ZTogJ3dlZWsuMicsXG4gICAgICAgIGxhYmVsOiBhd2FpdCBmaXJzdFZhbHVlRnJvbShcbiAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuZ2V0KCdkb21haW4ucmVjb3JkLnVwZGF0ZUZyZXF1ZW5jeS53ZWVrJywge1xuICAgICAgICAgICAgY291bnQ6IDIsXG4gICAgICAgICAgfSlcbiAgICAgICAgKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHZhbHVlOiAnbW9udGguMScsXG4gICAgICAgIGxhYmVsOiBhd2FpdCBmaXJzdFZhbHVlRnJvbShcbiAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuZ2V0KCdkb21haW4ucmVjb3JkLnVwZGF0ZUZyZXF1ZW5jeS5tb250aCcsIHtcbiAgICAgICAgICAgIGNvdW50OiAxLFxuICAgICAgICAgIH0pXG4gICAgICAgICksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB2YWx1ZTogJ21vbnRoLjInLFxuICAgICAgICBsYWJlbDogYXdhaXQgZmlyc3RWYWx1ZUZyb20oXG4gICAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmdldCgnZG9tYWluLnJlY29yZC51cGRhdGVGcmVxdWVuY3kubW9udGgnLCB7XG4gICAgICAgICAgICBjb3VudDogMixcbiAgICAgICAgICB9KVxuICAgICAgICApLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdmFsdWU6ICd5ZWFyLjEnLFxuICAgICAgICBsYWJlbDogYXdhaXQgZmlyc3RWYWx1ZUZyb20oXG4gICAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmdldCgnZG9tYWluLnJlY29yZC51cGRhdGVGcmVxdWVuY3kueWVhcicsIHtcbiAgICAgICAgICAgIGNvdW50OiAxLFxuICAgICAgICAgIH0pXG4gICAgICAgICksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB2YWx1ZTogJ3llYXIuMicsXG4gICAgICAgIGxhYmVsOiBhd2FpdCBmaXJzdFZhbHVlRnJvbShcbiAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuZ2V0KCdkb21haW4ucmVjb3JkLnVwZGF0ZUZyZXF1ZW5jeS55ZWFyJywge1xuICAgICAgICAgICAgY291bnQ6IDIsXG4gICAgICAgICAgfSlcbiAgICAgICAgKSxcbiAgICAgIH0sXG4gICAgXVxuICB9XG59XG4iLCI8Z24tdWktY2hlY2stdG9nZ2xlXG4gIFtsYWJlbF09XCInZWRpdG9yLnJlY29yZC5mb3JtLnVwZGF0ZUZyZXF1ZW5jeS5wbGFubmVkJyB8IHRyYW5zbGF0ZVwiXG4gIFt2YWx1ZV09XCJwbGFubmVkXCJcbiAgKHRvZ2dsZWQpPVwib25QbGFubmVkVG9nZ2xlZCgpXCJcbj48L2duLXVpLWNoZWNrLXRvZ2dsZT5cbjxnbi11aS1kcm9wZG93bi1zZWxlY3RvclxuICB0aXRsZT1cInVwZGF0ZUZyZXF1ZW5jeVwiXG4gIFtzaG93VGl0bGVdPVwiZmFsc2VcIlxuICBbY2hvaWNlc109XCJjaG9pY2VzXCJcbiAgW3NlbGVjdGVkXT1cInNlbGVjdGVkRnJlcXVlbmN5XCJcbiAgKHNlbGVjdFZhbHVlKT1cIm9uU2VsZWN0RnJlcXVlbmN5VmFsdWUoJGV2ZW50KVwiXG4gIFtkaXNhYmxlZF09XCIhcGxhbm5lZFwiXG4+XG48L2duLXVpLWRyb3Bkb3duLXNlbGVjdG9yPlxuIl19
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC11cGRhdGUtZnJlcXVlbmN5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9lZGl0b3Ivc3JjL2xpYi9jb21wb25lbnRzL3JlY29yZC1mb3JtL2Zvcm0tZmllbGQvZm9ybS1maWVsZC11cGRhdGUtZnJlcXVlbmN5L2Zvcm0tZmllbGQtdXBkYXRlLWZyZXF1ZW5jeS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9yZWNvcmQtZm9ybS9mb3JtLWZpZWxkL2Zvcm0tZmllbGQtdXBkYXRlLWZyZXF1ZW5jeS9mb3JtLWZpZWxkLXVwZGF0ZS1mcmVxdWVuY3kuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUE7QUFLdEIsT0FBTyxFQUNMLG9CQUFvQixFQUVwQix5QkFBeUIsR0FDMUIsTUFBTSwrQ0FBK0MsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDdkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQTs7O0FBVXJDLE1BQU0sT0FBTyxpQ0FBaUM7SUFNNUMsSUFBSSxPQUFPO1FBQ1QsT0FBTyxPQUFPLElBQUksQ0FBQyxLQUFLLEtBQUssUUFBUSxDQUFBO0lBQ3ZDLENBQUM7SUFFRCxZQUFvQixnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQVI1QyxnQkFBVyxHQUFrQyxJQUFJLFlBQVksRUFBRSxDQUFBO1FBRS9ELFlBQU8sR0FBcUIsRUFBRSxDQUFBO0lBTWlCLENBQUM7SUFFMUQsS0FBSyxDQUFDLFFBQVE7UUFDWixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUE7UUFDN0MsSUFBSSxPQUFPLElBQUksQ0FBQyxLQUFLLEtBQUssUUFBUSxFQUFFO1lBQ2xDLE9BQU07U0FDUDtRQUNELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFBO1FBQzVDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFBO1FBQzFCLGdFQUFnRTtRQUNoRSxJQUFJLFlBQVksSUFBSSxZQUFZLEtBQUssQ0FBQyxJQUFJLFlBQVksS0FBSyxDQUFDLEVBQUU7WUFDNUQsSUFBSSxDQUFDLE9BQU8sR0FBRztnQkFDYjtvQkFDRSxLQUFLLEVBQUUsR0FBRyxHQUFHLElBQUksWUFBWSxFQUFFO29CQUMvQixLQUFLLEVBQUUsTUFBTSxjQUFjLENBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsaUNBQWlDLEdBQUcsRUFBRSxFQUFFO3dCQUNoRSxLQUFLLEVBQUUsWUFBWTtxQkFDcEIsQ0FBQyxDQUNIO2lCQUNGO2dCQUNELEdBQUcsSUFBSSxDQUFDLE9BQU87YUFDaEIsQ0FBQTtTQUNGO0lBQ0gsQ0FBQztJQUVELGdCQUFnQjtRQUNkLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNoQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQTtTQUNwQzthQUFNO1lBQ0wsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxZQUFZLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFBO1NBQ3ZEO0lBQ0gsQ0FBQztJQUVELElBQUksaUJBQWlCO1FBQ25CLElBQUksT0FBTyxJQUFJLENBQUMsS0FBSyxLQUFLLFFBQVE7WUFBRSxPQUFPLElBQUksQ0FBQTtRQUMvQyxNQUFNLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUE7UUFDeEMsT0FBTyxHQUFHLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQTtJQUNqQyxDQUFDO0lBRUQsc0JBQXNCLENBQUMsS0FBYztRQUNuQyxNQUFNLEtBQUssR0FBSSxLQUFnQixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUMxQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztZQUNwQixZQUFZLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM5QixHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBaUM7U0FDOUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVPLEtBQUssQ0FBQyxpQkFBaUI7UUFDN0IsT0FBTztZQUNMO2dCQUNFLEtBQUssRUFBRSxPQUFPO2dCQUNkLEtBQUssRUFBRSxNQUFNLGNBQWMsQ0FDekIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxtQ0FBbUMsRUFBRTtvQkFDN0QsS0FBSyxFQUFFLENBQUM7aUJBQ1QsQ0FBQyxDQUNIO2FBQ0Y7WUFDRDtnQkFDRSxLQUFLLEVBQUUsT0FBTztnQkFDZCxLQUFLLEVBQUUsTUFBTSxjQUFjLENBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsbUNBQW1DLEVBQUU7b0JBQzdELEtBQUssRUFBRSxDQUFDO2lCQUNULENBQUMsQ0FDSDthQUNGO1lBQ0Q7Z0JBQ0UsS0FBSyxFQUFFLFFBQVE7Z0JBQ2YsS0FBSyxFQUFFLE1BQU0sY0FBYyxDQUN6QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLG9DQUFvQyxFQUFFO29CQUM5RCxLQUFLLEVBQUUsQ0FBQztpQkFDVCxDQUFDLENBQ0g7YUFDRjtZQUNEO2dCQUNFLEtBQUssRUFBRSxRQUFRO2dCQUNmLEtBQUssRUFBRSxNQUFNLGNBQWMsQ0FDekIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxvQ0FBb0MsRUFBRTtvQkFDOUQsS0FBSyxFQUFFLENBQUM7aUJBQ1QsQ0FBQyxDQUNIO2FBQ0Y7WUFDRDtnQkFDRSxLQUFLLEVBQUUsU0FBUztnQkFDaEIsS0FBSyxFQUFFLE1BQU0sY0FBYyxDQUN6QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLHFDQUFxQyxFQUFFO29CQUMvRCxLQUFLLEVBQUUsQ0FBQztpQkFDVCxDQUFDLENBQ0g7YUFDRjtZQUNEO2dCQUNFLEtBQUssRUFBRSxTQUFTO2dCQUNoQixLQUFLLEVBQUUsTUFBTSxjQUFjLENBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMscUNBQXFDLEVBQUU7b0JBQy9ELEtBQUssRUFBRSxDQUFDO2lCQUNULENBQUMsQ0FDSDthQUNGO1lBQ0Q7Z0JBQ0UsS0FBSyxFQUFFLFFBQVE7Z0JBQ2YsS0FBSyxFQUFFLE1BQU0sY0FBYyxDQUN6QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLG9DQUFvQyxFQUFFO29CQUM5RCxLQUFLLEVBQUUsQ0FBQztpQkFDVCxDQUFDLENBQ0g7YUFDRjtZQUNEO2dCQUNFLEtBQUssRUFBRSxRQUFRO2dCQUNmLEtBQUssRUFBRSxNQUFNLGNBQWMsQ0FDekIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxvQ0FBb0MsRUFBRTtvQkFDOUQsS0FBSyxFQUFFLENBQUM7aUJBQ1QsQ0FBQyxDQUNIO2FBQ0Y7U0FDRixDQUFBO0lBQ0gsQ0FBQzsrR0E1SFUsaUNBQWlDO21HQUFqQyxpQ0FBaUMsa0tDNUI5Qyw2YUFjQSwwRERZWSxvQkFBb0IsbUlBQUUseUJBQXlCLG9OQUFFLGVBQWU7OzRGQUUvRCxpQ0FBaUM7a0JBUjdDLFNBQVM7K0JBQ0UsbUNBQW1DLG1CQUc1Qix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFDLG9CQUFvQixFQUFFLHlCQUF5QixFQUFFLGVBQWUsQ0FBQzt1R0FHbEUsS0FBSztzQkFBYixLQUFLO2dCQUNJLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7XG4gIFVwZGF0ZUZyZXF1ZW5jeSxcbiAgVXBkYXRlRnJlcXVlbmN5Q3VzdG9tLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQge1xuICBDaGVja1RvZ2dsZUNvbXBvbmVudCxcbiAgRHJvcGRvd25DaG9pY2UsXG4gIERyb3Bkb3duU2VsZWN0b3JDb21wb25lbnQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvaW5wdXRzL3NyYydcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLWZvcm0tZmllbGQtdXBkYXRlLWZyZXF1ZW5jeScsXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLWZpZWxkLXVwZGF0ZS1mcmVxdWVuY3kuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mb3JtLWZpZWxkLXVwZGF0ZS1mcmVxdWVuY3kuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NoZWNrVG9nZ2xlQ29tcG9uZW50LCBEcm9wZG93blNlbGVjdG9yQ29tcG9uZW50LCBUcmFuc2xhdGVNb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtRmllbGRVcGRhdGVGcmVxdWVuY3lDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSB2YWx1ZTogVXBkYXRlRnJlcXVlbmN5XG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPFVwZGF0ZUZyZXF1ZW5jeT4gPSBuZXcgRXZlbnRFbWl0dGVyKClcblxuICBwcm90ZWN0ZWQgY2hvaWNlczogRHJvcGRvd25DaG9pY2VbXSA9IFtdXG5cbiAgZ2V0IHBsYW5uZWQoKSB7XG4gICAgcmV0dXJuIHR5cGVvZiB0aGlzLnZhbHVlICE9PSAnc3RyaW5nJ1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7fVxuXG4gIGFzeW5jIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY2hvaWNlcyA9IGF3YWl0IHRoaXMuZ2V0SW5pdGlhbENob2ljZXMoKVxuICAgIGlmICh0eXBlb2YgdGhpcy52YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBjb25zdCB1cGRhdGVkVGltZXMgPSB0aGlzLnZhbHVlLnVwZGF0ZWRUaW1lc1xuICAgIGNvbnN0IHBlciA9IHRoaXMudmFsdWUucGVyXG4gICAgLy8gdGhlIHVwZGF0ZSBmcmVxdWVuY3kgaXMgbm90IGluIHRoZSBsaXN0OyBtYWtlIGl0IGFwcGVhciB0aGVyZVxuICAgIGlmICh1cGRhdGVkVGltZXMgJiYgdXBkYXRlZFRpbWVzICE9PSAxICYmIHVwZGF0ZWRUaW1lcyAhPT0gMikge1xuICAgICAgdGhpcy5jaG9pY2VzID0gW1xuICAgICAgICB7XG4gICAgICAgICAgdmFsdWU6IGAke3Blcn0uJHt1cGRhdGVkVGltZXN9YCxcbiAgICAgICAgICBsYWJlbDogYXdhaXQgZmlyc3RWYWx1ZUZyb20oXG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuZ2V0KGBkb21haW4ucmVjb3JkLnVwZGF0ZUZyZXF1ZW5jeS4ke3Blcn1gLCB7XG4gICAgICAgICAgICAgIGNvdW50OiB1cGRhdGVkVGltZXMsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICksXG4gICAgICAgIH0sXG4gICAgICAgIC4uLnRoaXMuY2hvaWNlcyxcbiAgICAgIF1cbiAgICB9XG4gIH1cblxuICBvblBsYW5uZWRUb2dnbGVkKCkge1xuICAgIGlmICh0aGlzLnBsYW5uZWQpIHtcbiAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCgnbm90UGxhbm5lZCcpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh7IHVwZGF0ZWRUaW1lczogMSwgcGVyOiAnZGF5JyB9KVxuICAgIH1cbiAgfVxuXG4gIGdldCBzZWxlY3RlZEZyZXF1ZW5jeSgpOiBzdHJpbmcge1xuICAgIGlmICh0eXBlb2YgdGhpcy52YWx1ZSA9PT0gJ3N0cmluZycpIHJldHVybiBudWxsXG4gICAgY29uc3QgeyB1cGRhdGVkVGltZXMsIHBlciB9ID0gdGhpcy52YWx1ZVxuICAgIHJldHVybiBgJHtwZXJ9LiR7dXBkYXRlZFRpbWVzfWBcbiAgfVxuXG4gIG9uU2VsZWN0RnJlcXVlbmN5VmFsdWUodmFsdWU6IHVua25vd24pIHtcbiAgICBjb25zdCBzcGxpdCA9ICh2YWx1ZSBhcyBzdHJpbmcpLnNwbGl0KCcuJylcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoe1xuICAgICAgdXBkYXRlZFRpbWVzOiBOdW1iZXIoc3BsaXRbMV0pLFxuICAgICAgcGVyOiBzcGxpdFswXSBhcyBVcGRhdGVGcmVxdWVuY3lDdXN0b21bJ3BlciddLFxuICAgIH0pXG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldEluaXRpYWxDaG9pY2VzKCkge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIHZhbHVlOiAnZGF5LjEnLFxuICAgICAgICBsYWJlbDogYXdhaXQgZmlyc3RWYWx1ZUZyb20oXG4gICAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmdldCgnZG9tYWluLnJlY29yZC51cGRhdGVGcmVxdWVuY3kuZGF5Jywge1xuICAgICAgICAgICAgY291bnQ6IDEsXG4gICAgICAgICAgfSlcbiAgICAgICAgKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHZhbHVlOiAnZGF5LjInLFxuICAgICAgICBsYWJlbDogYXdhaXQgZmlyc3RWYWx1ZUZyb20oXG4gICAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmdldCgnZG9tYWluLnJlY29yZC51cGRhdGVGcmVxdWVuY3kuZGF5Jywge1xuICAgICAgICAgICAgY291bnQ6IDIsXG4gICAgICAgICAgfSlcbiAgICAgICAgKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHZhbHVlOiAnd2Vlay4xJyxcbiAgICAgICAgbGFiZWw6IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxuICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5nZXQoJ2RvbWFpbi5yZWNvcmQudXBkYXRlRnJlcXVlbmN5LndlZWsnLCB7XG4gICAgICAgICAgICBjb3VudDogMSxcbiAgICAgICAgICB9KVxuICAgICAgICApLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdmFsdWU6ICd3ZWVrLjInLFxuICAgICAgICBsYWJlbDogYXdhaXQgZmlyc3RWYWx1ZUZyb20oXG4gICAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmdldCgnZG9tYWluLnJlY29yZC51cGRhdGVGcmVxdWVuY3kud2VlaycsIHtcbiAgICAgICAgICAgIGNvdW50OiAyLFxuICAgICAgICAgIH0pXG4gICAgICAgICksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB2YWx1ZTogJ21vbnRoLjEnLFxuICAgICAgICBsYWJlbDogYXdhaXQgZmlyc3RWYWx1ZUZyb20oXG4gICAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmdldCgnZG9tYWluLnJlY29yZC51cGRhdGVGcmVxdWVuY3kubW9udGgnLCB7XG4gICAgICAgICAgICBjb3VudDogMSxcbiAgICAgICAgICB9KVxuICAgICAgICApLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdmFsdWU6ICdtb250aC4yJyxcbiAgICAgICAgbGFiZWw6IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxuICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5nZXQoJ2RvbWFpbi5yZWNvcmQudXBkYXRlRnJlcXVlbmN5Lm1vbnRoJywge1xuICAgICAgICAgICAgY291bnQ6IDIsXG4gICAgICAgICAgfSlcbiAgICAgICAgKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHZhbHVlOiAneWVhci4xJyxcbiAgICAgICAgbGFiZWw6IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxuICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5nZXQoJ2RvbWFpbi5yZWNvcmQudXBkYXRlRnJlcXVlbmN5LnllYXInLCB7XG4gICAgICAgICAgICBjb3VudDogMSxcbiAgICAgICAgICB9KVxuICAgICAgICApLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdmFsdWU6ICd5ZWFyLjInLFxuICAgICAgICBsYWJlbDogYXdhaXQgZmlyc3RWYWx1ZUZyb20oXG4gICAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmdldCgnZG9tYWluLnJlY29yZC51cGRhdGVGcmVxdWVuY3kueWVhcicsIHtcbiAgICAgICAgICAgIGNvdW50OiAyLFxuICAgICAgICAgIH0pXG4gICAgICAgICksXG4gICAgICB9LFxuICAgIF1cbiAgfVxufVxuIiwiPGduLXVpLWNoZWNrLXRvZ2dsZVxuICBbbGFiZWxdPVwiJ2VkaXRvci5yZWNvcmQuZm9ybS51cGRhdGVGcmVxdWVuY3kucGxhbm5lZCcgfCB0cmFuc2xhdGVcIlxuICBbdmFsdWVdPVwicGxhbm5lZFwiXG4gICh0b2dnbGVkKT1cIm9uUGxhbm5lZFRvZ2dsZWQoKVwiXG4+PC9nbi11aS1jaGVjay10b2dnbGU+XG48Z24tdWktZHJvcGRvd24tc2VsZWN0b3JcbiAgdGl0bGU9XCJ1cGRhdGVGcmVxdWVuY3lcIlxuICBbc2hvd1RpdGxlXT1cImZhbHNlXCJcbiAgW2Nob2ljZXNdPVwiY2hvaWNlc1wiXG4gIFtzZWxlY3RlZF09XCJzZWxlY3RlZEZyZXF1ZW5jeVwiXG4gIChzZWxlY3RWYWx1ZSk9XCJvblNlbGVjdEZyZXF1ZW5jeVZhbHVlKCRldmVudClcIlxuICBbZGlzYWJsZWRdPVwiIXBsYW5uZWRcIlxuPlxuPC9nbi11aS1kcm9wZG93bi1zZWxlY3Rvcj5cbiJdfQ==