geonetwork-ui 2.6.0-dev.7be6567ef → 2.6.0-dev.9d3ad45e2

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 (437) hide show
  1. package/esm2022/libs/api/metadata-converter/src/index.mjs +2 -1
  2. package/esm2022/libs/api/metadata-converter/src/lib/base.converter.mjs +1 -1
  3. package/esm2022/libs/api/metadata-converter/src/lib/common/distribution.mapper.mjs +3 -1
  4. package/esm2022/libs/api/metadata-converter/src/lib/common/resource-types.mjs +17 -15
  5. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +9 -3
  6. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +4 -4
  7. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +4 -4
  8. package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/constant.mjs +2 -1
  9. package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.mjs +2 -10
  10. package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +7 -4
  11. package/esm2022/libs/api/repository/src/lib/gn4/gn4.provider.mjs +7 -1
  12. package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
  13. package/esm2022/libs/feature/dataviz/src/lib/chart-view/chart-view.component.mjs +49 -9
  14. package/esm2022/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.mjs +2 -2
  15. package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +32 -2
  16. package/esm2022/libs/feature/dataviz/src/lib/table-view/table-view.component.mjs +29 -6
  17. package/esm2022/libs/feature/editor/src/index.mjs +2 -1
  18. package/esm2022/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.mjs +18 -0
  19. package/esm2022/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.mjs +2 -3
  20. package/esm2022/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.mjs +1 -1
  21. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.mjs +5 -5
  22. package/esm2022/libs/feature/record/src/index.mjs +2 -4
  23. package/esm2022/libs/feature/record/src/lib/data-view/data-view.component.mjs +3 -3
  24. package/esm2022/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.mjs +5 -9
  25. package/esm2022/libs/feature/record/src/lib/data-view-share/data-view-share.component.mjs +3 -3
  26. package/esm2022/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.mjs +7 -11
  27. package/esm2022/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.mjs +6 -3
  28. package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +38 -7
  29. package/esm2022/libs/feature/record/src/lib/record-meta/record-meta.component.mjs +1 -1
  30. package/esm2022/libs/feature/record/src/lib/state/mdview.effects.mjs +8 -5
  31. package/esm2022/libs/feature/record/src/lib/state/mdview.facade.mjs +11 -15
  32. package/esm2022/libs/feature/router/src/lib/default/constants.mjs +3 -1
  33. package/esm2022/libs/feature/router/src/lib/default/router.config.mjs +1 -1
  34. package/esm2022/libs/feature/router/src/lib/default/router.service.mjs +10 -2
  35. package/esm2022/libs/feature/router/src/lib/default/state/router.facade.mjs +9 -3
  36. package/esm2022/libs/feature/search/src/index.mjs +2 -2
  37. package/esm2022/libs/feature/search/src/lib/constants.mjs +2 -1
  38. package/esm2022/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.mjs +8 -7
  39. package/esm2022/libs/feature/search/src/lib/feature-search.module.mjs +13 -19
  40. package/esm2022/libs/feature/search/src/lib/record-url.token.mjs +4 -2
  41. package/esm2022/libs/feature/search/src/lib/results-hits/results-hits.container.component.mjs +41 -0
  42. package/esm2022/libs/feature/search/src/lib/results-list/results-list.container.component.mjs +30 -10
  43. package/esm2022/libs/feature/search/src/lib/utils/service/fields.mjs +70 -1
  44. package/esm2022/libs/feature/search/src/lib/utils/service/fields.service.mjs +4 -3
  45. package/esm2022/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.mjs +3 -3
  46. package/esm2022/libs/ui/dataviz/src/lib/chart/chart.component.mjs +5 -3
  47. package/esm2022/libs/ui/dataviz/src/lib/data-table/data-table.component.mjs +11 -6
  48. package/esm2022/libs/ui/elements/src/index.mjs +6 -1
  49. package/esm2022/libs/ui/elements/src/lib/api-card/api-card.component.mjs +3 -3
  50. package/esm2022/libs/ui/elements/src/lib/download-item/download-item.component.mjs +3 -3
  51. package/esm2022/libs/ui/elements/src/lib/downloads-list/downloads-list.component.mjs +18 -7
  52. package/esm2022/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.mjs +55 -0
  53. package/esm2022/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.mjs +3 -3
  54. package/esm2022/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.mjs +137 -0
  55. package/esm2022/libs/ui/elements/src/lib/kind-badge/kind-badge.component.mjs +68 -0
  56. package/esm2022/libs/ui/elements/src/lib/link-card/link-card.component.mjs +3 -3
  57. package/esm2022/libs/ui/elements/src/lib/metadata-catalog/metadata-catalog.component.mjs +3 -3
  58. package/esm2022/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.mjs +3 -3
  59. package/esm2022/libs/ui/elements/src/lib/metadata-info/metadata-info.component.mjs +8 -5
  60. package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +3 -3
  61. package/esm2022/libs/ui/elements/src/lib/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.mjs +51 -0
  62. package/esm2022/libs/ui/elements/src/lib/related-record-card/related-record-card.component.mjs +17 -7
  63. package/esm2022/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.mjs +169 -0
  64. package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +28 -4
  65. package/esm2022/libs/ui/inputs/src/index.mjs +3 -2
  66. package/esm2022/libs/ui/inputs/src/lib/button/button.component.mjs +2 -2
  67. package/esm2022/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.mjs +3 -3
  68. package/esm2022/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.mjs +3 -3
  69. package/esm2022/libs/ui/inputs/src/lib/inline-filter/inline-filter.component.mjs +42 -0
  70. package/esm2022/libs/ui/inputs/src/lib/inline-filter/inline-filter.model.mjs +2 -0
  71. package/esm2022/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.mjs +68 -0
  72. package/esm2022/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.mjs +4 -3
  73. package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +8 -9
  74. package/esm2022/libs/ui/layout/src/index.mjs +2 -1
  75. package/esm2022/libs/ui/layout/src/lib/anchor-link/anchor-link.directive.mjs +43 -3
  76. package/esm2022/libs/ui/layout/src/lib/block-list/block-list.component.mjs +48 -11
  77. package/esm2022/libs/ui/layout/src/lib/carousel/carousel.component.mjs +3 -3
  78. package/esm2022/libs/ui/layout/src/lib/expandable-panel/expandable-panel.component.mjs +34 -13
  79. package/esm2022/libs/ui/layout/src/lib/interactive-table/interactive-table.component.mjs +15 -3
  80. package/esm2022/libs/ui/layout/src/lib/max-lines/max-lines.component.mjs +3 -3
  81. package/esm2022/libs/ui/layout/src/lib/previous-next-buttons/previous-next-buttons.component.mjs +6 -6
  82. package/esm2022/libs/ui/layout/src/lib/truncated-text/truncated-text.component.mjs +107 -0
  83. package/esm2022/libs/ui/layout/src/lib/ui-layout.module.mjs +4 -12
  84. package/esm2022/libs/ui/map/src/index.mjs +2 -1
  85. package/esm2022/libs/ui/map/src/lib/components/feature-detail/feature-detail.component.mjs +29 -4
  86. package/esm2022/libs/ui/map/src/lib/components/spatial-extent/spatial-extent.component.mjs +80 -0
  87. package/esm2022/libs/ui/search/src/index.mjs +2 -1
  88. package/esm2022/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.mjs +4 -8
  89. package/esm2022/libs/ui/search/src/lib/results-hits-number/results-hits-number.component.mjs +3 -3
  90. package/esm2022/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.mjs +53 -0
  91. package/esm2022/libs/ui/search/src/lib/results-list/results-layout.config.mjs +2 -2
  92. package/esm2022/libs/ui/search/src/lib/results-list/results-list.component.mjs +3 -3
  93. package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +5 -4
  94. package/esm2022/libs/ui/search/src/lib/ui-search.module.mjs +11 -3
  95. package/esm2022/libs/ui/widgets/src/lib/progress-bar/progress-bar.component.mjs +3 -3
  96. package/esm2022/libs/util/app-config/src/lib/app-config.mjs +2 -1
  97. package/esm2022/libs/util/app-config/src/lib/fixtures.mjs +2 -1
  98. package/esm2022/libs/util/shared/src/index.mjs +2 -1
  99. package/esm2022/libs/util/shared/src/lib/gn-ui-version.mjs +6 -0
  100. package/esm2022/libs/util/shared/src/lib/links/link-classifier.service.mjs +5 -1
  101. package/esm2022/libs/util/shared/src/lib/links/link-utils.mjs +16 -6
  102. package/esm2022/translations/de.json +45 -6
  103. package/esm2022/translations/en.json +46 -7
  104. package/esm2022/translations/es.json +45 -6
  105. package/esm2022/translations/fr.json +46 -7
  106. package/esm2022/translations/it.json +44 -5
  107. package/esm2022/translations/nl.json +45 -6
  108. package/esm2022/translations/pt.json +45 -6
  109. package/fesm2022/geonetwork-ui.mjs +2374 -900
  110. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  111. package/libs/api/metadata-converter/src/index.d.ts +1 -0
  112. package/libs/api/metadata-converter/src/index.d.ts.map +1 -1
  113. package/libs/api/metadata-converter/src/lib/base.converter.d.ts.map +1 -1
  114. package/libs/api/metadata-converter/src/lib/common/distribution.mapper.d.ts.map +1 -1
  115. package/libs/api/metadata-converter/src/lib/common/resource-types.d.ts +21 -0
  116. package/libs/api/metadata-converter/src/lib/common/resource-types.d.ts.map +1 -1
  117. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
  118. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts.map +1 -1
  119. package/libs/api/repository/src/lib/gn4/elasticsearch/constant.d.ts.map +1 -1
  120. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts.map +1 -1
  121. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts.map +1 -1
  122. package/libs/api/repository/src/lib/gn4/gn4.provider.d.ts.map +1 -1
  123. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +9 -3
  124. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
  125. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts +12 -8
  126. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts.map +1 -1
  127. package/libs/feature/dataviz/src/lib/service/data.service.d.ts +1 -0
  128. package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
  129. package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts +6 -3
  130. package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts.map +1 -1
  131. package/libs/feature/editor/src/index.d.ts +1 -0
  132. package/libs/feature/editor/src/index.d.ts.map +1 -1
  133. package/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.d.ts +7 -0
  134. package/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.d.ts.map +1 -0
  135. package/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.d.ts.map +1 -1
  136. package/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.d.ts +6 -6
  137. package/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.d.ts.map +1 -1
  138. 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
  139. package/libs/feature/record/src/index.d.ts +1 -3
  140. package/libs/feature/record/src/index.d.ts.map +1 -1
  141. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts +9 -1
  142. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts.map +1 -1
  143. package/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.d.ts +2 -3
  144. package/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.d.ts.map +1 -1
  145. package/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.d.ts +1 -2
  146. package/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.d.ts.map +1 -1
  147. package/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.d.ts +2 -1
  148. package/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.d.ts.map +1 -1
  149. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
  150. package/libs/feature/record/src/lib/record-meta/record-meta.component.d.ts +2 -2
  151. package/libs/feature/record/src/lib/state/mdview.effects.d.ts +3 -1
  152. package/libs/feature/record/src/lib/state/mdview.effects.d.ts.map +1 -1
  153. package/libs/feature/record/src/lib/state/mdview.facade.d.ts +26 -21
  154. package/libs/feature/record/src/lib/state/mdview.facade.d.ts.map +1 -1
  155. package/libs/feature/router/src/lib/default/constants.d.ts +2 -0
  156. package/libs/feature/router/src/lib/default/constants.d.ts.map +1 -1
  157. package/libs/feature/router/src/lib/default/router.config.d.ts +2 -0
  158. package/libs/feature/router/src/lib/default/router.config.d.ts.map +1 -1
  159. package/libs/feature/router/src/lib/default/router.service.d.ts.map +1 -1
  160. package/libs/feature/router/src/lib/default/state/router.facade.d.ts +5 -0
  161. package/libs/feature/router/src/lib/default/state/router.facade.d.ts.map +1 -1
  162. package/libs/feature/search/src/index.d.ts +1 -1
  163. package/libs/feature/search/src/index.d.ts.map +1 -1
  164. package/libs/feature/search/src/lib/constants.d.ts.map +1 -1
  165. package/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.d.ts.map +1 -1
  166. package/libs/feature/search/src/lib/feature-search.module.d.ts +4 -2
  167. package/libs/feature/search/src/lib/feature-search.module.d.ts.map +1 -1
  168. package/libs/feature/search/src/lib/record-url.token.d.ts +3 -1
  169. package/libs/feature/search/src/lib/record-url.token.d.ts.map +1 -1
  170. package/libs/feature/search/src/lib/results-hits/results-hits.container.component.d.ts +21 -0
  171. package/libs/feature/search/src/lib/results-hits/results-hits.container.component.d.ts.map +1 -0
  172. package/libs/feature/search/src/lib/results-list/results-list.container.component.d.ts +5 -3
  173. package/libs/feature/search/src/lib/results-list/results-list.container.component.d.ts.map +1 -1
  174. package/libs/feature/search/src/lib/utils/service/fields.d.ts +21 -0
  175. package/libs/feature/search/src/lib/utils/service/fields.d.ts.map +1 -1
  176. package/libs/feature/search/src/lib/utils/service/fields.service.d.ts.map +1 -1
  177. package/libs/ui/dataviz/src/lib/chart/chart.component.d.ts +2 -1
  178. package/libs/ui/dataviz/src/lib/chart/chart.component.d.ts.map +1 -1
  179. package/libs/ui/dataviz/src/lib/data-table/data-table.component.d.ts +6 -1
  180. package/libs/ui/dataviz/src/lib/data-table/data-table.component.d.ts.map +1 -1
  181. package/libs/ui/elements/src/index.d.ts +5 -0
  182. package/libs/ui/elements/src/index.d.ts.map +1 -1
  183. package/libs/ui/elements/src/lib/download-item/download-item.component.d.ts +1 -1
  184. package/libs/ui/elements/src/lib/download-item/download-item.component.d.ts.map +1 -1
  185. package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts +7 -1
  186. package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts.map +1 -1
  187. package/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.d.ts +15 -0
  188. package/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.d.ts.map +1 -0
  189. package/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.d.ts +39 -0
  190. package/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.d.ts.map +1 -0
  191. package/libs/ui/elements/src/lib/kind-badge/kind-badge.component.d.ts +13 -0
  192. package/libs/ui/elements/src/lib/kind-badge/kind-badge.component.d.ts.map +1 -0
  193. package/libs/ui/elements/src/lib/link-card/link-card.component.d.ts +1 -1
  194. package/libs/ui/elements/src/lib/link-card/link-card.component.d.ts.map +1 -1
  195. package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts +2 -2
  196. package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts.map +1 -1
  197. package/libs/ui/elements/src/lib/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.d.ts +16 -0
  198. package/libs/ui/elements/src/lib/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.d.ts.map +1 -0
  199. package/libs/ui/elements/src/lib/related-record-card/related-record-card.component.d.ts +8 -1
  200. package/libs/ui/elements/src/lib/related-record-card/related-record-card.component.d.ts.map +1 -1
  201. package/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.d.ts +31 -0
  202. package/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.d.ts.map +1 -0
  203. package/libs/ui/elements/src/lib/ui-elements.module.d.ts +5 -1
  204. package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
  205. package/libs/ui/inputs/src/index.d.ts +2 -1
  206. package/libs/ui/inputs/src/index.d.ts.map +1 -1
  207. package/libs/ui/inputs/src/lib/button/button.component.d.ts +1 -1
  208. package/libs/ui/inputs/src/lib/button/button.component.d.ts.map +1 -1
  209. package/libs/ui/inputs/src/lib/inline-filter/inline-filter.component.d.ts +14 -0
  210. package/libs/ui/inputs/src/lib/inline-filter/inline-filter.component.d.ts.map +1 -0
  211. package/libs/ui/inputs/src/lib/inline-filter/inline-filter.model.d.ts +6 -0
  212. package/libs/ui/inputs/src/lib/inline-filter/inline-filter.model.d.ts.map +1 -0
  213. package/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.d.ts +17 -0
  214. package/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.d.ts.map +1 -0
  215. package/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.d.ts.map +1 -1
  216. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +25 -24
  217. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts.map +1 -1
  218. package/libs/ui/layout/src/index.d.ts +1 -0
  219. package/libs/ui/layout/src/index.d.ts.map +1 -1
  220. package/libs/ui/layout/src/lib/anchor-link/anchor-link.directive.d.ts +10 -3
  221. package/libs/ui/layout/src/lib/anchor-link/anchor-link.directive.d.ts.map +1 -1
  222. package/libs/ui/layout/src/lib/block-list/block-list.component.d.ts +9 -2
  223. package/libs/ui/layout/src/lib/block-list/block-list.component.d.ts.map +1 -1
  224. package/libs/ui/layout/src/lib/expandable-panel/expandable-panel.component.d.ts +15 -8
  225. package/libs/ui/layout/src/lib/expandable-panel/expandable-panel.component.d.ts.map +1 -1
  226. package/libs/ui/layout/src/lib/interactive-table/interactive-table.component.d.ts +2 -0
  227. package/libs/ui/layout/src/lib/interactive-table/interactive-table.component.d.ts.map +1 -1
  228. package/libs/ui/layout/src/lib/truncated-text/truncated-text.component.d.ts +27 -0
  229. package/libs/ui/layout/src/lib/truncated-text/truncated-text.component.d.ts.map +1 -0
  230. package/libs/ui/layout/src/lib/ui-layout.module.d.ts.map +1 -1
  231. package/libs/ui/map/src/index.d.ts +1 -0
  232. package/libs/ui/map/src/index.d.ts.map +1 -1
  233. package/libs/ui/map/src/lib/components/feature-detail/feature-detail.component.d.ts +6 -2
  234. package/libs/ui/map/src/lib/components/feature-detail/feature-detail.component.d.ts.map +1 -1
  235. package/libs/ui/map/src/lib/components/spatial-extent/spatial-extent.component.d.ts +15 -0
  236. package/libs/ui/map/src/lib/components/spatial-extent/spatial-extent.component.d.ts.map +1 -0
  237. package/libs/ui/search/src/index.d.ts +1 -0
  238. package/libs/ui/search/src/index.d.ts.map +1 -1
  239. package/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.d.ts +17 -0
  240. package/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.d.ts.map +1 -0
  241. package/libs/ui/search/src/lib/results-list/results-list.component.d.ts.map +1 -1
  242. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts.map +1 -1
  243. package/libs/ui/search/src/lib/ui-search.module.d.ts +21 -19
  244. package/libs/ui/search/src/lib/ui-search.module.d.ts.map +1 -1
  245. package/libs/util/app-config/src/lib/app-config.d.ts.map +1 -1
  246. package/libs/util/app-config/src/lib/fixtures.d.ts.map +1 -1
  247. package/libs/util/shared/src/index.d.ts +1 -0
  248. package/libs/util/shared/src/index.d.ts.map +1 -1
  249. package/libs/util/shared/src/lib/gn-ui-version.d.ts +3 -0
  250. package/libs/util/shared/src/lib/gn-ui-version.d.ts.map +1 -0
  251. package/libs/util/shared/src/lib/links/link-classifier.service.d.ts +3 -3
  252. package/libs/util/shared/src/lib/links/link-classifier.service.d.ts.map +1 -1
  253. package/libs/util/shared/src/lib/links/link-utils.d.ts +14 -7
  254. package/libs/util/shared/src/lib/links/link-utils.d.ts.map +1 -1
  255. package/package.json +2 -2
  256. package/src/libs/api/metadata-converter/src/index.ts +1 -0
  257. package/src/libs/api/metadata-converter/src/lib/base.converter.ts +1 -4
  258. package/src/libs/api/metadata-converter/src/lib/common/distribution.mapper.ts +1 -0
  259. package/src/libs/api/metadata-converter/src/lib/common/resource-types.ts +29 -15
  260. package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.service+eaux-usees.ts +2 -2
  261. package/src/libs/api/metadata-converter/src/lib/fixtures/geocat-ch.records.ts +2 -2
  262. package/src/libs/api/metadata-converter/src/lib/fixtures/metawal.records.ts +2 -2
  263. package/src/libs/api/metadata-converter/src/lib/fixtures/wallonie.records.service+napitswallonia.ts +2 -2
  264. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +9 -2
  265. package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +4 -3
  266. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +3 -3
  267. package/src/libs/api/repository/src/lib/gn4/elasticsearch/constant.ts +1 -0
  268. package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +1 -9
  269. package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +9 -3
  270. package/src/libs/api/repository/src/lib/gn4/gn4.provider.ts +6 -0
  271. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +14 -4
  272. package/src/libs/common/fixtures/src/lib/elasticsearch/metadata-links.fixtures.ts +36 -26
  273. package/src/libs/common/fixtures/src/lib/link.fixtures.ts +16 -2
  274. package/src/libs/common/fixtures/src/lib/record-link.fixtures.ts +5 -5
  275. package/src/libs/common/fixtures/src/lib/records.fixtures.ts +1 -1
  276. package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.html +12 -9
  277. package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.ts +58 -10
  278. package/src/libs/feature/dataviz/src/lib/service/data.service.ts +37 -0
  279. package/src/libs/feature/dataviz/src/lib/table-view/table-view.component.html +1 -0
  280. package/src/libs/feature/dataviz/src/lib/table-view/table-view.component.ts +31 -1
  281. package/src/libs/feature/editor/src/index.ts +1 -0
  282. package/src/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.html +14 -0
  283. package/src/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.ts +15 -0
  284. package/src/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.ts +1 -2
  285. package/src/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.ts +2 -2
  286. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.html +2 -2
  287. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.ts +2 -2
  288. package/src/libs/feature/record/src/index.ts +1 -3
  289. package/src/libs/feature/record/src/lib/data-view/data-view.component.html +16 -10
  290. package/src/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.ts +2 -3
  291. package/src/libs/feature/record/src/lib/data-view-share/data-view-share.component.html +1 -1
  292. package/src/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.ts +4 -5
  293. package/src/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.html +2 -2
  294. package/src/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.ts +1 -0
  295. package/src/libs/feature/record/src/lib/map-view/map-view.component.html +25 -16
  296. package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +40 -4
  297. package/src/libs/feature/record/src/lib/record-meta/record-meta.component.ts +2 -2
  298. package/src/libs/feature/record/src/lib/state/mdview.effects.ts +5 -3
  299. package/src/libs/feature/record/src/lib/state/mdview.facade.ts +17 -17
  300. package/src/libs/feature/router/src/lib/default/constants.ts +2 -0
  301. package/src/libs/feature/router/src/lib/default/router.config.ts +2 -0
  302. package/src/libs/feature/router/src/lib/default/router.service.ts +10 -0
  303. package/src/libs/feature/router/src/lib/default/state/router.facade.ts +10 -1
  304. package/src/libs/feature/search/src/index.ts +1 -1
  305. package/src/libs/feature/search/src/lib/constants.ts +1 -0
  306. package/src/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.html +1 -7
  307. package/src/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.ts +16 -8
  308. package/src/libs/feature/search/src/lib/feature-search.module.ts +9 -10
  309. package/src/libs/feature/search/src/lib/record-url.token.ts +10 -1
  310. package/src/libs/feature/search/src/lib/results-hits/results-hits.container.component.css +0 -0
  311. package/src/libs/feature/search/src/lib/results-hits/results-hits.container.component.html +16 -0
  312. package/src/libs/feature/search/src/lib/results-hits/results-hits.container.component.ts +59 -0
  313. package/src/libs/feature/search/src/lib/results-list/results-list.container.component.css +6 -0
  314. package/src/libs/feature/search/src/lib/results-list/results-list.container.component.html +1 -0
  315. package/src/libs/feature/search/src/lib/results-list/results-list.container.component.ts +26 -5
  316. package/src/libs/feature/search/src/lib/utils/service/fields.service.ts +4 -5
  317. package/src/libs/feature/search/src/lib/utils/service/fields.ts +99 -0
  318. package/src/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.html +1 -1
  319. package/src/libs/ui/dataviz/src/lib/chart/chart.component.ts +2 -1
  320. package/src/libs/ui/dataviz/src/lib/data-table/data-table.component.html +6 -3
  321. package/src/libs/ui/dataviz/src/lib/data-table/data-table.component.ts +5 -4
  322. package/src/libs/ui/elements/src/index.ts +5 -0
  323. package/src/libs/ui/elements/src/lib/api-card/api-card.component.html +4 -4
  324. package/src/libs/ui/elements/src/lib/download-item/download-item.component.html +8 -5
  325. package/src/libs/ui/elements/src/lib/download-item/download-item.component.ts +2 -2
  326. package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.html +38 -7
  327. package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.ts +29 -2
  328. package/src/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.css +4 -0
  329. package/src/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.html +13 -0
  330. package/src/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.ts +54 -0
  331. package/src/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.html +1 -1
  332. package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.css +0 -0
  333. package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.html +151 -0
  334. package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.ts +162 -0
  335. package/src/libs/ui/elements/src/lib/kind-badge/kind-badge.component.css +6 -0
  336. package/src/libs/ui/elements/src/lib/kind-badge/kind-badge.component.html +11 -0
  337. package/src/libs/ui/elements/src/lib/kind-badge/kind-badge.component.ts +70 -0
  338. package/src/libs/ui/elements/src/lib/link-card/link-card.component.html +5 -2
  339. package/src/libs/ui/elements/src/lib/link-card/link-card.component.ts +3 -7
  340. package/src/libs/ui/elements/src/lib/metadata-catalog/metadata-catalog.component.html +3 -5
  341. package/src/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.html +12 -9
  342. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.css +9 -0
  343. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.html +24 -7
  344. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.ts +12 -4
  345. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.html +3 -2
  346. package/src/libs/ui/elements/src/lib/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.html +48 -0
  347. package/src/libs/ui/elements/src/lib/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.ts +52 -0
  348. package/src/libs/ui/elements/src/lib/related-record-card/related-record-card.component.html +8 -29
  349. package/src/libs/ui/elements/src/lib/related-record-card/related-record-card.component.ts +14 -1
  350. package/src/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.css +0 -0
  351. package/src/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.html +110 -0
  352. package/src/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.ts +191 -0
  353. package/src/libs/ui/elements/src/lib/ui-elements.module.ts +12 -1
  354. package/src/libs/ui/inputs/src/index.ts +2 -1
  355. package/src/libs/ui/inputs/src/lib/button/button.component.ts +2 -2
  356. package/src/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.html +1 -1
  357. package/src/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.html +1 -1
  358. package/src/libs/ui/inputs/src/lib/inline-filter/inline-filter.component.html +23 -0
  359. package/src/libs/ui/inputs/src/lib/inline-filter/inline-filter.component.ts +44 -0
  360. package/src/libs/ui/inputs/src/lib/inline-filter/inline-filter.model.ts +5 -0
  361. package/src/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.css +0 -0
  362. package/src/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.html +43 -0
  363. package/src/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.ts +77 -0
  364. package/src/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.html +7 -8
  365. package/src/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.ts +2 -1
  366. package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +3 -3
  367. package/src/libs/ui/layout/src/index.ts +1 -0
  368. package/src/libs/ui/layout/src/lib/anchor-link/anchor-link.directive.ts +46 -2
  369. package/src/libs/ui/layout/src/lib/block-list/block-list.component.css +22 -0
  370. package/src/libs/ui/layout/src/lib/block-list/block-list.component.html +2 -2
  371. package/src/libs/ui/layout/src/lib/block-list/block-list.component.ts +43 -5
  372. package/src/libs/ui/layout/src/lib/carousel/carousel.component.css +0 -1
  373. package/src/libs/ui/layout/src/lib/carousel/carousel.component.html +1 -1
  374. package/src/libs/ui/layout/src/lib/expandable-panel/expandable-panel.component.html +24 -8
  375. package/src/libs/ui/layout/src/lib/expandable-panel/expandable-panel.component.ts +36 -10
  376. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.html +3 -7
  377. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.ts +13 -0
  378. package/src/libs/ui/layout/src/lib/max-lines/max-lines.component.html +1 -1
  379. package/src/libs/ui/layout/src/lib/previous-next-buttons/previous-next-buttons.component.html +17 -5
  380. package/src/libs/ui/layout/src/lib/previous-next-buttons/previous-next-buttons.component.ts +3 -3
  381. package/src/libs/ui/layout/src/lib/truncated-text/truncated-text.component.html +44 -0
  382. package/src/libs/ui/layout/src/lib/truncated-text/truncated-text.component.ts +130 -0
  383. package/src/libs/ui/layout/src/lib/ui-layout.module.ts +1 -5
  384. package/src/libs/ui/map/src/index.ts +1 -0
  385. package/src/libs/ui/map/src/lib/components/feature-detail/feature-detail.component.html +3 -3
  386. package/src/libs/ui/map/src/lib/components/feature-detail/feature-detail.component.ts +27 -3
  387. package/src/libs/ui/map/src/lib/components/spatial-extent/spatial-extent.component.css +0 -0
  388. package/src/libs/ui/map/src/lib/components/spatial-extent/spatial-extent.component.html +4 -0
  389. package/src/libs/{feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.ts → ui/map/src/lib/components/spatial-extent/spatial-extent.component.ts} +8 -8
  390. package/src/libs/ui/search/src/index.ts +1 -0
  391. package/src/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.html +9 -81
  392. package/src/libs/ui/search/src/lib/results-hits-number/results-hits-number.component.html +1 -1
  393. package/src/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.html +25 -0
  394. package/src/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.ts +53 -0
  395. package/src/libs/ui/search/src/lib/results-list/results-layout.config.ts +2 -2
  396. package/src/libs/ui/search/src/lib/results-list/results-list.component.html +1 -0
  397. package/src/libs/ui/search/src/lib/results-list/results-list.component.ts +0 -1
  398. package/src/libs/ui/search/src/lib/results-table/results-table.component.html +7 -4
  399. package/src/libs/ui/search/src/lib/results-table/results-table.component.ts +2 -1
  400. package/src/libs/ui/search/src/lib/ui-search.module.ts +5 -0
  401. package/src/libs/ui/widgets/src/lib/progress-bar/progress-bar.component.html +4 -3
  402. package/src/libs/util/app-config/src/lib/app-config.ts +1 -0
  403. package/src/libs/util/app-config/src/lib/fixtures.ts +1 -0
  404. package/src/libs/util/shared/src/index.ts +1 -0
  405. package/src/libs/util/shared/src/lib/gn-ui-version.ts +8 -0
  406. package/src/libs/util/shared/src/lib/links/link-classifier.service.ts +15 -3
  407. package/src/libs/util/shared/src/lib/links/link-utils.ts +33 -12
  408. package/tailwind.base.config.js +3 -0
  409. package/tailwind.base.css +19 -26
  410. package/translations/de.json +45 -6
  411. package/translations/en.json +46 -7
  412. package/translations/es.json +45 -6
  413. package/translations/fr.json +46 -7
  414. package/translations/it.json +44 -5
  415. package/translations/nl.json +45 -6
  416. package/translations/pt.json +45 -6
  417. package/translations/sk.json +45 -6
  418. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.mjs +0 -79
  419. package/esm2022/libs/feature/record/src/lib/gn-ui-version.token.mjs +0 -3
  420. package/esm2022/libs/feature/search/src/lib/results-hits-number/results-hits.container.component.mjs +0 -18
  421. package/esm2022/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.mjs +0 -16
  422. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.d.ts +0 -15
  423. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.d.ts.map +0 -1
  424. package/libs/feature/record/src/lib/gn-ui-version.token.d.ts +0 -3
  425. package/libs/feature/record/src/lib/gn-ui-version.token.d.ts.map +0 -1
  426. package/libs/feature/search/src/lib/results-hits-number/results-hits.container.component.d.ts +0 -9
  427. package/libs/feature/search/src/lib/results-hits-number/results-hits.container.component.d.ts.map +0 -1
  428. package/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.d.ts +0 -8
  429. package/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.d.ts.map +0 -1
  430. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.html +0 -1
  431. package/src/libs/feature/record/src/lib/gn-ui-version.token.ts +0 -3
  432. package/src/libs/feature/search/src/lib/results-hits-number/results-hits.container.component.html +0 -4
  433. package/src/libs/feature/search/src/lib/results-hits-number/results-hits.container.component.ts +0 -10
  434. package/src/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.css +0 -3
  435. package/src/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.html +0 -9
  436. package/src/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.ts +0 -15
  437. /package/src/libs/feature/editor/src/lib/components/{record-form/form-field/form-field-map-container/form-field-map-container.component.css → multilingual-panel/multilingual-panel.component.css} +0 -0
