geonetwork-ui 2.6.0-dev.ceb4be4c1 → 2.6.0-dev.cfd9cd166

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 (595) hide show
  1. package/README.md +2 -3
  2. package/esm2022/libs/api/metadata-converter/src/lib/dcat-ap/dcat-ap.converter.mjs +11 -2
  3. package/esm2022/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.mjs +3 -3
  4. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +17 -11
  5. package/esm2022/libs/api/metadata-converter/src/lib/gn4/metadata-url.service.mjs +3 -3
  6. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.mjs +6 -6
  7. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.mjs +3 -3
  8. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.mjs +14 -6
  9. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +4 -4
  10. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +5 -5
  11. package/esm2022/libs/api/metadata-converter/src/lib/translate-utils.mjs +17 -0
  12. package/esm2022/libs/api/repository/src/lib/gn4/auth/auth.service.mjs +4 -4
  13. package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/constant.mjs +4 -2
  14. package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.mjs +18 -16
  15. package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +53 -14
  16. package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.mjs +8 -8
  17. package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.mjs +14 -11
  18. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +23 -13
  19. package/esm2022/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.mjs +2 -1
  20. package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
  21. package/esm2022/libs/common/domain/src/lib/repository/records-repository.interface.mjs +1 -1
  22. package/esm2022/libs/feature/catalog/src/lib/feature-catalog.module.mjs +7 -31
  23. package/esm2022/libs/feature/catalog/src/lib/sources/sources.service.mjs +9 -8
  24. package/esm2022/libs/feature/dataviz/src/lib/chart-view/chart-view.component.mjs +4 -4
  25. package/esm2022/libs/feature/dataviz/src/lib/figure/figure-container/figure-container.component.mjs +4 -5
  26. package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +5 -3
  27. package/esm2022/libs/feature/dataviz/src/lib/table-view/table-view.component.mjs +4 -4
  28. package/esm2022/libs/feature/editor/src/index.mjs +1 -4
  29. package/esm2022/libs/feature/editor/src/lib/+state/editor.actions.mjs +2 -1
  30. package/esm2022/libs/feature/editor/src/lib/+state/editor.effects.mjs +13 -7
  31. package/esm2022/libs/feature/editor/src/lib/+state/editor.facade.mjs +4 -1
  32. package/esm2022/libs/feature/editor/src/lib/+state/editor.reducer.mjs +5 -1
  33. package/esm2022/libs/feature/editor/src/lib/components/constraint-card/constraint-card.component.mjs +5 -7
  34. package/esm2022/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.mjs +8 -13
  35. package/esm2022/libs/feature/editor/src/lib/components/import-record/import-record.component.mjs +5 -6
  36. package/esm2022/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.mjs +268 -11
  37. package/esm2022/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.mjs +4 -13
  38. package/esm2022/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.mjs +5 -5
  39. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-constraints/form-field-constraints.component.mjs +5 -8
  40. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-constraints-shortcuts/form-field-constraints-shortcuts.component.mjs +4 -5
  41. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.mjs +6 -10
  42. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.mjs +8 -14
  43. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.mjs +4 -15
  44. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.mjs +4 -4
  45. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.mjs +4 -4
  46. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.mjs +4 -4
  47. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.mjs +4 -4
  48. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.mjs +4 -4
  49. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.mjs +4 -4
  50. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.mjs +6 -17
  51. package/esm2022/libs/feature/editor/src/lib/components/record-form/record-form.component.mjs +4 -5
  52. package/esm2022/libs/feature/editor/src/lib/feature-editor.module.mjs +12 -30
  53. package/esm2022/libs/feature/editor/src/lib/models/index.mjs +1 -3
  54. package/esm2022/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.mjs +5 -6
  55. package/esm2022/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.mjs +11 -8
  56. package/esm2022/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.mjs +11 -8
  57. package/esm2022/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.mjs +11 -6
  58. package/esm2022/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.mjs +10 -5
  59. package/esm2022/libs/feature/map/src/lib/feature-map.module.mjs +3 -36
  60. package/esm2022/libs/feature/map/src/lib/geocoding/geocoding.component.mjs +5 -11
  61. package/esm2022/libs/feature/map/src/lib/layers-panel/layers-panel.component.mjs +6 -6
  62. package/esm2022/libs/feature/record/src/lib/data-view/data-view.component.mjs +20 -19
  63. package/esm2022/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.mjs +6 -7
  64. package/esm2022/libs/feature/record/src/lib/data-view-share/data-view-share.component.mjs +4 -5
  65. package/esm2022/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.mjs +6 -7
  66. package/esm2022/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.mjs +4 -4
  67. package/esm2022/libs/feature/record/src/lib/feature-record.module.mjs +8 -22
  68. package/esm2022/libs/feature/record/src/lib/gpf-api-dl/gpf-api-dl.component.mjs +5 -5
  69. package/esm2022/libs/feature/record/src/lib/gpf-api-dl-list-item/gpf-api-dl-list-item.component.mjs +15 -7
  70. package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +77 -28
  71. package/esm2022/libs/feature/search/src/lib/constants.mjs +3 -2
  72. package/esm2022/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.mjs +4 -4
  73. package/esm2022/libs/feature/search/src/lib/feature-search.module.mjs +24 -27
  74. package/esm2022/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.mjs +3 -3
  75. package/esm2022/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.mjs +8 -6
  76. package/esm2022/libs/feature/search/src/lib/results-list/results-list.container.component.mjs +6 -6
  77. package/esm2022/libs/feature/search/src/lib/results-table/results-table-container.component.mjs +13 -10
  78. package/esm2022/libs/feature/search/src/lib/search-filters-summary/search-filters-summary.component.mjs +5 -7
  79. package/esm2022/libs/feature/search/src/lib/search-filters-summary-item/search-filters-summary-item.component.mjs +4 -4
  80. package/esm2022/libs/feature/search/src/lib/utils/service/fields.mjs +5 -4
  81. package/esm2022/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.mjs +4 -5
  82. package/esm2022/libs/ui/catalog/src/lib/organisations-filter/organisations-filter.component.mjs +4 -5
  83. package/esm2022/libs/ui/catalog/src/lib/organisations-result/organisations-result.component.mjs +4 -5
  84. package/esm2022/libs/ui/dataviz/src/index.mjs +1 -2
  85. package/esm2022/libs/ui/dataviz/src/lib/data-table/data-table.component.mjs +4 -4
  86. package/esm2022/libs/ui/dataviz/src/lib/figure/figure.component.mjs +5 -5
  87. package/esm2022/libs/ui/elements/src/index.mjs +1 -3
  88. package/esm2022/libs/ui/elements/src/lib/api-card/api-card.component.mjs +6 -6
  89. package/esm2022/libs/ui/elements/src/lib/application-banner/application-banner.component.mjs +5 -5
  90. package/esm2022/libs/ui/elements/src/lib/avatar/avatar.component.mjs +4 -3
  91. package/esm2022/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.mjs +5 -3
  92. package/esm2022/libs/ui/elements/src/lib/download-item/download-item.component.mjs +4 -5
  93. package/esm2022/libs/ui/elements/src/lib/downloads-list/downloads-list.component.mjs +4 -4
  94. package/esm2022/libs/ui/elements/src/lib/error/error.component.mjs +4 -5
  95. package/esm2022/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.mjs +4 -5
  96. package/esm2022/libs/ui/elements/src/lib/image-input/image-input.component.mjs +4 -5
  97. package/esm2022/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.mjs +19 -36
  98. package/esm2022/libs/ui/elements/src/lib/internal-link-card-contact/internal-link-card-contact.component.mjs +58 -0
  99. package/esm2022/libs/ui/elements/src/lib/kind-badge/kind-badge.component.mjs +7 -10
  100. package/esm2022/libs/ui/elements/src/lib/link-card/link-card.component.mjs +4 -5
  101. package/esm2022/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.mjs +3 -6
  102. package/esm2022/libs/ui/elements/src/lib/metadata-catalog/metadata-catalog.component.mjs +4 -5
  103. package/esm2022/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.mjs +4 -5
  104. package/esm2022/libs/ui/elements/src/lib/metadata-info/metadata-info.component.mjs +6 -7
  105. package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +39 -16
  106. package/esm2022/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.mjs +8 -5
  107. package/esm2022/libs/ui/elements/src/lib/record-api-form/record-api-form.component.mjs +7 -5
  108. package/esm2022/libs/ui/elements/src/lib/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.mjs +52 -32
  109. package/esm2022/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.mjs +5 -4
  110. package/esm2022/libs/ui/elements/src/lib/user-feedback-item/user-feedback-item.component.mjs +4 -5
  111. package/esm2022/libs/ui/elements/src/lib/user-preview/user-preview.component.mjs +5 -4
  112. package/esm2022/libs/ui/inputs/src/index.mjs +1 -2
  113. package/esm2022/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.mjs +5 -6
  114. package/esm2022/libs/ui/inputs/src/lib/checkbox/checkbox.component.mjs +4 -3
  115. package/esm2022/libs/ui/inputs/src/lib/drag-and-drop-file-input/drag-and-drop-file-input.component.mjs +7 -6
  116. package/esm2022/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.mjs +29 -7
  117. package/esm2022/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.mjs +4 -5
  118. package/esm2022/libs/ui/inputs/src/lib/file-input/file-input.component.mjs +5 -7
  119. package/esm2022/libs/ui/inputs/src/lib/inline-filter/inline-filter.component.mjs +4 -3
  120. package/esm2022/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.mjs +12 -7
  121. package/esm2022/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.mjs +4 -5
  122. package/esm2022/libs/ui/inputs/src/lib/viewport-intersector/viewport-intersector.component.mjs +3 -3
  123. package/esm2022/libs/ui/layout/src/index.mjs +2 -2
  124. package/esm2022/libs/ui/layout/src/lib/anchor-link/anchor-link.directive.mjs +3 -2
  125. package/esm2022/libs/ui/layout/src/lib/cell-popin/cell-popin.component.mjs +110 -0
  126. package/esm2022/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.mjs +4 -5
  127. package/esm2022/libs/ui/layout/src/lib/interactive-table/interactive-table.component.mjs +21 -12
  128. package/esm2022/libs/ui/layout/src/lib/max-lines/max-lines.component.mjs +4 -5
  129. package/esm2022/libs/ui/layout/src/lib/pagination/pagination.component.mjs +4 -5
  130. package/esm2022/libs/ui/layout/src/lib/sticky-header/sticky-header.component.mjs +4 -3
  131. package/esm2022/libs/ui/layout/src/lib/truncated-text/truncated-text.component.mjs +17 -53
  132. package/esm2022/libs/ui/map/src/lib/components/map-container/map-container.component.mjs +4 -5
  133. package/esm2022/libs/ui/search/src/index.mjs +2 -1
  134. package/esm2022/libs/ui/search/src/lib/record-preview-feed/record-preview-feed.component.mjs +6 -6
  135. package/esm2022/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.mjs +3 -3
  136. package/esm2022/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.mjs +24 -17
  137. package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +28 -17
  138. package/esm2022/libs/ui/search/src/lib/ui-search.module.mjs +32 -27
  139. package/esm2022/libs/ui/widgets/src/index.mjs +1 -2
  140. package/esm2022/libs/ui/widgets/src/lib/color-scale/color-scale.component.mjs +3 -3
  141. package/esm2022/libs/util/app-config/src/lib/app-config.mjs +1 -3
  142. package/esm2022/libs/util/i18n/src/index.mjs +2 -3
  143. package/esm2022/libs/util/i18n/src/lib/embedded.translate.loader.mjs +3 -2
  144. package/esm2022/libs/util/i18n/src/lib/i18n.constants.mjs +36 -28
  145. package/esm2022/libs/util/i18n/src/lib/i18n.interceptor.mjs +10 -9
  146. package/esm2022/libs/util/i18n/src/lib/i18n.providers.mjs +41 -0
  147. package/esm2022/libs/util/i18n/src/lib/language-codes.mjs +63 -3
  148. package/esm2022/libs/util/shared/src/index.mjs +2 -2
  149. package/esm2022/libs/util/shared/src/lib/image-fallback.directive.mjs +3 -2
  150. package/esm2022/libs/util/shared/src/lib/record.util.mjs +56 -0
  151. package/esm2022/translations/de.json +41 -22
  152. package/esm2022/translations/en.json +41 -22
  153. package/esm2022/translations/es.json +40 -21
  154. package/esm2022/translations/fr.json +41 -22
  155. package/esm2022/translations/it.json +40 -21
  156. package/esm2022/translations/nl.json +40 -21
  157. package/esm2022/translations/pt.json +40 -21
  158. package/esm2022/translations/sk.json +602 -0
  159. package/fesm2022/geonetwork-ui.mjs +11190 -10577
  160. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  161. package/libs/api/metadata-converter/src/lib/dcat-ap/dcat-ap.converter.d.ts.map +1 -1
  162. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts +4 -4
  163. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
  164. package/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.d.ts +1 -0
  165. package/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.d.ts.map +1 -1
  166. package/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.d.ts.map +1 -1
  167. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts.map +1 -1
  168. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
  169. package/libs/api/metadata-converter/src/lib/translate-utils.d.ts +2 -0
  170. package/libs/api/metadata-converter/src/lib/translate-utils.d.ts.map +1 -0
  171. package/libs/api/repository/src/lib/gn4/auth/auth.service.d.ts.map +1 -1
  172. package/libs/api/repository/src/lib/gn4/elasticsearch/constant.d.ts.map +1 -1
  173. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts +8 -6
  174. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts.map +1 -1
  175. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts +11 -3
  176. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts.map +1 -1
  177. package/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.d.ts +1 -0
  178. package/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.d.ts.map +1 -1
  179. package/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.d.ts +4 -4
  180. package/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.d.ts.map +1 -1
  181. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +6 -3
  182. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
  183. package/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.d.ts +1 -0
  184. package/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.d.ts.map +1 -1
  185. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +20 -17
  186. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
  187. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts +5 -1
  188. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts.map +1 -1
  189. package/libs/feature/catalog/src/lib/feature-catalog.module.d.ts +4 -8
  190. package/libs/feature/catalog/src/lib/feature-catalog.module.d.ts.map +1 -1
  191. package/libs/feature/catalog/src/lib/sources/sources.service.d.ts +3 -3
  192. package/libs/feature/catalog/src/lib/sources/sources.service.d.ts.map +1 -1
  193. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts.map +1 -1
  194. package/libs/feature/dataviz/src/lib/figure/figure-container/figure-container.component.d.ts.map +1 -1
  195. package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
  196. package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts.map +1 -1
  197. package/libs/feature/editor/src/index.d.ts +0 -3
  198. package/libs/feature/editor/src/index.d.ts.map +1 -1
  199. package/libs/feature/editor/src/lib/+state/editor.actions.d.ts +8 -1
  200. package/libs/feature/editor/src/lib/+state/editor.actions.d.ts.map +1 -1
  201. package/libs/feature/editor/src/lib/+state/editor.effects.d.ts +10 -12
  202. package/libs/feature/editor/src/lib/+state/editor.effects.d.ts.map +1 -1
  203. package/libs/feature/editor/src/lib/+state/editor.facade.d.ts +2 -1
  204. package/libs/feature/editor/src/lib/+state/editor.facade.d.ts.map +1 -1
  205. package/libs/feature/editor/src/lib/+state/editor.reducer.d.ts.map +1 -1
  206. package/libs/feature/editor/src/lib/+state/editor.selectors.d.ts +1 -1
  207. package/libs/feature/editor/src/lib/+state/editor.selectors.d.ts.map +1 -1
  208. package/libs/feature/editor/src/lib/components/constraint-card/constraint-card.component.d.ts.map +1 -1
  209. package/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.d.ts.map +1 -1
  210. package/libs/feature/editor/src/lib/components/import-record/import-record.component.d.ts.map +1 -1
  211. package/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.d.ts +48 -3
  212. package/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.d.ts.map +1 -1
  213. package/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.d.ts.map +1 -1
  214. package/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.d.ts.map +1 -1
  215. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-constraints/form-field-constraints.component.d.ts.map +1 -1
  216. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.d.ts.map +1 -1
  217. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.d.ts.map +1 -1
  218. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.d.ts.map +1 -1
  219. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.d.ts.map +1 -1
  220. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.d.ts.map +1 -1
  221. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.d.ts.map +1 -1
  222. 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
  223. 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
  224. 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
  225. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts.map +1 -1
  226. package/libs/feature/editor/src/lib/feature-editor.module.d.ts +10 -17
  227. package/libs/feature/editor/src/lib/feature-editor.module.d.ts.map +1 -1
  228. package/libs/feature/editor/src/lib/models/index.d.ts +0 -2
  229. package/libs/feature/editor/src/lib/models/index.d.ts.map +1 -1
  230. package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.d.ts.map +1 -1
  231. package/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.d.ts.map +1 -1
  232. package/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.d.ts.map +1 -1
  233. package/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.d.ts.map +1 -1
  234. package/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.d.ts.map +1 -1
  235. package/libs/feature/map/src/lib/feature-map.module.d.ts +2 -11
  236. package/libs/feature/map/src/lib/feature-map.module.d.ts.map +1 -1
  237. package/libs/feature/map/src/lib/geocoding/geocoding.component.d.ts.map +1 -1
  238. package/libs/feature/map/src/lib/layers-panel/layers-panel.component.d.ts.map +1 -1
  239. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts +7 -4
  240. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts.map +1 -1
  241. package/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.d.ts.map +1 -1
  242. package/libs/feature/record/src/lib/feature-record.module.d.ts +8 -12
  243. package/libs/feature/record/src/lib/feature-record.module.d.ts.map +1 -1
  244. package/libs/feature/record/src/lib/gpf-api-dl/gpf-api-dl.component.d.ts.map +1 -1
  245. package/libs/feature/record/src/lib/gpf-api-dl-list-item/gpf-api-dl-list-item.component.d.ts.map +1 -1
  246. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts +13 -6
  247. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
  248. package/libs/feature/search/src/lib/constants.d.ts.map +1 -1
  249. package/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.d.ts.map +1 -1
  250. package/libs/feature/search/src/lib/feature-search.module.d.ts +24 -24
  251. package/libs/feature/search/src/lib/feature-search.module.d.ts.map +1 -1
  252. package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts +2 -1
  253. package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts.map +1 -1
  254. package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts +6 -5
  255. package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts.map +1 -1
  256. package/libs/feature/search/src/lib/search-filters-summary/search-filters-summary.component.d.ts +1 -2
  257. package/libs/feature/search/src/lib/search-filters-summary/search-filters-summary.component.d.ts.map +1 -1
  258. package/libs/feature/search/src/lib/search-filters-summary-item/search-filters-summary-item.component.d.ts.map +1 -1
  259. package/libs/feature/search/src/lib/utils/service/fields.d.ts +1 -2
  260. package/libs/feature/search/src/lib/utils/service/fields.d.ts.map +1 -1
  261. package/libs/ui/dataviz/src/index.d.ts +0 -1
  262. package/libs/ui/dataviz/src/index.d.ts.map +1 -1
  263. package/libs/ui/dataviz/src/lib/data-table/data-table.component.d.ts.map +1 -1
  264. package/libs/ui/dataviz/src/lib/figure/figure.component.d.ts +1 -1
  265. package/libs/ui/dataviz/src/lib/figure/figure.component.d.ts.map +1 -1
  266. package/libs/ui/elements/src/index.d.ts +0 -2
  267. package/libs/ui/elements/src/index.d.ts.map +1 -1
  268. package/libs/ui/elements/src/lib/api-card/api-card.component.d.ts.map +1 -1
  269. package/libs/ui/elements/src/lib/avatar/avatar.component.d.ts +1 -1
  270. package/libs/ui/elements/src/lib/avatar/avatar.component.d.ts.map +1 -1
  271. package/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.d.ts +2 -0
  272. package/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.d.ts.map +1 -1
  273. package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts.map +1 -1
  274. package/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.d.ts +4 -7
  275. package/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.d.ts.map +1 -1
  276. package/libs/ui/elements/src/lib/internal-link-card-contact/internal-link-card-contact.component.d.ts +14 -0
  277. package/libs/ui/elements/src/lib/internal-link-card-contact/internal-link-card-contact.component.d.ts.map +1 -0
  278. package/libs/ui/elements/src/lib/kind-badge/kind-badge.component.d.ts.map +1 -1
  279. package/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.d.ts.map +1 -1
  280. package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts.map +1 -1
  281. package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts +3 -0
  282. package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts.map +1 -1
  283. package/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.d.ts.map +1 -1
  284. package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts.map +1 -1
  285. package/libs/ui/elements/src/lib/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.d.ts +20 -9
  286. package/libs/ui/elements/src/lib/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.d.ts.map +1 -1
  287. package/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.d.ts.map +1 -1
  288. package/libs/ui/elements/src/lib/user-preview/user-preview.component.d.ts +1 -1
  289. package/libs/ui/elements/src/lib/user-preview/user-preview.component.d.ts.map +1 -1
  290. package/libs/ui/inputs/src/index.d.ts +0 -1
  291. package/libs/ui/inputs/src/index.d.ts.map +1 -1
  292. package/libs/ui/inputs/src/lib/checkbox/checkbox.component.d.ts +1 -1
  293. package/libs/ui/inputs/src/lib/checkbox/checkbox.component.d.ts.map +1 -1
  294. package/libs/ui/inputs/src/lib/drag-and-drop-file-input/drag-and-drop-file-input.component.d.ts +1 -1
  295. package/libs/ui/inputs/src/lib/drag-and-drop-file-input/drag-and-drop-file-input.component.d.ts.map +1 -1
  296. package/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.d.ts +1 -1
  297. package/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.d.ts.map +1 -1
  298. package/libs/ui/inputs/src/lib/file-input/file-input.component.d.ts.map +1 -1
  299. package/libs/ui/inputs/src/lib/inline-filter/inline-filter.component.d.ts +1 -1
  300. package/libs/ui/inputs/src/lib/inline-filter/inline-filter.component.d.ts.map +1 -1
  301. package/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.d.ts.map +1 -1
  302. package/libs/ui/inputs/src/lib/viewport-intersector/viewport-intersector.component.d.ts +1 -1
  303. package/libs/ui/inputs/src/lib/viewport-intersector/viewport-intersector.component.d.ts.map +1 -1
  304. package/libs/ui/layout/src/index.d.ts +1 -1
  305. package/libs/ui/layout/src/index.d.ts.map +1 -1
  306. package/libs/ui/layout/src/lib/anchor-link/anchor-link.directive.d.ts +1 -1
  307. package/libs/ui/layout/src/lib/anchor-link/anchor-link.directive.d.ts.map +1 -1
  308. package/libs/ui/layout/src/lib/cell-popin/cell-popin.component.d.ts +28 -0
  309. package/libs/ui/layout/src/lib/cell-popin/cell-popin.component.d.ts.map +1 -0
  310. package/libs/ui/layout/src/lib/interactive-table/interactive-table.component.d.ts +4 -2
  311. package/libs/ui/layout/src/lib/interactive-table/interactive-table.component.d.ts.map +1 -1
  312. package/libs/ui/layout/src/lib/sticky-header/sticky-header.component.d.ts +1 -1
  313. package/libs/ui/layout/src/lib/sticky-header/sticky-header.component.d.ts.map +1 -1
  314. package/libs/ui/layout/src/lib/truncated-text/truncated-text.component.d.ts +6 -11
  315. package/libs/ui/layout/src/lib/truncated-text/truncated-text.component.d.ts.map +1 -1
  316. package/libs/ui/search/src/index.d.ts +1 -0
  317. package/libs/ui/search/src/index.d.ts.map +1 -1
  318. package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts +4 -3
  319. package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts.map +1 -1
  320. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts +5 -3
  321. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts.map +1 -1
  322. package/libs/ui/search/src/lib/ui-search.module.d.ts +12 -11
  323. package/libs/ui/search/src/lib/ui-search.module.d.ts.map +1 -1
  324. package/libs/ui/widgets/src/index.d.ts +0 -1
  325. package/libs/ui/widgets/src/index.d.ts.map +1 -1
  326. package/libs/ui/widgets/src/lib/color-scale/color-scale.component.d.ts +1 -1
  327. package/libs/ui/widgets/src/lib/color-scale/color-scale.component.d.ts.map +1 -1
  328. package/libs/util/app-config/src/lib/app-config.d.ts +0 -1
  329. package/libs/util/app-config/src/lib/app-config.d.ts.map +1 -1
  330. package/libs/util/i18n/src/index.d.ts +1 -2
  331. package/libs/util/i18n/src/index.d.ts.map +1 -1
  332. package/libs/util/i18n/src/lib/embedded.translate.loader.d.ts +1 -1
  333. package/libs/util/i18n/src/lib/embedded.translate.loader.d.ts.map +1 -1
  334. package/libs/util/i18n/src/lib/i18n.constants.d.ts +6 -15
  335. package/libs/util/i18n/src/lib/i18n.constants.d.ts.map +1 -1
  336. package/libs/util/i18n/src/lib/i18n.interceptor.d.ts +5 -5
  337. package/libs/util/i18n/src/lib/i18n.interceptor.d.ts.map +1 -1
  338. package/libs/util/i18n/src/lib/i18n.providers.d.ts +4 -0
  339. package/libs/util/i18n/src/lib/i18n.providers.d.ts.map +1 -0
  340. package/libs/util/i18n/src/lib/language-codes.d.ts +15 -19
  341. package/libs/util/i18n/src/lib/language-codes.d.ts.map +1 -1
  342. package/libs/util/shared/src/index.d.ts +1 -1
  343. package/libs/util/shared/src/index.d.ts.map +1 -1
  344. package/libs/util/shared/src/lib/image-fallback.directive.d.ts +1 -1
  345. package/libs/util/shared/src/lib/image-fallback.directive.d.ts.map +1 -1
  346. package/libs/util/shared/src/lib/record.util.d.ts +3 -0
  347. package/libs/util/shared/src/lib/record.util.d.ts.map +1 -0
  348. package/package.json +3 -3
  349. package/src/libs/api/metadata-converter/src/lib/dcat-ap/dcat-ap.converter.ts +10 -1
  350. package/src/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.ts +2 -2
  351. package/src/libs/api/metadata-converter/src/lib/fixtures/geocat-ch.records.ts +1 -1
  352. package/src/libs/api/metadata-converter/src/lib/fixtures/metadata-for-i18n.records.ts +4196 -0
  353. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +19 -6
  354. package/src/libs/api/metadata-converter/src/lib/gn4/metadata-url.service.ts +4 -4
  355. package/src/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.ts +11 -5
  356. package/src/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.ts +2 -2
  357. package/src/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.ts +14 -8
  358. package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +8 -5
  359. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +5 -4
  360. package/src/libs/api/metadata-converter/src/lib/translate-utils.ts +17 -0
  361. package/src/libs/api/repository/src/lib/gn4/auth/auth.service.ts +3 -6
  362. package/src/libs/api/repository/src/lib/gn4/elasticsearch/constant.ts +3 -1
  363. package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +14 -6
  364. package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +71 -13
  365. package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.ts +8 -7
  366. package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.ts +13 -6
  367. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +24 -20
  368. package/src/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.ts +3 -0
  369. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +20 -14
  370. package/src/libs/common/domain/src/lib/repository/records-repository.interface.ts +9 -1
  371. package/src/libs/common/fixtures/src/lib/records.fixtures.ts +113 -0
  372. package/src/libs/feature/catalog/src/lib/feature-catalog.module.ts +4 -17
  373. package/src/libs/feature/catalog/src/lib/sources/sources.service.ts +7 -3
  374. package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.ts +2 -2
  375. package/src/libs/feature/dataviz/src/lib/figure/figure-container/figure-container.component.ts +2 -2
  376. package/src/libs/feature/dataviz/src/lib/service/data.service.ts +4 -2
  377. package/src/libs/feature/dataviz/src/lib/table-view/table-view.component.ts +2 -2
  378. package/src/libs/feature/editor/src/index.ts +0 -3
  379. package/src/libs/feature/editor/src/lib/+state/editor.actions.ts +9 -1
  380. package/src/libs/feature/editor/src/lib/+state/editor.effects.ts +23 -12
  381. package/src/libs/feature/editor/src/lib/+state/editor.facade.ts +13 -1
  382. package/src/libs/feature/editor/src/lib/+state/editor.reducer.ts +9 -1
  383. package/src/libs/feature/editor/src/lib/components/constraint-card/constraint-card.component.ts +3 -4
  384. package/src/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.ts +5 -16
  385. package/src/libs/feature/editor/src/lib/components/import-record/import-record.component.ts +7 -5
  386. package/src/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.html +117 -11
  387. package/src/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.ts +322 -6
  388. package/src/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.ts +2 -10
  389. package/src/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.ts +3 -2
  390. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-constraints/form-field-constraints.component.ts +3 -4
  391. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-constraints-shortcuts/form-field-constraints-shortcuts.component.ts +2 -2
  392. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.ts +4 -11
  393. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.ts +5 -9
  394. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.ts +2 -17
  395. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.ts +2 -2
  396. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.ts +2 -2
  397. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.ts +2 -2
  398. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.ts +2 -2
  399. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.ts +2 -2
  400. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.ts +2 -2
  401. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.ts +2 -2
  402. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +2 -15
  403. package/src/libs/feature/editor/src/lib/components/record-form/record-form.component.ts +2 -2
  404. package/src/libs/feature/editor/src/lib/feature-editor.module.ts +4 -17
  405. package/src/libs/feature/editor/src/lib/models/index.ts +0 -2
  406. package/src/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.ts +2 -1
  407. package/src/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.ts +8 -3
  408. package/src/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.ts +10 -3
  409. package/src/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.ts +8 -2
  410. package/src/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.ts +8 -2
  411. package/src/libs/feature/map/src/lib/feature-map.module.ts +0 -17
  412. package/src/libs/feature/map/src/lib/geocoding/geocoding.component.ts +3 -8
  413. package/src/libs/feature/map/src/lib/layers-panel/layers-panel.component.ts +3 -2
  414. package/src/libs/feature/record/src/lib/data-view/data-view.component.html +1 -1
  415. package/src/libs/feature/record/src/lib/data-view/data-view.component.ts +22 -19
  416. package/src/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.ts +2 -2
  417. package/src/libs/feature/record/src/lib/data-view-share/data-view-share.component.ts +2 -2
  418. package/src/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.ts +2 -2
  419. package/src/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.ts +2 -2
  420. package/src/libs/feature/record/src/lib/feature-record.module.ts +4 -13
  421. package/src/libs/feature/record/src/lib/gpf-api-dl/gpf-api-dl.component.ts +4 -3
  422. package/src/libs/feature/record/src/lib/gpf-api-dl-list-item/gpf-api-dl-list-item.component.ts +10 -4
  423. package/src/libs/feature/record/src/lib/map-view/map-view.component.html +27 -9
  424. package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +113 -30
  425. package/src/libs/feature/search/src/lib/constants.ts +2 -1
  426. package/src/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.ts +2 -2
  427. package/src/libs/feature/search/src/lib/feature-search.module.ts +13 -18
  428. package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.html +1 -1
  429. package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.ts +5 -0
  430. package/src/libs/feature/search/src/lib/results-table/results-table-container.component.html +1 -0
  431. package/src/libs/feature/search/src/lib/results-table/results-table-container.component.ts +13 -3
  432. package/src/libs/feature/search/src/lib/search-filters-summary/search-filters-summary.component.ts +10 -4
  433. package/src/libs/feature/search/src/lib/search-filters-summary-item/search-filters-summary-item.component.ts +2 -2
  434. package/src/libs/feature/search/src/lib/utils/service/fields.ts +4 -3
  435. package/src/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.ts +2 -2
  436. package/src/libs/ui/catalog/src/lib/organisations-filter/organisations-filter.component.ts +2 -2
  437. package/src/libs/ui/catalog/src/lib/organisations-result/organisations-result.component.ts +2 -2
  438. package/src/libs/ui/dataviz/src/index.ts +0 -1
  439. package/src/libs/ui/dataviz/src/lib/data-table/data-table.component.ts +2 -2
  440. package/src/libs/ui/dataviz/src/lib/figure/figure.component.html +0 -1
  441. package/src/libs/ui/dataviz/src/lib/figure/figure.component.ts +4 -0
  442. package/src/libs/ui/elements/src/index.ts +0 -2
  443. package/src/libs/ui/elements/src/lib/api-card/api-card.component.ts +3 -2
  444. package/src/libs/ui/elements/src/lib/application-banner/application-banner.component.html +6 -6
  445. package/src/libs/ui/elements/src/lib/application-banner/application-banner.component.ts +2 -2
  446. package/src/libs/ui/elements/src/lib/avatar/avatar.component.ts +3 -0
  447. package/src/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.html +6 -2
  448. package/src/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.ts +5 -1
  449. package/src/libs/ui/elements/src/lib/download-item/download-item.component.ts +2 -2
  450. package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.ts +2 -5
  451. package/src/libs/ui/elements/src/lib/error/error.component.ts +2 -2
  452. package/src/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.ts +2 -2
  453. package/src/libs/ui/elements/src/lib/image-input/image-input.component.ts +2 -2
  454. package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.html +8 -76
  455. package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.ts +22 -55
  456. package/src/libs/ui/elements/src/lib/internal-link-card-contact/internal-link-card-contact.component.html +69 -0
  457. package/src/libs/ui/elements/src/lib/internal-link-card-contact/internal-link-card-contact.component.ts +61 -0
  458. package/src/libs/ui/elements/src/lib/kind-badge/kind-badge.component.ts +4 -5
  459. package/src/libs/ui/elements/src/lib/link-card/link-card.component.ts +2 -2
  460. package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.ts +1 -4
  461. package/src/libs/ui/elements/src/lib/metadata-catalog/metadata-catalog.component.ts +2 -2
  462. package/src/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.ts +2 -2
  463. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.ts +4 -7
  464. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.ts +51 -13
  465. package/src/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.ts +6 -2
  466. package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.ts +4 -2
  467. package/src/libs/ui/elements/src/lib/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.html +96 -37
  468. package/src/libs/ui/elements/src/lib/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.ts +62 -31
  469. package/src/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.ts +7 -2
  470. package/src/libs/ui/elements/src/lib/user-feedback-item/user-feedback-item.component.ts +2 -2
  471. package/src/libs/ui/elements/src/lib/user-preview/user-preview.component.ts +4 -0
  472. package/src/libs/ui/inputs/src/index.ts +0 -1
  473. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.ts +2 -2
  474. package/src/libs/ui/inputs/src/lib/checkbox/checkbox.component.ts +3 -0
  475. package/src/libs/ui/inputs/src/lib/drag-and-drop-file-input/drag-and-drop-file-input.component.html +1 -1
  476. package/src/libs/ui/inputs/src/lib/drag-and-drop-file-input/drag-and-drop-file-input.component.ts +4 -0
  477. package/src/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.ts +27 -0
  478. package/src/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.ts +2 -2
  479. package/src/libs/ui/inputs/src/lib/file-input/file-input.component.ts +3 -4
  480. package/src/libs/ui/inputs/src/lib/inline-filter/inline-filter.component.ts +3 -0
  481. package/src/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.ts +9 -3
  482. package/src/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.ts +2 -2
  483. package/src/libs/ui/inputs/src/lib/viewport-intersector/viewport-intersector.component.ts +1 -0
  484. package/src/libs/ui/layout/src/index.ts +1 -1
  485. package/src/libs/ui/layout/src/lib/anchor-link/anchor-link.directive.ts +1 -0
  486. package/src/libs/ui/layout/src/lib/cell-popin/cell-popin.component.html +40 -0
  487. package/src/libs/ui/layout/src/lib/cell-popin/cell-popin.component.ts +141 -0
  488. package/src/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.ts +2 -2
  489. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.html +2 -2
  490. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.ts +15 -8
  491. package/src/libs/ui/layout/src/lib/max-lines/max-lines.component.ts +2 -2
  492. package/src/libs/ui/layout/src/lib/pagination/pagination.component.ts +2 -2
  493. package/src/libs/ui/layout/src/lib/sticky-header/sticky-header.component.ts +3 -0
  494. package/src/libs/ui/layout/src/lib/truncated-text/truncated-text.component.html +25 -42
  495. package/src/libs/ui/layout/src/lib/truncated-text/truncated-text.component.ts +12 -58
  496. package/src/libs/ui/map/src/lib/components/map-container/map-container.component.ts +2 -2
  497. package/src/libs/ui/search/src/index.ts +1 -0
  498. package/src/libs/ui/search/src/lib/record-preview-feed/record-preview-feed.component.html +4 -1
  499. package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.html +16 -6
  500. package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.ts +18 -15
  501. package/src/libs/ui/search/src/lib/results-table/results-table.component.html +15 -23
  502. package/src/libs/ui/search/src/lib/results-table/results-table.component.ts +34 -13
  503. package/src/libs/ui/search/src/lib/ui-search.module.ts +15 -11
  504. package/src/libs/ui/widgets/src/index.ts +0 -1
  505. package/src/libs/ui/widgets/src/lib/color-scale/color-scale.component.ts +1 -0
  506. package/src/libs/util/app-config/src/lib/app-config.ts +0 -2
  507. package/src/libs/util/i18n/src/index.ts +1 -2
  508. package/src/libs/util/i18n/src/lib/embedded.translate.loader.ts +4 -3
  509. package/src/libs/util/i18n/src/lib/i18n.constants.ts +39 -29
  510. package/src/libs/util/i18n/src/lib/i18n.interceptor.ts +11 -9
  511. package/src/libs/util/i18n/src/lib/i18n.providers.ts +68 -0
  512. package/src/libs/util/i18n/src/lib/language-codes.ts +67 -2
  513. package/src/libs/util/shared/src/index.ts +1 -1
  514. package/src/libs/util/shared/src/lib/image-fallback.directive.ts +1 -0
  515. package/src/libs/util/shared/src/lib/record.util.ts +114 -0
  516. package/tailwind.base.css +1 -1
  517. package/translations/de.json +41 -22
  518. package/translations/en.json +41 -22
  519. package/translations/es.json +40 -21
  520. package/translations/fr.json +41 -22
  521. package/translations/it.json +40 -21
  522. package/translations/nl.json +40 -21
  523. package/translations/pt.json +40 -21
  524. package/translations/sk.json +40 -21
  525. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.mjs +0 -44
  526. package/esm2022/libs/feature/editor/src/lib/components/wizard/wizard.component.mjs +0 -75
  527. package/esm2022/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.mjs +0 -160
  528. package/esm2022/libs/feature/editor/src/lib/components/wizard-summarize/wizard-summarize.component.mjs +0 -53
  529. package/esm2022/libs/feature/editor/src/lib/models/wizard-field.model.mjs +0 -2
  530. package/esm2022/libs/feature/editor/src/lib/models/wizard-field.type.mjs +0 -8
  531. package/esm2022/libs/feature/editor/src/lib/services/wizard.service.mjs +0 -87
  532. package/esm2022/libs/ui/dataviz/src/lib/ui-dataviz.module.mjs +0 -47
  533. package/esm2022/libs/ui/elements/src/lib/related-record-card/related-record-card.component.mjs +0 -56
  534. package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +0 -130
  535. package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +0 -160
  536. package/esm2022/libs/ui/layout/src/lib/ui-layout.module.mjs +0 -23
  537. package/esm2022/libs/ui/widgets/src/lib/ui-widgets.module.mjs +0 -46
  538. package/esm2022/libs/util/i18n/src/lib/lang.service.mjs +0 -31
  539. package/esm2022/libs/util/i18n/src/lib/util-i18n.module.mjs +0 -37
  540. package/esm2022/libs/util/shared/src/lib/util-shared.module.mjs +0 -18
  541. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.d.ts +0 -14
  542. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.d.ts.map +0 -1
  543. package/libs/feature/editor/src/lib/components/wizard/wizard.component.d.ts +0 -31
  544. package/libs/feature/editor/src/lib/components/wizard/wizard.component.d.ts.map +0 -1
  545. package/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.d.ts +0 -43
  546. package/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.d.ts.map +0 -1
  547. package/libs/feature/editor/src/lib/components/wizard-summarize/wizard-summarize.component.d.ts +0 -17
  548. package/libs/feature/editor/src/lib/components/wizard-summarize/wizard-summarize.component.d.ts.map +0 -1
  549. package/libs/feature/editor/src/lib/models/wizard-field.model.d.ts +0 -10
  550. package/libs/feature/editor/src/lib/models/wizard-field.model.d.ts.map +0 -1
  551. package/libs/feature/editor/src/lib/models/wizard-field.type.d.ts +0 -7
  552. package/libs/feature/editor/src/lib/models/wizard-field.type.d.ts.map +0 -1
  553. package/libs/feature/editor/src/lib/services/wizard.service.d.ts +0 -33
  554. package/libs/feature/editor/src/lib/services/wizard.service.d.ts.map +0 -1
  555. package/libs/ui/dataviz/src/lib/ui-dataviz.module.d.ts +0 -11
  556. package/libs/ui/dataviz/src/lib/ui-dataviz.module.d.ts.map +0 -1
  557. package/libs/ui/elements/src/lib/related-record-card/related-record-card.component.d.ts +0 -19
  558. package/libs/ui/elements/src/lib/related-record-card/related-record-card.component.d.ts.map +0 -1
  559. package/libs/ui/elements/src/lib/ui-elements.module.d.ts +0 -31
  560. package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +0 -1
  561. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +0 -35
  562. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts.map +0 -1
  563. package/libs/ui/layout/src/lib/ui-layout.module.d.ts +0 -12
  564. package/libs/ui/layout/src/lib/ui-layout.module.d.ts.map +0 -1
  565. package/libs/ui/widgets/src/lib/ui-widgets.module.d.ts +0 -15
  566. package/libs/ui/widgets/src/lib/ui-widgets.module.d.ts.map +0 -1
  567. package/libs/util/i18n/src/lib/lang.service.d.ts +0 -13
  568. package/libs/util/i18n/src/lib/lang.service.d.ts.map +0 -1
  569. package/libs/util/i18n/src/lib/util-i18n.module.d.ts +0 -12
  570. package/libs/util/i18n/src/lib/util-i18n.module.d.ts.map +0 -1
  571. package/libs/util/shared/src/lib/util-shared.module.d.ts +0 -9
  572. package/libs/util/shared/src/lib/util-shared.module.d.ts.map +0 -1
  573. package/src/libs/feature/editor/src/lib/components/wizard/wizard.component.css +0 -5
  574. package/src/libs/feature/editor/src/lib/components/wizard/wizard.component.html +0 -22
  575. package/src/libs/feature/editor/src/lib/components/wizard/wizard.component.ts +0 -93
  576. package/src/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.css +0 -31
  577. package/src/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.html +0 -62
  578. package/src/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.ts +0 -206
  579. package/src/libs/feature/editor/src/lib/components/wizard-summarize/wizard-summarize.component.css +0 -3
  580. package/src/libs/feature/editor/src/lib/components/wizard-summarize/wizard-summarize.component.html +0 -21
  581. package/src/libs/feature/editor/src/lib/components/wizard-summarize/wizard-summarize.component.ts +0 -58
  582. package/src/libs/feature/editor/src/lib/models/wizard-field.model.ts +0 -10
  583. package/src/libs/feature/editor/src/lib/models/wizard-field.type.ts +0 -6
  584. package/src/libs/feature/editor/src/lib/services/wizard.service.ts +0 -105
  585. package/src/libs/ui/dataviz/src/lib/ui-dataviz.module.ts +0 -27
  586. package/src/libs/ui/elements/src/lib/related-record-card/related-record-card.component.css +0 -0
  587. package/src/libs/ui/elements/src/lib/related-record-card/related-record-card.component.html +0 -9
  588. package/src/libs/ui/elements/src/lib/related-record-card/related-record-card.component.ts +0 -61
  589. package/src/libs/ui/elements/src/lib/ui-elements.module.ts +0 -72
  590. package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +0 -96
  591. package/src/libs/ui/layout/src/lib/ui-layout.module.ts +0 -14
  592. package/src/libs/ui/widgets/src/lib/ui-widgets.module.ts +0 -25
  593. package/src/libs/util/i18n/src/lib/lang.service.ts +0 -23
  594. package/src/libs/util/i18n/src/lib/util-i18n.module.ts +0 -26
  595. package/src/libs/util/shared/src/lib/util-shared.module.ts +0 -10
@@ -8,14 +8,13 @@ import { AutocompleteComponent, ButtonComponent, TextInputComponent, UrlInputCom
8
8
  import { createFuzzyFilter, getLayers } from '../../../../../../../libs/util/shared/src';
9
9
  import { NgIconComponent, provideIcons, provideNgIconsConfig, } from '@ng-icons/core';
10
10
  import { iconoirRefresh } from '@ng-icons/iconoir';
11
- import { TranslateModule } from '@ngx-translate/core';
11
+ import { TranslateDirective, TranslatePipe } from '@ngx-translate/core';
12
12
  import { BehaviorSubject, debounceTime, distinctUntilChanged, switchMap, } from 'rxjs';
13
13
  import * as i0 from "@angular/core";
14
14
  import * as i1 from "@angular/common";
15
15
  import * as i2 from "@angular/forms";
16
16
  import * as i3 from "@angular/material/tooltip";
17
17
  import * as i4 from "@angular/material/radio";
18
- import * as i5 from "@ngx-translate/core";
19
18
  marker('editor.record.form.field.onlineResource.edit.identifier.placeholder');
20
19
  marker('editor.record.form.field.onlineResource.edit.identifier.placeholder.wps');
21
20
  export class OnlineServiceResourceInputComponent {
@@ -137,7 +136,7 @@ export class OnlineServiceResourceInputComponent {
137
136
  provideNgIconsConfig({
138
137
  size: '1.5em',
139
138
  }),
140
- ], ngImport: i0, template: "<div class=\"flex flex-row justify-between\">\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.protocol\n </h3>\n <span\n *ngIf=\"protocolHint\"\n class=\"material-symbols-outlined m-2 gn-ui-icon-small\"\n [matTooltip]=\"protocolHint\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n</div>\n<div class=\"flex flex-row items-center gap-4 h-[48px]\">\n <mat-radio-group\n aria-labelledby=\"example-radio-group-label\"\n class=\"flex flex-row gap-[8px]\"\n [(ngModel)]=\"_service.accessServiceProtocol\"\n [disabled]=\"disabled\"\n (change)=\"resetAllFormFields()\"\n >\n <mat-radio-button\n *ngFor=\"let protocolOption of protocolOptions\"\n [value]=\"protocolOption.value\"\n >\n {{ protocolOption.label | translate }}\n </mat-radio-button>\n </mat-radio-group>\n</div>\n\n<div class=\"flex flex-col gap-4\">\n <gn-ui-url-input\n class=\"w-full\"\n (uploadClick)=\"handleUploadClick($event)\"\n (valueChange)=\"handleUrlValueChange($event)\"\n [disabled]=\"disabled\"\n [value]=\"_service.url?.toString()\"\n [showValidateButton]=\"activeLayerSuggestion\"\n [resetUrlOnChange]=\"resetUrlOnChange\"\n >\n <ng-content *ngIf=\"activeLayerSuggestion\">\n <ng-icon name=\"iconoirRefresh\"></ng-icon>\n </ng-content>\n </gn-ui-url-input>\n\n <p class=\"text-sm text-red-500 pl-4\" *ngIf=\"errorMessage\" translate>\n editor.record.form.field.onlineResource.edit.identifier.error\n </p>\n\n <gn-ui-text-input\n class=\"grow border-b border-gray-300 pb-4\"\n [(value)]=\"_service.identifierInService\"\n [placeholder]=\"getIdentifierPlaceholder() | translate\"\n data-cy=\"identifier-in-service\"\n [disabled]=\"disabled\"\n *ngIf=\"\n !activeLayerSuggestion ||\n (_service.url && errorMessage) ||\n (modifyMode && (layers$ | async).length === 0)\n \"\n ></gn-ui-text-input>\n <gn-ui-autocomplete\n class=\"border-b border-gray-300 pb-4\"\n [placeholder]=\"\n 'editor.record.form.field.onlineResource.edit.identifier.select.label'\n | translate\n \"\n [action]=\"autoCompleteAction\"\n (itemSelected)=\"handleSelectValue($event)\"\n [displayWithFn]=\"displayWithFn\"\n [minCharacterCount]=\"0\"\n [clearOnSelection]=\"false\"\n *ngIf=\"activeLayerSuggestion && (layers$ | async)?.length > 0\"\n >\n </gn-ui-autocomplete>\n <gn-ui-button\n (buttonClick)=\"submit()\"\n [disabled]=\"disabled || !_service.identifierInService\"\n type=\"primary\"\n *ngIf=\"\n !modifyMode &&\n ((activeLayerSuggestion && (layers$ | async)) ||\n !activeLayerSuggestion ||\n (_service.url && errorMessage))\n \"\n >\n <span class=\"text-white font-bold\" translate>\n editor.record.form.field.onlineResource.edit.identifier.submit</span\n >\n </gn-ui-button>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: AutocompleteComponent, selector: "gn-ui-autocomplete", inputs: ["placeholder", "enterButton", "action", "value", "clearOnSelection", "preventCompleteOnSelection", "autoFocus", "minCharacterCount", "allowSubmit", "forceTrackPosition", "displayWithFn"], outputs: ["itemSelected", "inputSubmitted", "inputCleared", "isSearchActive"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatRadioModule }, { kind: "directive", type: i4.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i4.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "component", type: TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "extraClass", "placeholder", "required", "disabled"], outputs: ["valueChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "directive", type: i5.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: UrlInputComponent, selector: "gn-ui-url-input", inputs: ["value", "extraClass", "placeholder", "disabled", "showValidateButton", "resetUrlOnChange"], outputs: ["valueChange", "uploadClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
139
+ ], ngImport: i0, template: "<div class=\"flex flex-row justify-between\">\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.protocol\n </h3>\n <span\n *ngIf=\"protocolHint\"\n class=\"material-symbols-outlined m-2 gn-ui-icon-small\"\n [matTooltip]=\"protocolHint\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n</div>\n<div class=\"flex flex-row items-center gap-4 h-[48px]\">\n <mat-radio-group\n aria-labelledby=\"example-radio-group-label\"\n class=\"flex flex-row gap-[8px]\"\n [(ngModel)]=\"_service.accessServiceProtocol\"\n [disabled]=\"disabled\"\n (change)=\"resetAllFormFields()\"\n >\n <mat-radio-button\n *ngFor=\"let protocolOption of protocolOptions\"\n [value]=\"protocolOption.value\"\n >\n {{ protocolOption.label | translate }}\n </mat-radio-button>\n </mat-radio-group>\n</div>\n\n<div class=\"flex flex-col gap-4\">\n <gn-ui-url-input\n class=\"w-full\"\n (uploadClick)=\"handleUploadClick($event)\"\n (valueChange)=\"handleUrlValueChange($event)\"\n [disabled]=\"disabled\"\n [value]=\"_service.url?.toString()\"\n [showValidateButton]=\"activeLayerSuggestion\"\n [resetUrlOnChange]=\"resetUrlOnChange\"\n >\n <ng-content *ngIf=\"activeLayerSuggestion\">\n <ng-icon name=\"iconoirRefresh\"></ng-icon>\n </ng-content>\n </gn-ui-url-input>\n\n <p class=\"text-sm text-red-500 pl-4\" *ngIf=\"errorMessage\" translate>\n editor.record.form.field.onlineResource.edit.identifier.error\n </p>\n\n <gn-ui-text-input\n class=\"grow border-b border-gray-300 pb-4\"\n [(value)]=\"_service.identifierInService\"\n [placeholder]=\"getIdentifierPlaceholder() | translate\"\n data-cy=\"identifier-in-service\"\n [disabled]=\"disabled\"\n *ngIf=\"\n !activeLayerSuggestion ||\n (_service.url && errorMessage) ||\n (modifyMode && (layers$ | async).length === 0)\n \"\n ></gn-ui-text-input>\n <gn-ui-autocomplete\n class=\"border-b border-gray-300 pb-4\"\n [placeholder]=\"\n 'editor.record.form.field.onlineResource.edit.identifier.select.label'\n | translate\n \"\n [action]=\"autoCompleteAction\"\n (itemSelected)=\"handleSelectValue($event)\"\n [displayWithFn]=\"displayWithFn\"\n [minCharacterCount]=\"0\"\n [clearOnSelection]=\"false\"\n *ngIf=\"activeLayerSuggestion && (layers$ | async)?.length > 0\"\n >\n </gn-ui-autocomplete>\n <gn-ui-button\n (buttonClick)=\"submit()\"\n [disabled]=\"disabled || !_service.identifierInService\"\n type=\"primary\"\n *ngIf=\"\n !modifyMode &&\n ((activeLayerSuggestion && (layers$ | async)) ||\n !activeLayerSuggestion ||\n (_service.url && errorMessage))\n \"\n >\n <span class=\"text-white font-bold\" translate>\n editor.record.form.field.onlineResource.edit.identifier.submit</span\n >\n </gn-ui-button>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: AutocompleteComponent, selector: "gn-ui-autocomplete", inputs: ["placeholder", "enterButton", "action", "value", "clearOnSelection", "preventCompleteOnSelection", "autoFocus", "minCharacterCount", "allowSubmit", "forceTrackPosition", "displayWithFn"], outputs: ["itemSelected", "inputSubmitted", "inputCleared", "isSearchActive"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatRadioModule }, { kind: "directive", type: i4.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i4.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "component", type: TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "extraClass", "placeholder", "required", "disabled"], outputs: ["valueChange"] }, { kind: "directive", type: TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: UrlInputComponent, selector: "gn-ui-url-input", inputs: ["value", "extraClass", "placeholder", "disabled", "showValidateButton", "resetUrlOnChange"], outputs: ["valueChange", "uploadClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
141
140
  }
142
141
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OnlineServiceResourceInputComponent, decorators: [{
143
142
  type: Component,
@@ -150,7 +149,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
150
149
  MatRadioModule,
151
150
  NgIconComponent,
152
151
  TextInputComponent,
153
- TranslateModule,
152
+ TranslateDirective,
153
+ TranslatePipe,
154
154
  UrlInputComponent,
155
155
  ], providers: [
156
156
  provideIcons({ iconoirRefresh }),
@@ -169,4 +169,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
169
169
  }], serviceChange: [{
170
170
  type: Output
171
171
  }] } });