@@ -4,9 +4,12 @@ import { CommonModule } from '@angular/common';
4
4
  import { NgIconComponent, provideIcons } from '@ng-icons/core';
5
5
  import { iconoirNavArrowDown, iconoirNavArrowUp } from '@ng-icons/iconoir';
6
6
  import { TranslateModule } from '@ngx-translate/core';
7
+ import { marker } from '@biesbjerg/ngx-translate-extract-marker';
7
8
  import * as i0 from "@angular/core";
8
9
  import * as i1 from "@angular/common";
9
10
  import * as i2 from "@ngx-translate/core";
11
+ marker('editor.record.lock.reason');
12
+ marker('editor.record.lock.format');
10
13
  export class InteractiveTableComponent {
11
14
  constructor() {
12
15
  this.items = [];
@@ -24,15 +27,24 @@ export class InteractiveTableComponent {
24
27
  .join(' '),
25
28
  };
26
29
  }
30
+ getItemTitle(item) {
31
+ if (!item.extras?.edit && !this.isDraftPage && item.kind === 'dataset') {
32
+ return 'editor.record.lock.reason';
33
+ }
34
+ else if (item.kind !== 'dataset') {
35
+ return 'editor.record.lock.format';
36
+ }
37
+ return '';
38
+ }
27
39
  handleRowClick(item) {
28
40
  this.itemClick.emit(item);
29
41
  }
30
42
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InteractiveTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
31
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: InteractiveTableComponent, isStandalone: true, selector: "gn-ui-interactive-table", inputs: { items: "items", isDraftPage: "isDraftPage" }, outputs: { itemClick: "itemClick" }, providers: [provideIcons({ iconoirNavArrowDown, iconoirNavArrowUp })], queries: [{ propertyName: "columns", predicate: InteractiveTableColumnComponent }], ngImport: i0, template: "<div class=\"grid w-full\" [ngStyle]=\"gridStyle\">\n <div class=\"contents w-full\">\n <ng-container *ngFor=\"let column of columns\">\n <button\n *ngIf=\"column.sortable\"\n type=\"button\"\n class=\"table-header-cell gap-1\"\n (click)=\"column.sortable && column.handleSortChange()\"\n >\n <ng-container *ngTemplateOutlet=\"column.header\"></ng-container>\n <div class=\"sort-button flex flex-col\" *ngIf=\"column.sortable\">\n <ng-icon\n class=\"text-gray-600 -mb-2\"\n [ngClass]=\"{ 'text-main': column.activeSort === 'asc' }\"\n name=\"iconoirNavArrowUp\"\n ></ng-icon>\n <ng-icon\n class=\"text-gray-600\"\n [ngClass]=\"{ 'text-main': column.activeSort === 'desc' }\"\n name=\"iconoirNavArrowDown\"\n ></ng-icon>\n </div>\n </button>\n <div *ngIf=\"!column.sortable\" class=\"table-header-cell\">\n <ng-container *ngTemplateOutlet=\"column.header\"></ng-container>\n </div>\n </ng-container>\n </div>\n <div\n class=\"contents text-gray-900 cursor-pointer group\"\n *ngFor=\"let item of items\"\n (click)=\"handleRowClick(item)\"\n data-cy=\"table-row\"\n [title]=\"\n !item.extras?.edit && !isDraftPage\n ? ('editor.record.lock.reason' | translate)\n : ''\n \"\n >\n <div\n class=\"relative h-0\"\n [ngStyle]=\"{ 'grid-column': 'span ' + this.columns.length }\"\n >\n <!-- this element is only used in keyboard navigation -->\n <button\n type=\"button\"\n class=\"absolute inset-x-0 h-[50px] bg-transparent pointer-events-none\"\n ></button>\n </div>\n <ng-container *ngFor=\"let column of columns\">\n <div\n class=\"table-row-cell px-3 py-1.5 flex items-center bg-white transition-colors duration-75 truncate border-b border-gray-200\"\n [ngClass]=\"{\n 'text-purple-light cursor-default':\n !item.extras?.edit && !isDraftPage,\n 'group-hover:text-main group-hover:bg-gray-50':\n item.extras?.edit || isDraftPage,\n }\"\n >\n <ng-container\n *ngTemplateOutlet=\"column.cell; context: { $implicit: item }\"\n ></ng-container>\n </div>\n </ng-container>\n </div>\n</div>\n", styles: [".table-header-cell{@apply text-gray-700 px-3 py-3 flex items-center truncate bg-white;}button.table-header-cell{@apply transition-colors duration-75 hover:text-main hover:bg-gray-50 focus:text-main focus:bg-gray-50;}ng-icon{@apply w-4 h-4;}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
43
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: InteractiveTableComponent, isStandalone: true, selector: "gn-ui-interactive-table", inputs: { items: "items", isDraftPage: "isDraftPage" }, outputs: { itemClick: "itemClick" }, providers: [provideIcons({ iconoirNavArrowDown, iconoirNavArrowUp })], queries: [{ propertyName: "columns", predicate: InteractiveTableColumnComponent }], ngImport: i0, template: "<div class=\"grid w-full\" [ngStyle]=\"gridStyle\">\n <div class=\"contents w-full\">\n <ng-container *ngFor=\"let column of columns\">\n <button\n *ngIf=\"column.sortable\"\n type=\"button\"\n class=\"table-header-cell gap-1\"\n (click)=\"column.sortable && column.handleSortChange()\"\n >\n <ng-container *ngTemplateOutlet=\"column.header\"></ng-container>\n <div class=\"sort-button flex flex-col\" *ngIf=\"column.sortable\">\n <ng-icon\n class=\"text-gray-600 -mb-2\"\n [ngClass]=\"{ 'text-main': column.activeSort === 'asc' }\"\n name=\"iconoirNavArrowUp\"\n ></ng-icon>\n <ng-icon\n class=\"text-gray-600\"\n [ngClass]=\"{ 'text-main': column.activeSort === 'desc' }\"\n name=\"iconoirNavArrowDown\"\n ></ng-icon>\n </div>\n </button>\n <div *ngIf=\"!column.sortable\" class=\"table-header-cell\">\n <ng-container *ngTemplateOutlet=\"column.header\"></ng-container>\n </div>\n </ng-container>\n </div>\n <div\n class=\"contents text-gray-900 cursor-pointer group\"\n *ngFor=\"let item of items\"\n (click)=\"handleRowClick(item)\"\n data-cy=\"table-row\"\n [title]=\"getItemTitle(item) | translate\"\n >\n <div\n class=\"relative h-0\"\n [ngStyle]=\"{ 'grid-column': 'span ' + this.columns.length }\"\n >\n <!-- this element is only used in keyboard navigation -->\n <button\n type=\"button\"\n class=\"absolute inset-x-0 h-[50px] bg-transparent pointer-events-none\"\n ></button>\n </div>\n <ng-container *ngFor=\"let column of columns\">\n <div\n class=\"table-row-cell px-3 py-1.5 flex items-center bg-white transition-colors duration-75 truncate border-b border-gray-200\"\n [ngClass]=\"{\n 'text-purple-light cursor-default':\n (!item.extras?.edit && !isDraftPage) || item.kind !== 'dataset',\n 'group-hover:text-main group-hover:bg-gray-50':\n (item.extras?.edit || isDraftPage) && item.kind === 'dataset',\n }\"\n >\n <ng-container\n *ngTemplateOutlet=\"column.cell; context: { $implicit: item }\"\n ></ng-container>\n </div>\n </ng-container>\n </div>\n</div>\n", styles: [".table-header-cell{@apply text-gray-700 px-3 py-3 flex items-center truncate bg-white;}button.table-header-cell{@apply transition-colors duration-75 hover:text-main hover:bg-gray-50 focus:text-main focus:bg-gray-50;}ng-icon{@apply w-4 h-4;}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
32
44
  }
33
45
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InteractiveTableComponent, decorators: [{
34
46
  type: Component,
35
- args: [{ selector: 'gn-ui-interactive-table', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, NgIconComponent, TranslateModule], providers: [provideIcons({ iconoirNavArrowDown, iconoirNavArrowUp })], template: "<div class=\"grid w-full\" [ngStyle]=\"gridStyle\">\n <div class=\"contents w-full\">\n <ng-container *ngFor=\"let column of columns\">\n <button\n *ngIf=\"column.sortable\"\n type=\"button\"\n class=\"table-header-cell gap-1\"\n (click)=\"column.sortable && column.handleSortChange()\"\n >\n <ng-container *ngTemplateOutlet=\"column.header\"></ng-container>\n <div class=\"sort-button flex flex-col\" *ngIf=\"column.sortable\">\n <ng-icon\n class=\"text-gray-600 -mb-2\"\n [ngClass]=\"{ 'text-main': column.activeSort === 'asc' }\"\n name=\"iconoirNavArrowUp\"\n ></ng-icon>\n <ng-icon\n class=\"text-gray-600\"\n [ngClass]=\"{ 'text-main': column.activeSort === 'desc' }\"\n name=\"iconoirNavArrowDown\"\n ></ng-icon>\n </div>\n </button>\n <div *ngIf=\"!column.sortable\" class=\"table-header-cell\">\n <ng-container *ngTemplateOutlet=\"column.header\"></ng-container>\n </div>\n </ng-container>\n </div>\n <div\n class=\"contents text-gray-900 cursor-pointer group\"\n *ngFor=\"let item of items\"\n (click)=\"handleRowClick(item)\"\n data-cy=\"table-row\"\n [title]=\"\n !item.extras?.edit && !isDraftPage\n ? ('editor.record.lock.reason' | translate)\n : ''\n \"\n >\n <div\n class=\"relative h-0\"\n [ngStyle]=\"{ 'grid-column': 'span ' + this.columns.length }\"\n >\n <!-- this element is only used in keyboard navigation -->\n <button\n type=\"button\"\n class=\"absolute inset-x-0 h-[50px] bg-transparent pointer-events-none\"\n ></button>\n </div>\n <ng-container *ngFor=\"let column of columns\">\n <div\n class=\"table-row-cell px-3 py-1.5 flex items-center bg-white transition-colors duration-75 truncate border-b border-gray-200\"\n [ngClass]=\"{\n 'text-purple-light cursor-default':\n !item.extras?.edit && !isDraftPage,\n 'group-hover:text-main group-hover:bg-gray-50':\n item.extras?.edit || isDraftPage,\n }\"\n >\n <ng-container\n *ngTemplateOutlet=\"column.cell; context: { $implicit: item }\"\n ></ng-container>\n </div>\n </ng-container>\n </div>\n</div>\n", styles: [".table-header-cell{@apply text-gray-700 px-3 py-3 flex items-center truncate bg-white;}button.table-header-cell{@apply transition-colors duration-75 hover:text-main hover:bg-gray-50 focus:text-main focus:bg-gray-50;}ng-icon{@apply w-4 h-4;}\n"] }]
47
+ args: [{ selector: 'gn-ui-interactive-table', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, NgIconComponent, TranslateModule], providers: [provideIcons({ iconoirNavArrowDown, iconoirNavArrowUp })], template: "<div class=\"grid w-full\" [ngStyle]=\"gridStyle\">\n <div class=\"contents w-full\">\n <ng-container *ngFor=\"let column of columns\">\n <button\n *ngIf=\"column.sortable\"\n type=\"button\"\n class=\"table-header-cell gap-1\"\n (click)=\"column.sortable && column.handleSortChange()\"\n >\n <ng-container *ngTemplateOutlet=\"column.header\"></ng-container>\n <div class=\"sort-button flex flex-col\" *ngIf=\"column.sortable\">\n <ng-icon\n class=\"text-gray-600 -mb-2\"\n [ngClass]=\"{ 'text-main': column.activeSort === 'asc' }\"\n name=\"iconoirNavArrowUp\"\n ></ng-icon>\n <ng-icon\n class=\"text-gray-600\"\n [ngClass]=\"{ 'text-main': column.activeSort === 'desc' }\"\n name=\"iconoirNavArrowDown\"\n ></ng-icon>\n </div>\n </button>\n <div *ngIf=\"!column.sortable\" class=\"table-header-cell\">\n <ng-container *ngTemplateOutlet=\"column.header\"></ng-container>\n </div>\n </ng-container>\n </div>\n <div\n class=\"contents text-gray-900 cursor-pointer group\"\n *ngFor=\"let item of items\"\n (click)=\"handleRowClick(item)\"\n data-cy=\"table-row\"\n [title]=\"getItemTitle(item) | translate\"\n >\n <div\n class=\"relative h-0\"\n [ngStyle]=\"{ 'grid-column': 'span ' + this.columns.length }\"\n >\n <!-- this element is only used in keyboard navigation -->\n <button\n type=\"button\"\n class=\"absolute inset-x-0 h-[50px] bg-transparent pointer-events-none\"\n ></button>\n </div>\n <ng-container *ngFor=\"let column of columns\">\n <div\n class=\"table-row-cell px-3 py-1.5 flex items-center bg-white transition-colors duration-75 truncate border-b border-gray-200\"\n [ngClass]=\"{\n 'text-purple-light cursor-default':\n (!item.extras?.edit && !isDraftPage) || item.kind !== 'dataset',\n 'group-hover:text-main group-hover:bg-gray-50':\n (item.extras?.edit || isDraftPage) && item.kind === 'dataset',\n }\"\n >\n <ng-container\n *ngTemplateOutlet=\"column.cell; context: { $implicit: item }\"\n ></ng-container>\n </div>\n </ng-container>\n </div>\n</div>\n", styles: [".table-header-cell{@apply text-gray-700 px-3 py-3 flex items-center truncate bg-white;}button.table-header-cell{@apply transition-colors duration-75 hover:text-main hover:bg-gray-50 focus:text-main focus:bg-gray-50;}ng-icon{@apply w-4 h-4;}\n"] }]
36
48
  }], propDecorators: { columns: [{
37
49
  type: ContentChildren,
38
50
  args: [InteractiveTableColumnComponent]
@@ -43,4 +55,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
43
55
  }], itemClick: [{
44
56
  type: Output
45
57
  }] } });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3RpdmUtdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9sYXlvdXQvc3JjL2xpYi9pbnRlcmFjdGl2ZS10YWJsZS9pbnRlcmFjdGl2ZS10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2xheW91dC9zcmMvbGliL2ludGVyYWN0aXZlLXRhYmxlL2ludGVyYWN0aXZlLXRhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULGVBQWUsRUFDZixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sK0RBQStELENBQUE7QUFDL0csT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDOUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDMUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFBOzs7O0FBV3JELE1BQU0sT0FBTyx5QkFBeUI7SUFUdEM7UUFhVyxVQUFLLEdBQWMsRUFBRSxDQUFBO1FBQ3JCLGdCQUFXLEdBQUcsS0FBSyxDQUFBO1FBQ2xCLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFBO0tBbUJsRDtJQWpCQyxJQUFJLFNBQVM7UUFDWCxPQUFPO1lBQ0wsdUJBQXVCLEVBQUUsSUFBSSxDQUFDLE9BQU87aUJBQ2xDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQ2QsTUFBTSxDQUFDLEtBQUs7Z0JBQ1YsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLO2dCQUNkLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSTtvQkFDWCxDQUFDLENBQUMsaUJBQWlCO29CQUNuQixDQUFDLENBQUMseUJBQXlCLENBQ2hDO2lCQUNBLElBQUksQ0FBQyxHQUFHLENBQUM7U0FDYixDQUFBO0lBQ0gsQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUFhO1FBQzFCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQzNCLENBQUM7K0dBeEJVLHlCQUF5QjttR0FBekIseUJBQXlCLG1LQUZ6QixDQUFDLFlBQVksQ0FBQyxFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxrREFHcEQsK0JBQStCLDZCQ3pCbEQsOHpFQWtFQSwyU0Q3Q1ksWUFBWSwwbEJBQUUsZUFBZSw0R0FBRSxlQUFlOzs0RkFHN0MseUJBQXlCO2tCQVRyQyxTQUFTOytCQUNFLHlCQUF5QixtQkFHbEIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsZUFBZSxFQUFFLGVBQWUsQ0FBQyxhQUM5QyxDQUFDLFlBQVksQ0FBQyxFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLENBQUMsQ0FBQzs4QkFJckUsT0FBTztzQkFETixlQUFlO3VCQUFDLCtCQUErQjtnQkFHdkMsS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0ksU0FBUztzQkFBbEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBJbnRlcmFjdGl2ZVRhYmxlQ29sdW1uQ29tcG9uZW50IH0gZnJvbSAnLi9pbnRlcmFjdGl2ZS10YWJsZS1jb2x1bW4vaW50ZXJhY3RpdmUtdGFibGUtY29sdW1uLmNvbXBvbmVudCdcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IE5nSWNvbkNvbXBvbmVudCwgcHJvdmlkZUljb25zIH0gZnJvbSAnQG5nLWljb25zL2NvcmUnXG5pbXBvcnQgeyBpY29ub2lyTmF2QXJyb3dEb3duLCBpY29ub2lyTmF2QXJyb3dVcCB9IGZyb20gJ0BuZy1pY29ucy9pY29ub2lyJ1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktaW50ZXJhY3RpdmUtdGFibGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vaW50ZXJhY3RpdmUtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pbnRlcmFjdGl2ZS10YWJsZS5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBOZ0ljb25Db21wb25lbnQsIFRyYW5zbGF0ZU1vZHVsZV0sXG4gIHByb3ZpZGVyczogW3Byb3ZpZGVJY29ucyh7IGljb25vaXJOYXZBcnJvd0Rvd24sIGljb25vaXJOYXZBcnJvd1VwIH0pXSxcbn0pXG5leHBvcnQgY2xhc3MgSW50ZXJhY3RpdmVUYWJsZUNvbXBvbmVudCB7XG4gIEBDb250ZW50Q2hpbGRyZW4oSW50ZXJhY3RpdmVUYWJsZUNvbHVtbkNvbXBvbmVudClcbiAgY29sdW1uczogUXVlcnlMaXN0PEludGVyYWN0aXZlVGFibGVDb2x1bW5Db21wb25lbnQ+XG5cbiAgQElucHV0KCkgaXRlbXM6IHVua25vd25bXSA9IFtdXG4gIEBJbnB1dCgpIGlzRHJhZnRQYWdlID0gZmFsc2VcbiAgQE91dHB1dCgpIGl0ZW1DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8dW5rbm93bj4oKVxuXG4gIGdldCBncmlkU3R5bGUoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICdncmlkLXRlbXBsYXRlLWNvbHVtbnMnOiB0aGlzLmNvbHVtbnNcbiAgICAgICAgLm1hcCgoY29sdW1uKSA9PlxuICAgICAgICAgIGNvbHVtbi53aWR0aFxuICAgICAgICAgICAgPyBjb2x1bW4ud2lkdGhcbiAgICAgICAgICAgIDogY29sdW1uLmdyb3dcbiAgICAgICAgICAgICAgPyBgbWlubWF4KDBweCwxZnIpYFxuICAgICAgICAgICAgICA6IGBtaW5tYXgoMHB4LG1heC1jb250ZW50KWBcbiAgICAgICAgKVxuICAgICAgICAuam9pbignICcpLFxuICAgIH1cbiAgfVxuXG4gIGhhbmRsZVJvd0NsaWNrKGl0ZW06IHVua25vd24pIHtcbiAgICB0aGlzLml0ZW1DbGljay5lbWl0KGl0ZW0pXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJncmlkIHctZnVsbFwiIFtuZ1N0eWxlXT1cImdyaWRTdHlsZVwiPlxuICA8ZGl2IGNsYXNzPVwiY29udGVudHMgdy1mdWxsXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnNcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgKm5nSWY9XCJjb2x1bW4uc29ydGFibGVcIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJ0YWJsZS1oZWFkZXItY2VsbCBnYXAtMVwiXG4gICAgICAgIChjbGljayk9XCJjb2x1bW4uc29ydGFibGUgJiYgY29sdW1uLmhhbmRsZVNvcnRDaGFuZ2UoKVwiXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb2x1bW4uaGVhZGVyXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzb3J0LWJ1dHRvbiBmbGV4IGZsZXgtY29sXCIgKm5nSWY9XCJjb2x1bW4uc29ydGFibGVcIj5cbiAgICAgICAgICA8bmctaWNvblxuICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LWdyYXktNjAwIC1tYi0yXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ3RleHQtbWFpbic6IGNvbHVtbi5hY3RpdmVTb3J0ID09PSAnYXNjJyB9XCJcbiAgICAgICAgICAgIG5hbWU9XCJpY29ub2lyTmF2QXJyb3dVcFwiXG4gICAgICAgICAgPjwvbmctaWNvbj5cbiAgICAgICAgICA8bmctaWNvblxuICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LWdyYXktNjAwXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ3RleHQtbWFpbic6IGNvbHVtbi5hY3RpdmVTb3J0ID09PSAnZGVzYycgfVwiXG4gICAgICAgICAgICBuYW1lPVwiaWNvbm9pck5hdkFycm93RG93blwiXG4gICAgICAgICAgPjwvbmctaWNvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxkaXYgKm5nSWY9XCIhY29sdW1uLnNvcnRhYmxlXCIgY2xhc3M9XCJ0YWJsZS1oZWFkZXItY2VsbFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29sdW1uLmhlYWRlclwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuICA8ZGl2XG4gICAgY2xhc3M9XCJjb250ZW50cyB0ZXh0LWdyYXktOTAwIGN1cnNvci1wb2ludGVyIGdyb3VwXCJcbiAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1wiXG4gICAgKGNsaWNrKT1cImhhbmRsZVJvd0NsaWNrKGl0ZW0pXCJcbiAgICBkYXRhLWN5PVwidGFibGUtcm93XCJcbiAgICBbdGl0bGVdPVwiXG4gICAgICAhaXRlbS5leHRyYXM/LmVkaXQgJiYgIWlzRHJhZnRQYWdlXG4gICAgICAgID8gKCdlZGl0b3IucmVjb3JkLmxvY2sucmVhc29uJyB8IHRyYW5zbGF0ZSlcbiAgICAgICAgOiAnJ1xuICAgIFwiXG4gID5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInJlbGF0aXZlIGgtMFwiXG4gICAgICBbbmdTdHlsZV09XCJ7ICdncmlkLWNvbHVtbic6ICdzcGFuICcgKyB0aGlzLmNvbHVtbnMubGVuZ3RoIH1cIlxuICAgID5cbiAgICAgIDwhLS0gdGhpcyBlbGVtZW50IGlzIG9ubHkgdXNlZCBpbiBrZXlib2FyZCBuYXZpZ2F0aW9uIC0tPlxuICAgICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJhYnNvbHV0ZSBpbnNldC14LTAgaC1bNTBweF0gYmctdHJhbnNwYXJlbnQgcG9pbnRlci1ldmVudHMtbm9uZVwiXG4gICAgICA+PC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnNcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJ0YWJsZS1yb3ctY2VsbCBweC0zIHB5LTEuNSBmbGV4IGl0ZW1zLWNlbnRlciBiZy13aGl0ZSB0cmFuc2l0aW9uLWNvbG9ycyBkdXJhdGlvbi03NSB0cnVuY2F0ZSBib3JkZXItYiBib3JkZXItZ3JheS0yMDBcIlxuICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgJ3RleHQtcHVycGxlLWxpZ2h0IGN1cnNvci1kZWZhdWx0JzpcbiAgICAgICAgICAgICFpdGVtLmV4dHJhcz8uZWRpdCAmJiAhaXNEcmFmdFBhZ2UsXG4gICAgICAgICAgJ2dyb3VwLWhvdmVyOnRleHQtbWFpbiBncm91cC1ob3ZlcjpiZy1ncmF5LTUwJzpcbiAgICAgICAgICAgIGl0ZW0uZXh0cmFzPy5lZGl0IHx8IGlzRHJhZnRQYWdlLFxuICAgICAgICB9XCJcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29sdW1uLmNlbGw7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtIH1cIlxuICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3RpdmUtdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9sYXlvdXQvc3JjL2xpYi9pbnRlcmFjdGl2ZS10YWJsZS9pbnRlcmFjdGl2ZS10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2xheW91dC9zcmMvbGliL2ludGVyYWN0aXZlLXRhYmxlL2ludGVyYWN0aXZlLXRhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULGVBQWUsRUFDZixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sK0RBQStELENBQUE7QUFDL0csT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDOUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDMUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3JELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTs7OztBQUdoRSxNQUFNLENBQUMsMkJBQTJCLENBQUMsQ0FBQTtBQUNuQyxNQUFNLENBQUMsMkJBQTJCLENBQUMsQ0FBQTtBQVVuQyxNQUFNLE9BQU8seUJBQXlCO0lBVHRDO1FBYVcsVUFBSyxHQUFjLEVBQUUsQ0FBQTtRQUNyQixnQkFBVyxHQUFHLEtBQUssQ0FBQTtRQUNsQixjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQTtLQTRCbEQ7SUExQkMsSUFBSSxTQUFTO1FBQ1gsT0FBTztZQUNMLHVCQUF1QixFQUFFLElBQUksQ0FBQyxPQUFPO2lCQUNsQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUNkLE1BQU0sQ0FBQyxLQUFLO2dCQUNWLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSztnQkFDZCxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUk7b0JBQ1gsQ0FBQyxDQUFDLGlCQUFpQjtvQkFDbkIsQ0FBQyxDQUFDLHlCQUF5QixDQUNoQztpQkFDQSxJQUFJLENBQUMsR0FBRyxDQUFDO1NBQ2IsQ0FBQTtJQUNILENBQUM7SUFFRCxZQUFZLENBQUMsSUFBbUI7UUFDOUIsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3ZFLE9BQU8sMkJBQTJCLENBQUE7UUFDcEMsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNuQyxPQUFPLDJCQUEyQixDQUFBO1FBQ3BDLENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQTtJQUNYLENBQUM7SUFFRCxjQUFjLENBQUMsSUFBYTtRQUMxQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUMzQixDQUFDOytHQWpDVSx5QkFBeUI7bUdBQXpCLHlCQUF5QixtS0FGekIsQ0FBQyxZQUFZLENBQUMsRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxDQUFDLENBQUMsa0RBR3BELCtCQUErQiw2QkM3QmxELG15RUE4REEsMlNEckNZLFlBQVksMGxCQUFFLGVBQWUsNEdBQUUsZUFBZTs7NEZBRzdDLHlCQUF5QjtrQkFUckMsU0FBUzsrQkFDRSx5QkFBeUIsbUJBR2xCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGVBQWUsRUFBRSxlQUFlLENBQUMsYUFDOUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxDQUFDLENBQUM7OEJBSXJFLE9BQU87c0JBRE4sZUFBZTt1QkFBQywrQkFBK0I7Z0JBR3ZDLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNJLFNBQVM7c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgSW50ZXJhY3RpdmVUYWJsZUNvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4vaW50ZXJhY3RpdmUtdGFibGUtY29sdW1uL2ludGVyYWN0aXZlLXRhYmxlLWNvbHVtbi5jb21wb25lbnQnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBOZ0ljb25Db21wb25lbnQsIHByb3ZpZGVJY29ucyB9IGZyb20gJ0BuZy1pY29ucy9jb3JlJ1xuaW1wb3J0IHsgaWNvbm9pck5hdkFycm93RG93biwgaWNvbm9pck5hdkFycm93VXAgfSBmcm9tICdAbmctaWNvbnMvaWNvbm9pcidcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBtYXJrZXIgfSBmcm9tICdAYmllc2JqZXJnL25neC10cmFuc2xhdGUtZXh0cmFjdC1tYXJrZXInXG5pbXBvcnQgeyBDYXRhbG9nUmVjb3JkIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuXG5tYXJrZXIoJ2VkaXRvci5yZWNvcmQubG9jay5yZWFzb24nKVxubWFya2VyKCdlZGl0b3IucmVjb3JkLmxvY2suZm9ybWF0JylcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLWludGVyYWN0aXZlLXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ludGVyYWN0aXZlLXRhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaW50ZXJhY3RpdmUtdGFibGUuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTmdJY29uQ29tcG9uZW50LCBUcmFuc2xhdGVNb2R1bGVdLFxuICBwcm92aWRlcnM6IFtwcm92aWRlSWNvbnMoeyBpY29ub2lyTmF2QXJyb3dEb3duLCBpY29ub2lyTmF2QXJyb3dVcCB9KV0sXG59KVxuZXhwb3J0IGNsYXNzIEludGVyYWN0aXZlVGFibGVDb21wb25lbnQge1xuICBAQ29udGVudENoaWxkcmVuKEludGVyYWN0aXZlVGFibGVDb2x1bW5Db21wb25lbnQpXG4gIGNvbHVtbnM6IFF1ZXJ5TGlzdDxJbnRlcmFjdGl2ZVRhYmxlQ29sdW1uQ29tcG9uZW50PlxuXG4gIEBJbnB1dCgpIGl0ZW1zOiB1bmtub3duW10gPSBbXVxuICBASW5wdXQoKSBpc0RyYWZ0UGFnZSA9IGZhbHNlXG4gIEBPdXRwdXQoKSBpdGVtQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHVua25vd24+KClcblxuICBnZXQgZ3JpZFN0eWxlKCkge1xuICAgIHJldHVybiB7XG4gICAgICAnZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zJzogdGhpcy5jb2x1bW5zXG4gICAgICAgIC5tYXAoKGNvbHVtbikgPT5cbiAgICAgICAgICBjb2x1bW4ud2lkdGhcbiAgICAgICAgICAgID8gY29sdW1uLndpZHRoXG4gICAgICAgICAgICA6IGNvbHVtbi5ncm93XG4gICAgICAgICAgICAgID8gYG1pbm1heCgwcHgsMWZyKWBcbiAgICAgICAgICAgICAgOiBgbWlubWF4KDBweCxtYXgtY29udGVudClgXG4gICAgICAgIClcbiAgICAgICAgLmpvaW4oJyAnKSxcbiAgICB9XG4gIH1cblxuICBnZXRJdGVtVGl0bGUoaXRlbTogQ2F0YWxvZ1JlY29yZCkge1xuICAgIGlmICghaXRlbS5leHRyYXM/LmVkaXQgJiYgIXRoaXMuaXNEcmFmdFBhZ2UgJiYgaXRlbS5raW5kID09PSAnZGF0YXNldCcpIHtcbiAgICAgIHJldHVybiAnZWRpdG9yLnJlY29yZC5sb2NrLnJlYXNvbidcbiAgICB9IGVsc2UgaWYgKGl0ZW0ua2luZCAhPT0gJ2RhdGFzZXQnKSB7XG4gICAgICByZXR1cm4gJ2VkaXRvci5yZWNvcmQubG9jay5mb3JtYXQnXG4gICAgfVxuICAgIHJldHVybiAnJ1xuICB9XG5cbiAgaGFuZGxlUm93Q2xpY2soaXRlbTogdW5rbm93bikge1xuICAgIHRoaXMuaXRlbUNsaWNrLmVtaXQoaXRlbSlcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImdyaWQgdy1mdWxsXCIgW25nU3R5bGVdPVwiZ3JpZFN0eWxlXCI+XG4gIDxkaXYgY2xhc3M9XCJjb250ZW50cyB3LWZ1bGxcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uc1wiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICAqbmdJZj1cImNvbHVtbi5zb3J0YWJsZVwiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cInRhYmxlLWhlYWRlci1jZWxsIGdhcC0xXCJcbiAgICAgICAgKGNsaWNrKT1cImNvbHVtbi5zb3J0YWJsZSAmJiBjb2x1bW4uaGFuZGxlU29ydENoYW5nZSgpXCJcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbHVtbi5oZWFkZXJcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNvcnQtYnV0dG9uIGZsZXggZmxleC1jb2xcIiAqbmdJZj1cImNvbHVtbi5zb3J0YWJsZVwiPlxuICAgICAgICAgIDxuZy1pY29uXG4gICAgICAgICAgICBjbGFzcz1cInRleHQtZ3JheS02MDAgLW1iLTJcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAndGV4dC1tYWluJzogY29sdW1uLmFjdGl2ZVNvcnQgPT09ICdhc2MnIH1cIlxuICAgICAgICAgICAgbmFtZT1cImljb25vaXJOYXZBcnJvd1VwXCJcbiAgICAgICAgICA+PC9uZy1pY29uPlxuICAgICAgICAgIDxuZy1pY29uXG4gICAgICAgICAgICBjbGFzcz1cInRleHQtZ3JheS02MDBcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAndGV4dC1tYWluJzogY29sdW1uLmFjdGl2ZVNvcnQgPT09ICdkZXNjJyB9XCJcbiAgICAgICAgICAgIG5hbWU9XCJpY29ub2lyTmF2QXJyb3dEb3duXCJcbiAgICAgICAgICA+PC9uZy1pY29uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGRpdiAqbmdJZj1cIiFjb2x1bW4uc29ydGFibGVcIiBjbGFzcz1cInRhYmxlLWhlYWRlci1jZWxsXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb2x1bW4uaGVhZGVyXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICBjbGFzcz1cImNvbnRlbnRzIHRleHQtZ3JheS05MDAgY3Vyc29yLXBvaW50ZXIgZ3JvdXBcIlxuICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zXCJcbiAgICAoY2xpY2spPVwiaGFuZGxlUm93Q2xpY2soaXRlbSlcIlxuICAgIGRhdGEtY3k9XCJ0YWJsZS1yb3dcIlxuICAgIFt0aXRsZV09XCJnZXRJdGVtVGl0bGUoaXRlbSkgfCB0cmFuc2xhdGVcIlxuICA+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJyZWxhdGl2ZSBoLTBcIlxuICAgICAgW25nU3R5bGVdPVwieyAnZ3JpZC1jb2x1bW4nOiAnc3BhbiAnICsgdGhpcy5jb2x1bW5zLmxlbmd0aCB9XCJcbiAgICA+XG4gICAgICA8IS0tIHRoaXMgZWxlbWVudCBpcyBvbmx5IHVzZWQgaW4ga2V5Ym9hcmQgbmF2aWdhdGlvbiAtLT5cbiAgICAgIDxidXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwiYWJzb2x1dGUgaW5zZXQteC0wIGgtWzUwcHhdIGJnLXRyYW5zcGFyZW50IHBvaW50ZXItZXZlbnRzLW5vbmVcIlxuICAgICAgPjwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb2x1bW5zXCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwidGFibGUtcm93LWNlbGwgcHgtMyBweS0xLjUgZmxleCBpdGVtcy1jZW50ZXIgYmctd2hpdGUgdHJhbnNpdGlvbi1jb2xvcnMgZHVyYXRpb24tNzUgdHJ1bmNhdGUgYm9yZGVyLWIgYm9yZGVyLWdyYXktMjAwXCJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICd0ZXh0LXB1cnBsZS1saWdodCBjdXJzb3ItZGVmYXVsdCc6XG4gICAgICAgICAgICAoIWl0ZW0uZXh0cmFzPy5lZGl0ICYmICFpc0RyYWZ0UGFnZSkgfHwgaXRlbS5raW5kICE9PSAnZGF0YXNldCcsXG4gICAgICAgICAgJ2dyb3VwLWhvdmVyOnRleHQtbWFpbiBncm91cC1ob3ZlcjpiZy1ncmF5LTUwJzpcbiAgICAgICAgICAgIChpdGVtLmV4dHJhcz8uZWRpdCB8fCBpc0RyYWZ0UGFnZSkgJiYgaXRlbS5raW5kID09PSAnZGF0YXNldCcsXG4gICAgICAgIH1cIlxuICAgICAgPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb2x1bW4uY2VsbDsgY29udGV4dDogeyAkaW1wbGljaXQ6IGl0ZW0gfVwiXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -57,15 +57,15 @@ export class MaxLinesComponent {
57
57
  this.observer.unobserve(this.container.nativeElement.children[0]);
58
58
  }
59
59
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MaxLinesComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
60
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MaxLinesComponent, isStandalone: true, selector: "gn-ui-max-lines", inputs: { maxLines: "maxLines" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], ngImport: i0, template: "<div\n #container\n class=\"max-lines overflow-hidden transition-[max-height] duration-300 relative\"\n [ngClass]=\"isExpanded ? 'ease-in' : 'ease-out'\"\n [style.maxHeight]=\"maxHeight\"\n>\n <ng-content></ng-content>\n <div\n *ngIf=\"showToggleButton && !isExpanded\"\n class=\"absolute inset-x-0 bottom-0 bg-gradient-to-b from-transparent to-white h-10\"\n ></div>\n</div>\n<div\n *ngIf=\"showToggleButton\"\n (click)=\"toggleDisplay()\"\n class=\"text-secondary cursor-pointer pt-2.5\"\n data-cy=\"readMoreButton\"\n>\n {{ (isExpanded ? 'ui.readLess' : 'ui.readMore') | translate }}\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
60
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MaxLinesComponent, isStandalone: true, selector: "gn-ui-max-lines", inputs: { maxLines: "maxLines" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], ngImport: i0, template: "<div\n #container\n class=\"max-lines overflow-hidden transition-[max-height] duration-300 relative\"\n [ngClass]=\"isExpanded ? 'ease-in' : 'ease-out'\"\n [style.maxHeight]=\"maxHeight\"\n>\n <ng-content></ng-content>\n <div\n *ngIf=\"showToggleButton && !isExpanded\"\n class=\"absolute inset-x-0 bottom-0 bg-gradient-to-b from-transparent to-white h-10\"\n ></div>\n</div>\n<div\n *ngIf=\"showToggleButton\"\n (click)=\"toggleDisplay()\"\n class=\"text-primary cursor-pointer pt-2.5\"\n data-cy=\"readMoreButton\"\n>\n {{ (isExpanded ? 'ui.readLess' : 'ui.readMore') | translate }}\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
61
61
  }