172
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2VkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQvb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2VkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQvb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDNUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQ3hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQzVELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUtoRSxPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsaUJBQWlCLEdBQ2xCLE1BQU0seUNBQXlDLENBQUE7QUFDaEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxNQUFNLDJDQUEyQyxDQUFBO0FBQ3hGLE9BQU8sRUFDTCxlQUFlLEVBQ2YsWUFBWSxFQUNaLG9CQUFvQixHQUNyQixN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QUFtQztrQkF6Qi9DLFNBQVM7K0JBQ0UscUNBQXFDLG1CQUc5Qix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxxQkFBcUI7d0JBQ3JCLGVBQWU7d0JBQ2YsWUFBWTt3QkFDWixXQUFXO3dCQUNYLGdCQUFnQjt3QkFDaEIsY0FBYzt3QkFDZCxlQUFlO3dCQUNmLGtCQUFrQjt3QkFDbEIsZUFBZTt3QkFDZixpQkFBaUI7cUJBQ2xCLGFBQ1U7d0JBQ1QsWUFBWSxDQUFDLEVBQUUsY0FBYyxFQUFFLENBQUM7d0JBQ2hDLG9CQUFvQixDQUFDOzRCQUNuQixJQUFJLEVBQUUsT0FBTzt5QkFDZCxDQUFDO3FCQUNIO3NGQUlZLE9BQU87c0JBQW5CLEtBQUs7Z0JBR0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0ksYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJ1xuaW1wb3J0IHsgTWF0UmFkaW9Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9yYWRpbydcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJ1xuaW1wb3J0IHsgbWFya2VyIH0gZnJvbSAnQGJpZXNiamVyZy9uZ3gtdHJhbnNsYXRlLWV4dHJhY3QtbWFya2VyJ1xuaW1wb3J0IHtcbiAgRGF0YXNldFNlcnZpY2VEaXN0cmlidXRpb24sXG4gIFNlcnZpY2VQcm90b2NvbCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHtcbiAgQXV0b2NvbXBsZXRlQ29tcG9uZW50LFxuICBCdXR0b25Db21wb25lbnQsXG4gIFRleHRJbnB1dENvbXBvbmVudCxcbiAgVXJsSW5wdXRDb21wb25lbnQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvaW5wdXRzL3NyYydcbmltcG9ydCB7IGNyZWF0ZUZ1enp5RmlsdGVyLCBnZXRMYXllcnMgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYydcbmltcG9ydCB7XG4gIE5nSWNvbkNvbXBvbmVudCxcbiAgcHJvdmlkZUljb25zLFxuICBwcm92aWRlTmdJY29uc0NvbmZpZyxcbn0gZnJvbSAnQG5nLWljb25zL2NvcmUnXG5pbXBvcnQgeyBpY29ub2lyUmVmcmVzaCB9IGZyb20gJ0BuZy1pY29ucy9pY29ub2lyJ1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgZGVib3VuY2VUaW1lLFxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgT2JzZXJ2YWJsZSxcbiAgc3dpdGNoTWFwLFxufSBmcm9tICdyeGpzJ1xuXG5tYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5maWVsZC5vbmxpbmVSZXNvdXJjZS5lZGl0LmlkZW50aWZpZXIucGxhY2Vob2xkZXInKVxubWFya2VyKFxuICAnZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLm9ubGluZVJlc291cmNlLmVkaXQuaWRlbnRpZmllci5wbGFjZWhvbGRlci53cHMnXG4pXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLW9ubGluZS1zZXJ2aWNlLXJlc291cmNlLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL29ubGluZS1zZXJ2aWNlLXJlc291cmNlLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIEF1dG9jb21wbGV0ZUNvbXBvbmVudCxcbiAgICBCdXR0b25Db21wb25lbnQsXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgTWF0UmFkaW9Nb2R1bGUsXG4gICAgTmdJY29uQ29tcG9uZW50LFxuICAgIFRleHRJbnB1dENvbXBvbmVudCxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgVXJsSW5wdXRDb21wb25lbnQsXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHByb3ZpZGVJY29ucyh7IGljb25vaXJSZWZyZXNoIH0pLFxuICAgIHByb3ZpZGVOZ0ljb25zQ29uZmlnKHtcbiAgICAgIHNpemU6ICcxLjVlbScsXG4gICAgfSksXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIE9ubGluZVNlcnZpY2VSZXNvdXJjZUlucHV0Q29tcG9uZW50IHtcbiAgX3NlcnZpY2U6IERhdGFzZXRTZXJ2aWNlRGlzdHJpYnV0aW9uXG4gIEBJbnB1dCgpIHNldCBzZXJ2aWNlKHNlcnZpY2U6IERhdGFzZXRTZXJ2aWNlRGlzdHJpYnV0aW9uKSB7XG4gICAgdGhpcy5fc2VydmljZSA9IHsgLi4uc2VydmljZSB9XG4gIH1cbiAgQElucHV0KCkgcHJvdG9jb2xIaW50Pzogc3RyaW5nXG4gIEBJbnB1dCgpIGRpc2FibGVkPyA9IGZhbHNlXG4gIEBJbnB1dCgpIG1vZGlmeU1vZGU/ID0gZmFsc2VcbiAgQE91dHB1dCgpIHNlcnZpY2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjxEYXRhc2V0U2VydmljZURpc3RyaWJ1dGlvbj4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXIoKVxuXG4gIGVycm9yTWVzc2FnZSA9IGZhbHNlXG4gIHJlc2V0VXJsT25DaGFuZ2UgPSBNYXRoLnJhbmRvbSgpXG5cbiAgbGF5ZXJzU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8eyBuYW1lPzogc3RyaW5nOyB0aXRsZT86IHN0cmluZyB9W10+KFtdKVxuICBsYXllcnMkOiBPYnNlcnZhYmxlPHsgbmFtZT86IHN0cmluZzsgdGl0bGU/OiBzdHJpbmcgfVtdPiA9XG4gICAgdGhpcy5sYXllcnNTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpXG5cbiAgcHJvdG9jb2xPcHRpb25zOiB7XG4gICAgbGFiZWw6IHN0cmluZ1xuICAgIHZhbHVlOiBTZXJ2aWNlUHJvdG9jb2xcbiAgfVtdID0gW1xuICAgIHtcbiAgICAgIGxhYmVsOiAnT0dDIEFQSScsXG4gICAgICB2YWx1ZTogJ29nY0ZlYXR1cmVzJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhYmVsOiAnV0ZTJyxcbiAgICAgIHZhbHVlOiAnd2ZzJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhYmVsOiAnV01TJyxcbiAgICAgIHZhbHVlOiAnd21zJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhYmVsOiAnV01UUycsXG4gICAgICB2YWx1ZTogJ3dtdHMnLFxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWw6ICdXUFMnLFxuICAgICAgdmFsdWU6ICd3cHMnLFxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWw6ICdFU1JJIFJFU1QnLFxuICAgICAgdmFsdWU6ICdlc3JpUmVzdCcsXG4gICAgfSxcbiAgICB7XG4gICAgICBsYWJlbDogbWFya2VyKCdlZGl0b3IucmVjb3JkLm9ubGluZVJlc291cmNlLnByb3RvY29sLm90aGVyJyksXG4gICAgICB2YWx1ZTogJ290aGVyJyxcbiAgICB9LFxuICBdXG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIGdldCBhY3RpdmVMYXllclN1Z2dlc3Rpb24oKSB7XG4gICAgcmV0dXJuICFbJ3dwcycsICdHUEZETCcsICdlc3JpUmVzdCcsICdvdGhlciddLmluY2x1ZGVzKFxuICAgICAgdGhpcy5fc2VydmljZS5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2xcbiAgICApXG4gIH1cblxuICBoYW5kbGVVcmxWYWx1ZUNoYW5nZSh1cmw6IHN0cmluZykge1xuICAgIHRoaXMuX3NlcnZpY2UudXJsID0gdXJsID8gbmV3IFVSTCh1cmwpIDogdW5kZWZpbmVkXG4gICAgdGhpcy5yZXNldExheWVyc1N1Z2dlc3Rpb24oKVxuICB9XG5cbiAgYXN5bmMgaGFuZGxlVXBsb2FkQ2xpY2sodXJsOiBzdHJpbmcpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgbGF5ZXJzID0gYXdhaXQgZ2V0TGF5ZXJzKHVybCwgdGhpcy5fc2VydmljZS5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wpXG5cbiAgICAgIGlmIChsYXllcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTm8gbGF5ZXJzIGZvdW5kJylcbiAgICAgIH1cblxuICAgICAgdGhpcy5sYXllcnNTdWJqZWN0Lm5leHQoWy4uLmxheWVyc10pXG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSB0cnVlXG4gICAgICB0aGlzLmxheWVyc1N1YmplY3QubmV4dChbXSlcbiAgICB9XG5cbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKClcbiAgfVxuXG4gIHJlc2V0QWxsRm9ybUZpZWxkcygpIHtcbiAgICB0aGlzLnJlc2V0VXJsT25DaGFuZ2UgPSBNYXRoLnJhbmRvbSgpXG4gICAgdGhpcy5fc2VydmljZS51cmwgPSBudWxsXG4gICAgdGhpcy5yZXNldExheWVyc1N1Z2dlc3Rpb24oKVxuICB9XG5cbiAgcmVzZXRMYXllcnNTdWdnZXN0aW9uKCkge1xuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gZmFsc2VcbiAgICB0aGlzLmxheWVyc1N1YmplY3QubmV4dChbXSlcbiAgICB0aGlzLl9zZXJ2aWNlLmlkZW50aWZpZXJJblNlcnZpY2UgPSBudWxsXG4gIH1cblxuICBzdWJtaXQoKSB7XG4gICAgdGhpcy5zZXJ2aWNlQ2hhbmdlLmVtaXQoe1xuICAgICAgLi4udGhpcy5fc2VydmljZSxcbiAgICAgIG5hbWU6IHRoaXMuX3NlcnZpY2UuaWRlbnRpZmllckluU2VydmljZSwgLy8gc2hvdWxkIHdlIGtlZXAgdGhlIGlkZW50aWZpZXJJblNlcnZpY2U/IHJlYWQtd3JpdGUgZHVwbGljYXRlIHdpdGggbmFtZVxuICAgIH0pXG4gICAgdGhpcy5fc2VydmljZS5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPSAnb2djRmVhdHVyZXMnXG4gICAgdGhpcy5yZXNldEFsbEZvcm1GaWVsZHMoKVxuICB9XG5cbiAgZ2V0SWRlbnRpZmllclBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XG4gICAgY29uc3QgYmFzZUtleSA9XG4gICAgICAnZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLm9ubGluZVJlc291cmNlLmVkaXQuaWRlbnRpZmllci5wbGFjZWhvbGRlcidcbiAgICByZXR1cm4gdGhpcy5fc2VydmljZS5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICd3cHMnXG4gICAgICA/IGAke2Jhc2VLZXl9Lndwc2BcbiAgICAgIDogYmFzZUtleVxuICB9XG5cbiAgLyoqXG4gICAqIGduLXVpLWF1dG9jb21wbGV0ZVxuICAgKi9cbiAgZGlzcGxheVdpdGhGbihpdGVtOiB7IG5hbWU6IHN0cmluZzsgdGl0bGU6IHN0cmluZyB9KSB7XG4gICAgcmV0dXJuIGl0ZW0udGl0bGVcbiAgICAgID8gYCR7aXRlbS50aXRsZX0gJHtpdGVtLm5hbWUgPyBgKCR7aXRlbS5uYW1lfSlgIDogJyd9YFxuICAgICAgOiBpdGVtLm5hbWVcbiAgfVxuXG4gIC8qKlxuICAgKiBnbi11aS1hdXRvY29tcGxldGVcbiAgICovXG4gIGF1dG9Db21wbGV0ZUFjdGlvbiA9IChxdWVyeTogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgZnV6enlGaWx0ZXIgPSBjcmVhdGVGdXp6eUZpbHRlcihxdWVyeSlcbiAgICByZXR1cm4gdGhpcy5sYXllcnMkLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKGxheWVycykgPT4gW1xuICAgICAgICBsYXllcnMuZmlsdGVyKChsYXllcikgPT4gZnV6enlGaWx0ZXIobGF5ZXIubmFtZSkpLFxuICAgICAgXSksXG4gICAgICBkZWJvdW5jZVRpbWUoMTAwKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICApXG4gIH1cblxuICAvKipcbiAgICogZ24tdWktYXV0b2NvbXBsZXRlXG4gICAqL1xuICBoYW5kbGVTZWxlY3RWYWx1ZSh2YWw6IHsgbmFtZTogc3RyaW5nOyB0aXRsZTogc3RyaW5nIH0pIHtcbiAgICB0aGlzLl9zZXJ2aWNlLmlkZW50aWZpZXJJblNlcnZpY2UgPSB2YWwubmFtZSAvLyBzaG91bGQgd2Uga2VlcCB0aGUgaWRlbnRpZmllckluU2VydmljZT8gcmVhZC13cml0ZSBkdXBsaWNhdGUgd2l0aCBuYW1lXG4gICAgdGhpcy5fc2VydmljZS5kZXNjcmlwdGlvbiA9IHZhbC50aXRsZVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgPGgzIGNsYXNzPVwidGV4dC1bMTZweF0gZm9udC1ib2xkIHRleHQtbWFpbiBtYi1bMTJweF1cIiB0cmFuc2xhdGU+XG4gICAgZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLm9ubGluZVJlc291cmNlLmVkaXQucHJvdG9jb2xcbiAgPC9oMz5cbiAgPHNwYW5cbiAgICAqbmdJZj1cInByb3RvY29sSGludFwiXG4gICAgY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkIG0tMiBnbi11aS1pY29uLXNtYWxsXCJcbiAgICBbbWF0VG9vbHRpcF09XCJwcm90b2NvbEhpbnRcIlxuICAgIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCJcbiAgPlxuICAgIGhlbHBcbiAgPC9zcGFuPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBpdGVtcy1jZW50ZXIgZ2FwLTQgaC1bNDhweF1cIj5cbiAgPG1hdC1yYWRpby1ncm91cFxuICAgIGFyaWEtbGFiZWxsZWRieT1cImV4YW1wbGUtcmFkaW8tZ3JvdXAtbGFiZWxcIlxuICAgIGNsYXNzPVwiZmxleCBmbGV4LXJvdyBnYXAtWzhweF1cIlxuICAgIFsobmdNb2RlbCldPVwiX3NlcnZpY2UuYWNjZXNzU2VydmljZVByb3RvY29sXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIChjaGFuZ2UpPVwicmVzZXRBbGxGb3JtRmllbGRzKClcIlxuICA+XG4gICAgPG1hdC1yYWRpby1idXR0b25cbiAgICAgICpuZ0Zvcj1cImxldCBwcm90b2NvbE9wdGlvbiBvZiBwcm90b2NvbE9wdGlvbnNcIlxuICAgICAgW3ZhbHVlXT1cInByb3RvY29sT3B0aW9uLnZhbHVlXCJcbiAgICA+XG4gICAgICB7eyBwcm90b2NvbE9wdGlvbi5sYWJlbCB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvbWF0LXJhZGlvLWJ1dHRvbj5cbiAgPC9tYXQtcmFkaW8tZ3JvdXA+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTRcIj5cbiAgPGduLXVpLXVybC1pbnB1dFxuICAgIGNsYXNzPVwidy1mdWxsXCJcbiAgICAodXBsb2FkQ2xpY2spPVwiaGFuZGxlVXBsb2FkQ2xpY2soJGV2ZW50KVwiXG4gICAgKHZhbHVlQ2hhbmdlKT1cImhhbmRsZVVybFZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW3ZhbHVlXT1cIl9zZXJ2aWNlLnVybD8udG9TdHJpbmcoKVwiXG4gICAgW3Nob3dWYWxpZGF0ZUJ1dHRvbl09XCJhY3RpdmVMYXllclN1Z2dlc3Rpb25cIlxuICAgIFtyZXNldFVybE9uQ2hhbmdlXT1cInJlc2V0VXJsT25DaGFuZ2VcIlxuICA+XG4gICAgPG5nLWNvbnRlbnQgKm5nSWY9XCJhY3RpdmVMYXllclN1Z2dlc3Rpb25cIj5cbiAgICAgIDxuZy1pY29uIG5hbWU9XCJpY29ub2lyUmVmcmVzaFwiPjwvbmctaWNvbj5cbiAgICA8L25nLWNvbnRlbnQ+XG4gIDwvZ24tdWktdXJsLWlucHV0PlxuXG4gIDxwIGNsYXNzPVwidGV4dC1zbSB0ZXh0LXJlZC01MDAgcGwtNFwiICpuZ0lmPVwiZXJyb3JNZXNzYWdlXCIgdHJhbnNsYXRlPlxuICAgIGVkaXRvci5yZWNvcmQuZm9ybS5maWVsZC5vbmxpbmVSZXNvdXJjZS5lZGl0LmlkZW50aWZpZXIuZXJyb3JcbiAgPC9wPlxuXG4gIDxnbi11aS10ZXh0LWlucHV0XG4gICAgY2xhc3M9XCJncm93IGJvcmRlci1iIGJvcmRlci1ncmF5LTMwMCBwYi00XCJcbiAgICBbKHZhbHVlKV09XCJfc2VydmljZS5pZGVudGlmaWVySW5TZXJ2aWNlXCJcbiAgICBbcGxhY2Vob2xkZXJdPVwiZ2V0SWRlbnRpZmllclBsYWNlaG9sZGVyKCkgfCB0cmFuc2xhdGVcIlxuICAgIGRhdGEtY3k9XCJpZGVudGlmaWVyLWluLXNlcnZpY2VcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgKm5nSWY9XCJcbiAgICAgICFhY3RpdmVMYXllclN1Z2dlc3Rpb24gfHxcbiAgICAgIChfc2VydmljZS51cmwgJiYgZXJyb3JNZXNzYWdlKSB8fFxuICAgICAgKG1vZGlmeU1vZGUgJiYgKGxheWVycyQgfCBhc3luYykubGVuZ3RoID09PSAwKVxuICAgIFwiXG4gID48L2duLXVpLXRleHQtaW5wdXQ+XG4gIDxnbi11aS1hdXRvY29tcGxldGVcbiAgICBjbGFzcz1cImJvcmRlci1iIGJvcmRlci1ncmF5LTMwMCBwYi00XCJcbiAgICBbcGxhY2Vob2xkZXJdPVwiXG4gICAgICAnZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLm9ubGluZVJlc291cmNlLmVkaXQuaWRlbnRpZmllci5zZWxlY3QubGFiZWwnXG4gICAgICAgIHwgdHJhbnNsYXRlXG4gICAgXCJcbiAgICBbYWN0aW9uXT1cImF1dG9Db21wbGV0ZUFjdGlvblwiXG4gICAgKGl0ZW1TZWxlY3RlZCk9XCJoYW5kbGVTZWxlY3RWYWx1ZSgkZXZlbnQpXCJcbiAgICBbZGlzcGxheVdpdGhGbl09XCJkaXNwbGF5V2l0aEZuXCJcbiAgICBbbWluQ2hhcmFjdGVyQ291bnRdPVwiMFwiXG4gICAgW2NsZWFyT25TZWxlY3Rpb25dPVwiZmFsc2VcIlxuICAgICpuZ0lmPVwiYWN0aXZlTGF5ZXJTdWdnZXN0aW9uICYmIChsYXllcnMkIHwgYXN5bmMpPy5sZW5ndGggPiAwXCJcbiAgPlxuICA8L2duLXVpLWF1dG9jb21wbGV0ZT5cbiAgPGduLXVpLWJ1dHRvblxuICAgIChidXR0b25DbGljayk9XCJzdWJtaXQoKVwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8ICFfc2VydmljZS5pZGVudGlmaWVySW5TZXJ2aWNlXCJcbiAgICB0eXBlPVwicHJpbWFyeVwiXG4gICAgKm5nSWY9XCJcbiAgICAgICFtb2RpZnlNb2RlICYmXG4gICAgICAoKGFjdGl2ZUxheWVyU3VnZ2VzdGlvbiAmJiAobGF5ZXJzJCB8IGFzeW5jKSkgfHxcbiAgICAgICAgIWFjdGl2ZUxheWVyU3VnZ2VzdGlvbiB8fFxuICAgICAgICAoX3NlcnZpY2UudXJsICYmIGVycm9yTWVzc2FnZSkpXG4gICAgXCJcbiAgPlxuICAgIDxzcGFuIGNsYXNzPVwidGV4dC13aGl0ZSBmb250LWJvbGRcIiB0cmFuc2xhdGU+XG4gICAgICBlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQub25saW5lUmVzb3VyY2UuZWRpdC5pZGVudGlmaWVyLnN1Ym1pdDwvc3BhblxuICAgID5cbiAgPC9nbi11aS1idXR0b24+XG48L2Rpdj5cbiJdfQ==
172
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2VkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQvb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2VkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQvb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDNUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQ3hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQzVELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUtoRSxPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsaUJBQWlCLEdBQ2xCLE1BQU0seUNBQXlDLENBQUE7QUFDaEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxNQUFNLDJDQUEyQyxDQUFBO0FBQ3hGLE9BQU8sRUFDTCxlQUFlLEVBQ2YsWUFBWSxFQUNaLG9CQUFvQixHQUNyQixN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QWEsa0RBQ2IsaUJBQWlCOzs0RkFTUixtQ0FBbUM7a0JBMUIvQyxTQUFTOytCQUNFLHFDQUFxQyxtQkFHOUIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1AscUJBQXFCO3dCQUNyQixlQUFlO3dCQUNmLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxnQkFBZ0I7d0JBQ2hCLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixrQkFBa0I7d0JBQ2xCLGtCQUFrQjt3QkFDbEIsYUFBYTt3QkFDYixpQkFBaUI7cUJBQ2xCLGFBQ1U7d0JBQ1QsWUFBWSxDQUFDLEVBQUUsY0FBYyxFQUFFLENBQUM7d0JBQ2hDLG9CQUFvQixDQUFDOzRCQUNuQixJQUFJLEVBQUUsT0FBTzt5QkFDZCxDQUFDO3FCQUNIO3NGQUlZLE9BQU87c0JBQW5CLEtBQUs7Z0JBR0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0ksYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJ1xuaW1wb3J0IHsgTWF0UmFkaW9Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9yYWRpbydcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJ1xuaW1wb3J0IHsgbWFya2VyIH0gZnJvbSAnQGJpZXNiamVyZy9uZ3gtdHJhbnNsYXRlLWV4dHJhY3QtbWFya2VyJ1xuaW1wb3J0IHtcbiAgRGF0YXNldFNlcnZpY2VEaXN0cmlidXRpb24sXG4gIFNlcnZpY2VQcm90b2NvbCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHtcbiAgQXV0b2NvbXBsZXRlQ29tcG9uZW50LFxuICBCdXR0b25Db21wb25lbnQsXG4gIFRleHRJbnB1dENvbXBvbmVudCxcbiAgVXJsSW5wdXRDb21wb25lbnQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvaW5wdXRzL3NyYydcbmltcG9ydCB7IGNyZWF0ZUZ1enp5RmlsdGVyLCBnZXRMYXllcnMgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYydcbmltcG9ydCB7XG4gIE5nSWNvbkNvbXBvbmVudCxcbiAgcHJvdmlkZUljb25zLFxuICBwcm92aWRlTmdJY29uc0NvbmZpZyxcbn0gZnJvbSAnQG5nLWljb25zL2NvcmUnXG5pbXBvcnQgeyBpY29ub2lyUmVmcmVzaCB9IGZyb20gJ0BuZy1pY29ucy9pY29ub2lyJ1xuaW1wb3J0IHsgVHJhbnNsYXRlRGlyZWN0aXZlLCBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgZGVib3VuY2VUaW1lLFxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgT2JzZXJ2YWJsZSxcbiAgc3dpdGNoTWFwLFxufSBmcm9tICdyeGpzJ1xuXG5tYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5maWVsZC5vbmxpbmVSZXNvdXJjZS5lZGl0LmlkZW50aWZpZXIucGxhY2Vob2xkZXInKVxubWFya2VyKFxuICAnZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLm9ubGluZVJlc291cmNlLmVkaXQuaWRlbnRpZmllci5wbGFjZWhvbGRlci53cHMnXG4pXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLW9ubGluZS1zZXJ2aWNlLXJlc291cmNlLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL29ubGluZS1zZXJ2aWNlLXJlc291cmNlLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIEF1dG9jb21wbGV0ZUNvbXBvbmVudCxcbiAgICBCdXR0b25Db21wb25lbnQsXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgTWF0UmFkaW9Nb2R1bGUsXG4gICAgTmdJY29uQ29tcG9uZW50LFxuICAgIFRleHRJbnB1dENvbXBvbmVudCxcbiAgICBUcmFuc2xhdGVEaXJlY3RpdmUsXG4gICAgVHJhbnNsYXRlUGlwZSxcbiAgICBVcmxJbnB1dENvbXBvbmVudCxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgcHJvdmlkZUljb25zKHsgaWNvbm9pclJlZnJlc2ggfSksXG4gICAgcHJvdmlkZU5nSWNvbnNDb25maWcoe1xuICAgICAgc2l6ZTogJzEuNWVtJyxcbiAgICB9KSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgT25saW5lU2VydmljZVJlc291cmNlSW5wdXRDb21wb25lbnQge1xuICBfc2VydmljZTogRGF0YXNldFNlcnZpY2VEaXN0cmlidXRpb25cbiAgQElucHV0KCkgc2V0IHNlcnZpY2Uoc2VydmljZTogRGF0YXNldFNlcnZpY2VEaXN0cmlidXRpb24pIHtcbiAgICB0aGlzLl9zZXJ2aWNlID0geyAuLi5zZXJ2aWNlIH1cbiAgfVxuICBASW5wdXQoKSBwcm90b2NvbEhpbnQ/OiBzdHJpbmdcbiAgQElucHV0KCkgZGlzYWJsZWQ/ID0gZmFsc2VcbiAgQElucHV0KCkgbW9kaWZ5TW9kZT8gPSBmYWxzZVxuICBAT3V0cHV0KCkgc2VydmljZUNoYW5nZTogRXZlbnRFbWl0dGVyPERhdGFzZXRTZXJ2aWNlRGlzdHJpYnV0aW9uPiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcigpXG5cbiAgZXJyb3JNZXNzYWdlID0gZmFsc2VcbiAgcmVzZXRVcmxPbkNoYW5nZSA9IE1hdGgucmFuZG9tKClcblxuICBsYXllcnNTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDx7IG5hbWU/OiBzdHJpbmc7IHRpdGxlPzogc3RyaW5nIH1bXT4oW10pXG4gIGxheWVycyQ6IE9ic2VydmFibGU8eyBuYW1lPzogc3RyaW5nOyB0aXRsZT86IHN0cmluZyB9W10+ID1cbiAgICB0aGlzLmxheWVyc1N1YmplY3QuYXNPYnNlcnZhYmxlKClcblxuICBwcm90b2NvbE9wdGlvbnM6IHtcbiAgICBsYWJlbDogc3RyaW5nXG4gICAgdmFsdWU6IFNlcnZpY2VQcm90b2NvbFxuICB9W10gPSBbXG4gICAge1xuICAgICAgbGFiZWw6ICdPR0MgQVBJJyxcbiAgICAgIHZhbHVlOiAnb2djRmVhdHVyZXMnLFxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWw6ICdXRlMnLFxuICAgICAgdmFsdWU6ICd3ZnMnLFxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWw6ICdXTVMnLFxuICAgICAgdmFsdWU6ICd3bXMnLFxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWw6ICdXTVRTJyxcbiAgICAgIHZhbHVlOiAnd210cycsXG4gICAgfSxcbiAgICB7XG4gICAgICBsYWJlbDogJ1dQUycsXG4gICAgICB2YWx1ZTogJ3dwcycsXG4gICAgfSxcbiAgICB7XG4gICAgICBsYWJlbDogJ0VTUkkgUkVTVCcsXG4gICAgICB2YWx1ZTogJ2VzcmlSZXN0JyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhYmVsOiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQub25saW5lUmVzb3VyY2UucHJvdG9jb2wub3RoZXInKSxcbiAgICAgIHZhbHVlOiAnb3RoZXInLFxuICAgIH0sXG4gIF1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgZ2V0IGFjdGl2ZUxheWVyU3VnZ2VzdGlvbigpIHtcbiAgICByZXR1cm4gIVsnd3BzJywgJ0dQRkRMJywgJ2VzcmlSZXN0JywgJ290aGVyJ10uaW5jbHVkZXMoXG4gICAgICB0aGlzLl9zZXJ2aWNlLmFjY2Vzc1NlcnZpY2VQcm90b2NvbFxuICAgIClcbiAgfVxuXG4gIGhhbmRsZVVybFZhbHVlQ2hhbmdlKHVybDogc3RyaW5nKSB7XG4gICAgdGhpcy5fc2VydmljZS51cmwgPSB1cmwgPyBuZXcgVVJMKHVybCkgOiB1bmRlZmluZWRcbiAgICB0aGlzLnJlc2V0TGF5ZXJzU3VnZ2VzdGlvbigpXG4gIH1cblxuICBhc3luYyBoYW5kbGVVcGxvYWRDbGljayh1cmw6IHN0cmluZykge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBsYXllcnMgPSBhd2FpdCBnZXRMYXllcnModXJsLCB0aGlzLl9zZXJ2aWNlLmFjY2Vzc1NlcnZpY2VQcm90b2NvbClcblxuICAgICAgaWYgKGxheWVycy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBsYXllcnMgZm91bmQnKVxuICAgICAgfVxuXG4gICAgICB0aGlzLmxheWVyc1N1YmplY3QubmV4dChbLi4ubGF5ZXJzXSlcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHRydWVcbiAgICAgIHRoaXMubGF5ZXJzU3ViamVjdC5uZXh0KFtdKVxuICAgIH1cblxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKVxuICB9XG5cbiAgcmVzZXRBbGxGb3JtRmllbGRzKCkge1xuICAgIHRoaXMucmVzZXRVcmxPbkNoYW5nZSA9IE1hdGgucmFuZG9tKClcbiAgICB0aGlzLl9zZXJ2aWNlLnVybCA9IG51bGxcbiAgICB0aGlzLnJlc2V0TGF5ZXJzU3VnZ2VzdGlvbigpXG4gIH1cblxuICByZXNldExheWVyc1N1Z2dlc3Rpb24oKSB7XG4gICAgdGhpcy5lcnJvck1lc3NhZ2UgPSBmYWxzZVxuICAgIHRoaXMubGF5ZXJzU3ViamVjdC5uZXh0KFtdKVxuICAgIHRoaXMuX3NlcnZpY2UuaWRlbnRpZmllckluU2VydmljZSA9IG51bGxcbiAgfVxuXG4gIHN1Ym1pdCgpIHtcbiAgICB0aGlzLnNlcnZpY2VDaGFuZ2UuZW1pdCh7XG4gICAgICAuLi50aGlzLl9zZXJ2aWNlLFxuICAgICAgbmFtZTogdGhpcy5fc2VydmljZS5pZGVudGlmaWVySW5TZXJ2aWNlLCAvLyBzaG91bGQgd2Uga2VlcCB0aGUgaWRlbnRpZmllckluU2VydmljZT8gcmVhZC13cml0ZSBkdXBsaWNhdGUgd2l0aCBuYW1lXG4gICAgfSlcbiAgICB0aGlzLl9zZXJ2aWNlLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9ICdvZ2NGZWF0dXJlcydcbiAgICB0aGlzLnJlc2V0QWxsRm9ybUZpZWxkcygpXG4gIH1cblxuICBnZXRJZGVudGlmaWVyUGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICBjb25zdCBiYXNlS2V5ID1cbiAgICAgICdlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQub25saW5lUmVzb3VyY2UuZWRpdC5pZGVudGlmaWVyLnBsYWNlaG9sZGVyJ1xuICAgIHJldHVybiB0aGlzLl9zZXJ2aWNlLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9PT0gJ3dwcydcbiAgICAgID8gYCR7YmFzZUtleX0ud3BzYFxuICAgICAgOiBiYXNlS2V5XG4gIH1cblxuICAvKipcbiAgICogZ24tdWktYXV0b2NvbXBsZXRlXG4gICAqL1xuICBkaXNwbGF5V2l0aEZuKGl0ZW06IHsgbmFtZTogc3RyaW5nOyB0aXRsZTogc3RyaW5nIH0pIHtcbiAgICByZXR1cm4gaXRlbS50aXRsZVxuICAgICAgPyBgJHtpdGVtLnRpdGxlfSAke2l0ZW0ubmFtZSA/IGAoJHtpdGVtLm5hbWV9KWAgOiAnJ31gXG4gICAgICA6IGl0ZW0ubmFtZVxuICB9XG5cbiAgLyoqXG4gICAqIGduLXVpLWF1dG9jb21wbGV0ZVxuICAgKi9cbiAgYXV0b0NvbXBsZXRlQWN0aW9uID0gKHF1ZXJ5OiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBmdXp6eUZpbHRlciA9IGNyZWF0ZUZ1enp5RmlsdGVyKHF1ZXJ5KVxuICAgIHJldHVybiB0aGlzLmxheWVycyQucGlwZShcbiAgICAgIHN3aXRjaE1hcCgobGF5ZXJzKSA9PiBbXG4gICAgICAgIGxheWVycy5maWx0ZXIoKGxheWVyKSA9PiBmdXp6eUZpbHRlcihsYXllci5uYW1lKSksXG4gICAgICBdKSxcbiAgICAgIGRlYm91bmNlVGltZSgxMDApLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgIClcbiAgfVxuXG4gIC8qKlxuICAgKiBnbi11aS1hdXRvY29tcGxldGVcbiAgICovXG4gIGhhbmRsZVNlbGVjdFZhbHVlKHZhbDogeyBuYW1lOiBzdHJpbmc7IHRpdGxlOiBzdHJpbmcgfSkge1xuICAgIHRoaXMuX3NlcnZpY2UuaWRlbnRpZmllckluU2VydmljZSA9IHZhbC5uYW1lIC8vIHNob3VsZCB3ZSBrZWVwIHRoZSBpZGVudGlmaWVySW5TZXJ2aWNlPyByZWFkLXdyaXRlIGR1cGxpY2F0ZSB3aXRoIG5hbWVcbiAgICB0aGlzLl9zZXJ2aWNlLmRlc2NyaXB0aW9uID0gdmFsLnRpdGxlXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGp1c3RpZnktYmV0d2VlblwiPlxuICA8aDMgY2xhc3M9XCJ0ZXh0LVsxNnB4XSBmb250LWJvbGQgdGV4dC1tYWluIG1iLVsxMnB4XVwiIHRyYW5zbGF0ZT5cbiAgICBlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQub25saW5lUmVzb3VyY2UuZWRpdC5wcm90b2NvbFxuICA8L2gzPlxuICA8c3BhblxuICAgICpuZ0lmPVwicHJvdG9jb2xIaW50XCJcbiAgICBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQgbS0yIGduLXVpLWljb24tc21hbGxcIlxuICAgIFttYXRUb29sdGlwXT1cInByb3RvY29sSGludFwiXG4gICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIlxuICA+XG4gICAgaGVscFxuICA8L3NwYW4+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGl0ZW1zLWNlbnRlciBnYXAtNCBoLVs0OHB4XVwiPlxuICA8bWF0LXJhZGlvLWdyb3VwXG4gICAgYXJpYS1sYWJlbGxlZGJ5PVwiZXhhbXBsZS1yYWRpby1ncm91cC1sYWJlbFwiXG4gICAgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGdhcC1bOHB4XVwiXG4gICAgWyhuZ01vZGVsKV09XCJfc2VydmljZS5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2xcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgKGNoYW5nZSk9XCJyZXNldEFsbEZvcm1GaWVsZHMoKVwiXG4gID5cbiAgICA8bWF0LXJhZGlvLWJ1dHRvblxuICAgICAgKm5nRm9yPVwibGV0IHByb3RvY29sT3B0aW9uIG9mIHByb3RvY29sT3B0aW9uc1wiXG4gICAgICBbdmFsdWVdPVwicHJvdG9jb2xPcHRpb24udmFsdWVcIlxuICAgID5cbiAgICAgIHt7IHByb3RvY29sT3B0aW9uLmxhYmVsIHwgdHJhbnNsYXRlIH19XG4gICAgPC9tYXQtcmFkaW8tYnV0dG9uPlxuICA8L21hdC1yYWRpby1ncm91cD5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtNFwiPlxuICA8Z24tdWktdXJsLWlucHV0XG4gICAgY2xhc3M9XCJ3LWZ1bGxcIlxuICAgICh1cGxvYWRDbGljayk9XCJoYW5kbGVVcGxvYWRDbGljaygkZXZlbnQpXCJcbiAgICAodmFsdWVDaGFuZ2UpPVwiaGFuZGxlVXJsVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbdmFsdWVdPVwiX3NlcnZpY2UudXJsPy50b1N0cmluZygpXCJcbiAgICBbc2hvd1ZhbGlkYXRlQnV0dG9uXT1cImFjdGl2ZUxheWVyU3VnZ2VzdGlvblwiXG4gICAgW3Jlc2V0VXJsT25DaGFuZ2VdPVwicmVzZXRVcmxPbkNoYW5nZVwiXG4gID5cbiAgICA8bmctY29udGVudCAqbmdJZj1cImFjdGl2ZUxheWVyU3VnZ2VzdGlvblwiPlxuICAgICAgPG5nLWljb24gbmFtZT1cImljb25vaXJSZWZyZXNoXCI+PC9uZy1pY29uPlxuICAgIDwvbmctY29udGVudD5cbiAgPC9nbi11aS11cmwtaW5wdXQ+XG5cbiAgPHAgY2xhc3M9XCJ0ZXh0LXNtIHRleHQtcmVkLTUwMCBwbC00XCIgKm5nSWY9XCJlcnJvck1lc3NhZ2VcIiB0cmFuc2xhdGU+XG4gICAgZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLm9ubGluZVJlc291cmNlLmVkaXQuaWRlbnRpZmllci5lcnJvclxuICA8L3A+XG5cbiAgPGduLXVpLXRleHQtaW5wdXRcbiAgICBjbGFzcz1cImdyb3cgYm9yZGVyLWIgYm9yZGVyLWdyYXktMzAwIHBiLTRcIlxuICAgIFsodmFsdWUpXT1cIl9zZXJ2aWNlLmlkZW50aWZpZXJJblNlcnZpY2VcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJnZXRJZGVudGlmaWVyUGxhY2Vob2xkZXIoKSB8IHRyYW5zbGF0ZVwiXG4gICAgZGF0YS1jeT1cImlkZW50aWZpZXItaW4tc2VydmljZVwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAqbmdJZj1cIlxuICAgICAgIWFjdGl2ZUxheWVyU3VnZ2VzdGlvbiB8fFxuICAgICAgKF9zZXJ2aWNlLnVybCAmJiBlcnJvck1lc3NhZ2UpIHx8XG4gICAgICAobW9kaWZ5TW9kZSAmJiAobGF5ZXJzJCB8IGFzeW5jKS5sZW5ndGggPT09IDApXG4gICAgXCJcbiAgPjwvZ24tdWktdGV4dC1pbnB1dD5cbiAgPGduLXVpLWF1dG9jb21wbGV0ZVxuICAgIGNsYXNzPVwiYm9yZGVyLWIgYm9yZGVyLWdyYXktMzAwIHBiLTRcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJcbiAgICAgICdlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQub25saW5lUmVzb3VyY2UuZWRpdC5pZGVudGlmaWVyLnNlbGVjdC5sYWJlbCdcbiAgICAgICAgfCB0cmFuc2xhdGVcbiAgICBcIlxuICAgIFthY3Rpb25dPVwiYXV0b0NvbXBsZXRlQWN0aW9uXCJcbiAgICAoaXRlbVNlbGVjdGVkKT1cImhhbmRsZVNlbGVjdFZhbHVlKCRldmVudClcIlxuICAgIFtkaXNwbGF5V2l0aEZuXT1cImRpc3BsYXlXaXRoRm5cIlxuICAgIFttaW5DaGFyYWN0ZXJDb3VudF09XCIwXCJcbiAgICBbY2xlYXJPblNlbGVjdGlvbl09XCJmYWxzZVwiXG4gICAgKm5nSWY9XCJhY3RpdmVMYXllclN1Z2dlc3Rpb24gJiYgKGxheWVycyQgfCBhc3luYyk/Lmxlbmd0aCA+IDBcIlxuICA+XG4gIDwvZ24tdWktYXV0b2NvbXBsZXRlPlxuICA8Z24tdWktYnV0dG9uXG4gICAgKGJ1dHRvbkNsaWNrKT1cInN1Ym1pdCgpXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgIV9zZXJ2aWNlLmlkZW50aWZpZXJJblNlcnZpY2VcIlxuICAgIHR5cGU9XCJwcmltYXJ5XCJcbiAgICAqbmdJZj1cIlxuICAgICAgIW1vZGlmeU1vZGUgJiZcbiAgICAgICgoYWN0aXZlTGF5ZXJTdWdnZXN0aW9uICYmIChsYXllcnMkIHwgYXN5bmMpKSB8fFxuICAgICAgICAhYWN0aXZlTGF5ZXJTdWdnZXN0aW9uIHx8XG4gICAgICAgIChfc2VydmljZS51cmwgJiYgZXJyb3JNZXNzYWdlKSlcbiAgICBcIlxuICA+XG4gICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXdoaXRlIGZvbnQtYm9sZFwiIHRyYW5zbGF0ZT5cbiAgICAgIGVkaXRvci5yZWNvcmQuZm9ybS5maWVsZC5vbmxpbmVSZXNvdXJjZS5lZGl0LmlkZW50aWZpZXIuc3VibWl0PC9zcGFuXG4gICAgPlxuICA8L2duLXVpLWJ1dHRvbj5cbjwvZGl2PlxuIl19
@@ -2,14 +2,12 @@ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from
2
2
  import { CommonModule } from '@angular/common';