62
62
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MaxLinesComponent, decorators: [{
63
63
  type: Component,
64
- args: [{ selector: 'gn-ui-max-lines', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, TranslateModule], template: "<div\n #container\n class=\"max-lines overflow-hidden transition-[max-height] duration-300 relative\"\n [ngClass]=\"isExpanded ? 'ease-in' : 'ease-out'\"\n [style.maxHeight]=\"maxHeight\"\n>\n <ng-content></ng-content>\n <div\n *ngIf=\"showToggleButton && !isExpanded\"\n class=\"absolute inset-x-0 bottom-0 bg-gradient-to-b from-transparent to-white h-10\"\n ></div>\n</div>\n<div\n *ngIf=\"showToggleButton\"\n (click)=\"toggleDisplay()\"\n class=\"text-secondary cursor-pointer pt-2.5\"\n data-cy=\"readMoreButton\"\n>\n {{ (isExpanded ? 'ui.readLess' : 'ui.readMore') | translate }}\n</div>\n" }]
64
+ args: [{ selector: 'gn-ui-max-lines', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, TranslateModule], template: "<div\n #container\n class=\"max-lines overflow-hidden transition-[max-height] duration-300 relative\"\n [ngClass]=\"isExpanded ? 'ease-in' : 'ease-out'\"\n [style.maxHeight]=\"maxHeight\"\n>\n <ng-content></ng-content>\n <div\n *ngIf=\"showToggleButton && !isExpanded\"\n class=\"absolute inset-x-0 bottom-0 bg-gradient-to-b from-transparent to-white h-10\"\n ></div>\n</div>\n<div\n *ngIf=\"showToggleButton\"\n (click)=\"toggleDisplay()\"\n class=\"text-primary cursor-pointer pt-2.5\"\n data-cy=\"readMoreButton\"\n>\n {{ (isExpanded ? 'ui.readLess' : 'ui.readMore') | translate }}\n</div>\n" }]
65
65
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { maxLines: [{
66
66
  type: Input
67
67
  }], container: [{
68
68
  type: ViewChild,
69
69
  args: ['container']
70
70
  }] } });
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF4LWxpbmVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvbGF5b3V0L3NyYy9saWIvbWF4LWxpbmVzL21heC1saW5lcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2xheW91dC9zcmMvbGliL21heC1saW5lcy9tYXgtbGluZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBRUwsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUE7Ozs7QUFVckQsTUFBTSxPQUFPLGlCQUFpQjtJQVU1QixZQUFvQixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQVRqQyxhQUFRLEdBQUcsQ0FBQyxDQUFBO1FBRXJCLGVBQVUsR0FBRyxLQUFLLENBQUE7UUFDbEIsY0FBUyxHQUFHLEVBQUUsQ0FBQTtRQUNkLHFCQUFnQixHQUFHLEtBQUssQ0FBQTtJQUtxQixDQUFDO0lBRTlDLGVBQWU7UUFDYixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQTtRQUV6QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksY0FBYyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDL0MsU0FBUyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUU7Z0JBQ3JCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFBO1lBQzNCLENBQUMsQ0FBQyxDQUFBO1FBQ0osQ0FBQyxDQUFDLENBQUE7UUFFRixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNqRSxDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFBO1FBQ2xDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFBO0lBQzNCLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQTtRQUNyRCxNQUFNLGNBQWMsR0FBRyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDbkQsTUFBTSxhQUFhLEdBQUcsY0FBYyxDQUFDLHFCQUFxQixFQUFFLENBQUMsTUFBTSxDQUFBO1FBRW5FLElBQUksYUFBYSxFQUFFLENBQUM7WUFDbEIsSUFBSSxhQUFhLEdBQUcsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZFLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUE7Z0JBRTVCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVU7b0JBQzlCLENBQUMsQ0FBQyxHQUFHLGFBQWEsSUFBSTtvQkFDdEIsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUE7WUFDL0QsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUE7Z0JBQzdCLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxhQUFhLElBQUksQ0FBQTtZQUN2QyxDQUFDO1lBQ0QsZ0JBQWdCLENBQUMsWUFBWSxDQUMzQixPQUFPLEVBQ1AsZUFBZSxJQUFJLENBQUMsU0FBUyxvQkFBb0IsQ0FDbEQsQ0FBQTtZQUVELElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUE7UUFDMUIsQ0FBQztJQUNILENBQUM7SUFFRCxhQUFhLENBQUMsT0FBb0I7UUFDaEMsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQ3RELE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUE7UUFDdkQsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLENBQUE7UUFDM0QsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUEsQ0FBQyxnREFBZ0Q7UUFDL0csT0FBTyxNQUFNLENBQUE7SUFDZixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU07UUFDMUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDbkUsQ0FBQzsrR0FqRVUsaUJBQWlCO21HQUFqQixpQkFBaUIscU5DckI5Qix3bUJBb0JBLHlERERZLFlBQVksZ09BQUUsZUFBZTs7NEZBRTVCLGlCQUFpQjtrQkFSN0IsU0FBUzsrQkFDRSxpQkFBaUIsbUJBR1YsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsZUFBZSxDQUFDO3NGQUcvQixRQUFRO3NCQUFoQixLQUFLO2dCQU9rQixTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktbWF4LWxpbmVzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21heC1saW5lcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21heC1saW5lcy5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBNYXhMaW5lc0NvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIG1heExpbmVzID0gNlxuXG4gIGlzRXhwYW5kZWQgPSBmYWxzZVxuICBtYXhIZWlnaHQgPSAnJ1xuICBzaG93VG9nZ2xlQnV0dG9uID0gZmFsc2VcbiAgb2JzZXJ2ZXI6IFJlc2l6ZU9ic2VydmVyXG5cbiAgQFZpZXdDaGlsZCgnY29udGFpbmVyJykgY29udGFpbmVyITogRWxlbWVudFJlZlxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5jYWxjdWxhdGVNYXhIZWlnaHQoKVxuXG4gICAgdGhpcy5vYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigobXV0YXRpb25zKSA9PiB7XG4gICAgICBtdXRhdGlvbnMuZm9yRWFjaCgoKSA9PiB7XG4gICAgICAgIHRoaXMuY2FsY3VsYXRlTWF4SGVpZ2h0KClcbiAgICAgIH0pXG4gICAgfSlcblxuICAgIHRoaXMub2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LmNoaWxkcmVuWzBdKVxuICB9XG5cbiAgdG9nZ2xlRGlzcGxheSgpIHtcbiAgICB0aGlzLmlzRXhwYW5kZWQgPSAhdGhpcy5pc0V4cGFuZGVkXG4gICAgdGhpcy5jYWxjdWxhdGVNYXhIZWlnaHQoKVxuICB9XG5cbiAgY2FsY3VsYXRlTWF4SGVpZ2h0KCkge1xuICAgIGNvbnN0IGNvbnRhaW5lckVsZW1lbnQgPSB0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50XG4gICAgY29uc3QgY29udGVudEVsZW1lbnQgPSBjb250YWluZXJFbGVtZW50LmNoaWxkcmVuWzBdXG4gICAgY29uc3QgY29udGVudEhlaWdodCA9IGNvbnRlbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodFxuXG4gICAgaWYgKGNvbnRlbnRIZWlnaHQpIHtcbiAgICAgIGlmIChjb250ZW50SGVpZ2h0ID4gdGhpcy5tYXhMaW5lcyAqIHRoaXMuZ2V0TGluZUhlaWdodChjb250ZW50RWxlbWVudCkpIHtcbiAgICAgICAgdGhpcy5zaG93VG9nZ2xlQnV0dG9uID0gdHJ1ZVxuXG4gICAgICAgIHRoaXMubWF4SGVpZ2h0ID0gdGhpcy5pc0V4cGFuZGVkXG4gICAgICAgICAgPyBgJHtjb250ZW50SGVpZ2h0fXB4YFxuICAgICAgICAgIDogYCR7dGhpcy5tYXhMaW5lcyAqIHRoaXMuZ2V0TGluZUhlaWdodChjb250ZW50RWxlbWVudCl9cHhgXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNob3dUb2dnbGVCdXR0b24gPSBmYWxzZVxuICAgICAgICB0aGlzLm1heEhlaWdodCA9IGAke2NvbnRlbnRIZWlnaHR9cHhgXG4gICAgICB9XG4gICAgICBjb250YWluZXJFbGVtZW50LnNldEF0dHJpYnV0ZShcbiAgICAgICAgJ3N0eWxlJyxcbiAgICAgICAgYG1heC1oZWlnaHQ6ICR7dGhpcy5tYXhIZWlnaHR9OyBvdmVyZmxvdzogaGlkZGVuYFxuICAgICAgKVxuXG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKClcbiAgICB9XG4gIH1cblxuICBnZXRMaW5lSGVpZ2h0KGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogbnVtYmVyIHtcbiAgICBjb25zdCBjb21wdXRlZFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudClcbiAgICBjb25zdCBsaW5lSGVpZ2h0ID0gcGFyc2VGbG9hdChjb21wdXRlZFN0eWxlLmxpbmVIZWlnaHQpXG4gICAgY29uc3QgZm9udFNpemUgPSBwYXJzZUZsb2F0KGNvbXB1dGVkU3R5bGUuZm9udFNpemUgfHwgJzE0JylcbiAgICBjb25zdCByZXN1bHQgPSBpc05hTihsaW5lSGVpZ2h0KSA/IGZvbnRTaXplICogMS4yIDogbGluZUhlaWdodCAvLyBVc2UgYSBkZWZhdWx0IGlmIGxpbmUgaGVpZ2h0IGlzIG5vdCBzcGVjaWZpZWRcbiAgICByZXR1cm4gcmVzdWx0XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMub2JzZXJ2ZXIpIHJldHVyblxuICAgIHRoaXMub2JzZXJ2ZXIudW5vYnNlcnZlKHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5bMF0pXG4gIH1cbn1cbiIsIjxkaXZcbiAgI2NvbnRhaW5lclxuICBjbGFzcz1cIm1heC1saW5lcyBvdmVyZmxvdy1oaWRkZW4gdHJhbnNpdGlvbi1bbWF4LWhlaWdodF0gZHVyYXRpb24tMzAwIHJlbGF0aXZlXCJcbiAgW25nQ2xhc3NdPVwiaXNFeHBhbmRlZCA/ICdlYXNlLWluJyA6ICdlYXNlLW91dCdcIlxuICBbc3R5bGUubWF4SGVpZ2h0XT1cIm1heEhlaWdodFwiXG4+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPGRpdlxuICAgICpuZ0lmPVwic2hvd1RvZ2dsZUJ1dHRvbiAmJiAhaXNFeHBhbmRlZFwiXG4gICAgY2xhc3M9XCJhYnNvbHV0ZSBpbnNldC14LTAgYm90dG9tLTAgYmctZ3JhZGllbnQtdG8tYiBmcm9tLXRyYW5zcGFyZW50IHRvLXdoaXRlIGgtMTBcIlxuICA+PC9kaXY+XG48L2Rpdj5cbjxkaXZcbiAgKm5nSWY9XCJzaG93VG9nZ2xlQnV0dG9uXCJcbiAgKGNsaWNrKT1cInRvZ2dsZURpc3BsYXkoKVwiXG4gIGNsYXNzPVwidGV4dC1zZWNvbmRhcnkgY3Vyc29yLXBvaW50ZXIgcHQtMi41XCJcbiAgZGF0YS1jeT1cInJlYWRNb3JlQnV0dG9uXCJcbj5cbiAge3sgKGlzRXhwYW5kZWQgPyAndWkucmVhZExlc3MnIDogJ3VpLnJlYWRNb3JlJykgfCB0cmFuc2xhdGUgfX1cbjwvZGl2PlxuIl19
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF4LWxpbmVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvbGF5b3V0L3NyYy9saWIvbWF4LWxpbmVzL21heC1saW5lcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2xheW91dC9zcmMvbGliL21heC1saW5lcy9tYXgtbGluZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBRUwsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUE7Ozs7QUFVckQsTUFBTSxPQUFPLGlCQUFpQjtJQVU1QixZQUFvQixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQVRqQyxhQUFRLEdBQUcsQ0FBQyxDQUFBO1FBRXJCLGVBQVUsR0FBRyxLQUFLLENBQUE7UUFDbEIsY0FBUyxHQUFHLEVBQUUsQ0FBQTtRQUNkLHFCQUFnQixHQUFHLEtBQUssQ0FBQTtJQUtxQixDQUFDO0lBRTlDLGVBQWU7UUFDYixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQTtRQUV6QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksY0FBYyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDL0MsU0FBUyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUU7Z0JBQ3JCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFBO1lBQzNCLENBQUMsQ0FBQyxDQUFBO1FBQ0osQ0FBQyxDQUFDLENBQUE7UUFFRixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNqRSxDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFBO1FBQ2xDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFBO0lBQzNCLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQTtRQUNyRCxNQUFNLGNBQWMsR0FBRyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDbkQsTUFBTSxhQUFhLEdBQUcsY0FBYyxDQUFDLHFCQUFxQixFQUFFLENBQUMsTUFBTSxDQUFBO1FBRW5FLElBQUksYUFBYSxFQUFFLENBQUM7WUFDbEIsSUFBSSxhQUFhLEdBQUcsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZFLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUE7Z0JBRTVCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVU7b0JBQzlCLENBQUMsQ0FBQyxHQUFHLGFBQWEsSUFBSTtvQkFDdEIsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUE7WUFDL0QsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUE7Z0JBQzdCLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxhQUFhLElBQUksQ0FBQTtZQUN2QyxDQUFDO1lBQ0QsZ0JBQWdCLENBQUMsWUFBWSxDQUMzQixPQUFPLEVBQ1AsZUFBZSxJQUFJLENBQUMsU0FBUyxvQkFBb0IsQ0FDbEQsQ0FBQTtZQUVELElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUE7UUFDMUIsQ0FBQztJQUNILENBQUM7SUFFRCxhQUFhLENBQUMsT0FBb0I7UUFDaEMsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQ3RELE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUE7UUFDdkQsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLENBQUE7UUFDM0QsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUEsQ0FBQyxnREFBZ0Q7UUFDL0csT0FBTyxNQUFNLENBQUE7SUFDZixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU07UUFDMUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDbkUsQ0FBQzsrR0FqRVUsaUJBQWlCO21HQUFqQixpQkFBaUIscU5DckI5QixzbUJBb0JBLHlERERZLFlBQVksZ09BQUUsZUFBZTs7NEZBRTVCLGlCQUFpQjtrQkFSN0IsU0FBUzsrQkFDRSxpQkFBaUIsbUJBR1YsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsZUFBZSxDQUFDO3NGQUcvQixRQUFRO3NCQUFoQixLQUFLO2dCQU9rQixTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktbWF4LWxpbmVzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21heC1saW5lcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21heC1saW5lcy5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBNYXhMaW5lc0NvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIG1heExpbmVzID0gNlxuXG4gIGlzRXhwYW5kZWQgPSBmYWxzZVxuICBtYXhIZWlnaHQgPSAnJ1xuICBzaG93VG9nZ2xlQnV0dG9uID0gZmFsc2VcbiAgb2JzZXJ2ZXI6IFJlc2l6ZU9ic2VydmVyXG5cbiAgQFZpZXdDaGlsZCgnY29udGFpbmVyJykgY29udGFpbmVyITogRWxlbWVudFJlZlxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5jYWxjdWxhdGVNYXhIZWlnaHQoKVxuXG4gICAgdGhpcy5vYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigobXV0YXRpb25zKSA9PiB7XG4gICAgICBtdXRhdGlvbnMuZm9yRWFjaCgoKSA9PiB7XG4gICAgICAgIHRoaXMuY2FsY3VsYXRlTWF4SGVpZ2h0KClcbiAgICAgIH0pXG4gICAgfSlcblxuICAgIHRoaXMub2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LmNoaWxkcmVuWzBdKVxuICB9XG5cbiAgdG9nZ2xlRGlzcGxheSgpIHtcbiAgICB0aGlzLmlzRXhwYW5kZWQgPSAhdGhpcy5pc0V4cGFuZGVkXG4gICAgdGhpcy5jYWxjdWxhdGVNYXhIZWlnaHQoKVxuICB9XG5cbiAgY2FsY3VsYXRlTWF4SGVpZ2h0KCkge1xuICAgIGNvbnN0IGNvbnRhaW5lckVsZW1lbnQgPSB0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50XG4gICAgY29uc3QgY29udGVudEVsZW1lbnQgPSBjb250YWluZXJFbGVtZW50LmNoaWxkcmVuWzBdXG4gICAgY29uc3QgY29udGVudEhlaWdodCA9IGNvbnRlbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodFxuXG4gICAgaWYgKGNvbnRlbnRIZWlnaHQpIHtcbiAgICAgIGlmIChjb250ZW50SGVpZ2h0ID4gdGhpcy5tYXhMaW5lcyAqIHRoaXMuZ2V0TGluZUhlaWdodChjb250ZW50RWxlbWVudCkpIHtcbiAgICAgICAgdGhpcy5zaG93VG9nZ2xlQnV0dG9uID0gdHJ1ZVxuXG4gICAgICAgIHRoaXMubWF4SGVpZ2h0ID0gdGhpcy5pc0V4cGFuZGVkXG4gICAgICAgICAgPyBgJHtjb250ZW50SGVpZ2h0fXB4YFxuICAgICAgICAgIDogYCR7dGhpcy5tYXhMaW5lcyAqIHRoaXMuZ2V0TGluZUhlaWdodChjb250ZW50RWxlbWVudCl9cHhgXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNob3dUb2dnbGVCdXR0b24gPSBmYWxzZVxuICAgICAgICB0aGlzLm1heEhlaWdodCA9IGAke2NvbnRlbnRIZWlnaHR9cHhgXG4gICAgICB9XG4gICAgICBjb250YWluZXJFbGVtZW50LnNldEF0dHJpYnV0ZShcbiAgICAgICAgJ3N0eWxlJyxcbiAgICAgICAgYG1heC1oZWlnaHQ6ICR7dGhpcy5tYXhIZWlnaHR9OyBvdmVyZmxvdzogaGlkZGVuYFxuICAgICAgKVxuXG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKClcbiAgICB9XG4gIH1cblxuICBnZXRMaW5lSGVpZ2h0KGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogbnVtYmVyIHtcbiAgICBjb25zdCBjb21wdXRlZFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudClcbiAgICBjb25zdCBsaW5lSGVpZ2h0ID0gcGFyc2VGbG9hdChjb21wdXRlZFN0eWxlLmxpbmVIZWlnaHQpXG4gICAgY29uc3QgZm9udFNpemUgPSBwYXJzZUZsb2F0KGNvbXB1dGVkU3R5bGUuZm9udFNpemUgfHwgJzE0JylcbiAgICBjb25zdCByZXN1bHQgPSBpc05hTihsaW5lSGVpZ2h0KSA/IGZvbnRTaXplICogMS4yIDogbGluZUhlaWdodCAvLyBVc2UgYSBkZWZhdWx0IGlmIGxpbmUgaGVpZ2h0IGlzIG5vdCBzcGVjaWZpZWRcbiAgICByZXR1cm4gcmVzdWx0XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMub2JzZXJ2ZXIpIHJldHVyblxuICAgIHRoaXMub2JzZXJ2ZXIudW5vYnNlcnZlKHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5bMF0pXG4gIH1cbn1cbiIsIjxkaXZcbiAgI2NvbnRhaW5lclxuICBjbGFzcz1cIm1heC1saW5lcyBvdmVyZmxvdy1oaWRkZW4gdHJhbnNpdGlvbi1bbWF4LWhlaWdodF0gZHVyYXRpb24tMzAwIHJlbGF0aXZlXCJcbiAgW25nQ2xhc3NdPVwiaXNFeHBhbmRlZCA/ICdlYXNlLWluJyA6ICdlYXNlLW91dCdcIlxuICBbc3R5bGUubWF4SGVpZ2h0XT1cIm1heEhlaWdodFwiXG4+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPGRpdlxuICAgICpuZ0lmPVwic2hvd1RvZ2dsZUJ1dHRvbiAmJiAhaXNFeHBhbmRlZFwiXG4gICAgY2xhc3M9XCJhYnNvbHV0ZSBpbnNldC14LTAgYm90dG9tLTAgYmctZ3JhZGllbnQtdG8tYiBmcm9tLXRyYW5zcGFyZW50IHRvLXdoaXRlIGgtMTBcIlxuICA+PC9kaXY+XG48L2Rpdj5cbjxkaXZcbiAgKm5nSWY9XCJzaG93VG9nZ2xlQnV0dG9uXCJcbiAgKGNsaWNrKT1cInRvZ2dsZURpc3BsYXkoKVwiXG4gIGNsYXNzPVwidGV4dC1wcmltYXJ5IGN1cnNvci1wb2ludGVyIHB0LTIuNVwiXG4gIGRhdGEtY3k9XCJyZWFkTW9yZUJ1dHRvblwiXG4+XG4gIHt7IChpc0V4cGFuZGVkID8gJ3VpLnJlYWRMZXNzJyA6ICd1aS5yZWFkTW9yZScpIHwgdHJhbnNsYXRlIH19XG48L2Rpdj5cbiJdfQ==
@@ -1,26 +1,26 @@
1
1
  import { Component, Input } from '@angular/core';