3
3
  import { SortableListComponent } from '../../../../../../../../../libs/ui/layout/src';
4
4
  import { ConstraintCardComponent } from '../../../constraint-card/constraint-card.component';
5
- import { ButtonComponent, UiInputsModule } from '../../../../../../../../../libs/ui/inputs/src';
5
+ import { ButtonComponent } from '../../../../../../../../../libs/ui/inputs/src';
6
6
  import { marker } from '@biesbjerg/ngx-translate-extract-marker';
7
- import { TranslateModule } from '@ngx-translate/core';
7
+ import { TranslatePipe } from '@ngx-translate/core';
8
8
  import { NgIconComponent, provideIcons, provideNgIconsConfig, } from '@ng-icons/core';
9
9
  import { iconoirPlus } from '@ng-icons/iconoir';
10
10
  import * as i0 from "@angular/core";
11
- import * as i1 from "../../../../../../../../ui/inputs/src/lib/button/button.component";
12
- import * as i2 from "@ngx-translate/core";
13
11
  marker('editor.record.form.constraint.add.legalConstraints');
14
12
  marker('editor.record.form.constraint.add.securityConstraints');
15
13
  marker('editor.record.form.constraint.add.otherConstraints');
@@ -46,7 +44,7 @@ export class FormFieldConstraintsComponent {
46
44
  provideNgIconsConfig({
47
45
  size: '1.5rem',
48
46
  }),
49
- ], ngImport: i0, template: "<div class=\"w-full flex flex-col gap-2\" [attr.data-cy]=\"constraintType\">\n <span class=\"border-t border-gray-300 flex grow pb-[32px]\"></span>\n <span class=\"font-bold mb-3\">{{ constraintsHeader | translate }}</span>\n <gn-ui-button\n type=\"gray\"\n (buttonClick)=\"addConstraintSectionToDisplay()\"\n data-cy=\"add-constraint-btn\"\n >\n <ng-icon name=\"iconoirPlus\" class=\"text-primary\"></ng-icon>\n &nbsp;<span>{{ additionalConstraintsButtonLabel | translate }}</span>\n </gn-ui-button>\n <gn-ui-sortable-list\n [items]=\"value\"\n (itemsOrderChange)=\"handleConstraintsOrderChange($event)\"\n [elementTemplate]=\"constraintTemplate\"\n ></gn-ui-sortable-list>\n <ng-template #constraintTemplate let-constraint let-index=\"index\">\n <gn-ui-constraint-card\n [label]=\"label\"\n [constraint]=\"constraint\"\n (constraintChange)=\"handleConstraintChange($event, index)\"\n ></gn-ui-constraint-card>\n </ng-template>\n</div>\n", styles: [":host{--gn-ui-button-padding: 8px 8px;--gn-ui-button-rounded: 8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: SortableListComponent, selector: "gn-ui-sortable-list", inputs: ["elementTemplate", "items"], outputs: ["itemsOrderChange"] }, { kind: "component", type: ConstraintCardComponent, selector: "gn-ui-constraint-card", inputs: ["label", "constraint"], outputs: ["constraintChange"] }, { kind: "ngmodule", type: UiInputsModule }, { kind: "component", type: i1.ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
47
+ ], ngImport: i0, template: "<div class=\"w-full flex flex-col gap-2\" [attr.data-cy]=\"constraintType\">\n <span class=\"border-t border-gray-300 flex grow pb-[32px]\"></span>\n <span class=\"font-bold mb-3\">{{ constraintsHeader | translate }}</span>\n <gn-ui-button\n type=\"gray\"\n (buttonClick)=\"addConstraintSectionToDisplay()\"\n data-cy=\"add-constraint-btn\"\n >\n <ng-icon name=\"iconoirPlus\" class=\"text-primary\"></ng-icon>\n &nbsp;<span>{{ additionalConstraintsButtonLabel | translate }}</span>\n </gn-ui-button>\n <gn-ui-sortable-list\n [items]=\"value\"\n (itemsOrderChange)=\"handleConstraintsOrderChange($event)\"\n [elementTemplate]=\"constraintTemplate\"\n ></gn-ui-sortable-list>\n <ng-template #constraintTemplate let-constraint let-index=\"index\">\n <gn-ui-constraint-card\n [label]=\"label\"\n [constraint]=\"constraint\"\n (constraintChange)=\"handleConstraintChange($event, index)\"\n ></gn-ui-constraint-card>\n </ng-template>\n</div>\n", styles: [":host{--gn-ui-button-padding: 8px 8px;--gn-ui-button-rounded: 8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: SortableListComponent, selector: "gn-ui-sortable-list", inputs: ["elementTemplate", "items"], outputs: ["itemsOrderChange"] }, { kind: "component", type: ConstraintCardComponent, selector: "gn-ui-constraint-card", inputs: ["label", "constraint"], outputs: ["constraintChange"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
50
48
  }