2
2
  import { NgIconComponent, provideIcons, provideNgIconsConfig, } from '@ng-icons/core';
3
- import { matArrowBack, matArrowForward, } from '@ng-icons/material-icons/baseline';
3
+ import { matArrowBackIos, matArrowForwardIos, } from '@ng-icons/material-icons/baseline';
4
4
  import { ButtonComponent } from '../../../../../../libs/ui/inputs/src';
5
5
  import * as i0 from "@angular/core";
6
6
  export class PreviousNextButtonsComponent {
7
7
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PreviousNextButtonsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8
8
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: PreviousNextButtonsComponent, isStandalone: true, selector: "gn-ui-previous-next-buttons", inputs: { listComponent: "listComponent" }, providers: [
9
- provideIcons({ matArrowForward, matArrowBack }),
9
+ provideIcons({ matArrowBackIos, matArrowForwardIos }),
10
10
  provideNgIconsConfig({
11
11
  size: '0.875em',
12
12
  }),
13
- ], ngImport: i0, template: "<div class=\"flex flex-row gap-x-4 items-center\">\n <gn-ui-button\n data-test=\"previousButton\"\n type=\"outline\"\n [disabled]=\"listComponent.isFirstPage\"\n (buttonClick)=\"listComponent.goToPrevPage()\"\n >\n <ng-icon name=\"matArrowBack\"></ng-icon>\n </gn-ui-button>\n <gn-ui-button\n data-test=\"nextButton\"\n type=\"outline\"\n [disabled]=\"listComponent.isLastPage\"\n (buttonClick)=\"listComponent.goToNextPage()\"\n >\n <ng-icon name=\"matArrowForward\"></ng-icon>\n </gn-ui-button>\n</div>\n", styles: [":host{--gn-ui-button-rounded: 100%;--gn-ui-button-width: 8px;--gn-ui-button-height: 8px;--gn-ui-button-padding: 12px}\n"], dependencies: [{ 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"] }] }); }
13
+ ], ngImport: i0, template: "<div class=\"flex flex-row gap-x-1 items-center\">\n <gn-ui-button\n data-test=\"previousButton\"\n type=\"light\"\n [extraClass]=\"\n 'w-10 h-8 px-2 py-1 rounded-lg ' +\n (!listComponent.isFirstPage\n ? 'border border-gray-300'\n : 'border border-gray-100')\n \"\n [disabled]=\"listComponent.isFirstPage\"\n (buttonClick)=\"listComponent.goToPrevPage()\"\n >\n <ng-icon name=\"matArrowBackIos\"></ng-icon>\n </gn-ui-button>\n <gn-ui-button\n data-test=\"nextButton\"\n type=\"light\"\n [extraClass]=\"\n 'w-10 h-8 px-2 py-1 rounded-lg ' +\n (!listComponent.isLastPage\n ? 'border border-gray-300'\n : 'border border-gray-100')\n \"\n [disabled]=\"listComponent.isLastPage\"\n (buttonClick)=\"listComponent.goToNextPage()\"\n >\n <ng-icon name=\"matArrowForwardIos\"></ng-icon>\n </gn-ui-button>\n</div>\n", styles: [":host{--gn-ui-button-rounded: 100%;--gn-ui-button-width: 8px;--gn-ui-button-height: 8px;--gn-ui-button-padding: 12px}\n"], dependencies: [{ 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"] }] }); }
14
14
  }
15
15
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PreviousNextButtonsComponent, decorators: [{
16
16
  type: Component,
17
17
  args: [{ selector: 'gn-ui-previous-next-buttons', standalone: true, imports: [ButtonComponent, NgIconComponent], providers: [
18
- provideIcons({ matArrowForward, matArrowBack }),
18
+ provideIcons({ matArrowBackIos, matArrowForwardIos }),
19
19
  provideNgIconsConfig({
20
20
  size: '0.875em',
21
21
  }),
22
- ], template: "<div class=\"flex flex-row gap-x-4 items-center\">\n <gn-ui-button\n data-test=\"previousButton\"\n type=\"outline\"\n [disabled]=\"listComponent.isFirstPage\"\n (buttonClick)=\"listComponent.goToPrevPage()\"\n >\n <ng-icon name=\"matArrowBack\"></ng-icon>\n </gn-ui-button>\n <gn-ui-button\n data-test=\"nextButton\"\n type=\"outline\"\n [disabled]=\"listComponent.isLastPage\"\n (buttonClick)=\"listComponent.goToNextPage()\"\n >\n <ng-icon name=\"matArrowForward\"></ng-icon>\n </gn-ui-button>\n</div>\n", styles: [":host{--gn-ui-button-rounded: 100%;--gn-ui-button-width: 8px;--gn-ui-button-height: 8px;--gn-ui-button-padding: 12px}\n"] }]
22
+ ], template: "<div class=\"flex flex-row gap-x-1 items-center\">\n <gn-ui-button\n data-test=\"previousButton\"\n type=\"light\"\n [extraClass]=\"\n 'w-10 h-8 px-2 py-1 rounded-lg ' +\n (!listComponent.isFirstPage\n ? 'border border-gray-300'\n : 'border border-gray-100')\n \"\n [disabled]=\"listComponent.isFirstPage\"\n (buttonClick)=\"listComponent.goToPrevPage()\"\n >\n <ng-icon name=\"matArrowBackIos\"></ng-icon>\n </gn-ui-button>\n <gn-ui-button\n data-test=\"nextButton\"\n type=\"light\"\n [extraClass]=\"\n 'w-10 h-8 px-2 py-1 rounded-lg ' +\n (!listComponent.isLastPage\n ? 'border border-gray-300'\n : 'border border-gray-100')\n \"\n [disabled]=\"listComponent.isLastPage\"\n (buttonClick)=\"listComponent.goToNextPage()\"\n >\n <ng-icon name=\"matArrowForwardIos\"></ng-icon>\n </gn-ui-button>\n</div>\n", styles: [":host{--gn-ui-button-rounded: 100%;--gn-ui-button-width: 8px;--gn-ui-button-height: 8px;--gn-ui-button-padding: 12px}\n"] }]
23
23
  }], propDecorators: { listComponent: [{
24
24
  type: Input
25
25
  }] } });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJldmlvdXMtbmV4dC1idXR0b25zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvbGF5b3V0L3NyYy9saWIvcHJldmlvdXMtbmV4dC1idXR0b25zL3ByZXZpb3VzLW5leHQtYnV0dG9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2xheW91dC9zcmMvbGliL3ByZXZpb3VzLW5leHQtYnV0dG9ucy9wcmV2aW91cy1uZXh0LWJ1dHRvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDaEQsT0FBTyxFQUNMLGVBQWUsRUFDZixZQUFZLEVBQ1osb0JBQW9CLEdBQ3JCLE1BQU0sZ0JBQWdCLENBQUE7QUFDdkIsT0FBTyxFQUNMLFlBQVksRUFDWixlQUFlLEdBQ2hCLE1BQU0sbUNBQW1DLENBQUE7QUFFMUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFBOztBQWV0RSxNQUFNLE9BQU8sNEJBQTRCOytHQUE1Qiw0QkFBNEI7bUdBQTVCLDRCQUE0QixzSEFQNUI7WUFDVCxZQUFZLENBQUMsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLENBQUM7WUFDL0Msb0JBQW9CLENBQUM7Z0JBQ25CLElBQUksRUFBRSxTQUFTO2FBQ2hCLENBQUM7U0FDSCwwQkN4QkgsZ2lCQWtCQSxpTERBWSxlQUFlLCtIQUFFLGVBQWU7OzRGQVEvQiw0QkFBNEI7a0JBYnhDLFNBQVM7K0JBQ0UsNkJBQTZCLGNBRzNCLElBQUksV0FDUCxDQUFDLGVBQWUsRUFBRSxlQUFlLENBQUMsYUFDaEM7d0JBQ1QsWUFBWSxDQUFDLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxDQUFDO3dCQUMvQyxvQkFBb0IsQ0FBQzs0QkFDbkIsSUFBSSxFQUFFLFNBQVM7eUJBQ2hCLENBQUM7cUJBQ0g7OEJBR1EsYUFBYTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHtcbiAgTmdJY29uQ29tcG9uZW50LFxuICBwcm92aWRlSWNvbnMsXG4gIHByb3ZpZGVOZ0ljb25zQ29uZmlnLFxufSBmcm9tICdAbmctaWNvbnMvY29yZSdcbmltcG9ydCB7XG4gIG1hdEFycm93QmFjayxcbiAgbWF0QXJyb3dGb3J3YXJkLFxufSBmcm9tICdAbmctaWNvbnMvbWF0ZXJpYWwtaWNvbnMvYmFzZWxpbmUnXG5pbXBvcnQgeyBQYWdpbmFibGUgfSBmcm9tICcuLi9wYWdpbmFibGUuaW50ZXJmYWNlJ1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9pbnB1dHMvc3JjJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1wcmV2aW91cy1uZXh0LWJ1dHRvbnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJldmlvdXMtbmV4dC1idXR0b25zLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcHJldmlvdXMtbmV4dC1idXR0b25zLmNvbXBvbmVudC5jc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0J1dHRvbkNvbXBvbmVudCwgTmdJY29uQ29tcG9uZW50XSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgcHJvdmlkZUljb25zKHsgbWF0QXJyb3dGb3J3YXJkLCBtYXRBcnJvd0JhY2sgfSksXG4gICAgcHJvdmlkZU5nSWNvbnNDb25maWcoe1xuICAgICAgc2l6ZTogJzAuODc1ZW0nLFxuICAgIH0pLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBQcmV2aW91c05leHRCdXR0b25zQ29tcG9uZW50IHtcbiAgQElucHV0KCkgbGlzdENvbXBvbmVudDogUGFnaW5hYmxlXG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBnYXAteC00IGl0ZW1zLWNlbnRlclwiPlxuICA8Z24tdWktYnV0dG9uXG4gICAgZGF0YS10ZXN0PVwicHJldmlvdXNCdXR0b25cIlxuICAgIHR5cGU9XCJvdXRsaW5lXCJcbiAgICBbZGlzYWJsZWRdPVwibGlzdENvbXBvbmVudC5pc0ZpcnN0UGFnZVwiXG4gICAgKGJ1dHRvbkNsaWNrKT1cImxpc3RDb21wb25lbnQuZ29Ub1ByZXZQYWdlKClcIlxuICA+XG4gICAgPG5nLWljb24gbmFtZT1cIm1hdEFycm93QmFja1wiPjwvbmctaWNvbj5cbiAgPC9nbi11aS1idXR0b24+XG4gIDxnbi11aS1idXR0b25cbiAgICBkYXRhLXRlc3Q9XCJuZXh0QnV0dG9uXCJcbiAgICB0eXBlPVwib3V0bGluZVwiXG4gICAgW2Rpc2FibGVkXT1cImxpc3RDb21wb25lbnQuaXNMYXN0UGFnZVwiXG4gICAgKGJ1dHRvbkNsaWNrKT1cImxpc3RDb21wb25lbnQuZ29Ub05leHRQYWdlKClcIlxuICA+XG4gICAgPG5nLWljb24gbmFtZT1cIm1hdEFycm93Rm9yd2FyZFwiPjwvbmctaWNvbj5cbiAgPC9nbi11aS1idXR0b24+XG48L2Rpdj5cbiJdfQ==
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJldmlvdXMtbmV4dC1idXR0b25zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvbGF5b3V0L3NyYy9saWIvcHJldmlvdXMtbmV4dC1idXR0b25zL3ByZXZpb3VzLW5leHQtYnV0dG9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2xheW91dC9zcmMvbGliL3ByZXZpb3VzLW5leHQtYnV0dG9ucy9wcmV2aW91cy1uZXh0LWJ1dHRvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDaEQsT0FBTyxFQUNMLGVBQWUsRUFDZixZQUFZLEVBQ1osb0JBQW9CLEdBQ3JCLE1BQU0sZ0JBQWdCLENBQUE7QUFDdkIsT0FBTyxFQUNMLGVBQWUsRUFDZixrQkFBa0IsR0FDbkIsTUFBTSxtQ0FBbUMsQ0FBQTtBQUUxQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUE7O0FBZXRFLE1BQU0sT0FBTyw0QkFBNEI7K0dBQTVCLDRCQUE0QjttR0FBNUIsNEJBQTRCLHNIQVA1QjtZQUNULFlBQVksQ0FBQyxFQUFFLGVBQWUsRUFBRSxrQkFBa0IsRUFBRSxDQUFDO1lBQ3JELG9CQUFvQixDQUFDO2dCQUNuQixJQUFJLEVBQUUsU0FBUzthQUNoQixDQUFDO1NBQ0gsMEJDeEJILHU0QkE4QkEsaUxEWlksZUFBZSwrSEFBRSxlQUFlOzs0RkFRL0IsNEJBQTRCO2tCQWJ4QyxTQUFTOytCQUNFLDZCQUE2QixjQUczQixJQUFJLFdBQ1AsQ0FBQyxlQUFlLEVBQUUsZUFBZSxDQUFDLGFBQ2hDO3dCQUNULFlBQVksQ0FBQyxFQUFFLGVBQWUsRUFBRSxrQkFBa0IsRUFBRSxDQUFDO3dCQUNyRCxvQkFBb0IsQ0FBQzs0QkFDbkIsSUFBSSxFQUFFLFNBQVM7eUJBQ2hCLENBQUM7cUJBQ0g7OEJBR1EsYUFBYTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHtcbiAgTmdJY29uQ29tcG9uZW50LFxuICBwcm92aWRlSWNvbnMsXG4gIHByb3ZpZGVOZ0ljb25zQ29uZmlnLFxufSBmcm9tICdAbmctaWNvbnMvY29yZSdcbmltcG9ydCB7XG4gIG1hdEFycm93QmFja0lvcyxcbiAgbWF0QXJyb3dGb3J3YXJkSW9zLFxufSBmcm9tICdAbmctaWNvbnMvbWF0ZXJpYWwtaWNvbnMvYmFzZWxpbmUnXG5pbXBvcnQgeyBQYWdpbmFibGUgfSBmcm9tICcuLi9wYWdpbmFibGUuaW50ZXJmYWNlJ1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9pbnB1dHMvc3JjJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1wcmV2aW91cy1uZXh0LWJ1dHRvbnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJldmlvdXMtbmV4dC1idXR0b25zLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcHJldmlvdXMtbmV4dC1idXR0b25zLmNvbXBvbmVudC5jc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0J1dHRvbkNvbXBvbmVudCwgTmdJY29uQ29tcG9uZW50XSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgcHJvdmlkZUljb25zKHsgbWF0QXJyb3dCYWNrSW9zLCBtYXRBcnJvd0ZvcndhcmRJb3MgfSksXG4gICAgcHJvdmlkZU5nSWNvbnNDb25maWcoe1xuICAgICAgc2l6ZTogJzAuODc1ZW0nLFxuICAgIH0pLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBQcmV2aW91c05leHRCdXR0b25zQ29tcG9uZW50IHtcbiAgQElucHV0KCkgbGlzdENvbXBvbmVudDogUGFnaW5hYmxlXG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBnYXAteC0xIGl0ZW1zLWNlbnRlclwiPlxuICA8Z24tdWktYnV0dG9uXG4gICAgZGF0YS10ZXN0PVwicHJldmlvdXNCdXR0b25cIlxuICAgIHR5cGU9XCJsaWdodFwiXG4gICAgW2V4dHJhQ2xhc3NdPVwiXG4gICAgICAndy0xMCBoLTggcHgtMiBweS0xIHJvdW5kZWQtbGcgJyArXG4gICAgICAoIWxpc3RDb21wb25lbnQuaXNGaXJzdFBhZ2VcbiAgICAgICAgPyAnYm9yZGVyIGJvcmRlci1ncmF5LTMwMCdcbiAgICAgICAgOiAnYm9yZGVyIGJvcmRlci1ncmF5LTEwMCcpXG4gICAgXCJcbiAgICBbZGlzYWJsZWRdPVwibGlzdENvbXBvbmVudC5pc0ZpcnN0UGFnZVwiXG4gICAgKGJ1dHRvbkNsaWNrKT1cImxpc3RDb21wb25lbnQuZ29Ub1ByZXZQYWdlKClcIlxuICA+XG4gICAgPG5nLWljb24gbmFtZT1cIm1hdEFycm93QmFja0lvc1wiPjwvbmctaWNvbj5cbiAgPC9nbi11aS1idXR0b24+XG4gIDxnbi11aS1idXR0b25cbiAgICBkYXRhLXRlc3Q9XCJuZXh0QnV0dG9uXCJcbiAgICB0eXBlPVwibGlnaHRcIlxuICAgIFtleHRyYUNsYXNzXT1cIlxuICAgICAgJ3ctMTAgaC04IHB4LTIgcHktMSByb3VuZGVkLWxnICcgK1xuICAgICAgKCFsaXN0Q29tcG9uZW50LmlzTGFzdFBhZ2VcbiAgICAgICAgPyAnYm9yZGVyIGJvcmRlci1ncmF5LTMwMCdcbiAgICAgICAgOiAnYm9yZGVyIGJvcmRlci1ncmF5LTEwMCcpXG4gICAgXCJcbiAgICBbZGlzYWJsZWRdPVwibGlzdENvbXBvbmVudC5pc0xhc3RQYWdlXCJcbiAgICAoYnV0dG9uQ2xpY2spPVwibGlzdENvbXBvbmVudC5nb1RvTmV4dFBhZ2UoKVwiXG4gID5cbiAgICA8bmctaWNvbiBuYW1lPVwibWF0QXJyb3dGb3J3YXJkSW9zXCI+PC9uZy1pY29uPlxuICA8L2duLXVpLWJ1dHRvbj5cbjwvZGl2PlxuIl19
@@ -0,0 +1,107 @@
1
+ import { ChangeDetectorRef, Component, ElementRef, Input, ViewChild, NgZone, } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { provideIcons, NgIconComponent } from '@ng-icons/core';
4
+ import { iconoirExpand, iconoirReduce } from '@ng-icons/iconoir';
5
+ import { TranslateModule } from '@ngx-translate/core';
6
+ import { MatButtonModule } from '@angular/material/button';
7
+ import { OverlayModule, ViewportRuler, } from '@angular/cdk/overlay';
8
+ import { ButtonComponent } from '../../../../../../libs/ui/inputs/src';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "@angular/cdk/overlay";
11
+ import * as i2 from "@angular/common";
12
+ export class TruncatedTextComponent {
13
+ constructor(cd, ngZone, viewportRuler) {
14
+ this.cd = cd;
15
+ this.ngZone = ngZone;
16
+ this.viewportRuler = viewportRuler;
17
+ this.text = '';
18
+ this.extraClass = '';
19
+ this.isTextTruncated = false;
20
+ this.isOpen = false;
21
+ this.overlayPosition = {
22
+ originX: 'end',
23
+ originY: 'top',
24
+ overlayX: 'end',
25
+ overlayY: 'top',
26
+ };
27
+ this.resizeObserver = new ResizeObserver(() => {
28
+ this.ngZone.run(() => this.checkTextTruncation());
29
+ });
30
+ this.mutationObserver = new MutationObserver(() => {
31
+ this.ngZone.run(() => {
32
+ this.checkTextTruncation();
33
+ this.close();
34
+ });
35
+ });
36
+ this.viewportSubscription = this.viewportRuler.change().subscribe(() => {
37
+ if (this.isOpen) {
38
+ this.updateOverlayPosition();
39
+ }
40
+ });
41
+ }
42
+ ngAfterViewInit() {
43
+ const element = this.textElement.nativeElement;
44
+ this.resizeObserver?.observe(element);
45
+ this.mutationObserver?.observe(element.parentElement, {
46
+ attributes: true,
47
+ childList: true,
48
+ subtree: true,
49
+ });
50
+ this.checkTextTruncation();
51
+ }
52
+ ngOnDestroy() {
53
+ this.resizeObserver?.disconnect();
54
+ this.mutationObserver?.disconnect();
55
+ this.viewportSubscription?.unsubscribe();
56
+ this.close();
57
+ }
58
+ toggleOverlay() {
59
+ this.isOpen = !this.isOpen;
60
+ if (this.isOpen) {
61
+ this.updateOverlayPosition();
62
+ }
63
+ }
64
+ updateOverlayPosition() {
65
+ const element = this.textElement.nativeElement;
66
+ const rect = element.getBoundingClientRect();
67
+ const viewportWidth = this.viewportRuler.getViewportSize().width;
68
+ const isMobile = viewportWidth < 640;
69
+ const overlayWidth = isMobile ? 190 : 320;
70
+ const isNearLeftEdge = rect.left < overlayWidth;
71
+ this.overlayPosition = {
72
+ originX: isNearLeftEdge ? 'start' : 'end',
73
+ originY: 'top',
74
+ overlayX: isNearLeftEdge ? 'start' : 'end',
75
+ overlayY: 'top',
76
+ };
77
+ }
78
+ close() {
79
+ this.isOpen = false;
80
+ }
81
+ checkTextTruncation() {
82
+ const element = this.textElement.nativeElement;
83
+ this.isTextTruncated = element.scrollWidth > element.clientWidth;
84
+ this.cd.detectChanges();
85
+ }
86
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TruncatedTextComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i1.ViewportRuler }], target: i0.ɵɵFactoryTarget.Component }); }
87
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TruncatedTextComponent, isStandalone: true, selector: "gn-ui-truncated-text", inputs: { text: "text", extraClass: "extraClass" }, providers: [provideIcons({ iconoirExpand, iconoirReduce })], viewQueries: [{ propertyName: "textElement", first: true, predicate: ["textElement"], descendants: true }], ngImport: i0, template: "<div\n class=\"flex items-center justify-between w-full gap-2\"\n cdkOverlayOrigin\n [class]=\"extraClass\"\n #trigger=\"cdkOverlayOrigin\"\n>\n <span #textElement class=\"truncate\">\n {{ text }}\n </span>\n <gn-ui-button\n *ngIf=\"isTextTruncated\"\n type=\"outline\"\n extraClass=\"w-10 h-8 border rounded-lg\"\n (buttonClick)=\"toggleOverlay()\"\n >\n <ng-icon name=\"iconoirExpand\" size=\"24\"> </ng-icon>\n </gn-ui-button>\n\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"isOpen\"\n [cdkConnectedOverlayPositions]=\"[overlayPosition]\"\n cdkConnectedOverlayPush\n [cdkConnectedOverlayWidth]=\"'auto'\"\n [cdkConnectedOverlayFlexibleDimensions]=\"true\"\n [cdkConnectedOverlayGrowAfterOpen]=\"true\"\n (detach)=\"close()\"\n >\n <div class=\"bg-white shadow-lg border border-gray-300 flex\">\n <div class=\"sm:w-64 xs:w-32\">\n <p class=\"m-2\">{{ text }}</p>\n </div>\n <gn-ui-button\n class=\"m-2 flex-shrink-0\"\n type=\"light\"\n (buttonClick)=\"close()\"\n extraClass=\"w-10 h-8 px-1 bg-white\"\n >\n <ng-icon name=\"iconoirReduce\" size=\"24\"> </ng-icon>\n </gn-ui-button>\n </div>\n </ng-template>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: OverlayModule }, { kind: "directive", type: i1.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i1.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { 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"] }] }); }
88
+ }
89
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TruncatedTextComponent, decorators: [{
90
+ type: Component,
91
+ args: [{ selector: 'gn-ui-truncated-text', standalone: true, imports: [
92
+ CommonModule,
93
+ TranslateModule,
94
+ MatButtonModule,
95
+ OverlayModule,
96
+ ButtonComponent,
97
+ NgIconComponent,
98
+ ], providers: [provideIcons({ iconoirExpand, iconoirReduce })], template: "<div\n class=\"flex items-center justify-between w-full gap-2\"\n cdkOverlayOrigin\n [class]=\"extraClass\"\n #trigger=\"cdkOverlayOrigin\"\n>\n <span #textElement class=\"truncate\">\n {{ text }}\n </span>\n <gn-ui-button\n *ngIf=\"isTextTruncated\"\n type=\"outline\"\n extraClass=\"w-10 h-8 border rounded-lg\"\n (buttonClick)=\"toggleOverlay()\"\n >\n <ng-icon name=\"iconoirExpand\" size=\"24\"> </ng-icon>\n </gn-ui-button>\n\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"isOpen\"\n [cdkConnectedOverlayPositions]=\"[overlayPosition]\"\n cdkConnectedOverlayPush\n [cdkConnectedOverlayWidth]=\"'auto'\"\n [cdkConnectedOverlayFlexibleDimensions]=\"true\"\n [cdkConnectedOverlayGrowAfterOpen]=\"true\"\n (detach)=\"close()\"\n >\n <div class=\"bg-white shadow-lg border border-gray-300 flex\">\n <div class=\"sm:w-64 xs:w-32\">\n <p class=\"m-2\">{{ text }}</p>\n </div>\n <gn-ui-button\n class=\"m-2 flex-shrink-0\"\n type=\"light\"\n (buttonClick)=\"close()\"\n extraClass=\"w-10 h-8 px-1 bg-white\"\n >\n <ng-icon name=\"iconoirReduce\" size=\"24\"> </ng-icon>\n </gn-ui-button>\n </div>\n </ng-template>\n</div>\n" }]
99
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i1.ViewportRuler }], propDecorators: { text: [{
100
+ type: Input
101
+ }], extraClass: [{
102
+ type: Input
103
+ }], textElement: [{
104
+ type: ViewChild,
105
+ args: ['textElement']
106
+ }] } });
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1bmNhdGVkLXRleHQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9sYXlvdXQvc3JjL2xpYi90cnVuY2F0ZWQtdGV4dC90cnVuY2F0ZWQtdGV4dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2xheW91dC9zcmMvbGliL3RydW5jYXRlZC10ZXh0L3RydW5jYXRlZC10ZXh0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBRUwsU0FBUyxFQUNULE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUM5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFDMUQsT0FBTyxFQUNMLGFBQWEsRUFDYixhQUFhLEdBRWQsTUFBTSxzQkFBc0IsQ0FBQTtBQUM3QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUE7Ozs7QUFrQnRFLE1BQU0sT0FBTyxzQkFBc0I7SUFpQmpDLFlBQ21CLEVBQXFCLEVBQ3JCLE1BQWMsRUFDZCxhQUE0QjtRQUY1QixPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2Qsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFuQnRDLFNBQUksR0FBRyxFQUFFLENBQUE7UUFDVCxlQUFVLEdBQUcsRUFBRSxDQUFBO1FBR3hCLG9CQUFlLEdBQUcsS0FBSyxDQUFBO1FBQ3ZCLFdBQU0sR0FBRyxLQUFLLENBQUE7UUFDZCxvQkFBZSxHQUFzQjtZQUNuQyxPQUFPLEVBQUUsS0FBSztZQUNkLE9BQU8sRUFBRSxLQUFLO1lBQ2QsUUFBUSxFQUFFLEtBQUs7WUFDZixRQUFRLEVBQUUsS0FBSztTQUNoQixDQUFBO1FBVUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBQyxHQUFHLEVBQUU7WUFDNUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUMsQ0FBQTtRQUNuRCxDQUFDLENBQUMsQ0FBQTtRQUVGLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLGdCQUFnQixDQUFDLEdBQUcsRUFBRTtZQUNoRCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7Z0JBQ25CLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFBO2dCQUMxQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUE7WUFDZCxDQUFDLENBQUMsQ0FBQTtRQUNKLENBQUMsQ0FBQyxDQUFBO1FBRUYsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNyRSxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDaEIsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUE7WUFDOUIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELGVBQWU7UUFDYixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQTtRQUM5QyxJQUFJLENBQUMsY0FBYyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUNyQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUU7WUFDcEQsVUFBVSxFQUFFLElBQUk7WUFDaEIsU0FBUyxFQUFFLElBQUk7WUFDZixPQUFPLEVBQUUsSUFBSTtTQUNkLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFBO0lBQzVCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGNBQWMsRUFBRSxVQUFVLEVBQUUsQ0FBQTtRQUNqQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLENBQUE7UUFDbkMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLFdBQVcsRUFBRSxDQUFBO1FBQ3hDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQTtJQUNkLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUE7UUFDMUIsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUE7UUFDOUIsQ0FBQztJQUNILENBQUM7SUFFTyxxQkFBcUI7UUFDM0IsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUE7UUFDOUMsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLHFCQUFxQixFQUFFLENBQUE7UUFDNUMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxLQUFLLENBQUE7UUFDaEUsTUFBTSxRQUFRLEdBQUcsYUFBYSxHQUFHLEdBQUcsQ0FBQTtRQUNwQyxNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFBO1FBQ3pDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFBO1FBRS9DLElBQUksQ0FBQyxlQUFlLEdBQUc7WUFDckIsT0FBTyxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQ3pDLE9BQU8sRUFBRSxLQUFLO1lBQ2QsUUFBUSxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQzFDLFFBQVEsRUFBRSxLQUFLO1NBQ2hCLENBQUE7SUFDSCxDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFBO0lBQ3JCLENBQUM7SUFFTyxtQkFBbUI7UUFDekIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUE7UUFFOUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUE7UUFDaEUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQTtJQUN6QixDQUFDOytHQTFGVSxzQkFBc0I7bUdBQXRCLHNCQUFzQix1SEFKdEIsQ0FBQyxZQUFZLENBQUMsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQyxzSUNsQzdELG15Q0E0Q0EsMkNEakJJLFlBQVksa0lBQ1osZUFBZSw4QkFDZixlQUFlLDhCQUNmLGFBQWEsMnJDQUNiLGVBQWUsK0hBQ2YsZUFBZTs7NEZBTU4sc0JBQXNCO2tCQWZsQyxTQUFTOytCQUNFLHNCQUFzQixjQUNwQixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixlQUFlO3dCQUNmLGVBQWU7cUJBQ2hCLGFBQ1UsQ0FBQyxZQUFZLENBQUMsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQzt1SUFLbEQsSUFBSTtzQkFBWixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRW9CLFdBQVc7c0JBQXBDLFNBQVM7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIFZpZXdDaGlsZCxcbiAgTmdab25lLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgcHJvdmlkZUljb25zLCBOZ0ljb25Db21wb25lbnQgfSBmcm9tICdAbmctaWNvbnMvY29yZSdcbmltcG9ydCB7IGljb25vaXJFeHBhbmQsIGljb25vaXJSZWR1Y2UgfSBmcm9tICdAbmctaWNvbnMvaWNvbm9pcidcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nXG5pbXBvcnQge1xuICBPdmVybGF5TW9kdWxlLFxuICBWaWV3cG9ydFJ1bGVyLFxuICBDb25uZWN0ZWRQb3NpdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknXG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2lucHV0cy9zcmMnXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS10cnVuY2F0ZWQtdGV4dCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBPdmVybGF5TW9kdWxlLFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBOZ0ljb25Db21wb25lbnQsXG4gIF0sXG4gIHByb3ZpZGVyczogW3Byb3ZpZGVJY29ucyh7IGljb25vaXJFeHBhbmQsIGljb25vaXJSZWR1Y2UgfSldLFxuICB0ZW1wbGF0ZVVybDogJy4vdHJ1bmNhdGVkLXRleHQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZXM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBUcnVuY2F0ZWRUZXh0Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgdGV4dCA9ICcnXG4gIEBJbnB1dCgpIGV4dHJhQ2xhc3MgPSAnJ1xuXG4gIEBWaWV3Q2hpbGQoJ3RleHRFbGVtZW50JykgdGV4dEVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+XG4gIGlzVGV4dFRydW5jYXRlZCA9IGZhbHNlXG4gIGlzT3BlbiA9IGZhbHNlXG4gIG92ZXJsYXlQb3NpdGlvbjogQ29ubmVjdGVkUG9zaXRpb24gPSB7XG4gICAgb3JpZ2luWDogJ2VuZCcsXG4gICAgb3JpZ2luWTogJ3RvcCcsXG4gICAgb3ZlcmxheVg6ICdlbmQnLFxuICAgIG92ZXJsYXlZOiAndG9wJyxcbiAgfVxuICBwcml2YXRlIHJlYWRvbmx5IHJlc2l6ZU9ic2VydmVyOiBSZXNpemVPYnNlcnZlclxuICBwcml2YXRlIHJlYWRvbmx5IG11dGF0aW9uT2JzZXJ2ZXI6IE11dGF0aW9uT2JzZXJ2ZXJcbiAgcHJpdmF0ZSByZWFkb25seSB2aWV3cG9ydFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSByZWFkb25seSBuZ1pvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHZpZXdwb3J0UnVsZXI6IFZpZXdwb3J0UnVsZXJcbiAgKSB7XG4gICAgdGhpcy5yZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PiB7XG4gICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4gdGhpcy5jaGVja1RleHRUcnVuY2F0aW9uKCkpXG4gICAgfSlcblxuICAgIHRoaXMubXV0YXRpb25PYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKCgpID0+IHtcbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgIHRoaXMuY2hlY2tUZXh0VHJ1bmNhdGlvbigpXG4gICAgICAgIHRoaXMuY2xvc2UoKVxuICAgICAgfSlcbiAgICB9KVxuXG4gICAgdGhpcy52aWV3cG9ydFN1YnNjcmlwdGlvbiA9IHRoaXMudmlld3BvcnRSdWxlci5jaGFuZ2UoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuaXNPcGVuKSB7XG4gICAgICAgIHRoaXMudXBkYXRlT3ZlcmxheVBvc2l0aW9uKClcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLnRleHRFbGVtZW50Lm5hdGl2ZUVsZW1lbnRcbiAgICB0aGlzLnJlc2l6ZU9ic2VydmVyPy5vYnNlcnZlKGVsZW1lbnQpXG4gICAgdGhpcy5tdXRhdGlvbk9ic2VydmVyPy5vYnNlcnZlKGVsZW1lbnQucGFyZW50RWxlbWVudCwge1xuICAgICAgYXR0cmlidXRlczogdHJ1ZSxcbiAgICAgIGNoaWxkTGlzdDogdHJ1ZSxcbiAgICAgIHN1YnRyZWU6IHRydWUsXG4gICAgfSlcbiAgICB0aGlzLmNoZWNrVGV4dFRydW5jYXRpb24oKVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5yZXNpemVPYnNlcnZlcj8uZGlzY29ubmVjdCgpXG4gICAgdGhpcy5tdXRhdGlvbk9ic2VydmVyPy5kaXNjb25uZWN0KClcbiAgICB0aGlzLnZpZXdwb3J0U3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpXG4gICAgdGhpcy5jbG9zZSgpXG4gIH1cblxuICB0b2dnbGVPdmVybGF5KCkge1xuICAgIHRoaXMuaXNPcGVuID0gIXRoaXMuaXNPcGVuXG4gICAgaWYgKHRoaXMuaXNPcGVuKSB7XG4gICAgICB0aGlzLnVwZGF0ZU92ZXJsYXlQb3NpdGlvbigpXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVPdmVybGF5UG9zaXRpb24oKSB7XG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMudGV4dEVsZW1lbnQubmF0aXZlRWxlbWVudFxuICAgIGNvbnN0IHJlY3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgY29uc3Qgdmlld3BvcnRXaWR0aCA9IHRoaXMudmlld3BvcnRSdWxlci5nZXRWaWV3cG9ydFNpemUoKS53aWR0aFxuICAgIGNvbnN0IGlzTW9iaWxlID0gdmlld3BvcnRXaWR0aCA8IDY0MFxuICAgIGNvbnN0IG92ZXJsYXlXaWR0aCA9IGlzTW9iaWxlID8gMTkwIDogMzIwXG4gICAgY29uc3QgaXNOZWFyTGVmdEVkZ2UgPSByZWN0LmxlZnQgPCBvdmVybGF5V2lkdGhcblxuICAgIHRoaXMub3ZlcmxheVBvc2l0aW9uID0ge1xuICAgICAgb3JpZ2luWDogaXNOZWFyTGVmdEVkZ2UgPyAnc3RhcnQnIDogJ2VuZCcsXG4gICAgICBvcmlnaW5ZOiAndG9wJyxcbiAgICAgIG92ZXJsYXlYOiBpc05lYXJMZWZ0RWRnZSA/ICdzdGFydCcgOiAnZW5kJyxcbiAgICAgIG92ZXJsYXlZOiAndG9wJyxcbiAgICB9XG4gIH1cblxuICBjbG9zZSgpIHtcbiAgICB0aGlzLmlzT3BlbiA9IGZhbHNlXG4gIH1cblxuICBwcml2YXRlIGNoZWNrVGV4dFRydW5jYXRpb24oKSB7XG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMudGV4dEVsZW1lbnQubmF0aXZlRWxlbWVudFxuXG4gICAgdGhpcy5pc1RleHRUcnVuY2F0ZWQgPSBlbGVtZW50LnNjcm9sbFdpZHRoID4gZWxlbWVudC5jbGllbnRXaWR0aFxuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpXG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gdy1mdWxsIGdhcC0yXCJcbiAgY2RrT3ZlcmxheU9yaWdpblxuICBbY2xhc3NdPVwiZXh0cmFDbGFzc1wiXG4gICN0cmlnZ2VyPVwiY2RrT3ZlcmxheU9yaWdpblwiXG4+XG4gIDxzcGFuICN0ZXh0RWxlbWVudCBjbGFzcz1cInRydW5jYXRlXCI+XG4gICAge3sgdGV4dCB9fVxuICA8L3NwYW4+XG4gIDxnbi11aS1idXR0b25cbiAgICAqbmdJZj1cImlzVGV4dFRydW5jYXRlZFwiXG4gICAgdHlwZT1cIm91dGxpbmVcIlxuICAgIGV4dHJhQ2xhc3M9XCJ3LTEwIGgtOCBib3JkZXIgcm91bmRlZC1sZ1wiXG4gICAgKGJ1dHRvbkNsaWNrKT1cInRvZ2dsZU92ZXJsYXkoKVwiXG4gID5cbiAgICA8bmctaWNvbiBuYW1lPVwiaWNvbm9pckV4cGFuZFwiIHNpemU9XCIyNFwiPiA8L25nLWljb24+XG4gIDwvZ24tdWktYnV0dG9uPlxuXG4gIDxuZy10ZW1wbGF0ZVxuICAgIGNka0Nvbm5lY3RlZE92ZXJsYXlcbiAgICBbY2RrQ29ubmVjdGVkT3ZlcmxheU9yaWdpbl09XCJ0cmlnZ2VyXCJcbiAgICBbY2RrQ29ubmVjdGVkT3ZlcmxheU9wZW5dPVwiaXNPcGVuXCJcbiAgICBbY2RrQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uc109XCJbb3ZlcmxheVBvc2l0aW9uXVwiXG4gICAgY2RrQ29ubmVjdGVkT3ZlcmxheVB1c2hcbiAgICBbY2RrQ29ubmVjdGVkT3ZlcmxheVdpZHRoXT1cIidhdXRvJ1wiXG4gICAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlGbGV4aWJsZURpbWVuc2lvbnNdPVwidHJ1ZVwiXG4gICAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlHcm93QWZ0ZXJPcGVuXT1cInRydWVcIlxuICAgIChkZXRhY2gpPVwiY2xvc2UoKVwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwiYmctd2hpdGUgc2hhZG93LWxnIGJvcmRlciBib3JkZXItZ3JheS0zMDAgZmxleFwiPlxuICAgICAgPGRpdiBjbGFzcz1cInNtOnctNjQgeHM6dy0zMlwiPlxuICAgICAgICA8cCBjbGFzcz1cIm0tMlwiPnt7IHRleHQgfX08L3A+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxnbi11aS1idXR0b25cbiAgICAgICAgY2xhc3M9XCJtLTIgZmxleC1zaHJpbmstMFwiXG4gICAgICAgIHR5cGU9XCJsaWdodFwiXG4gICAgICAgIChidXR0b25DbGljayk9XCJjbG9zZSgpXCJcbiAgICAgICAgZXh0cmFDbGFzcz1cInctMTAgaC04IHB4LTEgYmctd2hpdGVcIlxuICAgICAgPlxuICAgICAgICA8bmctaWNvbiBuYW1lPVwiaWNvbm9pclJlZHVjZVwiIHNpemU9XCIyNFwiPiA8L25nLWljb24+XG4gICAgICA8L2duLXVpLWJ1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19
@@ -3,29 +3,21 @@ import { CommonModule } from '@angular/common';
3
3
  import { TranslateModule } from '@ngx-translate/core';