51
49
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldConstraintsComponent, decorators: [{
52
50
  type: Component,
@@ -54,10 +52,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
54
52
  CommonModule,
55
53
  SortableListComponent,
56
54
  ConstraintCardComponent,
57
- UiInputsModule,
58
55
  ButtonComponent,
59
- TranslateModule,
60
56
  NgIconComponent,
57
+ TranslatePipe,
61
58
  ], providers: [
62
59
  provideIcons({ iconoirPlus }),
63
60
  provideNgIconsConfig({
@@ -73,4 +70,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
73
70
  }], valueChange: [{
74
71
  type: Output
75
72
  }] } });
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1jb25zdHJhaW50cy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9yZWNvcmQtZm9ybS9mb3JtLWZpZWxkL2Zvcm0tZmllbGQtY29uc3RyYWludHMvZm9ybS1maWVsZC1jb25zdHJhaW50cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9yZWNvcmQtZm9ybS9mb3JtLWZpZWxkL2Zvcm0tZmllbGQtY29uc3RyYWludHMvZm9ybS1maWVsZC1jb25zdHJhaW50cy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0NBQStDLENBQUE7QUFDckYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0RBQW9ELENBQUE7QUFLNUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQTtBQUMvRixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0seUNBQXlDLENBQUE7QUFDaEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3JELE9BQU8sRUFDTCxlQUFlLEVBQ2YsWUFBWSxFQUNaLG9CQUFvQixHQUNyQixNQUFNLGdCQUFnQixDQUFBO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTs7OztBQUUvQyxNQUFNLENBQUMsb0RBQW9ELENBQUMsQ0FBQTtBQUM1RCxNQUFNLENBQUMsdURBQXVELENBQUMsQ0FBQTtBQUMvRCxNQUFNLENBQUMsb0RBQW9ELENBQUMsQ0FBQTtBQUM1RCxNQUFNLENBQUMsdURBQXVELENBQUMsQ0FBQTtBQUMvRCxNQUFNLENBQUMsMERBQTBELENBQUMsQ0FBQTtBQUNsRSxNQUFNLENBQUMsdURBQXVELENBQUMsQ0FBQTtBQXdCL0QsTUFBTSxPQUFPLDZCQUE2QjtJQXRCMUM7UUEwQlksZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBZ0IsQ0FBQTtRQUV4RCxzQkFBaUIsR0FBRyxFQUFFLENBQUE7UUFDdEIscUNBQWdDLEdBQUcsRUFBRSxDQUFBO0tBdUJ0QztJQXJCQyxRQUFRO1FBQ04sSUFBSSxDQUFDLGdDQUFnQyxHQUFHLHFDQUFxQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUE7UUFDbEcsSUFBSSxDQUFDLGlCQUFpQixHQUFHLHdDQUF3QyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUE7SUFDeEYsQ0FBQztJQUVELHNCQUFzQixDQUFDLFVBQXNCLEVBQUUsS0FBYTtRQUMxRCxNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ2hDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxVQUFVLENBQUE7UUFDNUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDakMsQ0FBQztJQUVELDRCQUE0QixDQUFDLFdBQXlCO1FBQ3BELE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxDQUFBO1FBQzNDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUE7SUFDM0MsQ0FBQztJQUVELDZCQUE2QjtRQUMzQixNQUFNLGtCQUFrQixHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDMUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUEsQ0FBQyxPQUFPO1FBQzdDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUE7SUFDM0MsQ0FBQzsrR0E3QlUsNkJBQTZCO21HQUE3Qiw2QkFBNkIsa01BWDdCO1lBQ1QsWUFBWSxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUM7WUFDN0Isb0JBQW9CLENBQUM7Z0JBQ25CLElBQUksRUFBRSxRQUFRO2FBQ2YsQ0FBQztTQUNILDBCQ2hESCxrK0JBd0JBLDZIRFdJLFlBQVksK0JBQ1oscUJBQXFCLHFJQUNyQix1QkFBdUIsaUlBQ3ZCLGNBQWMsK0tBRWQsZUFBZSw0RkFDZixlQUFlOzs0RkFhTiw2QkFBNkI7a0JBdEJ6QyxTQUFTOytCQUNFLDhCQUE4QixXQUMvQjt3QkFDUCxZQUFZO3dCQUNaLHFCQUFxQjt3QkFDckIsdUJBQXVCO3dCQUN2QixjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixlQUFlO3FCQUNoQixhQUNVO3dCQUNULFlBQVksQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDO3dCQUM3QixvQkFBb0IsQ0FBQzs0QkFDbkIsSUFBSSxFQUFFLFFBQVE7eUJBQ2YsQ0FBQztxQkFDSCxtQkFHZ0IsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJOzhCQUdQLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBTb3J0YWJsZUxpc3RDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2xheW91dC9zcmMnXG5pbXBvcnQgeyBDb25zdHJhaW50Q2FyZENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbnN0cmFpbnQtY2FyZC9jb25zdHJhaW50LWNhcmQuY29tcG9uZW50J1xuaW1wb3J0IHtcbiAgQ2F0YWxvZ1JlY29yZEtleXMsXG4gIENvbnN0cmFpbnQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCwgVWlJbnB1dHNNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2lucHV0cy9zcmMnXG5pbXBvcnQgeyBtYXJrZXIgfSBmcm9tICdAYmllc2JqZXJnL25neC10cmFuc2xhdGUtZXh0cmFjdC1tYXJrZXInXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHtcbiAgTmdJY29uQ29tcG9uZW50LFxuICBwcm92aWRlSWNvbnMsXG4gIHByb3ZpZGVOZ0ljb25zQ29uZmlnLFxufSBmcm9tICdAbmctaWNvbnMvY29yZSdcbmltcG9ydCB7IGljb25vaXJQbHVzIH0gZnJvbSAnQG5nLWljb25zL2ljb25vaXInXG5cbm1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmNvbnN0cmFpbnQuYWRkLmxlZ2FsQ29uc3RyYWludHMnKVxubWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uY29uc3RyYWludC5hZGQuc2VjdXJpdHlDb25zdHJhaW50cycpXG5tYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5jb25zdHJhaW50LmFkZC5vdGhlckNvbnN0cmFpbnRzJylcbm1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmNvbnN0cmFpbnQuaGVhZGVyLmxlZ2FsQ29uc3RyYWludHMnKVxubWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uY29uc3RyYWludC5oZWFkZXIuc2VjdXJpdHlDb25zdHJhaW50cycpXG5tYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5jb25zdHJhaW50LmhlYWRlci5vdGhlckNvbnN0cmFpbnRzJylcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktZm9ybS1maWVsZC1jb25zdHJhaW50cycsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgU29ydGFibGVMaXN0Q29tcG9uZW50LFxuICAgIENvbnN0cmFpbnRDYXJkQ29tcG9uZW50LFxuICAgIFVpSW5wdXRzTW9kdWxlLFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgTmdJY29uQ29tcG9uZW50LFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICBwcm92aWRlSWNvbnMoeyBpY29ub2lyUGx1cyB9KSxcbiAgICBwcm92aWRlTmdJY29uc0NvbmZpZyh7XG4gICAgICBzaXplOiAnMS41cmVtJyxcbiAgICB9KSxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tZmllbGQtY29uc3RyYWludHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mb3JtLWZpZWxkLWNvbnN0cmFpbnRzLmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1GaWVsZENvbnN0cmFpbnRzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZ1xuICBASW5wdXQoKSB2YWx1ZTogQ29uc3RyYWludFtdXG4gIEBJbnB1dCgpIGNvbnN0cmFpbnRUeXBlOiBDYXRhbG9nUmVjb3JkS2V5c1xuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPENvbnN0cmFpbnRbXT4oKVxuXG4gIGNvbnN0cmFpbnRzSGVhZGVyID0gJydcbiAgYWRkaXRpb25hbENvbnN0cmFpbnRzQnV0dG9uTGFiZWwgPSAnJ1xuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuYWRkaXRpb25hbENvbnN0cmFpbnRzQnV0dG9uTGFiZWwgPSBgZWRpdG9yLnJlY29yZC5mb3JtLmNvbnN0cmFpbnQuYWRkLiR7dGhpcy5jb25zdHJhaW50VHlwZX1gXG4gICAgdGhpcy5jb25zdHJhaW50c0hlYWRlciA9IGBlZGl0b3IucmVjb3JkLmZvcm0uY29uc3RyYWludC5oZWFkZXIuJHt0aGlzLmNvbnN0cmFpbnRUeXBlfWBcbiAgfVxuXG4gIGhhbmRsZUNvbnN0cmFpbnRDaGFuZ2UoY29uc3RyYWludDogQ29uc3RyYWludCwgaW5kZXg6IG51bWJlcikge1xuICAgIGNvbnN0IG5ld1ZhbHVlID0gWy4uLnRoaXMudmFsdWVdXG4gICAgbmV3VmFsdWVbaW5kZXhdID0gY29uc3RyYWludFxuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdChuZXdWYWx1ZSlcbiAgfVxuXG4gIGhhbmRsZUNvbnN0cmFpbnRzT3JkZXJDaGFuZ2UoY29uc3RyYWludHM6IENvbnN0cmFpbnRbXSkge1xuICAgIGNvbnN0IHVwZGF0ZWRDb25zdHJhaW50cyA9IFsuLi5jb25zdHJhaW50c11cbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodXBkYXRlZENvbnN0cmFpbnRzKVxuICB9XG5cbiAgYWRkQ29uc3RyYWludFNlY3Rpb25Ub0Rpc3BsYXkoKSB7XG4gICAgY29uc3QgdXBkYXRlZENvbnN0cmFpbnRzID0gWy4uLnRoaXMudmFsdWVdXG4gICAgdXBkYXRlZENvbnN0cmFpbnRzLnB1c2goeyB0ZXh0OiAnJyB9KSAvLyB1cmw/XG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHVwZGF0ZWRDb25zdHJhaW50cylcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInctZnVsbCBmbGV4IGZsZXgtY29sIGdhcC0yXCIgW2F0dHIuZGF0YS1jeV09XCJjb25zdHJhaW50VHlwZVwiPlxuICA8c3BhbiBjbGFzcz1cImJvcmRlci10IGJvcmRlci1ncmF5LTMwMCBmbGV4IGdyb3cgcGItWzMycHhdXCI+PC9zcGFuPlxuICA8c3BhbiBjbGFzcz1cImZvbnQtYm9sZCBtYi0zXCI+e3sgY29uc3RyYWludHNIZWFkZXIgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gIDxnbi11aS1idXR0b25cbiAgICB0eXBlPVwiZ3JheVwiXG4gICAgKGJ1dHRvbkNsaWNrKT1cImFkZENvbnN0cmFpbnRTZWN0aW9uVG9EaXNwbGF5KClcIlxuICAgIGRhdGEtY3k9XCJhZGQtY29uc3RyYWludC1idG5cIlxuICA+XG4gICAgPG5nLWljb24gbmFtZT1cImljb25vaXJQbHVzXCIgY2xhc3M9XCJ0ZXh0LXByaW1hcnlcIj48L25nLWljb24+XG4gICAgJm5ic3A7PHNwYW4+e3sgYWRkaXRpb25hbENvbnN0cmFpbnRzQnV0dG9uTGFiZWwgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gIDwvZ24tdWktYnV0dG9uPlxuICA8Z24tdWktc29ydGFibGUtbGlzdFxuICAgIFtpdGVtc109XCJ2YWx1ZVwiXG4gICAgKGl0ZW1zT3JkZXJDaGFuZ2UpPVwiaGFuZGxlQ29uc3RyYWludHNPcmRlckNoYW5nZSgkZXZlbnQpXCJcbiAgICBbZWxlbWVudFRlbXBsYXRlXT1cImNvbnN0cmFpbnRUZW1wbGF0ZVwiXG4gID48L2duLXVpLXNvcnRhYmxlLWxpc3Q+XG4gIDxuZy10ZW1wbGF0ZSAjY29uc3RyYWludFRlbXBsYXRlIGxldC1jb25zdHJhaW50IGxldC1pbmRleD1cImluZGV4XCI+XG4gICAgPGduLXVpLWNvbnN0cmFpbnQtY2FyZFxuICAgICAgW2xhYmVsXT1cImxhYmVsXCJcbiAgICAgIFtjb25zdHJhaW50XT1cImNvbnN0cmFpbnRcIlxuICAgICAgKGNvbnN0cmFpbnRDaGFuZ2UpPVwiaGFuZGxlQ29uc3RyYWludENoYW5nZSgkZXZlbnQsIGluZGV4KVwiXG4gICAgPjwvZ24tdWktY29uc3RyYWludC1jYXJkPlxuICA8L25nLXRlbXBsYXRlPlxuPC9kaXY+XG4iXX0=
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1jb25zdHJhaW50cy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9yZWNvcmQtZm9ybS9mb3JtLWZpZWxkL2Zvcm0tZmllbGQtY29uc3RyYWludHMvZm9ybS1maWVsZC1jb25zdHJhaW50cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9yZWNvcmQtZm9ybS9mb3JtLWZpZWxkL2Zvcm0tZmllbGQtY29uc3RyYWludHMvZm9ybS1maWVsZC1jb25zdHJhaW50cy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0NBQStDLENBQUE7QUFDckYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0RBQW9ELENBQUE7QUFLNUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtDQUErQyxDQUFBO0FBQy9FLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUNoRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDbkQsT0FBTyxFQUNMLGVBQWUsRUFDZixZQUFZLEVBQ1osb0JBQW9CLEdBQ3JCLE1BQU0sZ0JBQWdCLENBQUE7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFBOztBQUUvQyxNQUFNLENBQUMsb0RBQW9ELENBQUMsQ0FBQTtBQUM1RCxNQUFNLENBQUMsdURBQXVELENBQUMsQ0FBQTtBQUMvRCxNQUFNLENBQUMsb0RBQW9ELENBQUMsQ0FBQTtBQUM1RCxNQUFNLENBQUMsdURBQXVELENBQUMsQ0FBQTtBQUMvRCxNQUFNLENBQUMsMERBQTBELENBQUMsQ0FBQTtBQUNsRSxNQUFNLENBQUMsdURBQXVELENBQUMsQ0FBQTtBQXVCL0QsTUFBTSxPQUFPLDZCQUE2QjtJQXJCMUM7UUF5QlksZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBZ0IsQ0FBQTtRQUV4RCxzQkFBaUIsR0FBRyxFQUFFLENBQUE7UUFDdEIscUNBQWdDLEdBQUcsRUFBRSxDQUFBO0tBdUJ0QztJQXJCQyxRQUFRO1FBQ04sSUFBSSxDQUFDLGdDQUFnQyxHQUFHLHFDQUFxQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUE7UUFDbEcsSUFBSSxDQUFDLGlCQUFpQixHQUFHLHdDQUF3QyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUE7SUFDeEYsQ0FBQztJQUVELHNCQUFzQixDQUFDLFVBQXNCLEVBQUUsS0FBYTtRQUMxRCxNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ2hDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxVQUFVLENBQUE7UUFDNUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDakMsQ0FBQztJQUVELDRCQUE0QixDQUFDLFdBQXlCO1FBQ3BELE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxDQUFBO1FBQzNDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUE7SUFDM0MsQ0FBQztJQUVELDZCQUE2QjtRQUMzQixNQUFNLGtCQUFrQixHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDMUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUEsQ0FBQyxPQUFPO1FBQzdDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUE7SUFDM0MsQ0FBQzsrR0E3QlUsNkJBQTZCO21HQUE3Qiw2QkFBNkIsa01BWDdCO1lBQ1QsWUFBWSxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUM7WUFDN0Isb0JBQW9CLENBQUM7Z0JBQ25CLElBQUksRUFBRSxRQUFRO2FBQ2YsQ0FBQztTQUNILDBCQy9DSCxrK0JBd0JBLDZIRFdJLFlBQVksK0JBQ1oscUJBQXFCLHFJQUNyQix1QkFBdUIsa0lBQ3ZCLGVBQWUsK0hBQ2YsZUFBZSx3R0FDZixhQUFhOzs0RkFhSiw2QkFBNkI7a0JBckJ6QyxTQUFTOytCQUNFLDhCQUE4QixXQUMvQjt3QkFDUCxZQUFZO3dCQUNaLHFCQUFxQjt3QkFDckIsdUJBQXVCO3dCQUN2QixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsYUFBYTtxQkFDZCxhQUNVO3dCQUNULFlBQVksQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDO3dCQUM3QixvQkFBb0IsQ0FBQzs0QkFDbkIsSUFBSSxFQUFFLFFBQVE7eUJBQ2YsQ0FBQztxQkFDSCxtQkFHZ0IsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJOzhCQUdQLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBTb3J0YWJsZUxpc3RDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2xheW91dC9zcmMnXG5pbXBvcnQgeyBDb25zdHJhaW50Q2FyZENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbnN0cmFpbnQtY2FyZC9jb25zdHJhaW50LWNhcmQuY29tcG9uZW50J1xuaW1wb3J0IHtcbiAgQ2F0YWxvZ1JlY29yZEtleXMsXG4gIENvbnN0cmFpbnQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvaW5wdXRzL3NyYydcbmltcG9ydCB7IG1hcmtlciB9IGZyb20gJ0BiaWVzYmplcmcvbmd4LXRyYW5zbGF0ZS1leHRyYWN0LW1hcmtlcidcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHtcbiAgTmdJY29uQ29tcG9uZW50LFxuICBwcm92aWRlSWNvbnMsXG4gIHByb3ZpZGVOZ0ljb25zQ29uZmlnLFxufSBmcm9tICdAbmctaWNvbnMvY29yZSdcbmltcG9ydCB7IGljb25vaXJQbHVzIH0gZnJvbSAnQG5nLWljb25zL2ljb25vaXInXG5cbm1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmNvbnN0cmFpbnQuYWRkLmxlZ2FsQ29uc3RyYWludHMnKVxubWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uY29uc3RyYWludC5hZGQuc2VjdXJpdHlDb25zdHJhaW50cycpXG5tYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5jb25zdHJhaW50LmFkZC5vdGhlckNvbnN0cmFpbnRzJylcbm1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmNvbnN0cmFpbnQuaGVhZGVyLmxlZ2FsQ29uc3RyYWludHMnKVxubWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uY29uc3RyYWludC5oZWFkZXIuc2VjdXJpdHlDb25zdHJhaW50cycpXG5tYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5jb25zdHJhaW50LmhlYWRlci5vdGhlckNvbnN0cmFpbnRzJylcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktZm9ybS1maWVsZC1jb25zdHJhaW50cycsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgU29ydGFibGVMaXN0Q29tcG9uZW50LFxuICAgIENvbnN0cmFpbnRDYXJkQ29tcG9uZW50LFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBOZ0ljb25Db21wb25lbnQsXG4gICAgVHJhbnNsYXRlUGlwZSxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgcHJvdmlkZUljb25zKHsgaWNvbm9pclBsdXMgfSksXG4gICAgcHJvdmlkZU5nSWNvbnNDb25maWcoe1xuICAgICAgc2l6ZTogJzEuNXJlbScsXG4gICAgfSksXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLWZpZWxkLWNvbnN0cmFpbnRzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS1maWVsZC1jb25zdHJhaW50cy5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtRmllbGRDb25zdHJhaW50c0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmdcbiAgQElucHV0KCkgdmFsdWU6IENvbnN0cmFpbnRbXVxuICBASW5wdXQoKSBjb25zdHJhaW50VHlwZTogQ2F0YWxvZ1JlY29yZEtleXNcbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDb25zdHJhaW50W10+KClcblxuICBjb25zdHJhaW50c0hlYWRlciA9ICcnXG4gIGFkZGl0aW9uYWxDb25zdHJhaW50c0J1dHRvbkxhYmVsID0gJydcblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmFkZGl0aW9uYWxDb25zdHJhaW50c0J1dHRvbkxhYmVsID0gYGVkaXRvci5yZWNvcmQuZm9ybS5jb25zdHJhaW50LmFkZC4ke3RoaXMuY29uc3RyYWludFR5cGV9YFxuICAgIHRoaXMuY29uc3RyYWludHNIZWFkZXIgPSBgZWRpdG9yLnJlY29yZC5mb3JtLmNvbnN0cmFpbnQuaGVhZGVyLiR7dGhpcy5jb25zdHJhaW50VHlwZX1gXG4gIH1cblxuICBoYW5kbGVDb25zdHJhaW50Q2hhbmdlKGNvbnN0cmFpbnQ6IENvbnN0cmFpbnQsIGluZGV4OiBudW1iZXIpIHtcbiAgICBjb25zdCBuZXdWYWx1ZSA9IFsuLi50aGlzLnZhbHVlXVxuICAgIG5ld1ZhbHVlW2luZGV4XSA9IGNvbnN0cmFpbnRcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQobmV3VmFsdWUpXG4gIH1cblxuICBoYW5kbGVDb25zdHJhaW50c09yZGVyQ2hhbmdlKGNvbnN0cmFpbnRzOiBDb25zdHJhaW50W10pIHtcbiAgICBjb25zdCB1cGRhdGVkQ29uc3RyYWludHMgPSBbLi4uY29uc3RyYWludHNdXG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHVwZGF0ZWRDb25zdHJhaW50cylcbiAgfVxuXG4gIGFkZENvbnN0cmFpbnRTZWN0aW9uVG9EaXNwbGF5KCkge1xuICAgIGNvbnN0IHVwZGF0ZWRDb25zdHJhaW50cyA9IFsuLi50aGlzLnZhbHVlXVxuICAgIHVwZGF0ZWRDb25zdHJhaW50cy5wdXNoKHsgdGV4dDogJycgfSkgLy8gdXJsP1xuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh1cGRhdGVkQ29uc3RyYWludHMpXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ3LWZ1bGwgZmxleCBmbGV4LWNvbCBnYXAtMlwiIFthdHRyLmRhdGEtY3ldPVwiY29uc3RyYWludFR5cGVcIj5cbiAgPHNwYW4gY2xhc3M9XCJib3JkZXItdCBib3JkZXItZ3JheS0zMDAgZmxleCBncm93IHBiLVszMnB4XVwiPjwvc3Bhbj5cbiAgPHNwYW4gY2xhc3M9XCJmb250LWJvbGQgbWItM1wiPnt7IGNvbnN0cmFpbnRzSGVhZGVyIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICA8Z24tdWktYnV0dG9uXG4gICAgdHlwZT1cImdyYXlcIlxuICAgIChidXR0b25DbGljayk9XCJhZGRDb25zdHJhaW50U2VjdGlvblRvRGlzcGxheSgpXCJcbiAgICBkYXRhLWN5PVwiYWRkLWNvbnN0cmFpbnQtYnRuXCJcbiAgPlxuICAgIDxuZy1pY29uIG5hbWU9XCJpY29ub2lyUGx1c1wiIGNsYXNzPVwidGV4dC1wcmltYXJ5XCI+PC9uZy1pY29uPlxuICAgICZuYnNwOzxzcGFuPnt7IGFkZGl0aW9uYWxDb25zdHJhaW50c0J1dHRvbkxhYmVsIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICA8L2duLXVpLWJ1dHRvbj5cbiAgPGduLXVpLXNvcnRhYmxlLWxpc3RcbiAgICBbaXRlbXNdPVwidmFsdWVcIlxuICAgIChpdGVtc09yZGVyQ2hhbmdlKT1cImhhbmRsZUNvbnN0cmFpbnRzT3JkZXJDaGFuZ2UoJGV2ZW50KVwiXG4gICAgW2VsZW1lbnRUZW1wbGF0ZV09XCJjb25zdHJhaW50VGVtcGxhdGVcIlxuICA+PC9nbi11aS1zb3J0YWJsZS1saXN0PlxuICA8bmctdGVtcGxhdGUgI2NvbnN0cmFpbnRUZW1wbGF0ZSBsZXQtY29uc3RyYWludCBsZXQtaW5kZXg9XCJpbmRleFwiPlxuICAgIDxnbi11aS1jb25zdHJhaW50LWNhcmRcbiAgICAgIFtsYWJlbF09XCJsYWJlbFwiXG4gICAgICBbY29uc3RyYWludF09XCJjb25zdHJhaW50XCJcbiAgICAgIChjb25zdHJhaW50Q2hhbmdlKT1cImhhbmRsZUNvbnN0cmFpbnRDaGFuZ2UoJGV2ZW50LCBpbmRleClcIlxuICAgID48L2duLXVpLWNvbnN0cmFpbnQtY2FyZD5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19
@@ -2,7 +2,7 @@ import { ChangeDetectionStrategy, Component, } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import { EditorFacade } from '../../../../+state/editor.facade';
4
4
  import { ButtonComponent, CheckToggleComponent } from '../../../../../../../../../libs/ui/inputs/src';
5
- import { TranslateModule } from '@ngx-translate/core';
5
+ import { TranslatePipe } from '@ngx-translate/core';
6
6
  import { combineLatest, distinctUntilChanged, firstValueFrom, map, Subject, takeUntil, } from 'rxjs';
7
7
  import { marker } from '@biesbjerg/ngx-translate-extract-marker';
8
8
  import { matchesNoApplicableConstraint, matchesNoKnownConstraint, NOT_APPLICABLE_CONSTRAINT, NOT_KNOWN_CONSTRAINT, } from './constraints.utils';
@@ -11,7 +11,6 @@ import { iconoirPlus } from '@ng-icons/iconoir';
11
11
  import * as i0 from "@angular/core";
12
12
  import * as i1 from "../../../../+state/editor.facade";
13
13
  import * as i2 from "@angular/common";
14
- import * as i3 from "@ngx-translate/core";
15
14
  marker('editor.record.form.constraint.legalConstraints');
16
15
  marker('editor.record.form.constraint.securityConstraints');
17
16
  marker('editor.record.form.constraint.otherConstraints');
@@ -110,7 +109,7 @@ export class FormFieldConstraintsShortcutsComponent {
110
109
  provideNgIconsConfig({
111
110
  size: '1.5rem',
112
111
  }),
113
- ], ngImport: i0, template: "<div class=\"flex flex-col gap-2 mb-2\" data-cy=\"constraints-shortcut-toggles\">\n <gn-ui-check-toggle\n [label]=\"'editor.record.form.constraint.not.applicable' | translate\"\n [value]=\"noApplicableConstraint$ | async\"\n (toggled)=\"onToggleChange('noApplicableConstraint', $event)\"\n >\n </gn-ui-check-toggle>\n <gn-ui-check-toggle\n [label]=\"'editor.record.form.constraint.not.known' | translate\"\n [value]=\"noKnownConstraint$ | async\"\n (toggled)=\"onToggleChange('noKnownConstraint', $event)\"\n >\n </gn-ui-check-toggle>\n</div>\n\n<div\n *ngIf=\"(anyToggleActivated$ | async) === false\"\n class=\"flex flex-row flex-wrap gap-2\"\n data-cy=\"constraints-shortcut-btns\"\n>\n <ng-container *ngFor=\"let constraint of constraintButtonChoices\">\n <gn-ui-button\n type=\"gray\"\n (buttonClick)=\"addConstraintSectionToDisplay(constraint)\"\n [disabled]=\"isConstraintButtonDisabled$(constraint) | async\"\n >\n <ng-icon name=\"iconoirPlus\" class=\"text-primary\"></ng-icon>\n &nbsp;\n <span>{{\n 'editor.record.form.constraint.' + constraint | translate\n }}</span>\n </gn-ui-button>\n </ng-container>\n</div>\n", styles: [":host{--gn-ui-button-padding: 8px 8px;--gn-ui-button-rounded: 8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "component", type: CheckToggleComponent, selector: "gn-ui-check-toggle", inputs: ["title", "label", "value", "color"], outputs: ["toggled"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
112
+ ], ngImport: i0, template: "<div class=\"flex flex-col gap-2 mb-2\" data-cy=\"constraints-shortcut-toggles\">\n <gn-ui-check-toggle\n [label]=\"'editor.record.form.constraint.not.applicable' | translate\"\n [value]=\"noApplicableConstraint$ | async\"\n (toggled)=\"onToggleChange('noApplicableConstraint', $event)\"\n >\n </gn-ui-check-toggle>\n <gn-ui-check-toggle\n [label]=\"'editor.record.form.constraint.not.known' | translate\"\n [value]=\"noKnownConstraint$ | async\"\n (toggled)=\"onToggleChange('noKnownConstraint', $event)\"\n >\n </gn-ui-check-toggle>\n</div>\n\n<div\n *ngIf=\"(anyToggleActivated$ | async) === false\"\n class=\"flex flex-row flex-wrap gap-2\"\n data-cy=\"constraints-shortcut-btns\"\n>\n <ng-container *ngFor=\"let constraint of constraintButtonChoices\">\n <gn-ui-button\n type=\"gray\"\n (buttonClick)=\"addConstraintSectionToDisplay(constraint)\"\n [disabled]=\"isConstraintButtonDisabled$(constraint) | async\"\n >\n <ng-icon name=\"iconoirPlus\" class=\"text-primary\"></ng-icon>\n &nbsp;\n <span>{{\n 'editor.record.form.constraint.' + constraint | translate\n }}</span>\n </gn-ui-button>\n </ng-container>\n</div>\n", styles: [":host{--gn-ui-button-padding: 8px 8px;--gn-ui-button-rounded: 8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "component", type: CheckToggleComponent, selector: "gn-ui-check-toggle", inputs: ["title", "label", "value", "color"], outputs: ["toggled"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
114
113
  }
115
114
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldConstraintsShortcutsComponent, decorators: [{
116
115
  type: Component,
@@ -118,7 +117,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
118
117
  CommonModule,
119
118
  CheckToggleComponent,
120
119
  ButtonComponent,
121
- TranslateModule,
120
+ TranslatePipe,
122
121
  NgIconComponent,
123
122
  ], providers: [
124
123
  provideIcons({ iconoirPlus }),
@@ -127,4 +126,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
127
126
  }),
128
127
  ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"flex flex-col gap-2 mb-2\" data-cy=\"constraints-shortcut-toggles\">\n <gn-ui-check-toggle\n [label]=\"'editor.record.form.constraint.not.applicable' | translate\"\n [value]=\"noApplicableConstraint$ | async\"\n (toggled)=\"onToggleChange('noApplicableConstraint', $event)\"\n >\n </gn-ui-check-toggle>\n <gn-ui-check-toggle\n [label]=\"'editor.record.form.constraint.not.known' | translate\"\n [value]=\"noKnownConstraint$ | async\"\n (toggled)=\"onToggleChange('noKnownConstraint', $event)\"\n >\n </gn-ui-check-toggle>\n</div>\n\n<div\n *ngIf=\"(anyToggleActivated$ | async) === false\"\n class=\"flex flex-row flex-wrap gap-2\"\n data-cy=\"constraints-shortcut-btns\"\n>\n <ng-container *ngFor=\"let constraint of constraintButtonChoices\">\n <gn-ui-button\n type=\"gray\"\n (buttonClick)=\"addConstraintSectionToDisplay(constraint)\"\n [disabled]=\"isConstraintButtonDisabled$(constraint) | async\"\n >\n <ng-icon name=\"iconoirPlus\" class=\"text-primary\"></ng-icon>\n &nbsp;\n <span>{{\n 'editor.record.form.constraint.' + constraint | translate\n }}</span>\n </gn-ui-button>\n </ng-container>\n</div>\n", styles: [":host{--gn-ui-button-padding: 8px 8px;--gn-ui-button-rounded: 8px}\n"] }]