4
4
  import { StickyHeaderComponent } from './sticky-header/sticky-header.component';
5
5
  import { AnchorLinkDirective } from './anchor-link/anchor-link.directive';
6
- import { NgIconComponent, provideNgIconsConfig } from '@ng-icons/core';
6
+ import { NgIconComponent } from '@ng-icons/core';
7
7
  import * as i0 from "@angular/core";
8
8
  import * as i1 from "@ngx-translate/core";
9
9
  export class UiLayoutModule {
10
10
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiLayoutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
11
11
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: UiLayoutModule, declarations: [StickyHeaderComponent, AnchorLinkDirective], imports: [CommonModule, i1.TranslateModule, NgIconComponent], exports: [StickyHeaderComponent, AnchorLinkDirective] }); }
12
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiLayoutModule, providers: [
13
- provideNgIconsConfig({
14
- size: '0.9em',
15
- }),
16
- ], imports: [CommonModule, TranslateModule.forChild(), NgIconComponent] }); }
12
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiLayoutModule, imports: [CommonModule, TranslateModule.forChild(), NgIconComponent] }); }
17
13
  }
18
14
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiLayoutModule, decorators: [{
19
15
  type: NgModule,
20
16
  args: [{
21
17
  imports: [CommonModule, TranslateModule.forChild(), NgIconComponent],
22
- providers: [
23
- provideNgIconsConfig({
24
- size: '0.9em',
25
- }),
26
- ],
18
+ providers: [],
27
19
  declarations: [StickyHeaderComponent, AnchorLinkDirective],
28
20
  exports: [StickyHeaderComponent, AnchorLinkDirective],
29
21
  }]
30
22
  }] });
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktbGF5b3V0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvbGF5b3V0L3NyYy9saWIvdWktbGF5b3V0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDckQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUE7QUFDL0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUE7QUFDekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFBOzs7QUFZdEUsTUFBTSxPQUFPLGNBQWM7K0dBQWQsY0FBYztnSEFBZCxjQUFjLGlCQUhWLHFCQUFxQixFQUFFLG1CQUFtQixhQU4vQyxZQUFZLHNCQUE4QixlQUFlLGFBT3pELHFCQUFxQixFQUFFLG1CQUFtQjtnSEFFekMsY0FBYyxhQVJkO1lBQ1Qsb0JBQW9CLENBQUM7Z0JBQ25CLElBQUksRUFBRSxPQUFPO2FBQ2QsQ0FBQztTQUNILFlBTFMsWUFBWSxFQUFFLGVBQWUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxlQUFlOzs0RkFTeEQsY0FBYztrQkFWMUIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsZUFBZSxDQUFDLFFBQVEsRUFBRSxFQUFFLGVBQWUsQ0FBQztvQkFDcEUsU0FBUyxFQUFFO3dCQUNULG9CQUFvQixDQUFDOzRCQUNuQixJQUFJLEVBQUUsT0FBTzt5QkFDZCxDQUFDO3FCQUNIO29CQUNELFlBQVksRUFBRSxDQUFDLHFCQUFxQixFQUFFLG1CQUFtQixDQUFDO29CQUMxRCxPQUFPLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSxtQkFBbUIsQ0FBQztpQkFDdEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgU3RpY2t5SGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9zdGlja3ktaGVhZGVyL3N0aWNreS1oZWFkZXIuY29tcG9uZW50J1xuaW1wb3J0IHsgQW5jaG9yTGlua0RpcmVjdGl2ZSB9IGZyb20gJy4vYW5jaG9yLWxpbmsvYW5jaG9yLWxpbmsuZGlyZWN0aXZlJ1xuaW1wb3J0IHsgTmdJY29uQ29tcG9uZW50LCBwcm92aWRlTmdJY29uc0NvbmZpZyB9IGZyb20gJ0BuZy1pY29ucy9jb3JlJ1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGUuZm9yQ2hpbGQoKSwgTmdJY29uQ29tcG9uZW50XSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgcHJvdmlkZU5nSWNvbnNDb25maWcoe1xuICAgICAgc2l6ZTogJzAuOWVtJyxcbiAgICB9KSxcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbU3RpY2t5SGVhZGVyQ29tcG9uZW50LCBBbmNob3JMaW5rRGlyZWN0aXZlXSxcbiAgZXhwb3J0czogW1N0aWNreUhlYWRlckNvbXBvbmVudCwgQW5jaG9yTGlua0RpcmVjdGl2ZV0sXG59KVxuZXhwb3J0IGNsYXNzIFVpTGF5b3V0TW9kdWxlIHt9XG4iXX0=
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktbGF5b3V0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvbGF5b3V0L3NyYy9saWIvdWktbGF5b3V0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDckQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUE7QUFDL0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUE7QUFDekUsT0FBTyxFQUFFLGVBQWUsRUFBd0IsTUFBTSxnQkFBZ0IsQ0FBQTs7O0FBUXRFLE1BQU0sT0FBTyxjQUFjOytHQUFkLGNBQWM7Z0hBQWQsY0FBYyxpQkFIVixxQkFBcUIsRUFBRSxtQkFBbUIsYUFGL0MsWUFBWSxzQkFBOEIsZUFBZSxhQUd6RCxxQkFBcUIsRUFBRSxtQkFBbUI7Z0hBRXpDLGNBQWMsWUFMZixZQUFZLEVBQUUsZUFBZSxDQUFDLFFBQVEsRUFBRSxFQUFFLGVBQWU7OzRGQUt4RCxjQUFjO2tCQU4xQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxlQUFlLENBQUMsUUFBUSxFQUFFLEVBQUUsZUFBZSxDQUFDO29CQUNwRSxTQUFTLEVBQUUsRUFBRTtvQkFDYixZQUFZLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSxtQkFBbUIsQ0FBQztvQkFDMUQsT0FBTyxFQUFFLENBQUMscUJBQXFCLEVBQUUsbUJBQW1CLENBQUM7aUJBQ3REIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7IFN0aWNreUhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vc3RpY2t5LWhlYWRlci9zdGlja3ktaGVhZGVyLmNvbXBvbmVudCdcbmltcG9ydCB7IEFuY2hvckxpbmtEaXJlY3RpdmUgfSBmcm9tICcuL2FuY2hvci1saW5rL2FuY2hvci1saW5rLmRpcmVjdGl2ZSdcbmltcG9ydCB7IE5nSWNvbkNvbXBvbmVudCwgcHJvdmlkZU5nSWNvbnNDb25maWcgfSBmcm9tICdAbmctaWNvbnMvY29yZSdcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVHJhbnNsYXRlTW9kdWxlLmZvckNoaWxkKCksIE5nSWNvbkNvbXBvbmVudF0sXG4gIHByb3ZpZGVyczogW10sXG4gIGRlY2xhcmF0aW9uczogW1N0aWNreUhlYWRlckNvbXBvbmVudCwgQW5jaG9yTGlua0RpcmVjdGl2ZV0sXG4gIGV4cG9ydHM6IFtTdGlja3lIZWFkZXJDb21wb25lbnQsIEFuY2hvckxpbmtEaXJlY3RpdmVdLFxufSlcbmV4cG9ydCBjbGFzcyBVaUxheW91dE1vZHVsZSB7fVxuIl19
@@ -3,4 +3,5 @@ export * from './lib/components/map-container/map-settings.token';
3
3
  export * from './lib/components/feature-detail/feature-detail.component';
4
4
  export * from './lib/components/map-legend/map-legend.component';
5
5
  export * from './lib/map-utils';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL21hcC9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx3REFBd0QsQ0FBQTtBQUN0RSxjQUFjLG1EQUFtRCxDQUFBO0FBQ2pFLGNBQWMsMERBQTBELENBQUE7QUFDeEUsY0FBYyxrREFBa0QsQ0FBQTtBQUNoRSxjQUFjLGlCQUFpQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tYXAtY29udGFpbmVyL21hcC1jb250YWluZXIuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tYXAtY29udGFpbmVyL21hcC1zZXR0aW5ncy50b2tlbidcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZmVhdHVyZS1kZXRhaWwvZmVhdHVyZS1kZXRhaWwuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tYXAtbGVnZW5kL21hcC1sZWdlbmQuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWFwLXV0aWxzJ1xuIl19
6
+ export * from './lib/components/spatial-extent/spatial-extent.component';
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL21hcC9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx3REFBd0QsQ0FBQTtBQUN0RSxjQUFjLG1EQUFtRCxDQUFBO0FBQ2pFLGNBQWMsMERBQTBELENBQUE7QUFDeEUsY0FBYyxrREFBa0QsQ0FBQTtBQUNoRSxjQUFjLGlCQUFpQixDQUFBO0FBQy9CLGNBQWMsMERBQTBELENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21hcC1jb250YWluZXIvbWFwLWNvbnRhaW5lci5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21hcC1jb250YWluZXIvbWFwLXNldHRpbmdzLnRva2VuJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9mZWF0dXJlLWRldGFpbC9mZWF0dXJlLWRldGFpbC5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21hcC1sZWdlbmQvbWFwLWxlZ2VuZC5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXAtdXRpbHMnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3NwYXRpYWwtZXh0ZW50L3NwYXRpYWwtZXh0ZW50LmNvbXBvbmVudCdcbiJdfQ==
@@ -4,18 +4,43 @@ import * as i0 from "@angular/core";
4
4
  import * as i1 from "@angular/common";
5
5
  const geometryKeys = ['geometry', 'the_geom'];