129
128
  }], ctorParameters: () => [{ type: i1.EditorFacade }] });
130
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1jb25zdHJhaW50cy1zaG9ydGN1dHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2VkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvcmVjb3JkLWZvcm0vZm9ybS1maWVsZC9mb3JtLWZpZWxkLWNvbnN0cmFpbnRzLXNob3J0Y3V0cy9mb3JtLWZpZWxkLWNvbnN0cmFpbnRzLXNob3J0Y3V0cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9yZWNvcmQtZm9ybS9mb3JtLWZpZWxkL2Zvcm0tZmllbGQtY29uc3RyYWludHMtc2hvcnRjdXRzL2Zvcm0tZmllbGQtY29uc3RyYWludHMtc2hvcnRjdXRzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxHQUdWLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0NBQWtDLENBQUE7QUFDL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLCtDQUErQyxDQUFBO0FBQ3JHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNyRCxPQUFPLEVBQ0wsYUFBYSxFQUNiLG9CQUFvQixFQUNwQixjQUFjLEVBQ2QsR0FBRyxFQUVILE9BQU8sRUFDUCxTQUFTLEdBQ1YsTUFBTSxNQUFNLENBQUE7QUFDYixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0seUNBQXlDLENBQUE7QUFFaEUsT0FBTyxFQUNMLDZCQUE2QixFQUM3Qix3QkFBd0IsRUFDeEIseUJBQXlCLEVBQ3pC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Z3ksXG4gIENvbXBvbmVudCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBFZGl0b3JGYWNhZGUgfSBmcm9tICcuLi8uLi8uLi8uLi8rc3RhdGUvZWRpdG9yLmZhY2FkZSdcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCwgQ2hlY2tUb2dnbGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2lucHV0cy9zcmMnXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHtcbiAgY29tYmluZUxhdGVzdCxcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIGZpcnN0VmFsdWVGcm9tLFxuICBtYXAsXG4gIE9ic2VydmFibGUsXG4gIFN1YmplY3QsXG4gIHRha2VVbnRpbCxcbn0gZnJvbSAncnhqcydcbmltcG9ydCB7IG1hcmtlciB9IGZyb20gJ0BiaWVzYmplcmcvbmd4LXRyYW5zbGF0ZS1leHRyYWN0LW1hcmtlcidcbmltcG9ydCB7IENvbnN0cmFpbnQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQge1xuICBtYXRjaGVzTm9BcHBsaWNhYmxlQ29uc3RyYWludCxcbiAgbWF0Y2hlc05vS25vd25Db25zdHJhaW50LFxuICBOT1RfQVBQTElDQUJMRV9DT05TVFJBSU5ULFxuICBOT1RfS05PV05fQ09OU1RSQUlOVCxcbn0gZnJvbSAnLi9jb25zdHJhaW50cy51dGlscydcbmltcG9ydCB7XG4gIE5nSWNvbkNvbXBvbmVudCxcbiAgcHJvdmlkZUljb25zLFxuICBwcm92aWRlTmdJY29uc0NvbmZpZyxcbn0gZnJvbSAnQG5nLWljb25zL2NvcmUnXG5pbXBvcnQgeyBpY29ub2lyUGx1cyB9IGZyb20gJ0BuZy1pY29ucy9pY29ub2lyJ1xuXG5tYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5jb25zdHJhaW50LmxlZ2FsQ29uc3RyYWludHMnKVxubWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uY29uc3RyYWludC5zZWN1cml0eUNvbnN0cmFpbnRzJylcbm1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmNvbnN0cmFpbnQub3RoZXJDb25zdHJhaW50cycpXG5cbmV4cG9ydCB0eXBlIENvbnN0cmFpbnRDaG9pY2UgPVxuICB8ICdsZWdhbENvbnN0cmFpbnRzJ1xuICB8ICdzZWN1cml0eUNvbnN0cmFpbnRzJ1xuICB8ICdvdGhlckNvbnN0cmFpbnRzJ1xuXG4vKipcbiAqIFRoaXMgY29tcG9uZW50IG9mZmVycyB0d28gdG9nZ2xlcyB0byBlYXNpbHkgZGVmaW5lIGNvbW1vbiBjb25zdHJhaW50cyAobm8gYXBwbGljYWJsZSBjb25zdHJhaW50XG4gKiBhbmQgbm8ga25vd24gY29uc3RyYWludCkgYW5kIHNob3dzIGFuZCBoaWRlcyB0aGUgdmFyaW91cyBjb25zdHJhaW50cyBmaWVsZHMgYWNjb3JkaW5nbHkgdXNpbmdcbiAqIHRoZSBmYWNhZGVcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktZm9ybS1maWVsZC1jb25zdHJhaW50cy1zaG9ydGN1dHMnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIENoZWNrVG9nZ2xlQ29tcG9uZW50LFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgTmdJY29uQ29tcG9uZW50LFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICBwcm92aWRlSWNvbnMoeyBpY29ub2lyUGx1cyB9KSxcbiAgICBwcm92aWRlTmdJY29uc0NvbmZpZyh7XG4gICAgICBzaXplOiAnMS41cmVtJyxcbiAgICB9KSxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tZmllbGQtY29uc3RyYWludHMtc2hvcnRjdXRzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS1maWVsZC1jb25zdHJhaW50cy1zaG9ydGN1dHMuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUZpZWxkQ29uc3RyYWludHNTaG9ydGN1dHNDb21wb25lbnRcbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveVxue1xuICBsZWdhbENvbnN0cmFpbnRzJCA9IHRoaXMuZWRpdG9yRmFjYWRlLnJlY29yZCQucGlwZShcbiAgICBtYXAoKHJlY29yZCkgPT4gcmVjb3JkPy5sZWdhbENvbnN0cmFpbnRzID8/IFtdKVxuICApXG4gIHNlY3VyaXR5Q29uc3RyYWludHMkID0gdGhpcy5lZGl0b3JGYWNhZGUucmVjb3JkJC5waXBlKFxuICAgIG1hcCgocmVjb3JkKSA9PiByZWNvcmQ/LnNlY3VyaXR5Q29uc3RyYWludHMgPz8gW10pXG4gIClcbiAgb3RoZXJDb25zdHJhaW50cyQgPSB0aGlzLmVkaXRvckZhY2FkZS5yZWNvcmQkLnBpcGUoXG4gICAgbWFwKChyZWNvcmQpID0+IHJlY29yZD8ub3RoZXJDb25zdHJhaW50cyA/PyBbXSlcbiAgKVxuXG4gIG5vQXBwbGljYWJsZUNvbnN0cmFpbnQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5sZWdhbENvbnN0cmFpbnRzJC5waXBlKFxuICAgIG1hcCgoY29uc3RyYWludHMpID0+XG4gICAgICBjb25zdHJhaW50cy5zb21lKChjb25zdHJhaW50KSA9PlxuICAgICAgICBtYXRjaGVzTm9BcHBsaWNhYmxlQ29uc3RyYWludChjb25zdHJhaW50KVxuICAgICAgKVxuICAgIClcbiAgKVxuICBub0tub3duQ29uc3RyYWludCQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLmxlZ2FsQ29uc3RyYWludHMkLnBpcGUoXG4gICAgbWFwKChjb25zdHJhaW50cykgPT5cbiAgICAgIGNvbnN0cmFpbnRzLnNvbWUoKGNvbnN0cmFpbnQpID0+IG1hdGNoZXNOb0tub3duQ29uc3RyYWludChjb25zdHJhaW50KSlcbiAgICApXG4gIClcbiAgYW55VG9nZ2xlQWN0aXZhdGVkJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMubm9BcHBsaWNhYmxlQ29uc3RyYWludCQsXG4gICAgdGhpcy5ub0tub3duQ29uc3RyYWludCQsXG4gIF0pLnBpcGUoXG4gICAgbWFwKFxuICAgICAgKFtub0FwcGxpY2FibGVDb25zdHJhaW50LCBub0tub3duQ29uc3RyYWludF0pID0+XG4gICAgICAgIG5vQXBwbGljYWJsZUNvbnN0cmFpbnQgfHwgbm9Lbm93bkNvbnN0cmFpbnRcbiAgICApXG4gIClcblxuICBjb25zdHJhaW50QnV0dG9uQ2hvaWNlczogQ29uc3RyYWludENob2ljZVtdID0gW1xuICAgICdsZWdhbENvbnN0cmFpbnRzJyxcbiAgICAnc2VjdXJpdHlDb25zdHJhaW50cycsXG4gICAgJ290aGVyQ29uc3RyYWludHMnLFxuICBdXG5cbiAgb25EZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KClcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVkaXRvckZhY2FkZTogRWRpdG9yRmFjYWRlKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIGhpZGUgYWxsIGNvbnN0cmFpbnRzIGlmIGFueSB0b2dnbGUgaXMgYWN0aXZhdGVkXG4gICAgdGhpcy5hbnlUb2dnbGVBY3RpdmF0ZWQkXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSlcbiAgICAgIC5zdWJzY3JpYmUoKGFueVRvZ2dsZUFjdGl2YXRlZCkgPT4ge1xuICAgICAgICBpZiAoYW55VG9nZ2xlQWN0aXZhdGVkKSB7XG4gICAgICAgICAgdGhpcy5oaWRlQWxsQ29uc3RyYWludFNlY3Rpb25zKClcbiAgICAgICAgfVxuICAgICAgfSlcblxuICAgIC8vIGFsc28gaGlkZSBjb25zdHJhaW50cyB3aGljaCBhcmUgZW1wdHkgYXJyYXlzXG4gICAgY29uc3QgaGlkZUVtcHR5Q29uc3RyYWludHMgPSAoXG4gICAgICBjb25zdHJhaW50cyQ6IE9ic2VydmFibGU8Q29uc3RyYWludFtdPixcbiAgICAgIG1vZGVsOiBDb25zdHJhaW50Q2hvaWNlXG4gICAgKSA9PiB7XG4gICAgICBjb25zdCBpc0NvbnN0cmFpbnROb3RFbXB0eSQgPSBjb25zdHJhaW50cyQucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMub25EZXN0cm95JCksXG4gICAgICAgIG1hcCgoYykgPT4gYy5sZW5ndGggPiAwKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICAgKVxuICAgICAgY29tYmluZUxhdGVzdChbXG4gICAgICAgIGlzQ29uc3RyYWludE5vdEVtcHR5JCxcbiAgICAgICAgdGhpcy5hbnlUb2dnbGVBY3RpdmF0ZWQkLFxuICAgICAgXSkuc3Vic2NyaWJlKChbaXNOb3RFbXB0eSwgYW55VG9nZ2xlQWN0aXZhdGVkXSkgPT4ge1xuICAgICAgICBjb25zdCB2aXNpYmxlID0gaXNOb3RFbXB0eSAmJiAhYW55VG9nZ2xlQWN0aXZhdGVkXG4gICAgICAgIHRoaXMuZWRpdG9yRmFjYWRlLnNldEZpZWxkVmlzaWJpbGl0eSh7IG1vZGVsIH0sIHZpc2libGUpXG4gICAgICB9KVxuICAgIH1cbiAgICBoaWRlRW1wdHlDb25zdHJhaW50cyh0aGlzLmxlZ2FsQ29uc3RyYWludHMkLCAnbGVnYWxDb25zdHJhaW50cycpXG4gICAgaGlkZUVtcHR5Q29uc3RyYWludHModGhpcy5zZWN1cml0eUNvbnN0cmFpbnRzJCwgJ3NlY3VyaXR5Q29uc3RyYWludHMnKVxuICAgIGhpZGVFbXB0eUNvbnN0cmFpbnRzKHRoaXMub3RoZXJDb25zdHJhaW50cyQsICdvdGhlckNvbnN0cmFpbnRzJylcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMub25EZXN0cm95JC5uZXh0KClcbiAgfVxuXG4gIGhpZGVBbGxDb25zdHJhaW50U2VjdGlvbnMoKSB7XG4gICAgdGhpcy5lZGl0b3JGYWNhZGUuc2V0RmllbGRWaXNpYmlsaXR5KHsgbW9kZWw6ICdsZWdhbENvbnN0cmFpbnRzJyB9LCBmYWxzZSlcbiAgICB0aGlzLmVkaXRvckZhY2FkZS5zZXRGaWVsZFZpc2liaWxpdHkoXG4gICAgICB7IG1vZGVsOiAnc2VjdXJpdHlDb25zdHJhaW50cycgfSxcbiAgICAgIGZhbHNlXG4gICAgKVxuICAgIHRoaXMuZWRpdG9yRmFjYWRlLnNldEZpZWxkVmlzaWJpbGl0eSh7IG1vZGVsOiAnb3RoZXJDb25zdHJhaW50cycgfSwgZmFsc2UpXG4gIH1cblxuICBhc3luYyBvblRvZ2dsZUNoYW5nZShcbiAgICB0b2dnbGVOYW1lOiAnbm9BcHBsaWNhYmxlQ29uc3RyYWludCcgfCAnbm9Lbm93bkNvbnN0cmFpbnQnLFxuICAgIHZhbHVlOiBib29sZWFuXG4gICkge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgY29uc3QgcHJlc2V0Q29uc3RyYWludCA9XG4gICAgICAgIHRvZ2dsZU5hbWUgPT09ICdub0FwcGxpY2FibGVDb25zdHJhaW50J1xuICAgICAgICAgID8gTk9UX0FQUExJQ0FCTEVfQ09OU1RSQUlOVFxuICAgICAgICAgIDogTk9UX0tOT1dOX0NPTlNUUkFJTlRcbiAgICAgIHRoaXMuZWRpdG9yRmFjYWRlLnVwZGF0ZVJlY29yZEZpZWxkKCdsZWdhbENvbnN0cmFpbnRzJywgW1xuICAgICAgICBwcmVzZXRDb25zdHJhaW50LFxuICAgICAgXSlcbiAgICAgIHRoaXMuaGlkZUFsbENvbnN0cmFpbnRTZWN0aW9ucygpXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG1hdGNoZXIgPVxuICAgICAgICB0b2dnbGVOYW1lID09PSAnbm9BcHBsaWNhYmxlQ29uc3RyYWludCdcbiAgICAgICAgICA/IG1hdGNoZXNOb0FwcGxpY2FibGVDb25zdHJhaW50XG4gICAgICAgICAgOiBtYXRjaGVzTm9Lbm93bkNvbnN0cmFpbnRcbiAgICAgIC8vIGlmIHRoZSB0b2dnbGUgaXMgdHVybmVkIG9mZiwgcmVtb3ZlIGFsbCBtYXRjaGluZyBjb25zdHJhaW50c1xuICAgICAgY29uc3QgY29uc3RyYWludHMgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmxlZ2FsQ29uc3RyYWludHMkKVxuICAgICAgdGhpcy5lZGl0b3JGYWNhZGUudXBkYXRlUmVjb3JkRmllbGQoXG4gICAgICAgICdsZWdhbENvbnN0cmFpbnRzJyxcbiAgICAgICAgY29uc3RyYWludHMuZmlsdGVyKChjKSA9PiAhbWF0Y2hlcihjKSlcbiAgICAgIClcbiAgICB9XG4gIH1cblxuICBpc0NvbnN0cmFpbnRCdXR0b25EaXNhYmxlZCQoXG4gICAgY29uc3RyYWludFNlY3Rpb246IENvbnN0cmFpbnRDaG9pY2VcbiAgKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgc3dpdGNoIChjb25zdHJhaW50U2VjdGlvbikge1xuICAgICAgY2FzZSAnbGVnYWxDb25zdHJhaW50cyc6XG4gICAgICAgIHJldHVybiB0aGlzLmxlZ2FsQ29uc3RyYWludHMkLnBpcGUoXG4gICAgICAgICAgbWFwKChjb25zdHJhaW50cykgPT4gY29uc3RyYWludHMubGVuZ3RoID4gMClcbiAgICAgICAgKVxuICAgICAgY2FzZSAnc2VjdXJpdHlDb25zdHJhaW50cyc6XG4gICAgICAgIHJldHVybiB0aGlzLnNlY3VyaXR5Q29uc3RyYWludHMkLnBpcGUoXG4gICAgICAgICAgbWFwKChjb25zdHJhaW50cykgPT4gY29uc3RyYWludHMubGVuZ3RoID4gMClcbiAgICAgICAgKVxuICAgICAgY2FzZSAnb3RoZXJDb25zdHJhaW50cyc6XG4gICAgICAgIHJldHVybiB0aGlzLm90aGVyQ29uc3RyYWludHMkLnBpcGUoXG4gICAgICAgICAgbWFwKChjb25zdHJhaW50cykgPT4gY29uc3RyYWludHMubGVuZ3RoID4gMClcbiAgICAgICAgKVxuICAgIH1cbiAgfVxuXG4gIGFkZENvbnN0cmFpbnRTZWN0aW9uVG9EaXNwbGF5KGNvbnN0cmFpbnRTZWN0aW9uOiBDb25zdHJhaW50Q2hvaWNlKSB7XG4gICAgdGhpcy5lZGl0b3JGYWNhZGUudXBkYXRlUmVjb3JkRmllbGQoY29uc3RyYWludFNlY3Rpb24sIFt7IHRleHQ6ICcnIH1dKVxuICAgIHRoaXMuZWRpdG9yRmFjYWRlLnNldEZpZWxkVmlzaWJpbGl0eSh7IG1vZGVsOiBjb25zdHJhaW50U2VjdGlvbiB9LCB0cnVlKVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtMiBtYi0yXCIgZGF0YS1jeT1cImNvbnN0cmFpbnRzLXNob3J0Y3V0LXRvZ2dsZXNcIj5cbiAgPGduLXVpLWNoZWNrLXRvZ2dsZVxuICAgIFtsYWJlbF09XCInZWRpdG9yLnJlY29yZC5mb3JtLmNvbnN0cmFpbnQubm90LmFwcGxpY2FibGUnIHwgdHJhbnNsYXRlXCJcbiAgICBbdmFsdWVdPVwibm9BcHBsaWNhYmxlQ29uc3RyYWludCQgfCBhc3luY1wiXG4gICAgKHRvZ2dsZWQpPVwib25Ub2dnbGVDaGFuZ2UoJ25vQXBwbGljYWJsZUNvbnN0cmFpbnQnLCAkZXZlbnQpXCJcbiAgPlxuICA8L2duLXVpLWNoZWNrLXRvZ2dsZT5cbiAgPGduLXVpLWNoZWNrLXRvZ2dsZVxuICAgIFtsYWJlbF09XCInZWRpdG9yLnJlY29yZC5mb3JtLmNvbnN0cmFpbnQubm90Lmtub3duJyB8IHRyYW5zbGF0ZVwiXG4gICAgW3ZhbHVlXT1cIm5vS25vd25Db25zdHJhaW50JCB8IGFzeW5jXCJcbiAgICAodG9nZ2xlZCk9XCJvblRvZ2dsZUNoYW5nZSgnbm9Lbm93bkNvbnN0cmFpbnQnLCAkZXZlbnQpXCJcbiAgPlxuICA8L2duLXVpLWNoZWNrLXRvZ2dsZT5cbjwvZGl2PlxuXG48ZGl2XG4gICpuZ0lmPVwiKGFueVRvZ2dsZUFjdGl2YXRlZCQgfCBhc3luYykgPT09IGZhbHNlXCJcbiAgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGZsZXgtd3JhcCBnYXAtMlwiXG4gIGRhdGEtY3k9XCJjb25zdHJhaW50cy1zaG9ydGN1dC1idG5zXCJcbj5cbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29uc3RyYWludCBvZiBjb25zdHJhaW50QnV0dG9uQ2hvaWNlc1wiPlxuICAgIDxnbi11aS1idXR0b25cbiAgICAgIHR5cGU9XCJncmF5XCJcbiAgICAgIChidXR0b25DbGljayk9XCJhZGRDb25zdHJhaW50U2VjdGlvblRvRGlzcGxheShjb25zdHJhaW50KVwiXG4gICAgICBbZGlzYWJsZWRdPVwiaXNDb25zdHJhaW50QnV0dG9uRGlzYWJsZWQkKGNvbnN0cmFpbnQpIHwgYXN5bmNcIlxuICAgID5cbiAgICAgIDxuZy1pY29uIG5hbWU9XCJpY29ub2lyUGx1c1wiIGNsYXNzPVwidGV4dC1wcmltYXJ5XCI+PC9uZy1pY29uPlxuICAgICAgJm5ic3A7XG4gICAgICA8c3Bhbj57e1xuICAgICAgICAnZWRpdG9yLnJlY29yZC5mb3JtLmNvbnN0cmFpbnQuJyArIGNvbnN0cmFpbnQgfCB0cmFuc2xhdGVcbiAgICAgIH19PC9zcGFuPlxuICAgIDwvZ24tdWktYnV0dG9uPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1jb25zdHJhaW50cy1zaG9ydGN1dHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2VkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvcmVjb3JkLWZvcm0vZm9ybS1maWVsZC9mb3JtLWZpZWxkLWNvbnN0cmFpbnRzLXNob3J0Y3V0cy9mb3JtLWZpZWxkLWNvbnN0cmFpbnRzLXNob3J0Y3V0cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9yZWNvcmQtZm9ybS9mb3JtLWZpZWxkL2Zvcm0tZmllbGQtY29uc3RyYWludHMtc2hvcnRjdXRzL2Zvcm0tZmllbGQtY29uc3RyYWludHMtc2hvcnRjdXRzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxHQUdWLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0NBQWtDLENBQUE7QUFDL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLCtDQUErQyxDQUFBO0FBQ3JHLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNuRCxPQUFPLEVBQ0wsYUFBYSxFQUNiLG9CQUFvQixFQUNwQixjQUFjLEVBQ2QsR0FBRyxFQUVILE9BQU8sRUFDUCxTQUFTLEdBQ1YsTUFBTSxNQUFNLENBQUE7QUFDYixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0seUNBQXlDLENBQUE7QUFFaEUsT0FBTyxFQUNMLDZCQUE2QixFQUM3Qix3QkFBd0IsRUFDeEIseUJBQXlCLEVBQ3pC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eSxcbiAgQ29tcG9uZW50LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IEVkaXRvckZhY2FkZSB9IGZyb20gJy4uLy4uLy4uLy4uLytzdGF0ZS9lZGl0b3IuZmFjYWRlJ1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50LCBDaGVja1RvZ2dsZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvaW5wdXRzL3NyYydcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHtcbiAgY29tYmluZUxhdGVzdCxcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIGZpcnN0VmFsdWVGcm9tLFxuICBtYXAsXG4gIE9ic2VydmFibGUsXG4gIFN1YmplY3QsXG4gIHRha2VVbnRpbCxcbn0gZnJvbSAncnhqcydcbmltcG9ydCB7IG1hcmtlciB9IGZyb20gJ0BiaWVzYmplcmcvbmd4LXRyYW5zbGF0ZS1leHRyYWN0LW1hcmtlcidcbmltcG9ydCB7IENvbnN0cmFpbnQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQge1xuICBtYXRjaGVzTm9BcHBsaWNhYmxlQ29uc3RyYWludCxcbiAgbWF0Y2hlc05vS25vd25Db25zdHJhaW50LFxuICBOT1RfQVBQTElDQUJMRV9DT05TVFJBSU5ULFxuICBOT1RfS05PV05fQ09OU1RSQUlOVCxcbn0gZnJvbSAnLi9jb25zdHJhaW50cy51dGlscydcbmltcG9ydCB7XG4gIE5nSWNvbkNvbXBvbmVudCxcbiAgcHJvdmlkZUljb25zLFxuICBwcm92aWRlTmdJY29uc0NvbmZpZyxcbn0gZnJvbSAnQG5nLWljb25zL2NvcmUnXG5pbXBvcnQgeyBpY29ub2lyUGx1cyB9IGZyb20gJ0BuZy1pY29ucy9pY29ub2lyJ1xuXG5tYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5jb25zdHJhaW50LmxlZ2FsQ29uc3RyYWludHMnKVxubWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uY29uc3RyYWludC5zZWN1cml0eUNvbnN0cmFpbnRzJylcbm1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmNvbnN0cmFpbnQub3RoZXJDb25zdHJhaW50cycpXG5cbmV4cG9ydCB0eXBlIENvbnN0cmFpbnRDaG9pY2UgPVxuICB8ICdsZWdhbENvbnN0cmFpbnRzJ1xuICB8ICdzZWN1cml0eUNvbnN0cmFpbnRzJ1xuICB8ICdvdGhlckNvbnN0cmFpbnRzJ1xuXG4vKipcbiAqIFRoaXMgY29tcG9uZW50IG9mZmVycyB0d28gdG9nZ2xlcyB0byBlYXNpbHkgZGVmaW5lIGNvbW1vbiBjb25zdHJhaW50cyAobm8gYXBwbGljYWJsZSBjb25zdHJhaW50XG4gKiBhbmQgbm8ga25vd24gY29uc3RyYWludCkgYW5kIHNob3dzIGFuZCBoaWRlcyB0aGUgdmFyaW91cyBjb25zdHJhaW50cyBmaWVsZHMgYWNjb3JkaW5nbHkgdXNpbmdcbiAqIHRoZSBmYWNhZGVcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktZm9ybS1maWVsZC1jb25zdHJhaW50cy1zaG9ydGN1dHMnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIENoZWNrVG9nZ2xlQ29tcG9uZW50LFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBUcmFuc2xhdGVQaXBlLFxuICAgIE5nSWNvbkNvbXBvbmVudCxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgcHJvdmlkZUljb25zKHsgaWNvbm9pclBsdXMgfSksXG4gICAgcHJvdmlkZU5nSWNvbnNDb25maWcoe1xuICAgICAgc2l6ZTogJzEuNXJlbScsXG4gICAgfSksXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLWZpZWxkLWNvbnN0cmFpbnRzLXNob3J0Y3V0cy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Zvcm0tZmllbGQtY29uc3RyYWludHMtc2hvcnRjdXRzLmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1GaWVsZENvbnN0cmFpbnRzU2hvcnRjdXRzQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3lcbntcbiAgbGVnYWxDb25zdHJhaW50cyQgPSB0aGlzLmVkaXRvckZhY2FkZS5yZWNvcmQkLnBpcGUoXG4gICAgbWFwKChyZWNvcmQpID0+IHJlY29yZD8ubGVnYWxDb25zdHJhaW50cyA/PyBbXSlcbiAgKVxuICBzZWN1cml0eUNvbnN0cmFpbnRzJCA9IHRoaXMuZWRpdG9yRmFjYWRlLnJlY29yZCQucGlwZShcbiAgICBtYXAoKHJlY29yZCkgPT4gcmVjb3JkPy5zZWN1cml0eUNvbnN0cmFpbnRzID8/IFtdKVxuICApXG4gIG90aGVyQ29uc3RyYWludHMkID0gdGhpcy5lZGl0b3JGYWNhZGUucmVjb3JkJC5waXBlKFxuICAgIG1hcCgocmVjb3JkKSA9PiByZWNvcmQ/Lm90aGVyQ29uc3RyYWludHMgPz8gW10pXG4gIClcblxuICBub0FwcGxpY2FibGVDb25zdHJhaW50JDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMubGVnYWxDb25zdHJhaW50cyQucGlwZShcbiAgICBtYXAoKGNvbnN0cmFpbnRzKSA9PlxuICAgICAgY29uc3RyYWludHMuc29tZSgoY29uc3RyYWludCkgPT5cbiAgICAgICAgbWF0Y2hlc05vQXBwbGljYWJsZUNvbnN0cmFpbnQoY29uc3RyYWludClcbiAgICAgIClcbiAgICApXG4gIClcbiAgbm9Lbm93bkNvbnN0cmFpbnQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5sZWdhbENvbnN0cmFpbnRzJC5waXBlKFxuICAgIG1hcCgoY29uc3RyYWludHMpID0+XG4gICAgICBjb25zdHJhaW50cy5zb21lKChjb25zdHJhaW50KSA9PiBtYXRjaGVzTm9Lbm93bkNvbnN0cmFpbnQoY29uc3RyYWludCkpXG4gICAgKVxuICApXG4gIGFueVRvZ2dsZUFjdGl2YXRlZCQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLm5vQXBwbGljYWJsZUNvbnN0cmFpbnQkLFxuICAgIHRoaXMubm9Lbm93bkNvbnN0cmFpbnQkLFxuICBdKS5waXBlKFxuICAgIG1hcChcbiAgICAgIChbbm9BcHBsaWNhYmxlQ29uc3RyYWludCwgbm9Lbm93bkNvbnN0cmFpbnRdKSA9PlxuICAgICAgICBub0FwcGxpY2FibGVDb25zdHJhaW50IHx8IG5vS25vd25Db25zdHJhaW50XG4gICAgKVxuICApXG5cbiAgY29uc3RyYWludEJ1dHRvbkNob2ljZXM6IENvbnN0cmFpbnRDaG9pY2VbXSA9IFtcbiAgICAnbGVnYWxDb25zdHJhaW50cycsXG4gICAgJ3NlY3VyaXR5Q29uc3RyYWludHMnLFxuICAgICdvdGhlckNvbnN0cmFpbnRzJyxcbiAgXVxuXG4gIG9uRGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpXG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlZGl0b3JGYWNhZGU6IEVkaXRvckZhY2FkZSkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBoaWRlIGFsbCBjb25zdHJhaW50cyBpZiBhbnkgdG9nZ2xlIGlzIGFjdGl2YXRlZFxuICAgIHRoaXMuYW55VG9nZ2xlQWN0aXZhdGVkJFxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMub25EZXN0cm95JCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpXG4gICAgICAuc3Vic2NyaWJlKChhbnlUb2dnbGVBY3RpdmF0ZWQpID0+IHtcbiAgICAgICAgaWYgKGFueVRvZ2dsZUFjdGl2YXRlZCkge1xuICAgICAgICAgIHRoaXMuaGlkZUFsbENvbnN0cmFpbnRTZWN0aW9ucygpXG4gICAgICAgIH1cbiAgICAgIH0pXG5cbiAgICAvLyBhbHNvIGhpZGUgY29uc3RyYWludHMgd2hpY2ggYXJlIGVtcHR5IGFycmF5c1xuICAgIGNvbnN0IGhpZGVFbXB0eUNvbnN0cmFpbnRzID0gKFxuICAgICAgY29uc3RyYWludHMkOiBPYnNlcnZhYmxlPENvbnN0cmFpbnRbXT4sXG4gICAgICBtb2RlbDogQ29uc3RyYWludENob2ljZVxuICAgICkgPT4ge1xuICAgICAgY29uc3QgaXNDb25zdHJhaW50Tm90RW1wdHkkID0gY29uc3RyYWludHMkLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpLFxuICAgICAgICBtYXAoKGMpID0+IGMubGVuZ3RoID4gMCksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICAgIClcbiAgICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICBpc0NvbnN0cmFpbnROb3RFbXB0eSQsXG4gICAgICAgIHRoaXMuYW55VG9nZ2xlQWN0aXZhdGVkJCxcbiAgICAgIF0pLnN1YnNjcmliZSgoW2lzTm90RW1wdHksIGFueVRvZ2dsZUFjdGl2YXRlZF0pID0+IHtcbiAgICAgICAgY29uc3QgdmlzaWJsZSA9IGlzTm90RW1wdHkgJiYgIWFueVRvZ2dsZUFjdGl2YXRlZFxuICAgICAgICB0aGlzLmVkaXRvckZhY2FkZS5zZXRGaWVsZFZpc2liaWxpdHkoeyBtb2RlbCB9LCB2aXNpYmxlKVxuICAgICAgfSlcbiAgICB9XG4gICAgaGlkZUVtcHR5Q29uc3RyYWludHModGhpcy5sZWdhbENvbnN0cmFpbnRzJCwgJ2xlZ2FsQ29uc3RyYWludHMnKVxuICAgIGhpZGVFbXB0eUNvbnN0cmFpbnRzKHRoaXMuc2VjdXJpdHlDb25zdHJhaW50cyQsICdzZWN1cml0eUNvbnN0cmFpbnRzJylcbiAgICBoaWRlRW1wdHlDb25zdHJhaW50cyh0aGlzLm90aGVyQ29uc3RyYWludHMkLCAnb3RoZXJDb25zdHJhaW50cycpXG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLm9uRGVzdHJveSQubmV4dCgpXG4gIH1cblxuICBoaWRlQWxsQ29uc3RyYWludFNlY3Rpb25zKCkge1xuICAgIHRoaXMuZWRpdG9yRmFjYWRlLnNldEZpZWxkVmlzaWJpbGl0eSh7IG1vZGVsOiAnbGVnYWxDb25zdHJhaW50cycgfSwgZmFsc2UpXG4gICAgdGhpcy5lZGl0b3JGYWNhZGUuc2V0RmllbGRWaXNpYmlsaXR5KFxuICAgICAgeyBtb2RlbDogJ3NlY3VyaXR5Q29uc3RyYWludHMnIH0sXG4gICAgICBmYWxzZVxuICAgIClcbiAgICB0aGlzLmVkaXRvckZhY2FkZS5zZXRGaWVsZFZpc2liaWxpdHkoeyBtb2RlbDogJ290aGVyQ29uc3RyYWludHMnIH0sIGZhbHNlKVxuICB9XG5cbiAgYXN5bmMgb25Ub2dnbGVDaGFuZ2UoXG4gICAgdG9nZ2xlTmFtZTogJ25vQXBwbGljYWJsZUNvbnN0cmFpbnQnIHwgJ25vS25vd25Db25zdHJhaW50JyxcbiAgICB2YWx1ZTogYm9vbGVhblxuICApIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIGNvbnN0IHByZXNldENvbnN0cmFpbnQgPVxuICAgICAgICB0b2dnbGVOYW1lID09PSAnbm9BcHBsaWNhYmxlQ29uc3RyYWludCdcbiAgICAgICAgICA/IE5PVF9BUFBMSUNBQkxFX0NPTlNUUkFJTlRcbiAgICAgICAgICA6IE5PVF9LTk9XTl9DT05TVFJBSU5UXG4gICAgICB0aGlzLmVkaXRvckZhY2FkZS51cGRhdGVSZWNvcmRGaWVsZCgnbGVnYWxDb25zdHJhaW50cycsIFtcbiAgICAgICAgcHJlc2V0Q29uc3RyYWludCxcbiAgICAgIF0pXG4gICAgICB0aGlzLmhpZGVBbGxDb25zdHJhaW50U2VjdGlvbnMoKVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBtYXRjaGVyID1cbiAgICAgICAgdG9nZ2xlTmFtZSA9PT0gJ25vQXBwbGljYWJsZUNvbnN0cmFpbnQnXG4gICAgICAgICAgPyBtYXRjaGVzTm9BcHBsaWNhYmxlQ29uc3RyYWludFxuICAgICAgICAgIDogbWF0Y2hlc05vS25vd25Db25zdHJhaW50XG4gICAgICAvLyBpZiB0aGUgdG9nZ2xlIGlzIHR1cm5lZCBvZmYsIHJlbW92ZSBhbGwgbWF0Y2hpbmcgY29uc3RyYWludHNcbiAgICAgIGNvbnN0IGNvbnN0cmFpbnRzID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5sZWdhbENvbnN0cmFpbnRzJClcbiAgICAgIHRoaXMuZWRpdG9yRmFjYWRlLnVwZGF0ZVJlY29yZEZpZWxkKFxuICAgICAgICAnbGVnYWxDb25zdHJhaW50cycsXG4gICAgICAgIGNvbnN0cmFpbnRzLmZpbHRlcigoYykgPT4gIW1hdGNoZXIoYykpXG4gICAgICApXG4gICAgfVxuICB9XG5cbiAgaXNDb25zdHJhaW50QnV0dG9uRGlzYWJsZWQkKFxuICAgIGNvbnN0cmFpbnRTZWN0aW9uOiBDb25zdHJhaW50Q2hvaWNlXG4gICk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHN3aXRjaCAoY29uc3RyYWludFNlY3Rpb24pIHtcbiAgICAgIGNhc2UgJ2xlZ2FsQ29uc3RyYWludHMnOlxuICAgICAgICByZXR1cm4gdGhpcy5sZWdhbENvbnN0cmFpbnRzJC5waXBlKFxuICAgICAgICAgIG1hcCgoY29uc3RyYWludHMpID0+IGNvbnN0cmFpbnRzLmxlbmd0aCA+IDApXG4gICAgICAgIClcbiAgICAgIGNhc2UgJ3NlY3VyaXR5Q29uc3RyYWludHMnOlxuICAgICAgICByZXR1cm4gdGhpcy5zZWN1cml0eUNvbnN0cmFpbnRzJC5waXBlKFxuICAgICAgICAgIG1hcCgoY29uc3RyYWludHMpID0+IGNvbnN0cmFpbnRzLmxlbmd0aCA+IDApXG4gICAgICAgIClcbiAgICAgIGNhc2UgJ290aGVyQ29uc3RyYWludHMnOlxuICAgICAgICByZXR1cm4gdGhpcy5vdGhlckNvbnN0cmFpbnRzJC5waXBlKFxuICAgICAgICAgIG1hcCgoY29uc3RyYWludHMpID0+IGNvbnN0cmFpbnRzLmxlbmd0aCA+IDApXG4gICAgICAgIClcbiAgICB9XG4gIH1cblxuICBhZGRDb25zdHJhaW50U2VjdGlvblRvRGlzcGxheShjb25zdHJhaW50U2VjdGlvbjogQ29uc3RyYWludENob2ljZSkge1xuICAgIHRoaXMuZWRpdG9yRmFjYWRlLnVwZGF0ZVJlY29yZEZpZWxkKGNvbnN0cmFpbnRTZWN0aW9uLCBbeyB0ZXh0OiAnJyB9XSlcbiAgICB0aGlzLmVkaXRvckZhY2FkZS5zZXRGaWVsZFZpc2liaWxpdHkoeyBtb2RlbDogY29uc3RyYWludFNlY3Rpb24gfSwgdHJ1ZSlcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTIgbWItMlwiIGRhdGEtY3k9XCJjb25zdHJhaW50cy1zaG9ydGN1dC10b2dnbGVzXCI+XG4gIDxnbi11aS1jaGVjay10b2dnbGVcbiAgICBbbGFiZWxdPVwiJ2VkaXRvci5yZWNvcmQuZm9ybS5jb25zdHJhaW50Lm5vdC5hcHBsaWNhYmxlJyB8IHRyYW5zbGF0ZVwiXG4gICAgW3ZhbHVlXT1cIm5vQXBwbGljYWJsZUNvbnN0cmFpbnQkIHwgYXN5bmNcIlxuICAgICh0b2dnbGVkKT1cIm9uVG9nZ2xlQ2hhbmdlKCdub0FwcGxpY2FibGVDb25zdHJhaW50JywgJGV2ZW50KVwiXG4gID5cbiAgPC9nbi11aS1jaGVjay10b2dnbGU+XG4gIDxnbi11aS1jaGVjay10b2dnbGVcbiAgICBbbGFiZWxdPVwiJ2VkaXRvci5yZWNvcmQuZm9ybS5jb25zdHJhaW50Lm5vdC5rbm93bicgfCB0cmFuc2xhdGVcIlxuICAgIFt2YWx1ZV09XCJub0tub3duQ29uc3RyYWludCQgfCBhc3luY1wiXG4gICAgKHRvZ2dsZWQpPVwib25Ub2dnbGVDaGFuZ2UoJ25vS25vd25Db25zdHJhaW50JywgJGV2ZW50KVwiXG4gID5cbiAgPC9nbi11aS1jaGVjay10b2dnbGU+XG48L2Rpdj5cblxuPGRpdlxuICAqbmdJZj1cIihhbnlUb2dnbGVBY3RpdmF0ZWQkIHwgYXN5bmMpID09PSBmYWxzZVwiXG4gIGNsYXNzPVwiZmxleCBmbGV4LXJvdyBmbGV4LXdyYXAgZ2FwLTJcIlxuICBkYXRhLWN5PVwiY29uc3RyYWludHMtc2hvcnRjdXQtYnRuc1wiXG4+XG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbnN0cmFpbnQgb2YgY29uc3RyYWludEJ1dHRvbkNob2ljZXNcIj5cbiAgICA8Z24tdWktYnV0dG9uXG4gICAgICB0eXBlPVwiZ3JheVwiXG4gICAgICAoYnV0dG9uQ2xpY2spPVwiYWRkQ29uc3RyYWludFNlY3Rpb25Ub0Rpc3BsYXkoY29uc3RyYWludClcIlxuICAgICAgW2Rpc2FibGVkXT1cImlzQ29uc3RyYWludEJ1dHRvbkRpc2FibGVkJChjb25zdHJhaW50KSB8IGFzeW5jXCJcbiAgICA+XG4gICAgICA8bmctaWNvbiBuYW1lPVwiaWNvbm9pclBsdXNcIiBjbGFzcz1cInRleHQtcHJpbWFyeVwiPjwvbmctaWNvbj5cbiAgICAgICZuYnNwO1xuICAgICAgPHNwYW4+e3tcbiAgICAgICAgJ2VkaXRvci5yZWNvcmQuZm9ybS5jb25zdHJhaW50LicgKyBjb25zdHJhaW50IHwgdHJhbnNsYXRlXG4gICAgICB9fTwvc3Bhbj5cbiAgICA8L2duLXVpLWJ1dHRvbj5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cbiJdfQ==
@@ -1,8 +1,7 @@
1
1
  import { CommonModule } from '@angular/common';
2
2
  import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output, } from '@angular/core';
3
- import { AutocompleteComponent, DropdownSelectorComponent, UiInputsModule, } from '../../../../../../../../../libs/ui/inputs/src';
4
- import { UiWidgetsModule } from '../../../../../../../../../libs/ui/widgets/src';
5
- import { TranslateModule } from '@ngx-translate/core';
3
+ import { AutocompleteComponent } from '../../../../../../../../../libs/ui/inputs/src';
4
+ import { TranslateDirective, TranslatePipe } from '@ngx-translate/core';
6
5
  import { debounceTime, distinctUntilChanged, firstValueFrom, Subscription, switchMap, } from 'rxjs';
7
6
  import { PlatformServiceInterface } from '../../../../../../../../../libs/common/domain/src/lib/platform.service.interface';
8
7
  import { OrganizationsServiceInterface } from '../../../../../../../../../libs/common/domain/src/lib/organizations.service.interface';
@@ -14,7 +13,6 @@ import * as i0 from "@angular/core";
14
13
  import * as i1 from "../../../../../../../../../libs/common/domain/src/lib/platform.service.interface";
15
14
  import * as i2 from "../../../../../../../../../libs/common/domain/src/lib/organizations.service.interface";
16
15
  import * as i3 from "@angular/common";