6
6
  export class FeatureDetailComponent {
7
+ constructor() {
8
+ this._featureAttributes = [];
9
+ }
10
+ set featureCatalog(value) {
11
+ if (value)
12
+ this._featureAttributes = value.featureTypes[0].attributes;
13
+ }
7
14
  get properties() {
8
15
  if (!this.feature)
9
16
  return [];
10
- return Object.keys(this.feature.properties).filter((prop) => !geometryKeys.includes(prop));
17
+ return this.setProperties();
18
+ }
19
+ setProperties() {
20
+ const properties = Object.keys(this.feature.properties)
21
+ .filter((p) => !geometryKeys.includes(p))
22
+ .reduce((acc, p) => {
23
+ let key = p;
24
+ if (this._featureAttributes.length) {
25
+ const matchingAttribute = this._featureAttributes.find((attr) => attr.name === p);
26
+ if (matchingAttribute && matchingAttribute.code) {
27
+ key = matchingAttribute.code;
28
+ }
29
+ }
30
+ acc[key] = this.feature.properties[p];
31
+ return acc;
32
+ }, {});
33
+ return properties;
11
34
  }
12
35
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FeatureDetailComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
13
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FeatureDetailComponent, isStandalone: true, selector: "gn-ui-feature-detail", inputs: { feature: "feature" }, ngImport: i0, template: "<div *ngIf=\"feature\" class=\"root\">\n <div class=\"property\" *ngFor=\"let propName of properties\">\n <div>{{ propName }}</div>\n <div class=\"font-bold\">{{ feature.properties[propName] }}</div>\n </div>\n</div>\n", styles: [".property{border-bottom:1px solid #f2f2f2;padding-bottom:.625rem;margin-bottom:.625rem;font-size:.75rem}\n"], dependencies: [{ 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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
36
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FeatureDetailComponent, isStandalone: true, selector: "gn-ui-feature-detail", inputs: { feature: "feature", featureCatalog: "featureCatalog" }, ngImport: i0, template: "<div *ngIf=\"feature\" class=\"root\">\n <div class=\"property\" *ngFor=\"let prop of properties | keyvalue\">\n <div>{{ prop.key }}</div>\n <div class=\"font-bold\">{{ prop.value }}</div>\n </div>\n</div>\n", styles: [".property{border-bottom:1px solid #f2f2f2;padding-bottom:.625rem;margin-bottom:.625rem;font-size:.75rem}\n"], dependencies: [{ 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.KeyValuePipe, name: "keyvalue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
14
37
  }
15
38
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FeatureDetailComponent, decorators: [{
16
39
  type: Component,
17
- args: [{ selector: 'gn-ui-feature-detail', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule], template: "<div *ngIf=\"feature\" class=\"root\">\n <div class=\"property\" *ngFor=\"let propName of properties\">\n <div>{{ propName }}</div>\n <div class=\"font-bold\">{{ feature.properties[propName] }}</div>\n </div>\n</div>\n", styles: [".property{border-bottom:1px solid #f2f2f2;padding-bottom:.625rem;margin-bottom:.625rem;font-size:.75rem}\n"] }]
40
+ args: [{ selector: 'gn-ui-feature-detail', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule], template: "<div *ngIf=\"feature\" class=\"root\">\n <div class=\"property\" *ngFor=\"let prop of properties | keyvalue\">\n <div>{{ prop.key }}</div>\n <div class=\"font-bold\">{{ prop.value }}</div>\n </div>\n</div>\n", styles: [".property{border-bottom:1px solid #f2f2f2;padding-bottom:.625rem;margin-bottom:.625rem;font-size:.75rem}\n"] }]
18
41
  }], propDecorators: { feature: [{
19
42
  type: Input
43
+ }], featureCatalog: [{
44
+ type: Input
20
45
  }] } });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1kZXRhaWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9tYXAvc3JjL2xpYi9jb21wb25lbnRzL2ZlYXR1cmUtZGV0YWlsL2ZlYXR1cmUtZGV0YWlsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvbWFwL3NyYy9saWIvY29tcG9uZW50cy9mZWF0dXJlLWRldGFpbC9mZWF0dXJlLWRldGFpbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUN6RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7OztBQUc5QyxNQUFNLFlBQVksR0FBRyxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQTtBQVU3QyxNQUFNLE9BQU8sc0JBQXNCO0lBR2pDLElBQUksVUFBVTtRQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU8sRUFBRSxDQUFBO1FBQzVCLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sQ0FDaEQsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FDdkMsQ0FBQTtJQUNILENBQUM7K0dBUlUsc0JBQXNCO21HQUF0QixzQkFBc0IsZ0hDZG5DLG9PQU1BLG1LRE1ZLFlBQVk7OzRGQUVYLHNCQUFzQjtrQkFSbEMsU0FBUzsrQkFDRSxzQkFBc0IsbUJBR2YsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUM7OEJBR2QsT0FBTztzQkFBZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHR5cGUgeyBGZWF0dXJlIH0gZnJvbSAnZ2VvanNvbidcblxuY29uc3QgZ2VvbWV0cnlLZXlzID0gWydnZW9tZXRyeScsICd0aGVfZ2VvbSddXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLWZlYXR1cmUtZGV0YWlsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZlYXR1cmUtZGV0YWlsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmVhdHVyZS1kZXRhaWwuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIEZlYXR1cmVEZXRhaWxDb21wb25lbnQge1xuICBASW5wdXQoKSBmZWF0dXJlOiBGZWF0dXJlXG5cbiAgZ2V0IHByb3BlcnRpZXMoKSB7XG4gICAgaWYgKCF0aGlzLmZlYXR1cmUpIHJldHVybiBbXVxuICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLmZlYXR1cmUucHJvcGVydGllcykuZmlsdGVyKFxuICAgICAgKHByb3ApID0+ICFnZW9tZXRyeUtleXMuaW5jbHVkZXMocHJvcClcbiAgICApXG4gIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCJmZWF0dXJlXCIgY2xhc3M9XCJyb290XCI+XG4gIDxkaXYgY2xhc3M9XCJwcm9wZXJ0eVwiICpuZ0Zvcj1cImxldCBwcm9wTmFtZSBvZiBwcm9wZXJ0aWVzXCI+XG4gICAgPGRpdj57eyBwcm9wTmFtZSB9fTwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmb250LWJvbGRcIj57eyBmZWF0dXJlLnByb3BlcnRpZXNbcHJvcE5hbWVdIH19PC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1kZXRhaWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9tYXAvc3JjL2xpYi9jb21wb25lbnRzL2ZlYXR1cmUtZGV0YWlsL2ZlYXR1cmUtZGV0YWlsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvbWFwL3NyYy9saWIvY29tcG9uZW50cy9mZWF0dXJlLWRldGFpbC9mZWF0dXJlLWRldGFpbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUN6RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7OztBQUk5QyxNQUFNLFlBQVksR0FBRyxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQTtBQVU3QyxNQUFNLE9BQU8sc0JBQXNCO0lBUm5DO1FBVUUsdUJBQWtCLEdBQUcsRUFBRSxDQUFBO0tBOEJ4QjtJQTdCQyxJQUFhLGNBQWMsQ0FBQyxLQUE0QjtRQUN0RCxJQUFJLEtBQUs7WUFBRSxJQUFJLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUE7SUFDdkUsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU8sRUFBRSxDQUFBO1FBQzVCLE9BQU8sSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFBO0lBQzdCLENBQUM7SUFFRCxhQUFhO1FBQ1gsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQzthQUNwRCxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUN4QyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDakIsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFBO1lBQ1gsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ25DLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FDcEQsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUMxQixDQUFBO2dCQUVELElBQUksaUJBQWlCLElBQUksaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBQ2hELEdBQUcsR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUE7Z0JBQzlCLENBQUM7WUFDSCxDQUFDO1lBQ0QsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQ3JDLE9BQU8sR0FBRyxDQUFBO1FBQ1osQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBRVIsT0FBTyxVQUFVLENBQUE7SUFDbkIsQ0FBQzsrR0EvQlUsc0JBQXNCO21HQUF0QixzQkFBc0Isa0pDZm5DLHlOQU1BLG1LRE9ZLFlBQVk7OzRGQUVYLHNCQUFzQjtrQkFSbEMsU0FBUzsrQkFDRSxzQkFBc0IsbUJBR2YsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUM7OEJBR2QsT0FBTztzQkFBZixLQUFLO2dCQUVPLGNBQWM7c0JBQTFCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgdHlwZSB7IEZlYXR1cmUgfSBmcm9tICdnZW9qc29uJ1xuaW1wb3J0IHsgRGF0YXNldEZlYXR1cmVDYXRhbG9nIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuXG5jb25zdCBnZW9tZXRyeUtleXMgPSBbJ2dlb21ldHJ5JywgJ3RoZV9nZW9tJ11cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktZmVhdHVyZS1kZXRhaWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmVhdHVyZS1kZXRhaWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mZWF0dXJlLWRldGFpbC5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgRmVhdHVyZURldGFpbENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGZlYXR1cmU6IEZlYXR1cmVcbiAgX2ZlYXR1cmVBdHRyaWJ1dGVzID0gW11cbiAgQElucHV0KCkgc2V0IGZlYXR1cmVDYXRhbG9nKHZhbHVlOiBEYXRhc2V0RmVhdHVyZUNhdGFsb2cpIHtcbiAgICBpZiAodmFsdWUpIHRoaXMuX2ZlYXR1cmVBdHRyaWJ1dGVzID0gdmFsdWUuZmVhdHVyZVR5cGVzWzBdLmF0dHJpYnV0ZXNcbiAgfVxuXG4gIGdldCBwcm9wZXJ0aWVzKCkge1xuICAgIGlmICghdGhpcy5mZWF0dXJlKSByZXR1cm4gW11cbiAgICByZXR1cm4gdGhpcy5zZXRQcm9wZXJ0aWVzKClcbiAgfVxuXG4gIHNldFByb3BlcnRpZXMoKSB7XG4gICAgY29uc3QgcHJvcGVydGllcyA9IE9iamVjdC5rZXlzKHRoaXMuZmVhdHVyZS5wcm9wZXJ0aWVzKVxuICAgICAgLmZpbHRlcigocCkgPT4gIWdlb21ldHJ5S2V5cy5pbmNsdWRlcyhwKSlcbiAgICAgIC5yZWR1Y2UoKGFjYywgcCkgPT4ge1xuICAgICAgICBsZXQga2V5ID0gcFxuICAgICAgICBpZiAodGhpcy5fZmVhdHVyZUF0dHJpYnV0ZXMubGVuZ3RoKSB7XG4gICAgICAgICAgY29uc3QgbWF0Y2hpbmdBdHRyaWJ1dGUgPSB0aGlzLl9mZWF0dXJlQXR0cmlidXRlcy5maW5kKFxuICAgICAgICAgICAgKGF0dHIpID0+IGF0dHIubmFtZSA9PT0gcFxuICAgICAgICAgIClcblxuICAgICAgICAgIGlmIChtYXRjaGluZ0F0dHJpYnV0ZSAmJiBtYXRjaGluZ0F0dHJpYnV0ZS5jb2RlKSB7XG4gICAgICAgICAgICBrZXkgPSBtYXRjaGluZ0F0dHJpYnV0ZS5jb2RlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGFjY1trZXldID0gdGhpcy5mZWF0dXJlLnByb3BlcnRpZXNbcF1cbiAgICAgICAgcmV0dXJuIGFjY1xuICAgICAgfSwge30pXG5cbiAgICByZXR1cm4gcHJvcGVydGllc1xuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiZmVhdHVyZVwiIGNsYXNzPVwicm9vdFwiPlxuICA8ZGl2IGNsYXNzPVwicHJvcGVydHlcIiAqbmdGb3I9XCJsZXQgcHJvcCBvZiBwcm9wZXJ0aWVzIHwga2V5dmFsdWVcIj5cbiAgICA8ZGl2Pnt7IHByb3Aua2V5IH19PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZvbnQtYm9sZFwiPnt7IHByb3AudmFsdWUgfX08L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,80 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import GeoJSON from 'ol/format/GeoJSON';
4
+ import { Polygon } from 'ol/geom';
5
+ import { createViewFromLayer, } from '@geospatial-sdk/core';
6
+ import { MapContainerComponent } from '../map-container/map-container.component';
7
+ import { BehaviorSubject } from 'rxjs';
8
+ import { switchMap } from 'rxjs/operators';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "@angular/common";
11
+ export class SpatialExtentComponent {
12
+ constructor() {
13
+ this.spatialExtents$ = new BehaviorSubject([]);
14
+ this.mapContext$ = this.spatialExtents$.pipe(switchMap(async (extents) => {
15
+ if (extents.length === 0) {
16
+ return null; // null extent means default view
17
+ }
18
+ const featureCollection = {
19
+ type: 'FeatureCollection',
20
+ features: [],
21
+ };
22
+ extents.forEach((extent) => {
23
+ if (extent.geometry) {
24
+ featureCollection.features.push({
25
+ type: 'Feature',
26
+ properties: {},
27
+ geometry: extent.geometry,
28
+ });
29
+ }
30
+ else if (extent.bbox?.length >= 0) {
31
+ featureCollection.features.push({
32
+ type: 'Feature',
33
+ properties: {},
34
+ geometry: this.bboxCoordsToGeometry(extent.bbox),
35
+ });
36
+ }
37
+ });
38
+ const layer = {
39
+ type: 'geojson',
40
+ data: featureCollection,
41
+ label: 'Spatial extents',
42
+ style: {
43
+ 'stroke-color': 'black',
44
+ 'stroke-width': 2,
45
+ 'fill-color': 'rgba(153, 153, 153, 0.3)',
46
+ },
47
+ };
48
+ const view = await createViewFromLayer(layer);
49
+ return {
50
+ view,
51
+ layers: [layer],
52
+ };
53
+ }));
54
+ this.error = '';
55
+ }
56
+ set spatialExtents(value) {
57
+ this.spatialExtents$.next(value);
58
+ }
59
+ bboxCoordsToGeometry(bbox) {
60
+ const geometry = new Polygon([
61
+ [
62
+ [bbox[0], bbox[1]],
63
+ [bbox[0], bbox[3]],
64
+ [bbox[2], bbox[3]],
65
+ [bbox[2], bbox[1]],
66
+ [bbox[0], bbox[1]],
67
+ ],
68
+ ]);
69
+ return new GeoJSON().writeGeometryObject(geometry);
70
+ }
71
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpatialExtentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
72
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SpatialExtentComponent, isStandalone: true, selector: "gn-ui-spatial-extent", inputs: { spatialExtents: "spatialExtents" }, ngImport: i0, template: "<gn-ui-map-container\n class=\"h-full w-full\"\n [context]=\"mapContext$ | async\"\n></gn-ui-map-container>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "component", type: MapContainerComponent, selector: "gn-ui-map-container", inputs: ["context"], outputs: ["featuresClick", "featuresHover", "mapClick", "sourceLoadError"] }] }); }
73
+ }
74
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpatialExtentComponent, decorators: [{
75
+ type: Component,
76
+ args: [{ selector: 'gn-ui-spatial-extent', standalone: true, imports: [CommonModule, MapContainerComponent], template: "<gn-ui-map-container\n class=\"h-full w-full\"\n [context]=\"mapContext$ | async\"\n></gn-ui-map-container>\n" }]
77
+ }], propDecorators: { spatialExtents: [{
78
+ type: Input
79
+ }] } });
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BhdGlhbC1leHRlbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9tYXAvc3JjL2xpYi9jb21wb25lbnRzL3NwYXRpYWwtZXh0ZW50L3NwYXRpYWwtZXh0ZW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvbWFwL3NyYy9saWIvY29tcG9uZW50cy9zcGF0aWFsLWV4dGVudC9zcGF0aWFsLWV4dGVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFFOUMsT0FBTyxPQUFxQyxNQUFNLG1CQUFtQixDQUFBO0FBQ3JFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxTQUFTLENBQUE7QUFDakMsT0FBTyxFQUNMLG1CQUFtQixHQUdwQixNQUFNLHNCQUFzQixDQUFBO0FBQzdCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFBO0FBQ2hGLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUE7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFBOzs7QUFVMUMsTUFBTSxPQUFPLHNCQUFzQjtJQVBuQztRQVdFLG9CQUFlLEdBQUcsSUFBSSxlQUFlLENBQXlCLEVBQUUsQ0FBQyxDQUFBO1FBQ2pFLGdCQUFXLEdBQTJCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUM3RCxTQUFTLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO1lBQzFCLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDekIsT0FBTyxJQUFJLENBQUEsQ0FBQyxpQ0FBaUM7WUFDL0MsQ0FBQztZQUNELE1BQU0saUJBQWlCLEdBQTZCO2dCQUNsRCxJQUFJLEVBQUUsbUJBQW1CO2dCQUN6QixRQUFRLEVBQUUsRUFBRTthQUNiLENBQUE7WUFDRCxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ3pCLElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUNwQixpQkFBaUIsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO3dCQUM5QixJQUFJLEVBQUUsU0FBUzt3QkFDZixVQUFVLEVBQUUsRUFBRTt3QkFDZCxRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVE7cUJBQzFCLENBQUMsQ0FBQTtnQkFDSixDQUFDO3FCQUFNLElBQUksTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUM7b0JBQ3BDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7d0JBQzlCLElBQUksRUFBRSxTQUFTO3dCQUNmLFVBQVUsRUFBRSxFQUFFO3dCQUNkLFFBQVEsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztxQkFDakQsQ0FBQyxDQUFBO2dCQUNKLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQTtZQUVGLE1BQU0sS0FBSyxHQUFvQjtnQkFDN0IsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsSUFBSSxFQUFFLGlCQUFpQjtnQkFDdkIsS0FBSyxFQUFFLGlCQUFpQjtnQkFDeEIsS0FBSyxFQUFFO29CQUNMLGNBQWMsRUFBRSxPQUFPO29CQUN2QixjQUFjLEVBQUUsQ0FBQztvQkFDakIsWUFBWSxFQUFFLDBCQUEwQjtpQkFDekM7YUFDRixDQUFBO1lBQ0QsTUFBTSxJQUFJLEdBQUcsTUFBTSxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQTtZQUM3QyxPQUFPO2dCQUNMLElBQUk7Z0JBQ0osTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDO2FBQ2hCLENBQUE7UUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFBO1FBRUQsVUFBSyxHQUFHLEVBQUUsQ0FBQTtLQWVYO0lBOURDLElBQWEsY0FBYyxDQUFDLEtBQTZCO1FBQ3ZELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUErQ0Qsb0JBQW9CLENBQUMsSUFBc0M7UUFDekQsTUFBTSxRQUFRLEdBQUcsSUFBSSxPQUFPLENBQUM7WUFDM0I7Z0JBQ0UsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNsQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2xCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDbEIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNsQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDbkI7U0FDRixDQUFDLENBQUE7UUFFRixPQUFPLElBQUksT0FBTyxFQUFFLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDcEQsQ0FBQzsrR0E5RFUsc0JBQXNCO21HQUF0QixzQkFBc0IsOEhDdEJuQyxpSEFJQSx5RERjWSxZQUFZLG9GQUFFLHFCQUFxQjs7NEZBSWxDLHNCQUFzQjtrQkFQbEMsU0FBUzsrQkFDRSxzQkFBc0IsY0FDcEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLHFCQUFxQixDQUFDOzhCQUtqQyxjQUFjO3NCQUExQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBHZW9tZXRyeSB9IGZyb20gJ2dlb2pzb24nXG5pbXBvcnQgR2VvSlNPTiwgeyBHZW9KU09ORmVhdHVyZUNvbGxlY3Rpb24gfSBmcm9tICdvbC9mb3JtYXQvR2VvSlNPTidcbmltcG9ydCB7IFBvbHlnb24gfSBmcm9tICdvbC9nZW9tJ1xuaW1wb3J0IHtcbiAgY3JlYXRlVmlld0Zyb21MYXllcixcbiAgTWFwQ29udGV4dCxcbiAgTWFwQ29udGV4dExheWVyLFxufSBmcm9tICdAZ2Vvc3BhdGlhbC1zZGsvY29yZSdcbmltcG9ydCB7IE1hcENvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4uL21hcC1jb250YWluZXIvbWFwLWNvbnRhaW5lci5jb21wb25lbnQnXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQgeyBEYXRhc2V0U3BhdGlhbEV4dGVudCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktc3BhdGlhbC1leHRlbnQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXBDb250YWluZXJDb21wb25lbnRdLFxuICB0ZW1wbGF0ZVVybDogJy4vc3BhdGlhbC1leHRlbnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vc3BhdGlhbC1leHRlbnQuY29tcG9uZW50LmNzcycsXG59KVxuZXhwb3J0IGNsYXNzIFNwYXRpYWxFeHRlbnRDb21wb25lbnQge1xuICBASW5wdXQoKSBzZXQgc3BhdGlhbEV4dGVudHModmFsdWU6IERhdGFzZXRTcGF0aWFsRXh0ZW50W10pIHtcbiAgICB0aGlzLnNwYXRpYWxFeHRlbnRzJC5uZXh0KHZhbHVlKVxuICB9XG4gIHNwYXRpYWxFeHRlbnRzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RGF0YXNldFNwYXRpYWxFeHRlbnRbXT4oW10pXG4gIG1hcENvbnRleHQkOiBPYnNlcnZhYmxlPE1hcENvbnRleHQ+ID0gdGhpcy5zcGF0aWFsRXh0ZW50cyQucGlwZShcbiAgICBzd2l0Y2hNYXAoYXN5bmMgKGV4dGVudHMpID0+IHtcbiAgICAgIGlmIChleHRlbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gbnVsbCAvLyBudWxsIGV4dGVudCBtZWFucyBkZWZhdWx0IHZpZXdcbiAgICAgIH1cbiAgICAgIGNvbnN0IGZlYXR1cmVDb2xsZWN0aW9uOiBHZW9KU09ORmVhdHVyZUNvbGxlY3Rpb24gPSB7XG4gICAgICAgIHR5cGU6ICdGZWF0dXJlQ29sbGVjdGlvbicsXG4gICAgICAgIGZlYXR1cmVzOiBbXSxcbiAgICAgIH1cbiAgICAgIGV4dGVudHMuZm9yRWFjaCgoZXh0ZW50KSA9PiB7XG4gICAgICAgIGlmIChleHRlbnQuZ2VvbWV0cnkpIHtcbiAgICAgICAgICBmZWF0dXJlQ29sbGVjdGlvbi5mZWF0dXJlcy5wdXNoKHtcbiAgICAgICAgICAgIHR5cGU6ICdGZWF0dXJlJyxcbiAgICAgICAgICAgIHByb3BlcnRpZXM6IHt9LFxuICAgICAgICAgICAgZ2VvbWV0cnk6IGV4dGVudC5nZW9tZXRyeSxcbiAgICAgICAgICB9KVxuICAgICAgICB9IGVsc2UgaWYgKGV4dGVudC5iYm94Py5sZW5ndGggPj0gMCkge1xuICAgICAgICAgIGZlYXR1cmVDb2xsZWN0aW9uLmZlYXR1cmVzLnB1c2goe1xuICAgICAgICAgICAgdHlwZTogJ0ZlYXR1cmUnLFxuICAgICAgICAgICAgcHJvcGVydGllczoge30sXG4gICAgICAgICAgICBnZW9tZXRyeTogdGhpcy5iYm94Q29vcmRzVG9HZW9tZXRyeShleHRlbnQuYmJveCksXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfSlcblxuICAgICAgY29uc3QgbGF5ZXI6IE1hcENvbnRleHRMYXllciA9IHtcbiAgICAgICAgdHlwZTogJ2dlb2pzb24nLFxuICAgICAgICBkYXRhOiBmZWF0dXJlQ29sbGVjdGlvbixcbiAgICAgICAgbGFiZWw6ICdTcGF0aWFsIGV4dGVudHMnLFxuICAgICAgICBzdHlsZToge1xuICAgICAgICAgICdzdHJva2UtY29sb3InOiAnYmxhY2snLFxuICAgICAgICAgICdzdHJva2Utd2lkdGgnOiAyLFxuICAgICAgICAgICdmaWxsLWNvbG9yJzogJ3JnYmEoMTUzLCAxNTMsIDE1MywgMC4zKScsXG4gICAgICAgIH0sXG4gICAgICB9XG4gICAgICBjb25zdCB2aWV3ID0gYXdhaXQgY3JlYXRlVmlld0Zyb21MYXllcihsYXllcilcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHZpZXcsXG4gICAgICAgIGxheWVyczogW2xheWVyXSxcbiAgICAgIH1cbiAgICB9KVxuICApXG5cbiAgZXJyb3IgPSAnJ1xuXG4gIGJib3hDb29yZHNUb0dlb21ldHJ5KGJib3g6IFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdKTogR2VvbWV0cnkge1xuICAgIGNvbnN0IGdlb21ldHJ5ID0gbmV3IFBvbHlnb24oW1xuICAgICAgW1xuICAgICAgICBbYmJveFswXSwgYmJveFsxXV0sXG4gICAgICAgIFtiYm94WzBdLCBiYm94WzNdXSxcbiAgICAgICAgW2Jib3hbMl0sIGJib3hbM11dLFxuICAgICAgICBbYmJveFsyXSwgYmJveFsxXV0sXG4gICAgICAgIFtiYm94WzBdLCBiYm94WzFdXSxcbiAgICAgIF0sXG4gICAgXSlcblxuICAgIHJldHVybiBuZXcgR2VvSlNPTigpLndyaXRlR2VvbWV0cnlPYmplY3QoZ2VvbWV0cnkpXG4gIH1cbn1cbiIsIjxnbi11aS1tYXAtY29udGFpbmVyXG4gIGNsYXNzPVwiaC1mdWxsIHctZnVsbFwiXG4gIFtjb250ZXh0XT1cIm1hcENvbnRleHQkIHwgYXN5bmNcIlxuPjwvZ24tdWktbWFwLWNvbnRhaW5lcj5cbiJdfQ==