17
- import * as i4 from "@ngx-translate/core";
18
16
  export class FormFieldContactsComponent {
19
17
  constructor(platformServiceInterface, organizationsServiceInterface, changeDetectorRef) {
20
18
  this.platformServiceInterface = platformServiceInterface;
@@ -87,17 +85,15 @@ export class FormFieldContactsComponent {
87
85
  this.subscription.unsubscribe();
88
86
  }
89
87
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldContactsComponent, deps: [{ token: i1.PlatformServiceInterface }, { token: i2.OrganizationsServiceInterface }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
90
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FormFieldContactsComponent, isStandalone: true, selector: "gn-ui-form-field-contacts", inputs: { value: "value" }, outputs: { valueChange: "valueChange" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"flex flex-col gap-3\">\n <gn-ui-autocomplete\n [placeholder]=\"'editor.record.form.field.contacts.placeholder' | translate\"\n [action]=\"autoCompleteAction\"\n (itemSelected)=\"addContact($event)\"\n [displayWithFn]=\"displayWithFn\"\n [minCharacterCount]=\"1\"\n [clearOnSelection]=\"true\"\n >\n </gn-ui-autocomplete>\n\n <ng-container *ngIf=\"contacts.length > 0; else noContact\">\n <ng-container *ngIf=\"contacts.length === 1\">\n <ng-container *ngFor=\"let contact of contacts; let index = index\">\n <gn-ui-contact-card\n [contact]=\"contact\"\n ></gn-ui-contact-card> </ng-container\n ></ng-container>\n\n <ng-container *ngIf=\"contacts.length > 1\">\n <gn-ui-sortable-list\n [items]=\"contacts\"\n (itemsOrderChange)=\"handleContactsChanged($event)\"\n [elementTemplate]=\"contactTemplate\"\n ></gn-ui-sortable-list>\n <ng-template #contactTemplate let-contact>\n <gn-ui-contact-card [contact]=\"contact\"></gn-ui-contact-card>\n </ng-template>\n </ng-container>\n </ng-container>\n</div>\n\n<ng-template #noContact>\n <div\n class=\"p-4 text-sm border border-primary bg-primary-lightest rounded-lg\"\n translate\n >\n editor.record.form.field.contacts.noContact\n </div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: UiInputsModule }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: UiWidgetsModule }, { kind: "component", type: AutocompleteComponent, selector: "gn-ui-autocomplete", inputs: ["placeholder", "enterButton", "action", "value", "clearOnSelection", "preventCompleteOnSelection", "autoFocus", "minCharacterCount", "allowSubmit", "forceTrackPosition", "displayWithFn"], outputs: ["itemSelected", "inputSubmitted", "inputCleared", "isSearchActive"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: ContactCardComponent, selector: "gn-ui-contact-card", inputs: ["contact"] }, { kind: "component", type: SortableListComponent, selector: "gn-ui-sortable-list", inputs: ["elementTemplate", "items"], outputs: ["itemsOrderChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
88
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FormFieldContactsComponent, isStandalone: true, selector: "gn-ui-form-field-contacts", inputs: { value: "value" }, outputs: { valueChange: "valueChange" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"flex flex-col gap-3\">\n <gn-ui-autocomplete\n [placeholder]=\"'editor.record.form.field.contacts.placeholder' | translate\"\n [action]=\"autoCompleteAction\"\n (itemSelected)=\"addContact($event)\"\n [displayWithFn]=\"displayWithFn\"\n [minCharacterCount]=\"1\"\n [clearOnSelection]=\"true\"\n >\n </gn-ui-autocomplete>\n\n <ng-container *ngIf=\"contacts.length > 0; else noContact\">\n <ng-container *ngIf=\"contacts.length === 1\">\n <ng-container *ngFor=\"let contact of contacts; let index = index\">\n <gn-ui-contact-card\n [contact]=\"contact\"\n ></gn-ui-contact-card> </ng-container\n ></ng-container>\n\n <ng-container *ngIf=\"contacts.length > 1\">\n <gn-ui-sortable-list\n [items]=\"contacts\"\n (itemsOrderChange)=\"handleContactsChanged($event)\"\n [elementTemplate]=\"contactTemplate\"\n ></gn-ui-sortable-list>\n <ng-template #contactTemplate let-contact>\n <gn-ui-contact-card [contact]=\"contact\"></gn-ui-contact-card>\n </ng-template>\n </ng-container>\n </ng-container>\n</div>\n\n<ng-template #noContact>\n <div\n class=\"p-4 text-sm border border-primary bg-primary-lightest rounded-lg\"\n translate\n >\n editor.record.form.field.contacts.noContact\n </div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: AutocompleteComponent, selector: "gn-ui-autocomplete", inputs: ["placeholder", "enterButton", "action", "value", "clearOnSelection", "preventCompleteOnSelection", "autoFocus", "minCharacterCount", "allowSubmit", "forceTrackPosition", "displayWithFn"], outputs: ["itemSelected", "inputSubmitted", "inputCleared", "isSearchActive"] }, { kind: "directive", type: TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: ContactCardComponent, selector: "gn-ui-contact-card", inputs: ["contact"] }, { kind: "component", type: SortableListComponent, selector: "gn-ui-sortable-list", inputs: ["elementTemplate", "items"], outputs: ["itemsOrderChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
91
89
  }
92
90
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldContactsComponent, decorators: [{
93
91
  type: Component,
94
92
  args: [{ selector: 'gn-ui-form-field-contacts', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
95
- DropdownSelectorComponent,
96
- UiInputsModule,
97
93
  CommonModule,
98
- UiWidgetsModule,
99
94
  AutocompleteComponent,
100
- TranslateModule,
95
+ TranslateDirective,
96
+ TranslatePipe,
101
97
  ContactCardComponent,
102
98
  SortableListComponent,
103
99
  ], template: "<div class=\"flex flex-col gap-3\">\n <gn-ui-autocomplete\n [placeholder]=\"'editor.record.form.field.contacts.placeholder' | translate\"\n [action]=\"autoCompleteAction\"\n (itemSelected)=\"addContact($event)\"\n [displayWithFn]=\"displayWithFn\"\n [minCharacterCount]=\"1\"\n [clearOnSelection]=\"true\"\n >\n </gn-ui-autocomplete>\n\n <ng-container *ngIf=\"contacts.length > 0; else noContact\">\n <ng-container *ngIf=\"contacts.length === 1\">\n <ng-container *ngFor=\"let contact of contacts; let index = index\">\n <gn-ui-contact-card\n [contact]=\"contact\"\n ></gn-ui-contact-card> </ng-container\n ></ng-container>\n\n <ng-container *ngIf=\"contacts.length > 1\">\n <gn-ui-sortable-list\n [items]=\"contacts\"\n (itemsOrderChange)=\"handleContactsChanged($event)\"\n [elementTemplate]=\"contactTemplate\"\n ></gn-ui-sortable-list>\n <ng-template #contactTemplate let-contact>\n <gn-ui-contact-card [contact]=\"contact\"></gn-ui-contact-card>\n </ng-template>\n </ng-container>\n </ng-container>\n</div>\n\n<ng-template #noContact>\n <div\n class=\"p-4 text-sm border border-primary bg-primary-lightest rounded-lg\"\n translate\n >\n editor.record.form.field.contacts.noContact\n </div>\n</ng-template>\n" }]
@@ -106,4 +102,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
106
102
  }], valueChange: [{
107
103
  type: Output
108
104
  }] } });
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1jb250YWN0cy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9yZWNvcmQtZm9ybS9mb3JtLWZpZWxkL2Zvcm0tZmllbGQtY29udGFjdHMvZm9ybS1maWVsZC1jb250YWN0cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9yZWNvcmQtZm9ybS9mb3JtLWZpZWxkL2Zvcm0tZmllbGQtY29udGFjdHMvZm9ybS1maWVsZC1jb250YWN0cy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFDTCxxQkFBcUIsRUFDckIseUJBQXlCLEVBQ3pCLGNBQWMsR0FDZixNQUFNLCtDQUErQyxDQUFBO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQTtBQUtoRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDckQsT0FBTyxFQUNMLFlBQVksRUFDWixvQkFBb0IsRUFDcEIsY0FBYyxFQUVkLFlBQVksRUFDWixTQUFTLEdBQ1YsTUFBTSxNQUFNLENBQUE7QUFFYixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrRkFBa0YsQ0FBQTtBQUMzSCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSx1RkFBdUYsQ0FBQTtBQUNySSxPQUFPLEVBQUUsb0JBQW9CLEVB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QUFXLEVBQUUsQ0FBQTtJQUNqQyxDQUFDOytHQWhIVSwwQkFBMEI7bUdBQTFCLDBCQUEwQiwrS0N4RHZDLHl6Q0F3Q0EseURET0ksY0FBYyw4QkFDZCxZQUFZLCtQQUNaLGVBQWUsK0JBQ2YscUJBQXFCLGtWQUNyQixlQUFlLG1PQUNmLG9CQUFvQixvRkFDcEIscUJBQXFCOzs0RkFHWiwwQkFBMEI7a0JBakJ0QyxTQUFTOytCQUNFLDJCQUEyQixtQkFHcEIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1AseUJBQXlCO3dCQUN6QixjQUFjO3dCQUNkLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixxQkFBcUI7d0JBQ3JCLGVBQWU7d0JBQ2Ysb0JBQW9CO3dCQUNwQixxQkFBcUI7cUJBQ3RCO3lLQUdRLEtBQUs7c0JBQWIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQge1xuICBBdXRvY29tcGxldGVDb21wb25lbnQsXG4gIERyb3Bkb3duU2VsZWN0b3JDb21wb25lbnQsXG4gIFVpSW5wdXRzTW9kdWxlLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2lucHV0cy9zcmMnXG5pbXBvcnQgeyBVaVdpZGdldHNNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL3dpZGdldHMvc3JjJ1xuaW1wb3J0IHtcbiAgSW5kaXZpZHVhbCxcbiAgT3JnYW5pemF0aW9uLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHtcbiAgZGVib3VuY2VUaW1lLFxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgZmlyc3RWYWx1ZUZyb20sXG4gIE9ic2VydmFibGUsXG4gIFN1YnNjcmlwdGlvbixcbiAgc3dpdGNoTWFwLFxufSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgVXNlck1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvdXNlcidcbmltcG9ydCB7IFBsYXRmb3JtU2VydmljZUludGVyZmFjZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL3BsYXRmb3JtLnNlcnZpY2UuaW50ZXJmYWNlJ1xuaW1wb3J0IHsgT3JnYW5pemF0aW9uc1NlcnZpY2VJbnRlcmZhY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9vcmdhbml6YXRpb25zLnNlcnZpY2UuaW50ZXJmYWNlJ1xuaW1wb3J0IHsgQ29udGFjdENhcmRDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb250YWN0LWNhcmQvY29udGFjdC1jYXJkLmNvbXBvbmVudCdcbmltcG9ydCB7IGNyZWF0ZUZ1enp5RmlsdGVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL3NoYXJlZC9zcmMnXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcbmltcG9ydCB7IFNvcnRhYmxlTGlzdENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvbGF5b3V0L3NyYydcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktZm9ybS1maWVsZC1jb250YWN0cycsXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLWZpZWxkLWNvbnRhY3RzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS1maWVsZC1jb250YWN0cy5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgRHJvcGRvd25TZWxlY3RvckNvbXBvbmVudCxcbiAgICBVaUlucHV0c01vZHVsZSxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgVWlXaWRnZXRzTW9kdWxlLFxuICAgIEF1dG9jb21wbGV0ZUNvbXBvbmVudCxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgQ29udGFjdENhcmRDb21wb25lbnQsXG4gICAgU29ydGFibGVMaXN0Q29tcG9uZW50LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtRmllbGRDb250YWN0c0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgdmFsdWU6IEluZGl2aWR1YWxbXVxuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJbmRpdmlkdWFsW10+ID0gbmV3IEV2ZW50RW1pdHRlcigpXG5cbiAgY29udGFjdHM6IEluZGl2aWR1YWxbXSA9IFtdXG5cbiAgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKClcblxuICBhbGxVc2VycyQ6IE9ic2VydmFibGU8VXNlck1vZGVsW10+XG5cbiAgYWxsT3JnYW5pemF0aW9uczogTWFwPHN0cmluZywgT3JnYW5pemF0aW9uPiA9IG5ldyBNYXAoKVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcGxhdGZvcm1TZXJ2aWNlSW50ZXJmYWNlOiBQbGF0Zm9ybVNlcnZpY2VJbnRlcmZhY2UsXG4gICAgcHJpdmF0ZSBvcmdhbml6YXRpb25zU2VydmljZUludGVyZmFjZTogT3JnYW5pemF0aW9uc1NlcnZpY2VJbnRlcmZhY2UsXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7XG4gICAgdGhpcy5hbGxVc2VycyQgPSB0aGlzLnBsYXRmb3JtU2VydmljZUludGVyZmFjZS5nZXRVc2VycygpXG4gIH1cblxuICBhc3luYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgY29udGFjdHNDaGFuZ2VzID0gY2hhbmdlc1sndmFsdWUnXVxuXG4gICAgaWYgKGNvbnRhY3RzQ2hhbmdlcy5maXJzdENoYW5nZSkge1xuICAgICAgdGhpcy5hbGxPcmdhbml6YXRpb25zID0gbmV3IE1hcDxzdHJpbmcsIE9yZ2FuaXphdGlvbj4oXG4gICAgICAgIChcbiAgICAgICAgICBhd2FpdCBmaXJzdFZhbHVlRnJvbShcbiAgICAgICAgICAgIHRoaXMub3JnYW5pemF0aW9uc1NlcnZpY2VJbnRlcmZhY2Uub3JnYW5pc2F0aW9ucyRcbiAgICAgICAgICApXG4gICAgICAgICkubWFwKChvcmdhbml6YXRpb24pID0+IFtvcmdhbml6YXRpb24ubmFtZSwgb3JnYW5pemF0aW9uXSlcbiAgICAgIClcbiAgICB9XG5cbiAgICBpZiAoY29udGFjdHNDaGFuZ2VzLmN1cnJlbnRWYWx1ZSAhPT0gY29udGFjdHNDaGFuZ2VzLnByZXZpb3VzVmFsdWUpIHtcbiAgICAgIHRoaXMudXBkYXRlQ29udGFjdHMoKVxuXG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpXG4gICAgfVxuICB9XG5cbiAgdXBkYXRlQ29udGFjdHMoKSB7XG4gICAgdGhpcy5jb250YWN0cyA9IHRoaXMudmFsdWUucmVkdWNlKChhY2MsIGNvbnRhY3QpID0+IHtcbiAgICAgIGNvbnN0IGNvbXBsZXRlT3JnYW5pemF0aW9uID0gdGhpcy5hbGxPcmdhbml6YXRpb25zLmdldChcbiAgICAgICAgY29udGFjdC5vcmdhbml6YXRpb24ubmFtZVxuICAgICAgKVxuXG4gICAgICBjb25zdCB1cGRhdGVkQ29udGFjdCA9IHtcbiAgICAgICAgLi4uY29udGFjdCxcbiAgICAgICAgb3JnYW5pemF0aW9uOlxuICAgICAgICAgIGNvbXBsZXRlT3JnYW5pemF0aW9uID8/XG4gICAgICAgICAgKHsgbmFtZTogY29udGFjdC5vcmdhbml6YXRpb24ubmFtZSB9IGFzIE9yZ2FuaXphdGlvbiksXG4gICAgICB9XG5cbiAgICAgIGFjYy5wdXNoKHVwZGF0ZWRDb250YWN0KVxuXG4gICAgICByZXR1cm4gYWNjXG4gICAgfSwgW10gYXMgSW5kaXZpZHVhbFtdKVxuICB9XG5cbiAgaGFuZGxlQ29udGFjdHNDaGFuZ2VkKGl0ZW1zOiB1bmtub3duW10pIHtcbiAgICBjb25zdCBjb250YWN0cyA9IGl0ZW1zIGFzIEluZGl2aWR1YWxbXVxuXG4gICAgdGhpcy5jb250YWN0cyA9IGNvbnRhY3RzXG5cbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoY29udGFjdHMpXG4gIH1cblxuICAvKipcbiAgICogZ24tdWktYXV0b2NvbXBsZXRlXG4gICAqL1xuICBkaXNwbGF5V2l0aEZuOiAodXNlcjogVXNlck1vZGVsKSA9PiBzdHJpbmcgPSAodXNlcikgPT5cbiAgICBgJHt1c2VyLm5hbWV9ICR7dXNlci5zdXJuYW1lfSAke1xuICAgICAgdXNlci5vcmdhbmlzYXRpb24gPyBgKCR7dXNlci5vcmdhbmlzYXRpb259KWAgOiAnJ1xuICAgIH1gXG5cbiAgLyoqXG4gICAqIGduLXVpLWF1dG9jb21wbGV0ZVxuICAgKi9cbiAgYXV0b0NvbXBsZXRlQWN0aW9uID0gKHF1ZXJ5OiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBmdXp6eUZpbHRlciA9IGNyZWF0ZUZ1enp5RmlsdGVyKHF1ZXJ5KVxuICAgIHJldHVybiB0aGlzLmFsbFVzZXJzJC5waXBlKFxuICAgICAgc3dpdGNoTWFwKCh1c2VycykgPT4gW1xuICAgICAgICB1c2Vycy5maWx0ZXIoKHVzZXIpID0+IGZ1enp5RmlsdGVyKHVzZXIudXNlcm5hbWUpKSxcbiAgICAgIF0pLFxuICAgICAgbWFwKChyZXN1bHRzKSA9PiByZXN1bHRzLnNsaWNlKDAsIDEwKSksXG4gICAgICBkZWJvdW5jZVRpbWUoMzAwKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICApXG4gIH1cblxuICAvKipcbiAgICogZ24tdWktYXV0b2NvbXBsZXRlXG4gICAqL1xuICBhZGRDb250YWN0KGNvbnRhY3Q6IFVzZXJNb2RlbCkge1xuICAgIGNvbnN0IG5ld0NvbnRhY3QgPSB7XG4gICAgICBmaXJzdE5hbWU6IGNvbnRhY3QubmFtZSA/PyAnJyxcbiAgICAgIGxhc3ROYW1lOiBjb250YWN0LnN1cm5hbWUgPz8gJycsXG4gICAgICBvcmdhbml6YXRpb246XG4gICAgICAgIHRoaXMuYWxsT3JnYW5pemF0aW9ucy5nZXQoY29udGFjdC5vcmdhbmlzYXRpb24pID8/XG4gICAgICAgICh7IG5hbWU6IGNvbnRhY3Qub3JnYW5pc2F0aW9uIH0gYXMgT3JnYW5pemF0aW9uKSxcbiAgICAgIGVtYWlsOiBjb250YWN0LmVtYWlsID8/ICcnLFxuICAgICAgcm9sZTogJ3BvaW50X29mX2NvbnRhY3QnLFxuICAgICAgYWRkcmVzczogJycsXG4gICAgICBwaG9uZTogJycsXG4gICAgICBwb3NpdGlvbjogJycsXG4gICAgfSBhcyBJbmRpdmlkdWFsXG5cbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoWy4uLnRoaXMudmFsdWUsIG5ld0NvbnRhY3RdKVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtM1wiPlxuICA8Z24tdWktYXV0b2NvbXBsZXRlXG4gICAgW3BsYWNlaG9sZGVyXT1cIidlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQuY29udGFjdHMucGxhY2Vob2xkZXInIHwgdHJhbnNsYXRlXCJcbiAgICBbYWN0aW9uXT1cImF1dG9Db21wbGV0ZUFjdGlvblwiXG4gICAgKGl0ZW1TZWxlY3RlZCk9XCJhZGRDb250YWN0KCRldmVudClcIlxuICAgIFtkaXNwbGF5V2l0aEZuXT1cImRpc3BsYXlXaXRoRm5cIlxuICAgIFttaW5DaGFyYWN0ZXJDb3VudF09XCIxXCJcbiAgICBbY2xlYXJPblNlbGVjdGlvbl09XCJ0cnVlXCJcbiAgPlxuICA8L2duLXVpLWF1dG9jb21wbGV0ZT5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29udGFjdHMubGVuZ3RoID4gMDsgZWxzZSBub0NvbnRhY3RcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29udGFjdHMubGVuZ3RoID09PSAxXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb250YWN0IG9mIGNvbnRhY3RzOyBsZXQgaW5kZXggPSBpbmRleFwiPlxuICAgICAgICA8Z24tdWktY29udGFjdC1jYXJkXG4gICAgICAgICAgW2NvbnRhY3RdPVwiY29udGFjdFwiXG4gICAgICAgID48L2duLXVpLWNvbnRhY3QtY2FyZD4gPC9uZy1jb250YWluZXJcbiAgICA+PC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29udGFjdHMubGVuZ3RoID4gMVwiPlxuICAgICAgPGduLXVpLXNvcnRhYmxlLWxpc3RcbiAgICAgICAgW2l0ZW1zXT1cImNvbnRhY3RzXCJcbiAgICAgICAgKGl0ZW1zT3JkZXJDaGFuZ2UpPVwiaGFuZGxlQ29udGFjdHNDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICBbZWxlbWVudFRlbXBsYXRlXT1cImNvbnRhY3RUZW1wbGF0ZVwiXG4gICAgICA+PC9nbi11aS1zb3J0YWJsZS1saXN0PlxuICAgICAgPG5nLXRlbXBsYXRlICNjb250YWN0VGVtcGxhdGUgbGV0LWNvbnRhY3Q+XG4gICAgICAgIDxnbi11aS1jb250YWN0LWNhcmQgW2NvbnRhY3RdPVwiY29udGFjdFwiPjwvZ24tdWktY29udGFjdC1jYXJkPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNub0NvbnRhY3Q+XG4gIDxkaXZcbiAgICBjbGFzcz1cInAtNCB0ZXh0LXNtIGJvcmRlciBib3JkZXItcHJpbWFyeSBiZy1wcmltYXJ5LWxpZ2h0ZXN0IHJvdW5kZWQtbGdcIlxuICAgIHRyYW5zbGF0ZVxuICA+XG4gICAgZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLmNvbnRhY3RzLm5vQ29udGFjdFxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1jb250YWN0cy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9yZWNvcmQtZm9ybS9mb3JtLWZpZWxkL2Zvcm0tZmllbGQtY29udGFjdHMvZm9ybS1maWVsZC1jb250YWN0cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9yZWNvcmQtZm9ybS9mb3JtLWZpZWxkL2Zvcm0tZmllbGQtY29udGFjdHMvZm9ybS1maWVsZC1jb250YWN0cy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLCtDQUErQyxDQUFBO0FBS3JGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUN2RSxPQUFPLEVBQ0wsWUFBWSxFQUNaLG9CQUFvQixFQUNwQixjQUFjLEVBRWQsWUFBWSxFQUNaLFNBQVMsR0FDVixNQUFNLE1BQU0sQ0FBQTtBQUViLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGtGQUFrRixDQUFBO0FBQzNILE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHVGQUF1RixDQUFBO0FBQ3JJLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFBO0FBQ25GLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlE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akR2Qyx5ekNBd0NBLHlERENJLFlBQVksZ1FBQ1oscUJBQXFCLG1WQUNyQixrQkFBa0IsNkdBQ2xCLGFBQWEsa0RBQ2Isb0JBQW9CLG9GQUNwQixxQkFBcUI7OzRGQUdaLDBCQUEwQjtrQkFmdEMsU0FBUzsrQkFDRSwyQkFBMkIsbUJBR3BCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1oscUJBQXFCO3dCQUNyQixrQkFBa0I7d0JBQ2xCLGFBQWE7d0JBQ2Isb0JBQW9CO3dCQUNwQixxQkFBcUI7cUJBQ3RCO3lLQUdRLEtBQUs7c0JBQWIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBBdXRvY29tcGxldGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2lucHV0cy9zcmMnXG5pbXBvcnQge1xuICBJbmRpdmlkdWFsLFxuICBPcmdhbml6YXRpb24sXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcbmltcG9ydCB7IFRyYW5zbGF0ZURpcmVjdGl2ZSwgVHJhbnNsYXRlUGlwZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQge1xuICBkZWJvdW5jZVRpbWUsXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBmaXJzdFZhbHVlRnJvbSxcbiAgT2JzZXJ2YWJsZSxcbiAgU3Vic2NyaXB0aW9uLFxuICBzd2l0Y2hNYXAsXG59IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBVc2VyTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC91c2VyJ1xuaW1wb3J0IHsgUGxhdGZvcm1TZXJ2aWNlSW50ZXJmYWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvcGxhdGZvcm0uc2VydmljZS5pbnRlcmZhY2UnXG5pbXBvcnQgeyBPcmdhbml6YXRpb25zU2VydmljZUludGVyZmFjZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL29yZ2FuaXphdGlvbnMuc2VydmljZS5pbnRlcmZhY2UnXG5pbXBvcnQgeyBDb250YWN0Q2FyZENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbnRhY3QtY2FyZC9jb250YWN0LWNhcmQuY29tcG9uZW50J1xuaW1wb3J0IHsgY3JlYXRlRnV6enlGaWx0ZXIgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYydcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IHsgU29ydGFibGVMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9sYXlvdXQvc3JjJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1mb3JtLWZpZWxkLWNvbnRhY3RzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tZmllbGQtY29udGFjdHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mb3JtLWZpZWxkLWNvbnRhY3RzLmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQXV0b2NvbXBsZXRlQ29tcG9uZW50LFxuICAgIFRyYW5zbGF0ZURpcmVjdGl2ZSxcbiAgICBUcmFuc2xhdGVQaXBlLFxuICAgIENvbnRhY3RDYXJkQ29tcG9uZW50LFxuICAgIFNvcnRhYmxlTGlzdENvbXBvbmVudCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUZpZWxkQ29udGFjdHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIHZhbHVlOiBJbmRpdmlkdWFsW11cbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SW5kaXZpZHVhbFtdPiA9IG5ldyBFdmVudEVtaXR0ZXIoKVxuXG4gIGNvbnRhY3RzOiBJbmRpdmlkdWFsW10gPSBbXVxuXG4gIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpXG5cbiAgYWxsVXNlcnMkOiBPYnNlcnZhYmxlPFVzZXJNb2RlbFtdPlxuXG4gIGFsbE9yZ2FuaXphdGlvbnM6IE1hcDxzdHJpbmcsIE9yZ2FuaXphdGlvbj4gPSBuZXcgTWFwKClcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHBsYXRmb3JtU2VydmljZUludGVyZmFjZTogUGxhdGZvcm1TZXJ2aWNlSW50ZXJmYWNlLFxuICAgIHByaXZhdGUgb3JnYW5pemF0aW9uc1NlcnZpY2VJbnRlcmZhY2U6IE9yZ2FuaXphdGlvbnNTZXJ2aWNlSW50ZXJmYWNlLFxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmXG4gICkge1xuICAgIHRoaXMuYWxsVXNlcnMkID0gdGhpcy5wbGF0Zm9ybVNlcnZpY2VJbnRlcmZhY2UuZ2V0VXNlcnMoKVxuICB9XG5cbiAgYXN5bmMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGNvbnRhY3RzQ2hhbmdlcyA9IGNoYW5nZXNbJ3ZhbHVlJ11cblxuICAgIGlmIChjb250YWN0c0NoYW5nZXMuZmlyc3RDaGFuZ2UpIHtcbiAgICAgIHRoaXMuYWxsT3JnYW5pemF0aW9ucyA9IG5ldyBNYXA8c3RyaW5nLCBPcmdhbml6YXRpb24+KFxuICAgICAgICAoXG4gICAgICAgICAgYXdhaXQgZmlyc3RWYWx1ZUZyb20oXG4gICAgICAgICAgICB0aGlzLm9yZ2FuaXphdGlvbnNTZXJ2aWNlSW50ZXJmYWNlLm9yZ2FuaXNhdGlvbnMkXG4gICAgICAgICAgKVxuICAgICAgICApLm1hcCgob3JnYW5pemF0aW9uKSA9PiBbb3JnYW5pemF0aW9uLm5hbWUsIG9yZ2FuaXphdGlvbl0pXG4gICAgICApXG4gICAgfVxuXG4gICAgaWYgKGNvbnRhY3RzQ2hhbmdlcy5jdXJyZW50VmFsdWUgIT09IGNvbnRhY3RzQ2hhbmdlcy5wcmV2aW91c1ZhbHVlKSB7XG4gICAgICB0aGlzLnVwZGF0ZUNvbnRhY3RzKClcblxuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKVxuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZUNvbnRhY3RzKCkge1xuICAgIHRoaXMuY29udGFjdHMgPSB0aGlzLnZhbHVlLnJlZHVjZSgoYWNjLCBjb250YWN0KSA9PiB7XG4gICAgICBjb25zdCBjb21wbGV0ZU9yZ2FuaXphdGlvbiA9IHRoaXMuYWxsT3JnYW5pemF0aW9ucy5nZXQoXG4gICAgICAgIGNvbnRhY3Qub3JnYW5pemF0aW9uLm5hbWVcbiAgICAgIClcblxuICAgICAgY29uc3QgdXBkYXRlZENvbnRhY3QgPSB7XG4gICAgICAgIC4uLmNvbnRhY3QsXG4gICAgICAgIG9yZ2FuaXphdGlvbjpcbiAgICAgICAgICBjb21wbGV0ZU9yZ2FuaXphdGlvbiA/P1xuICAgICAgICAgICh7IG5hbWU6IGNvbnRhY3Qub3JnYW5pemF0aW9uLm5hbWUgfSBhcyBPcmdhbml6YXRpb24pLFxuICAgICAgfVxuXG4gICAgICBhY2MucHVzaCh1cGRhdGVkQ29udGFjdClcblxuICAgICAgcmV0dXJuIGFjY1xuICAgIH0sIFtdIGFzIEluZGl2aWR1YWxbXSlcbiAgfVxuXG4gIGhhbmRsZUNvbnRhY3RzQ2hhbmdlZChpdGVtczogdW5rbm93bltdKSB7XG4gICAgY29uc3QgY29udGFjdHMgPSBpdGVtcyBhcyBJbmRpdmlkdWFsW11cblxuICAgIHRoaXMuY29udGFjdHMgPSBjb250YWN0c1xuXG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KGNvbnRhY3RzKVxuICB9XG5cbiAgLyoqXG4gICAqIGduLXVpLWF1dG9jb21wbGV0ZVxuICAgKi9cbiAgZGlzcGxheVdpdGhGbjogKHVzZXI6IFVzZXJNb2RlbCkgPT4gc3RyaW5nID0gKHVzZXIpID0+XG4gICAgYCR7dXNlci5uYW1lfSAke3VzZXIuc3VybmFtZX0gJHtcbiAgICAgIHVzZXIub3JnYW5pc2F0aW9uID8gYCgke3VzZXIub3JnYW5pc2F0aW9ufSlgIDogJydcbiAgICB9YFxuXG4gIC8qKlxuICAgKiBnbi11aS1hdXRvY29tcGxldGVcbiAgICovXG4gIGF1dG9Db21wbGV0ZUFjdGlvbiA9IChxdWVyeTogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgZnV6enlGaWx0ZXIgPSBjcmVhdGVGdXp6eUZpbHRlcihxdWVyeSlcbiAgICByZXR1cm4gdGhpcy5hbGxVc2VycyQucGlwZShcbiAgICAgIHN3aXRjaE1hcCgodXNlcnMpID0+IFtcbiAgICAgICAgdXNlcnMuZmlsdGVyKCh1c2VyKSA9PiBmdXp6eUZpbHRlcih1c2VyLnVzZXJuYW1lKSksXG4gICAgICBdKSxcbiAgICAgIG1hcCgocmVzdWx0cykgPT4gcmVzdWx0cy5zbGljZSgwLCAxMCkpLFxuICAgICAgZGVib3VuY2VUaW1lKDMwMCksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgKVxuICB9XG5cbiAgLyoqXG4gICAqIGduLXVpLWF1dG9jb21wbGV0ZVxuICAgKi9cbiAgYWRkQ29udGFjdChjb250YWN0OiBVc2VyTW9kZWwpIHtcbiAgICBjb25zdCBuZXdDb250YWN0ID0ge1xuICAgICAgZmlyc3ROYW1lOiBjb250YWN0Lm5hbWUgPz8gJycsXG4gICAgICBsYXN0TmFtZTogY29udGFjdC5zdXJuYW1lID8/ICcnLFxuICAgICAgb3JnYW5pemF0aW9uOlxuICAgICAgICB0aGlzLmFsbE9yZ2FuaXphdGlvbnMuZ2V0KGNvbnRhY3Qub3JnYW5pc2F0aW9uKSA/P1xuICAgICAgICAoeyBuYW1lOiBjb250YWN0Lm9yZ2FuaXNhdGlvbiB9IGFzIE9yZ2FuaXphdGlvbiksXG4gICAgICBlbWFpbDogY29udGFjdC5lbWFpbCA/PyAnJyxcbiAgICAgIHJvbGU6ICdwb2ludF9vZl9jb250YWN0JyxcbiAgICAgIGFkZHJlc3M6ICcnLFxuICAgICAgcGhvbmU6ICcnLFxuICAgICAgcG9zaXRpb246ICcnLFxuICAgIH0gYXMgSW5kaXZpZHVhbFxuXG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KFsuLi50aGlzLnZhbHVlLCBuZXdDb250YWN0XSlcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKClcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTNcIj5cbiAgPGduLXVpLWF1dG9jb21wbGV0ZVxuICAgIFtwbGFjZWhvbGRlcl09XCInZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLmNvbnRhY3RzLnBsYWNlaG9sZGVyJyB8IHRyYW5zbGF0ZVwiXG4gICAgW2FjdGlvbl09XCJhdXRvQ29tcGxldGVBY3Rpb25cIlxuICAgIChpdGVtU2VsZWN0ZWQpPVwiYWRkQ29udGFjdCgkZXZlbnQpXCJcbiAgICBbZGlzcGxheVdpdGhGbl09XCJkaXNwbGF5V2l0aEZuXCJcbiAgICBbbWluQ2hhcmFjdGVyQ291bnRdPVwiMVwiXG4gICAgW2NsZWFyT25TZWxlY3Rpb25dPVwidHJ1ZVwiXG4gID5cbiAgPC9nbi11aS1hdXRvY29tcGxldGU+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRhY3RzLmxlbmd0aCA+IDA7IGVsc2Ugbm9Db250YWN0XCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRhY3RzLmxlbmd0aCA9PT0gMVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29udGFjdCBvZiBjb250YWN0czsgbGV0IGluZGV4ID0gaW5kZXhcIj5cbiAgICAgICAgPGduLXVpLWNvbnRhY3QtY2FyZFxuICAgICAgICAgIFtjb250YWN0XT1cImNvbnRhY3RcIlxuICAgICAgICA+PC9nbi11aS1jb250YWN0LWNhcmQ+IDwvbmctY29udGFpbmVyXG4gICAgPjwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRhY3RzLmxlbmd0aCA+IDFcIj5cbiAgICAgIDxnbi11aS1zb3J0YWJsZS1saXN0XG4gICAgICAgIFtpdGVtc109XCJjb250YWN0c1wiXG4gICAgICAgIChpdGVtc09yZGVyQ2hhbmdlKT1cImhhbmRsZUNvbnRhY3RzQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgW2VsZW1lbnRUZW1wbGF0ZV09XCJjb250YWN0VGVtcGxhdGVcIlxuICAgICAgPjwvZ24tdWktc29ydGFibGUtbGlzdD5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjY29udGFjdFRlbXBsYXRlIGxldC1jb250YWN0PlxuICAgICAgICA8Z24tdWktY29udGFjdC1jYXJkIFtjb250YWN0XT1cImNvbnRhY3RcIj48L2duLXVpLWNvbnRhY3QtY2FyZD5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjbm9Db250YWN0PlxuICA8ZGl2XG4gICAgY2xhc3M9XCJwLTQgdGV4dC1zbSBib3JkZXIgYm9yZGVyLXByaW1hcnkgYmctcHJpbWFyeS1saWdodGVzdCByb3VuZGVkLWxnXCJcbiAgICB0cmFuc2xhdGVcbiAgPlxuICAgIGVkaXRvci5yZWNvcmQuZm9ybS5maWVsZC5jb250YWN0cy5ub0NvbnRhY3RcbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19