geonetwork-ui 2.6.0-dev.b306f1194 → 2.6.0-dev.c49d02679

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 (519) 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 +47 -6
  6. package/esm2022/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.mjs +1 -1
  7. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.mjs +8 -4
  8. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.mjs +5 -2
  9. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +6 -6
  10. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +5 -5
  11. package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/constant.mjs +3 -1
  12. package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.mjs +4 -12
  13. package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +79 -16
  14. package/esm2022/libs/api/repository/src/lib/gn4/gn4.provider.mjs +7 -1
  15. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +7 -1
  16. package/esm2022/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.mjs +2 -1
  17. package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
  18. package/esm2022/libs/common/domain/src/lib/repository/records-repository.interface.mjs +1 -1
  19. package/esm2022/libs/feature/dataviz/src/lib/chart-view/chart-view.component.mjs +49 -9
  20. package/esm2022/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.mjs +2 -2
  21. package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +32 -2
  22. package/esm2022/libs/feature/dataviz/src/lib/table-view/table-view.component.mjs +29 -6
  23. package/esm2022/libs/feature/editor/src/index.mjs +2 -1
  24. package/esm2022/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.mjs +273 -0
  25. package/esm2022/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.mjs +2 -3
  26. package/esm2022/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.mjs +1 -1
  27. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.mjs +5 -5
  28. package/esm2022/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.mjs +1 -1
  29. package/esm2022/libs/feature/record/src/index.mjs +2 -4
  30. package/esm2022/libs/feature/record/src/lib/data-view/data-view.component.mjs +3 -3
  31. package/esm2022/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.mjs +5 -9
  32. package/esm2022/libs/feature/record/src/lib/data-view-share/data-view-share.component.mjs +3 -3
  33. package/esm2022/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.mjs +7 -11
  34. package/esm2022/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.mjs +6 -3
  35. package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +73 -16
  36. package/esm2022/libs/feature/record/src/lib/record-meta/record-meta.component.mjs +1 -1
  37. package/esm2022/libs/feature/record/src/lib/state/mdview.actions.mjs +3 -1
  38. package/esm2022/libs/feature/record/src/lib/state/mdview.effects.mjs +14 -5
  39. package/esm2022/libs/feature/record/src/lib/state/mdview.facade.mjs +13 -15
  40. package/esm2022/libs/feature/record/src/lib/state/mdview.reducer.mjs +7 -1
  41. package/esm2022/libs/feature/record/src/lib/state/mdview.selectors.mjs +3 -1
  42. package/esm2022/libs/feature/router/src/lib/default/constants.mjs +3 -1
  43. package/esm2022/libs/feature/router/src/lib/default/router.config.mjs +1 -1
  44. package/esm2022/libs/feature/router/src/lib/default/router.service.mjs +10 -2
  45. package/esm2022/libs/feature/router/src/lib/default/state/router.facade.mjs +9 -3
  46. package/esm2022/libs/feature/search/src/index.mjs +2 -2
  47. package/esm2022/libs/feature/search/src/lib/constants.mjs +4 -2
  48. package/esm2022/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.mjs +8 -7
  49. package/esm2022/libs/feature/search/src/lib/feature-search.module.mjs +13 -19
  50. package/esm2022/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.mjs +5 -3
  51. package/esm2022/libs/feature/search/src/lib/record-url.token.mjs +4 -2
  52. package/esm2022/libs/feature/search/src/lib/results-hits/results-hits.container.component.mjs +41 -0
  53. package/esm2022/libs/feature/search/src/lib/results-list/results-list.container.component.mjs +30 -10
  54. package/esm2022/libs/feature/search/src/lib/results-table/results-table-container.component.mjs +13 -10
  55. package/esm2022/libs/feature/search/src/lib/utils/service/fields.mjs +70 -1
  56. package/esm2022/libs/feature/search/src/lib/utils/service/fields.service.mjs +4 -3
  57. package/esm2022/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.mjs +3 -3
  58. package/esm2022/libs/ui/dataviz/src/lib/chart/chart.component.mjs +5 -3
  59. package/esm2022/libs/ui/dataviz/src/lib/data-table/data-table.component.mjs +11 -6
  60. package/esm2022/libs/ui/elements/src/index.mjs +5 -1
  61. package/esm2022/libs/ui/elements/src/lib/api-card/api-card.component.mjs +3 -3
  62. package/esm2022/libs/ui/elements/src/lib/download-item/download-item.component.mjs +3 -3
  63. package/esm2022/libs/ui/elements/src/lib/downloads-list/downloads-list.component.mjs +18 -7
  64. package/esm2022/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.mjs +55 -0
  65. package/esm2022/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.mjs +3 -3
  66. package/esm2022/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.mjs +42 -83
  67. package/esm2022/libs/ui/elements/src/lib/internal-link-card-contact/internal-link-card-contact.component.mjs +59 -0
  68. package/esm2022/libs/ui/elements/src/lib/kind-badge/kind-badge.component.mjs +68 -0
  69. package/esm2022/libs/ui/elements/src/lib/link-card/link-card.component.mjs +3 -3
  70. package/esm2022/libs/ui/elements/src/lib/metadata-catalog/metadata-catalog.component.mjs +3 -3
  71. package/esm2022/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.mjs +3 -3
  72. package/esm2022/libs/ui/elements/src/lib/metadata-info/metadata-info.component.mjs +8 -5
  73. package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +37 -12
  74. package/esm2022/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.mjs +5 -1
  75. package/esm2022/libs/ui/elements/src/lib/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.mjs +72 -0
  76. package/esm2022/libs/ui/elements/src/lib/related-record-card/related-record-card.component.mjs +17 -7
  77. package/esm2022/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.mjs +169 -0
  78. package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +26 -4
  79. package/esm2022/libs/ui/inputs/src/index.mjs +3 -2
  80. package/esm2022/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.mjs +3 -3
  81. package/esm2022/libs/ui/inputs/src/lib/button/button.component.mjs +2 -2
  82. package/esm2022/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.mjs +3 -3
  83. package/esm2022/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.mjs +3 -3
  84. package/esm2022/libs/ui/inputs/src/lib/inline-filter/inline-filter.component.mjs +42 -0
  85. package/esm2022/libs/ui/inputs/src/lib/inline-filter/inline-filter.model.mjs +2 -0
  86. package/esm2022/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.mjs +68 -0
  87. package/esm2022/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.mjs +4 -3
  88. package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +8 -9
  89. package/esm2022/libs/ui/layout/src/index.mjs +3 -1
  90. package/esm2022/libs/ui/layout/src/lib/anchor-link/anchor-link.directive.mjs +43 -3
  91. package/esm2022/libs/ui/layout/src/lib/block-list/block-list.component.mjs +48 -11
  92. package/esm2022/libs/ui/layout/src/lib/carousel/carousel.component.mjs +3 -3
  93. package/esm2022/libs/ui/layout/src/lib/cell-popin/cell-popin.component.mjs +110 -0
  94. package/esm2022/libs/ui/layout/src/lib/expandable-panel/expandable-panel.component.mjs +34 -13
  95. package/esm2022/libs/ui/layout/src/lib/interactive-table/interactive-table.component.mjs +25 -3
  96. package/esm2022/libs/ui/layout/src/lib/max-lines/max-lines.component.mjs +3 -3
  97. package/esm2022/libs/ui/layout/src/lib/previous-next-buttons/previous-next-buttons.component.mjs +6 -6
  98. package/esm2022/libs/ui/layout/src/lib/truncated-text/truncated-text.component.mjs +73 -0
  99. package/esm2022/libs/ui/layout/src/lib/ui-layout.module.mjs +4 -12
  100. package/esm2022/libs/ui/map/src/index.mjs +2 -1
  101. package/esm2022/libs/ui/map/src/lib/components/feature-detail/feature-detail.component.mjs +29 -4
  102. package/esm2022/libs/ui/map/src/lib/components/spatial-extent/spatial-extent.component.mjs +80 -0
  103. package/esm2022/libs/ui/search/src/index.mjs +3 -1
  104. package/esm2022/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.mjs +4 -8
  105. package/esm2022/libs/ui/search/src/lib/results-hits-number/results-hits-number.component.mjs +3 -3
  106. package/esm2022/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.mjs +53 -0
  107. package/esm2022/libs/ui/search/src/lib/results-list/results-layout.config.mjs +2 -2
  108. package/esm2022/libs/ui/search/src/lib/results-list/results-list.component.mjs +3 -3
  109. package/esm2022/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.mjs +21 -12
  110. package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +39 -17
  111. package/esm2022/libs/ui/search/src/lib/ui-search.module.mjs +19 -5
  112. package/esm2022/libs/ui/widgets/src/lib/progress-bar/progress-bar.component.mjs +3 -3
  113. package/esm2022/libs/util/app-config/src/lib/app-config.mjs +2 -1
  114. package/esm2022/libs/util/app-config/src/lib/fixtures.mjs +2 -1
  115. package/esm2022/libs/util/i18n/src/lib/i18n.constants.mjs +42 -1
  116. package/esm2022/libs/util/i18n/src/lib/language-codes.mjs +24 -2
  117. package/esm2022/libs/util/shared/src/index.mjs +2 -1
  118. package/esm2022/libs/util/shared/src/lib/gn-ui-version.mjs +6 -0
  119. package/esm2022/libs/util/shared/src/lib/links/link-classifier.service.mjs +5 -1
  120. package/esm2022/libs/util/shared/src/lib/links/link-utils.mjs +16 -6
  121. package/esm2022/translations/de.json +79 -9
  122. package/esm2022/translations/en.json +80 -10
  123. package/esm2022/translations/es.json +78 -8
  124. package/esm2022/translations/fr.json +80 -10
  125. package/esm2022/translations/it.json +82 -12
  126. package/esm2022/translations/nl.json +78 -8
  127. package/esm2022/translations/pt.json +78 -8
  128. package/fesm2022/geonetwork-ui.mjs +3701 -1510
  129. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  130. package/libs/api/metadata-converter/src/index.d.ts +1 -0
  131. package/libs/api/metadata-converter/src/index.d.ts.map +1 -1
  132. package/libs/api/metadata-converter/src/lib/base.converter.d.ts.map +1 -1
  133. package/libs/api/metadata-converter/src/lib/common/distribution.mapper.d.ts.map +1 -1
  134. package/libs/api/metadata-converter/src/lib/common/resource-types.d.ts +21 -0
  135. package/libs/api/metadata-converter/src/lib/common/resource-types.d.ts.map +1 -1
  136. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
  137. package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts +0 -1
  138. package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts.map +1 -1
  139. package/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.d.ts +1 -0
  140. package/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.d.ts.map +1 -1
  141. package/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.d.ts.map +1 -1
  142. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts.map +1 -1
  143. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
  144. package/libs/api/repository/src/lib/gn4/elasticsearch/constant.d.ts.map +1 -1
  145. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts +1 -1
  146. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts.map +1 -1
  147. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts +13 -2
  148. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts.map +1 -1
  149. package/libs/api/repository/src/lib/gn4/gn4.provider.d.ts.map +1 -1
  150. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +2 -0
  151. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
  152. package/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.d.ts +1 -0
  153. package/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.d.ts.map +1 -1
  154. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +26 -17
  155. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
  156. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts +6 -0
  157. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts.map +1 -1
  158. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts +12 -8
  159. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts.map +1 -1
  160. package/libs/feature/dataviz/src/lib/service/data.service.d.ts +1 -0
  161. package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
  162. package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts +6 -3
  163. package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts.map +1 -1
  164. package/libs/feature/editor/src/index.d.ts +1 -0
  165. package/libs/feature/editor/src/index.d.ts.map +1 -1
  166. package/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.d.ts +52 -0
  167. package/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.d.ts.map +1 -0
  168. package/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.d.ts.map +1 -1
  169. package/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.d.ts +6 -6
  170. package/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.d.ts.map +1 -1
  171. 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
  172. package/libs/feature/record/src/index.d.ts +1 -3
  173. package/libs/feature/record/src/index.d.ts.map +1 -1
  174. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts +9 -1
  175. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts.map +1 -1
  176. package/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.d.ts +2 -3
  177. package/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.d.ts.map +1 -1
  178. package/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.d.ts +1 -2
  179. package/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.d.ts.map +1 -1
  180. package/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.d.ts +2 -1
  181. package/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.d.ts.map +1 -1
  182. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts +13 -5
  183. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
  184. package/libs/feature/record/src/lib/record-meta/record-meta.component.d.ts +2 -2
  185. package/libs/feature/record/src/lib/state/mdview.actions.d.ts +10 -0
  186. package/libs/feature/record/src/lib/state/mdview.actions.d.ts.map +1 -1
  187. package/libs/feature/record/src/lib/state/mdview.effects.d.ts +9 -1
  188. package/libs/feature/record/src/lib/state/mdview.effects.d.ts.map +1 -1
  189. package/libs/feature/record/src/lib/state/mdview.facade.d.ts +28 -21
  190. package/libs/feature/record/src/lib/state/mdview.facade.d.ts.map +1 -1
  191. package/libs/feature/record/src/lib/state/mdview.reducer.d.ts +2 -0
  192. package/libs/feature/record/src/lib/state/mdview.reducer.d.ts.map +1 -1
  193. package/libs/feature/record/src/lib/state/mdview.selectors.d.ts +2 -0
  194. package/libs/feature/record/src/lib/state/mdview.selectors.d.ts.map +1 -1
  195. package/libs/feature/router/src/lib/default/constants.d.ts +2 -0
  196. package/libs/feature/router/src/lib/default/constants.d.ts.map +1 -1
  197. package/libs/feature/router/src/lib/default/router.config.d.ts +2 -0
  198. package/libs/feature/router/src/lib/default/router.config.d.ts.map +1 -1
  199. package/libs/feature/router/src/lib/default/router.service.d.ts.map +1 -1
  200. package/libs/feature/router/src/lib/default/state/router.facade.d.ts +5 -0
  201. package/libs/feature/router/src/lib/default/state/router.facade.d.ts.map +1 -1
  202. package/libs/feature/search/src/index.d.ts +1 -1
  203. package/libs/feature/search/src/index.d.ts.map +1 -1
  204. package/libs/feature/search/src/lib/constants.d.ts.map +1 -1
  205. package/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.d.ts.map +1 -1
  206. package/libs/feature/search/src/lib/feature-search.module.d.ts +4 -2
  207. package/libs/feature/search/src/lib/feature-search.module.d.ts.map +1 -1
  208. package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts +2 -1
  209. package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts.map +1 -1
  210. package/libs/feature/search/src/lib/record-url.token.d.ts +3 -1
  211. package/libs/feature/search/src/lib/record-url.token.d.ts.map +1 -1
  212. package/libs/feature/search/src/lib/results-hits/results-hits.container.component.d.ts +21 -0
  213. package/libs/feature/search/src/lib/results-hits/results-hits.container.component.d.ts.map +1 -0
  214. package/libs/feature/search/src/lib/results-list/results-list.container.component.d.ts +5 -3
  215. package/libs/feature/search/src/lib/results-list/results-list.container.component.d.ts.map +1 -1
  216. package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts +6 -5
  217. package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts.map +1 -1
  218. package/libs/feature/search/src/lib/utils/service/fields.d.ts +21 -0
  219. package/libs/feature/search/src/lib/utils/service/fields.d.ts.map +1 -1
  220. package/libs/feature/search/src/lib/utils/service/fields.service.d.ts.map +1 -1
  221. package/libs/ui/dataviz/src/lib/chart/chart.component.d.ts +2 -1
  222. package/libs/ui/dataviz/src/lib/chart/chart.component.d.ts.map +1 -1
  223. package/libs/ui/dataviz/src/lib/data-table/data-table.component.d.ts +6 -1
  224. package/libs/ui/dataviz/src/lib/data-table/data-table.component.d.ts.map +1 -1
  225. package/libs/ui/elements/src/index.d.ts +4 -0
  226. package/libs/ui/elements/src/index.d.ts.map +1 -1
  227. package/libs/ui/elements/src/lib/download-item/download-item.component.d.ts +1 -1
  228. package/libs/ui/elements/src/lib/download-item/download-item.component.d.ts.map +1 -1
  229. package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts +7 -1
  230. package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts.map +1 -1
  231. package/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.d.ts +15 -0
  232. package/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.d.ts.map +1 -0
  233. package/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.d.ts +6 -13
  234. package/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.d.ts.map +1 -1
  235. package/libs/ui/elements/src/lib/internal-link-card-contact/internal-link-card-contact.component.d.ts +14 -0
  236. package/libs/ui/elements/src/lib/internal-link-card-contact/internal-link-card-contact.component.d.ts.map +1 -0
  237. package/libs/ui/elements/src/lib/kind-badge/kind-badge.component.d.ts +13 -0
  238. package/libs/ui/elements/src/lib/kind-badge/kind-badge.component.d.ts.map +1 -0
  239. package/libs/ui/elements/src/lib/link-card/link-card.component.d.ts +1 -1
  240. package/libs/ui/elements/src/lib/link-card/link-card.component.d.ts.map +1 -1
  241. package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts +2 -2
  242. package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts.map +1 -1
  243. package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts +3 -0
  244. package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts.map +1 -1
  245. package/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.d.ts.map +1 -1
  246. package/libs/ui/elements/src/lib/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.d.ts +27 -0
  247. package/libs/ui/elements/src/lib/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.d.ts.map +1 -0
  248. package/libs/ui/elements/src/lib/related-record-card/related-record-card.component.d.ts +8 -1
  249. package/libs/ui/elements/src/lib/related-record-card/related-record-card.component.d.ts.map +1 -1
  250. package/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.d.ts +31 -0
  251. package/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.d.ts.map +1 -0
  252. package/libs/ui/elements/src/lib/ui-elements.module.d.ts +5 -1
  253. package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
  254. package/libs/ui/inputs/src/index.d.ts +2 -1
  255. package/libs/ui/inputs/src/index.d.ts.map +1 -1
  256. package/libs/ui/inputs/src/lib/button/button.component.d.ts +1 -1
  257. package/libs/ui/inputs/src/lib/button/button.component.d.ts.map +1 -1
  258. package/libs/ui/inputs/src/lib/inline-filter/inline-filter.component.d.ts +14 -0
  259. package/libs/ui/inputs/src/lib/inline-filter/inline-filter.component.d.ts.map +1 -0
  260. package/libs/ui/inputs/src/lib/inline-filter/inline-filter.model.d.ts +6 -0
  261. package/libs/ui/inputs/src/lib/inline-filter/inline-filter.model.d.ts.map +1 -0
  262. package/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.d.ts +17 -0
  263. package/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.d.ts.map +1 -0
  264. package/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.d.ts.map +1 -1
  265. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +25 -24
  266. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts.map +1 -1
  267. package/libs/ui/layout/src/index.d.ts +2 -0
  268. package/libs/ui/layout/src/index.d.ts.map +1 -1
  269. package/libs/ui/layout/src/lib/anchor-link/anchor-link.directive.d.ts +10 -3
  270. package/libs/ui/layout/src/lib/anchor-link/anchor-link.directive.d.ts.map +1 -1
  271. package/libs/ui/layout/src/lib/block-list/block-list.component.d.ts +9 -2
  272. package/libs/ui/layout/src/lib/block-list/block-list.component.d.ts.map +1 -1
  273. package/libs/ui/layout/src/lib/cell-popin/cell-popin.component.d.ts +28 -0
  274. package/libs/ui/layout/src/lib/cell-popin/cell-popin.component.d.ts.map +1 -0
  275. package/libs/ui/layout/src/lib/expandable-panel/expandable-panel.component.d.ts +15 -8
  276. package/libs/ui/layout/src/lib/expandable-panel/expandable-panel.component.d.ts.map +1 -1
  277. package/libs/ui/layout/src/lib/interactive-table/interactive-table.component.d.ts +5 -1
  278. package/libs/ui/layout/src/lib/interactive-table/interactive-table.component.d.ts.map +1 -1
  279. package/libs/ui/layout/src/lib/truncated-text/truncated-text.component.d.ts +22 -0
  280. package/libs/ui/layout/src/lib/truncated-text/truncated-text.component.d.ts.map +1 -0
  281. package/libs/ui/layout/src/lib/ui-layout.module.d.ts.map +1 -1
  282. package/libs/ui/map/src/index.d.ts +1 -0
  283. package/libs/ui/map/src/index.d.ts.map +1 -1
  284. package/libs/ui/map/src/lib/components/feature-detail/feature-detail.component.d.ts +6 -2
  285. package/libs/ui/map/src/lib/components/feature-detail/feature-detail.component.d.ts.map +1 -1
  286. package/libs/ui/map/src/lib/components/spatial-extent/spatial-extent.component.d.ts +15 -0
  287. package/libs/ui/map/src/lib/components/spatial-extent/spatial-extent.component.d.ts.map +1 -0
  288. package/libs/ui/search/src/index.d.ts +2 -0
  289. package/libs/ui/search/src/index.d.ts.map +1 -1
  290. package/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.d.ts +17 -0
  291. package/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.d.ts.map +1 -0
  292. package/libs/ui/search/src/lib/results-list/results-list.component.d.ts.map +1 -1
  293. package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts +4 -3
  294. package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts.map +1 -1
  295. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts +10 -4
  296. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts.map +1 -1
  297. package/libs/ui/search/src/lib/ui-search.module.d.ts +22 -19
  298. package/libs/ui/search/src/lib/ui-search.module.d.ts.map +1 -1
  299. package/libs/util/app-config/src/lib/app-config.d.ts.map +1 -1
  300. package/libs/util/app-config/src/lib/fixtures.d.ts.map +1 -1
  301. package/libs/util/i18n/src/lib/i18n.constants.d.ts +1 -0
  302. package/libs/util/i18n/src/lib/i18n.constants.d.ts.map +1 -1
  303. package/libs/util/i18n/src/lib/language-codes.d.ts +23 -1
  304. package/libs/util/i18n/src/lib/language-codes.d.ts.map +1 -1
  305. package/libs/util/shared/src/index.d.ts +1 -0
  306. package/libs/util/shared/src/index.d.ts.map +1 -1
  307. package/libs/util/shared/src/lib/gn-ui-version.d.ts +3 -0
  308. package/libs/util/shared/src/lib/gn-ui-version.d.ts.map +1 -0
  309. package/libs/util/shared/src/lib/links/link-classifier.service.d.ts +3 -3
  310. package/libs/util/shared/src/lib/links/link-classifier.service.d.ts.map +1 -1
  311. package/libs/util/shared/src/lib/links/link-utils.d.ts +14 -7
  312. package/libs/util/shared/src/lib/links/link-utils.d.ts.map +1 -1
  313. package/package.json +2 -2
  314. package/src/libs/api/metadata-converter/src/index.ts +1 -0
  315. package/src/libs/api/metadata-converter/src/lib/base.converter.ts +1 -4
  316. package/src/libs/api/metadata-converter/src/lib/common/distribution.mapper.ts +1 -0
  317. package/src/libs/api/metadata-converter/src/lib/common/resource-types.ts +29 -15
  318. package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.service+eaux-usees.ts +2 -2
  319. package/src/libs/api/metadata-converter/src/lib/fixtures/geocat-ch.records.ts +3 -3
  320. package/src/libs/api/metadata-converter/src/lib/fixtures/metawal.records.ts +2 -2
  321. package/src/libs/api/metadata-converter/src/lib/fixtures/wallonie.records.service+napitswallonia.ts +2 -2
  322. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +70 -6
  323. package/src/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.ts +0 -1
  324. package/src/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.ts +13 -3
  325. package/src/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.ts +5 -1
  326. package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +10 -6
  327. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +7 -4
  328. package/src/libs/api/repository/src/lib/gn4/elasticsearch/constant.ts +2 -0
  329. package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +3 -11
  330. package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +118 -16
  331. package/src/libs/api/repository/src/lib/gn4/gn4.provider.ts +6 -0
  332. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +11 -0
  333. package/src/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.ts +3 -0
  334. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +27 -11
  335. package/src/libs/common/domain/src/lib/repository/records-repository.interface.ts +6 -0
  336. package/src/libs/common/fixtures/src/lib/elasticsearch/metadata-links.fixtures.ts +36 -26
  337. package/src/libs/common/fixtures/src/lib/link.fixtures.ts +16 -2
  338. package/src/libs/common/fixtures/src/lib/record-link.fixtures.ts +5 -5
  339. package/src/libs/common/fixtures/src/lib/records.fixtures.ts +64 -1
  340. package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.html +12 -9
  341. package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.ts +58 -10
  342. package/src/libs/feature/dataviz/src/lib/service/data.service.ts +37 -0
  343. package/src/libs/feature/dataviz/src/lib/table-view/table-view.component.html +1 -0
  344. package/src/libs/feature/dataviz/src/lib/table-view/table-view.component.ts +31 -1
  345. package/src/libs/feature/editor/src/index.ts +1 -0
  346. package/src/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.html +120 -0
  347. package/src/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.ts +325 -0
  348. package/src/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.ts +1 -2
  349. package/src/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.ts +2 -2
  350. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.html +2 -2
  351. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.ts +2 -2
  352. package/src/libs/feature/record/src/index.ts +1 -3
  353. package/src/libs/feature/record/src/lib/data-view/data-view.component.html +16 -10
  354. package/src/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.ts +2 -3
  355. package/src/libs/feature/record/src/lib/data-view-share/data-view-share.component.html +1 -1
  356. package/src/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.ts +4 -5
  357. package/src/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.html +2 -2
  358. package/src/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.ts +1 -0
  359. package/src/libs/feature/record/src/lib/map-view/map-view.component.html +38 -11
  360. package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +111 -18
  361. package/src/libs/feature/record/src/lib/record-meta/record-meta.component.ts +2 -2
  362. package/src/libs/feature/record/src/lib/state/mdview.actions.ts +10 -0
  363. package/src/libs/feature/record/src/lib/state/mdview.effects.ts +27 -3
  364. package/src/libs/feature/record/src/lib/state/mdview.facade.ts +21 -17
  365. package/src/libs/feature/record/src/lib/state/mdview.reducer.ts +12 -0
  366. package/src/libs/feature/record/src/lib/state/mdview.selectors.ts +9 -0
  367. package/src/libs/feature/router/src/lib/default/constants.ts +2 -0
  368. package/src/libs/feature/router/src/lib/default/router.config.ts +2 -0
  369. package/src/libs/feature/router/src/lib/default/router.service.ts +10 -0
  370. package/src/libs/feature/router/src/lib/default/state/router.facade.ts +10 -1
  371. package/src/libs/feature/search/src/index.ts +1 -1
  372. package/src/libs/feature/search/src/lib/constants.ts +3 -1
  373. package/src/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.html +0 -6
  374. package/src/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.ts +16 -8
  375. package/src/libs/feature/search/src/lib/feature-search.module.ts +9 -10
  376. package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.html +1 -1
  377. package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.ts +1 -0
  378. package/src/libs/feature/search/src/lib/record-url.token.ts +10 -1
  379. package/src/libs/feature/search/src/lib/results-hits/results-hits.container.component.css +0 -0
  380. package/src/libs/feature/search/src/lib/results-hits/results-hits.container.component.html +16 -0
  381. package/src/libs/feature/search/src/lib/results-hits/results-hits.container.component.ts +59 -0
  382. package/src/libs/feature/search/src/lib/results-list/results-list.container.component.css +6 -0
  383. package/src/libs/feature/search/src/lib/results-list/results-list.container.component.html +1 -0
  384. package/src/libs/feature/search/src/lib/results-list/results-list.container.component.ts +26 -5
  385. package/src/libs/feature/search/src/lib/results-table/results-table-container.component.html +1 -0
  386. package/src/libs/feature/search/src/lib/results-table/results-table-container.component.ts +13 -3
  387. package/src/libs/feature/search/src/lib/utils/service/fields.service.ts +4 -5
  388. package/src/libs/feature/search/src/lib/utils/service/fields.ts +99 -0
  389. package/src/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.html +1 -1
  390. package/src/libs/ui/dataviz/src/lib/chart/chart.component.ts +2 -1
  391. package/src/libs/ui/dataviz/src/lib/data-table/data-table.component.html +6 -3
  392. package/src/libs/ui/dataviz/src/lib/data-table/data-table.component.ts +5 -4
  393. package/src/libs/ui/elements/src/index.ts +4 -0
  394. package/src/libs/ui/elements/src/lib/api-card/api-card.component.html +4 -4
  395. package/src/libs/ui/elements/src/lib/download-item/download-item.component.html +8 -5
  396. package/src/libs/ui/elements/src/lib/download-item/download-item.component.ts +2 -2
  397. package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.html +38 -7
  398. package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.ts +29 -2
  399. package/src/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.css +4 -0
  400. package/src/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.html +13 -0
  401. package/src/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.ts +54 -0
  402. package/src/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.html +1 -1
  403. package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.html +68 -141
  404. package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.ts +38 -97
  405. package/src/libs/ui/elements/src/lib/internal-link-card-contact/internal-link-card-contact.component.html +69 -0
  406. package/src/libs/ui/elements/src/lib/internal-link-card-contact/internal-link-card-contact.component.ts +61 -0
  407. package/src/libs/ui/elements/src/lib/kind-badge/kind-badge.component.css +6 -0
  408. package/src/libs/ui/elements/src/lib/kind-badge/kind-badge.component.html +11 -0
  409. package/src/libs/ui/elements/src/lib/kind-badge/kind-badge.component.ts +70 -0
  410. package/src/libs/ui/elements/src/lib/link-card/link-card.component.html +5 -2
  411. package/src/libs/ui/elements/src/lib/link-card/link-card.component.ts +3 -7
  412. package/src/libs/ui/elements/src/lib/metadata-catalog/metadata-catalog.component.html +3 -5
  413. package/src/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.html +12 -9
  414. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.css +9 -0
  415. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.html +24 -7
  416. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.ts +12 -4
  417. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.html +2 -3
  418. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.ts +48 -9
  419. package/src/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.ts +4 -0
  420. package/src/libs/ui/elements/src/lib/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.html +107 -0
  421. package/src/libs/ui/elements/src/lib/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.ts +83 -0
  422. package/src/libs/ui/elements/src/lib/related-record-card/related-record-card.component.html +8 -29
  423. package/src/libs/ui/elements/src/lib/related-record-card/related-record-card.component.ts +14 -1
  424. package/src/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.css +0 -0
  425. package/src/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.html +110 -0
  426. package/src/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.ts +191 -0
  427. package/src/libs/ui/elements/src/lib/ui-elements.module.ts +11 -1
  428. package/src/libs/ui/inputs/src/index.ts +2 -1
  429. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.html +1 -1
  430. package/src/libs/ui/inputs/src/lib/button/button.component.ts +2 -2
  431. package/src/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.html +1 -1
  432. package/src/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.html +1 -1
  433. package/src/libs/ui/inputs/src/lib/inline-filter/inline-filter.component.html +23 -0
  434. package/src/libs/ui/inputs/src/lib/inline-filter/inline-filter.component.ts +44 -0
  435. package/src/libs/ui/inputs/src/lib/inline-filter/inline-filter.model.ts +5 -0
  436. package/src/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.css +0 -0
  437. package/src/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.html +43 -0
  438. package/src/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.ts +77 -0
  439. package/src/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.html +7 -8
  440. package/src/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.ts +2 -1
  441. package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +3 -3
  442. package/src/libs/ui/layout/src/index.ts +2 -0
  443. package/src/libs/ui/layout/src/lib/anchor-link/anchor-link.directive.ts +46 -2
  444. package/src/libs/ui/layout/src/lib/block-list/block-list.component.css +22 -0
  445. package/src/libs/ui/layout/src/lib/block-list/block-list.component.html +2 -2
  446. package/src/libs/ui/layout/src/lib/block-list/block-list.component.ts +43 -5
  447. package/src/libs/ui/layout/src/lib/carousel/carousel.component.css +0 -1
  448. package/src/libs/ui/layout/src/lib/carousel/carousel.component.html +1 -1
  449. package/src/libs/ui/layout/src/lib/cell-popin/cell-popin.component.html +40 -0
  450. package/src/libs/ui/layout/src/lib/cell-popin/cell-popin.component.ts +141 -0
  451. package/src/libs/ui/layout/src/lib/expandable-panel/expandable-panel.component.html +24 -8
  452. package/src/libs/ui/layout/src/lib/expandable-panel/expandable-panel.component.ts +36 -10
  453. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.html +4 -7
  454. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.ts +20 -0
  455. package/src/libs/ui/layout/src/lib/max-lines/max-lines.component.html +1 -1
  456. package/src/libs/ui/layout/src/lib/previous-next-buttons/previous-next-buttons.component.html +17 -5
  457. package/src/libs/ui/layout/src/lib/previous-next-buttons/previous-next-buttons.component.ts +3 -3
  458. package/src/libs/ui/layout/src/lib/truncated-text/truncated-text.component.html +27 -0
  459. package/src/libs/ui/layout/src/lib/truncated-text/truncated-text.component.ts +91 -0
  460. package/src/libs/ui/layout/src/lib/ui-layout.module.ts +2 -6
  461. package/src/libs/ui/map/src/index.ts +1 -0
  462. package/src/libs/ui/map/src/lib/components/feature-detail/feature-detail.component.html +3 -3
  463. package/src/libs/ui/map/src/lib/components/feature-detail/feature-detail.component.ts +27 -3
  464. package/src/libs/ui/map/src/lib/components/spatial-extent/spatial-extent.component.css +0 -0
  465. package/src/libs/ui/map/src/lib/components/spatial-extent/spatial-extent.component.html +4 -0
  466. 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
  467. package/src/libs/ui/search/src/index.ts +2 -0
  468. package/src/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.html +9 -81
  469. package/src/libs/ui/search/src/lib/results-hits-number/results-hits-number.component.html +1 -1
  470. package/src/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.html +25 -0
  471. package/src/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.ts +53 -0
  472. package/src/libs/ui/search/src/lib/results-list/results-layout.config.ts +2 -2
  473. package/src/libs/ui/search/src/lib/results-list/results-list.component.html +1 -0
  474. package/src/libs/ui/search/src/lib/results-list/results-list.component.ts +0 -1
  475. package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.html +16 -6
  476. package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.ts +15 -11
  477. package/src/libs/ui/search/src/lib/results-table/results-table.component.css +4 -0
  478. package/src/libs/ui/search/src/lib/results-table/results-table.component.html +31 -24
  479. package/src/libs/ui/search/src/lib/results-table/results-table.component.ts +33 -14
  480. package/src/libs/ui/search/src/lib/ui-search.module.ts +8 -0
  481. package/src/libs/ui/widgets/src/lib/progress-bar/progress-bar.component.html +2 -1
  482. package/src/libs/util/app-config/src/lib/app-config.ts +1 -0
  483. package/src/libs/util/app-config/src/lib/fixtures.ts +1 -0
  484. package/src/libs/util/i18n/src/lib/i18n.constants.ts +42 -0
  485. package/src/libs/util/i18n/src/lib/language-codes.ts +23 -1
  486. package/src/libs/util/shared/src/index.ts +1 -0
  487. package/src/libs/util/shared/src/lib/gn-ui-version.ts +8 -0
  488. package/src/libs/util/shared/src/lib/links/link-classifier.service.ts +15 -3
  489. package/src/libs/util/shared/src/lib/links/link-utils.ts +33 -12
  490. package/tailwind.base.config.js +3 -0
  491. package/tailwind.base.css +19 -26
  492. package/translations/de.json +79 -9
  493. package/translations/en.json +80 -10
  494. package/translations/es.json +78 -8
  495. package/translations/fr.json +80 -10
  496. package/translations/it.json +82 -12
  497. package/translations/nl.json +78 -8
  498. package/translations/pt.json +78 -8
  499. package/translations/sk.json +78 -8
  500. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.mjs +0 -79
  501. package/esm2022/libs/feature/record/src/lib/gn-ui-version.token.mjs +0 -3
  502. package/esm2022/libs/feature/search/src/lib/results-hits-number/results-hits.container.component.mjs +0 -18
  503. package/esm2022/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.mjs +0 -16
  504. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.d.ts +0 -15
  505. 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
  506. package/libs/feature/record/src/lib/gn-ui-version.token.d.ts +0 -3
  507. package/libs/feature/record/src/lib/gn-ui-version.token.d.ts.map +0 -1
  508. package/libs/feature/search/src/lib/results-hits-number/results-hits.container.component.d.ts +0 -9
  509. package/libs/feature/search/src/lib/results-hits-number/results-hits.container.component.d.ts.map +0 -1
  510. package/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.d.ts +0 -8
  511. package/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.d.ts.map +0 -1
  512. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.html +0 -1
  513. package/src/libs/feature/record/src/lib/gn-ui-version.token.ts +0 -3
  514. package/src/libs/feature/search/src/lib/results-hits-number/results-hits.container.component.html +0 -4
  515. package/src/libs/feature/search/src/lib/results-hits-number/results-hits.container.component.ts +0 -10
  516. package/src/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.css +0 -3
  517. package/src/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.html +0 -9
  518. package/src/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.ts +0 -15
  519. /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
@@ -0,0 +1,110 @@
1
+ import { Component, Input, ElementRef, ViewChild, ChangeDetectorRef, } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { provideIcons, NgIconComponent } from '@ng-icons/core';
4
+ import { iconoirReduce } from '@ng-icons/iconoir';
5
+ import { MatButtonModule } from '@angular/material/button';
6
+ import { OverlayModule, ScrollDispatcher, CdkScrollable, } from '@angular/cdk/overlay';
7
+ import { ButtonComponent } from '../../../../../../libs/ui/inputs/src';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@angular/cdk/overlay";
10
+ import * as i2 from "@angular/common";
11
+ export class CellPopinComponent {
12
+ set activePopin(active) {
13
+ this._activePopin = !!active;
14
+ this.updateIntersectionObserver();
15
+ }
16
+ get activePopin() {
17
+ return this._activePopin;
18
+ }
19
+ constructor(scrollDispatcher, cdr) {
20
+ this.scrollDispatcher = scrollDispatcher;
21
+ this.cdr = cdr;
22
+ this.extraClass = '';
23
+ this.isOpen = false;
24
+ this.isVisible = true;
25
+ this.overlayPositions = [
26
+ {
27
+ originX: 'end',
28
+ originY: 'top',
29
+ overlayX: 'end',
30
+ overlayY: 'top',
31
+ },
32
+ {
33
+ originX: 'start',
34
+ originY: 'top',
35
+ overlayX: 'start',
36
+ overlayY: 'top',
37
+ },
38
+ ];
39
+ this.firstCheck = true;
40
+ this._activePopin = true;
41
+ }
42
+ ngAfterViewInit() {
43
+ if (!this.activePopin) {
44
+ return;
45
+ }
46
+ if (this.cdkScrollContainer) {
47
+ this.scrollDispatcher.register(this.cdkScrollContainer);
48
+ }
49
+ this.updateIntersectionObserver();
50
+ }
51
+ ngOnDestroy() {
52
+ this.intersectionObserver?.disconnect();
53
+ this.scrollDispatcher.deregister(this.cdkScrollContainer);
54
+ }
55
+ updateIntersectionObserver() {
56
+ if (!this.scrollContainer || !this.anchorRef) {
57
+ return;
58
+ }
59
+ if (this.intersectionObserver) {
60
+ this.intersectionObserver?.disconnect();
61
+ }
62
+ this.intersectionObserver = new IntersectionObserver(([entry]) => {
63
+ const visible = entry.intersectionRatio >= 1;
64
+ // Ignore first visibility if first time opening it
65
+ if (this.firstCheck && !visible) {
66
+ this.firstCheck = false;
67
+ return;
68
+ }
69
+ this.firstCheck = false;
70
+ if (this.isVisible !== visible) {
71
+ this.isVisible = visible;
72
+ this.cdr.detectChanges();
73
+ }
74
+ }, {
75
+ root: this.scrollContainer.nativeElement,
76
+ threshold: 1.0,
77
+ });
78
+ this.intersectionObserver.observe(this.anchorRef.nativeElement);
79
+ }
80
+ openOverlay() {
81
+ this.isOpen = true;
82
+ }
83
+ closeOverlay() {
84
+ this.isOpen = false;
85
+ }
86
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CellPopinComponent, deps: [{ token: i1.ScrollDispatcher }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
87
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CellPopinComponent, isStandalone: true, selector: "gn-ui-cell-popin", inputs: { extraClass: "extraClass", cdkScrollContainer: "cdkScrollContainer", scrollContainer: "scrollContainer", activePopin: "activePopin" }, providers: [provideIcons({ iconoirReduce })], viewQueries: [{ propertyName: "anchorRef", first: true, predicate: ["anchorRef"], descendants: true }], ngImport: i0, template: "<div\n class=\"h-full flex items-center justify-center\"\n cdkOverlayOrigin\n #anchorRef\n #trigger=\"cdkOverlayOrigin\"\n [class]=\"extraClass\"\n data-cy=\"cell-popin\"\n>\n <ng-content select=\"[cellContent]\"></ng-content>\n <ng-template\n *ngIf=\"activePopin\"\n cdkConnectedOverlay\n [cdkConnectedOverlayPush]=\"false\"\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"isOpen\"\n [cdkConnectedOverlayPositions]=\"overlayPositions\"\n [cdkConnectedOverlayWidth]=\"'auto'\"\n [cdkConnectedOverlayFlexibleDimensions]=\"true\"\n [cdkConnectedOverlayGrowAfterOpen]=\"true\"\n (detach)=\"closeOverlay()\"\n >\n <div\n *ngIf=\"activePopin && isVisible\"\n class=\"bg-white shadow-lg border border-gray-300 relative\"\n data-cy=\"cell-popin-content\"\n >\n <ng-content select=\"[popinContent]\"></ng-content>\n <gn-ui-button\n data-cy=\"cell-popin-close\"\n [style.--gn-ui-button-background]=\"'bg-transparent'\"\n class=\"absolute top-2 right-2\"\n type=\"light\"\n (buttonClick)=\"closeOverlay()\"\n extraClass=\"w-10 h-8 px-1\"\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: 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: CellPopinComponent, decorators: [{
90
+ type: Component,
91
+ args: [{ selector: 'gn-ui-cell-popin', standalone: true, imports: [
92
+ CommonModule,
93
+ MatButtonModule,
94
+ OverlayModule,
95
+ ButtonComponent,
96
+ NgIconComponent,
97
+ ], providers: [provideIcons({ iconoirReduce })], template: "<div\n class=\"h-full flex items-center justify-center\"\n cdkOverlayOrigin\n #anchorRef\n #trigger=\"cdkOverlayOrigin\"\n [class]=\"extraClass\"\n data-cy=\"cell-popin\"\n>\n <ng-content select=\"[cellContent]\"></ng-content>\n <ng-template\n *ngIf=\"activePopin\"\n cdkConnectedOverlay\n [cdkConnectedOverlayPush]=\"false\"\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"isOpen\"\n [cdkConnectedOverlayPositions]=\"overlayPositions\"\n [cdkConnectedOverlayWidth]=\"'auto'\"\n [cdkConnectedOverlayFlexibleDimensions]=\"true\"\n [cdkConnectedOverlayGrowAfterOpen]=\"true\"\n (detach)=\"closeOverlay()\"\n >\n <div\n *ngIf=\"activePopin && isVisible\"\n class=\"bg-white shadow-lg border border-gray-300 relative\"\n data-cy=\"cell-popin-content\"\n >\n <ng-content select=\"[popinContent]\"></ng-content>\n <gn-ui-button\n data-cy=\"cell-popin-close\"\n [style.--gn-ui-button-background]=\"'bg-transparent'\"\n class=\"absolute top-2 right-2\"\n type=\"light\"\n (buttonClick)=\"closeOverlay()\"\n extraClass=\"w-10 h-8 px-1\"\n >\n <ng-icon name=\"iconoirReduce\" size=\"24\"></ng-icon>\n </gn-ui-button>\n </div>\n </ng-template>\n</div>\n" }]
98
+ }], ctorParameters: () => [{ type: i1.ScrollDispatcher }, { type: i0.ChangeDetectorRef }], propDecorators: { extraClass: [{
99
+ type: Input
100
+ }], cdkScrollContainer: [{
101
+ type: Input
102
+ }], scrollContainer: [{
103
+ type: Input
104
+ }], anchorRef: [{
105
+ type: ViewChild,
106
+ args: ['anchorRef']
107
+ }], activePopin: [{
108
+ type: Input
109
+ }] } });
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1wb3Bpbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2xheW91dC9zcmMvbGliL2NlbGwtcG9waW4vY2VsbC1wb3Bpbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2xheW91dC9zcmMvbGliL2NlbGwtcG9waW4vY2VsbC1wb3Bpbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULEtBQUssRUFFTCxVQUFVLEVBRVYsU0FBUyxFQUVULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUM5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBQzFELE9BQU8sRUFDTCxhQUFhLEVBRWIsZ0JBQWdCLEVBQ2hCLGFBQWEsR0FHZCxNQUFNLHNCQUFzQixDQUFBO0FBQzdCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQTs7OztBQWV0RSxNQUFNLE9BQU8sa0JBQWtCO0lBNkI3QixJQUNJLFdBQVcsQ0FBQyxNQUEyQjtRQUN6QyxJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUE7UUFDNUIsSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUE7SUFDbkMsQ0FBQztJQUNELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQTtJQUMxQixDQUFDO0lBRUQsWUFDVSxnQkFBa0MsRUFDbEMsR0FBc0I7UUFEdEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQXZDdkIsZUFBVSxHQUFHLEVBQUUsQ0FBQTtRQU1kLFdBQU0sR0FBRyxLQUFLLENBQUE7UUFDZCxjQUFTLEdBQUcsSUFBSSxDQUFBO1FBQ2hCLHFCQUFnQixHQUF3QjtZQUNoRDtnQkFDRSxPQUFPLEVBQUUsS0FBSztnQkFDZCxPQUFPLEVBQUUsS0FBSztnQkFDZCxRQUFRLEVBQUUsS0FBSztnQkFDZixRQUFRLEVBQUUsS0FBSzthQUNoQjtZQUNEO2dCQUNFLE9BQU8sRUFBRSxPQUFPO2dCQUNoQixPQUFPLEVBQUUsS0FBSztnQkFDZCxRQUFRLEVBQUUsT0FBTztnQkFDakIsUUFBUSxFQUFFLEtBQUs7YUFDaEI7U0FDRixDQUFBO1FBRU8sZUFBVSxHQUFHLElBQUksQ0FBQTtRQUdqQixpQkFBWSxHQUFHLElBQUksQ0FBQTtJQWN4QixDQUFDO0lBRUosZUFBZTtRQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdEIsT0FBTTtRQUNSLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUE7UUFDekQsQ0FBQztRQUVELElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFBO0lBQ25DLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLG9CQUFvQixFQUFFLFVBQVUsRUFBRSxDQUFBO1FBQ3ZDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUE7SUFDM0QsQ0FBQztJQUVELDBCQUEwQjtRQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUM3QyxPQUFNO1FBQ1IsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLFVBQVUsRUFBRSxDQUFBO1FBQ3pDLENBQUM7UUFFRCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxvQkFBb0IsQ0FDbEQsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUU7WUFDVixNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsaUJBQWlCLElBQUksQ0FBQyxDQUFBO1lBRTVDLG1EQUFtRDtZQUNuRCxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDaEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUE7Z0JBQ3ZCLE9BQU07WUFDUixDQUFDO1lBRUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUE7WUFFdkIsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLE9BQU8sRUFBRSxDQUFDO2dCQUMvQixJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQTtnQkFDeEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQTtZQUMxQixDQUFDO1FBQ0gsQ0FBQyxFQUNEO1lBQ0UsSUFBSSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYTtZQUN4QyxTQUFTLEVBQUUsR0FBRztTQUNmLENBQ0YsQ0FBQTtRQUVELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQTtJQUNqRSxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFBO0lBQ3BCLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUE7SUFDckIsQ0FBQzsrR0FyR1Usa0JBQWtCO21HQUFsQixrQkFBa0IsK01BSmxCLENBQUMsWUFBWSxDQUFDLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQyxrSUNsQzlDLHF4Q0F3Q0EsMkNEWkksWUFBWSxrSUFDWixlQUFlLDhCQUNmLGFBQWEsMnJDQUNiLGVBQWUsK0hBQ2YsZUFBZTs7NEZBTU4sa0JBQWtCO2tCQWQ5QixTQUFTOytCQUNFLGtCQUFrQixjQUNoQixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixlQUFlO3FCQUNoQixhQUNVLENBQUMsWUFBWSxDQUFDLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQztxSEFLbkMsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFFa0IsU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXO2dCQXlCbEIsV0FBVztzQkFEZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBFbGVtZW50UmVmLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBJbmplY3RvcixcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBwcm92aWRlSWNvbnMsIE5nSWNvbkNvbXBvbmVudCB9IGZyb20gJ0BuZy1pY29ucy9jb3JlJ1xuaW1wb3J0IHsgaWNvbm9pclJlZHVjZSB9IGZyb20gJ0BuZy1pY29ucy9pY29ub2lyJ1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJ1xuaW1wb3J0IHtcbiAgT3ZlcmxheU1vZHVsZSxcbiAgQ29ubmVjdGVkUG9zaXRpb24sXG4gIFNjcm9sbERpc3BhdGNoZXIsXG4gIENka1Njcm9sbGFibGUsXG4gIENka0Nvbm5lY3RlZE92ZXJsYXksXG4gIE92ZXJsYXlDb250YWluZXIsXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5J1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9pbnB1dHMvc3JjJ1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktY2VsbC1wb3BpbicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE92ZXJsYXlNb2R1bGUsXG4gICAgQnV0dG9uQ29tcG9uZW50LFxuICAgIE5nSWNvbkNvbXBvbmVudCxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbcHJvdmlkZUljb25zKHsgaWNvbm9pclJlZHVjZSB9KV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9jZWxsLXBvcGluLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2VsbFBvcGluQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgZXh0cmFDbGFzcyA9ICcnXG4gIEBJbnB1dCgpIGNka1Njcm9sbENvbnRhaW5lciE6IENka1Njcm9sbGFibGVcbiAgQElucHV0KCkgc2Nyb2xsQ29udGFpbmVyITogRWxlbWVudFJlZlxuXG4gIEBWaWV3Q2hpbGQoJ2FuY2hvclJlZicpIGFuY2hvclJlZiE6IEVsZW1lbnRSZWZcblxuICBwcm90ZWN0ZWQgaXNPcGVuID0gZmFsc2VcbiAgcHJvdGVjdGVkIGlzVmlzaWJsZSA9IHRydWVcbiAgcHJvdGVjdGVkIG92ZXJsYXlQb3NpdGlvbnM6IENvbm5lY3RlZFBvc2l0aW9uW10gPSBbXG4gICAge1xuICAgICAgb3JpZ2luWDogJ2VuZCcsXG4gICAgICBvcmlnaW5ZOiAndG9wJyxcbiAgICAgIG92ZXJsYXlYOiAnZW5kJyxcbiAgICAgIG92ZXJsYXlZOiAndG9wJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIG9yaWdpblg6ICdzdGFydCcsXG4gICAgICBvcmlnaW5ZOiAndG9wJyxcbiAgICAgIG92ZXJsYXlYOiAnc3RhcnQnLFxuICAgICAgb3ZlcmxheVk6ICd0b3AnLFxuICAgIH0sXG4gIF1cblxuICBwcml2YXRlIGZpcnN0Q2hlY2sgPSB0cnVlXG4gIHByaXZhdGUgaW50ZXJzZWN0aW9uT2JzZXJ2ZXI6IEludGVyc2VjdGlvbk9ic2VydmVyXG5cbiAgcHJpdmF0ZSBfYWN0aXZlUG9waW4gPSB0cnVlXG5cbiAgQElucHV0KClcbiAgc2V0IGFjdGl2ZVBvcGluKGFjdGl2ZTogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX2FjdGl2ZVBvcGluID0gISFhY3RpdmVcbiAgICB0aGlzLnVwZGF0ZUludGVyc2VjdGlvbk9ic2VydmVyKClcbiAgfVxuICBnZXQgYWN0aXZlUG9waW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZVBvcGluXG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHNjcm9sbERpc3BhdGNoZXI6IFNjcm9sbERpc3BhdGNoZXIsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICkge31cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgaWYgKCF0aGlzLmFjdGl2ZVBvcGluKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAodGhpcy5jZGtTY3JvbGxDb250YWluZXIpIHtcbiAgICAgIHRoaXMuc2Nyb2xsRGlzcGF0Y2hlci5yZWdpc3Rlcih0aGlzLmNka1Njcm9sbENvbnRhaW5lcilcbiAgICB9XG5cbiAgICB0aGlzLnVwZGF0ZUludGVyc2VjdGlvbk9ic2VydmVyKClcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuaW50ZXJzZWN0aW9uT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKVxuICAgIHRoaXMuc2Nyb2xsRGlzcGF0Y2hlci5kZXJlZ2lzdGVyKHRoaXMuY2RrU2Nyb2xsQ29udGFpbmVyKVxuICB9XG5cbiAgdXBkYXRlSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKSB7XG4gICAgaWYgKCF0aGlzLnNjcm9sbENvbnRhaW5lciB8fCAhdGhpcy5hbmNob3JSZWYpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmICh0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyKSB7XG4gICAgICB0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyPy5kaXNjb25uZWN0KClcbiAgICB9XG5cbiAgICB0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKFxuICAgICAgKFtlbnRyeV0pID0+IHtcbiAgICAgICAgY29uc3QgdmlzaWJsZSA9IGVudHJ5LmludGVyc2VjdGlvblJhdGlvID49IDFcblxuICAgICAgICAvLyBJZ25vcmUgZmlyc3QgdmlzaWJpbGl0eSBpZiBmaXJzdCB0aW1lIG9wZW5pbmcgaXRcbiAgICAgICAgaWYgKHRoaXMuZmlyc3RDaGVjayAmJiAhdmlzaWJsZSkge1xuICAgICAgICAgIHRoaXMuZmlyc3RDaGVjayA9IGZhbHNlXG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmZpcnN0Q2hlY2sgPSBmYWxzZVxuXG4gICAgICAgIGlmICh0aGlzLmlzVmlzaWJsZSAhPT0gdmlzaWJsZSkge1xuICAgICAgICAgIHRoaXMuaXNWaXNpYmxlID0gdmlzaWJsZVxuICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICByb290OiB0aGlzLnNjcm9sbENvbnRhaW5lci5uYXRpdmVFbGVtZW50LFxuICAgICAgICB0aHJlc2hvbGQ6IDEuMCxcbiAgICAgIH1cbiAgICApXG5cbiAgICB0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyLm9ic2VydmUodGhpcy5hbmNob3JSZWYubmF0aXZlRWxlbWVudClcbiAgfVxuXG4gIG9wZW5PdmVybGF5KCkge1xuICAgIHRoaXMuaXNPcGVuID0gdHJ1ZVxuICB9XG5cbiAgY2xvc2VPdmVybGF5KCkge1xuICAgIHRoaXMuaXNPcGVuID0gZmFsc2VcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cImgtZnVsbCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiXG4gIGNka092ZXJsYXlPcmlnaW5cbiAgI2FuY2hvclJlZlxuICAjdHJpZ2dlcj1cImNka092ZXJsYXlPcmlnaW5cIlxuICBbY2xhc3NdPVwiZXh0cmFDbGFzc1wiXG4gIGRhdGEtY3k9XCJjZWxsLXBvcGluXCJcbj5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2NlbGxDb250ZW50XVwiPjwvbmctY29udGVudD5cbiAgPG5nLXRlbXBsYXRlXG4gICAgKm5nSWY9XCJhY3RpdmVQb3BpblwiXG4gICAgY2RrQ29ubmVjdGVkT3ZlcmxheVxuICAgIFtjZGtDb25uZWN0ZWRPdmVybGF5UHVzaF09XCJmYWxzZVwiXG4gICAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlPcmlnaW5dPVwidHJpZ2dlclwiXG4gICAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlPcGVuXT1cImlzT3BlblwiXG4gICAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbnNdPVwib3ZlcmxheVBvc2l0aW9uc1wiXG4gICAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlXaWR0aF09XCInYXV0bydcIlxuICAgIFtjZGtDb25uZWN0ZWRPdmVybGF5RmxleGlibGVEaW1lbnNpb25zXT1cInRydWVcIlxuICAgIFtjZGtDb25uZWN0ZWRPdmVybGF5R3Jvd0FmdGVyT3Blbl09XCJ0cnVlXCJcbiAgICAoZGV0YWNoKT1cImNsb3NlT3ZlcmxheSgpXCJcbiAgPlxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwiYWN0aXZlUG9waW4gJiYgaXNWaXNpYmxlXCJcbiAgICAgIGNsYXNzPVwiYmctd2hpdGUgc2hhZG93LWxnIGJvcmRlciBib3JkZXItZ3JheS0zMDAgcmVsYXRpdmVcIlxuICAgICAgZGF0YS1jeT1cImNlbGwtcG9waW4tY29udGVudFwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3BvcGluQ29udGVudF1cIj48L25nLWNvbnRlbnQ+XG4gICAgICA8Z24tdWktYnV0dG9uXG4gICAgICAgIGRhdGEtY3k9XCJjZWxsLXBvcGluLWNsb3NlXCJcbiAgICAgICAgW3N0eWxlLi0tZ24tdWktYnV0dG9uLWJhY2tncm91bmRdPVwiJ2JnLXRyYW5zcGFyZW50J1wiXG4gICAgICAgIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTIgcmlnaHQtMlwiXG4gICAgICAgIHR5cGU9XCJsaWdodFwiXG4gICAgICAgIChidXR0b25DbGljayk9XCJjbG9zZU92ZXJsYXkoKVwiXG4gICAgICAgIGV4dHJhQ2xhc3M9XCJ3LTEwIGgtOCBweC0xXCJcbiAgICAgID5cbiAgICAgICAgPG5nLWljb24gbmFtZT1cImljb25vaXJSZWR1Y2VcIiBzaXplPVwiMjRcIj48L25nLWljb24+XG4gICAgICA8L2duLXVpLWJ1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19
@@ -1,33 +1,54 @@
1
- import { ChangeDetectionStrategy, Component, ElementRef, Input, ViewChild, } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, ContentChild, ElementRef, Input, TemplateRef, ViewChild, ChangeDetectorRef, } from '@angular/core';
2
2
  import { NgIcon, provideIcons } from '@ng-icons/core';
3
3
  import { CommonModule } from '@angular/common';
4
4
  import { matAdd, matRemove } from '@ng-icons/material-icons/baseline';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "@angular/common";
7
7
  export class ExpandablePanelComponent {
8
- constructor() {
9
- this.collapsed = true;
10
- this.maxHeight = this.setMaxHeight();
8
+ constructor(changeDetector) {
9
+ this.changeDetector = changeDetector;
10
+ this.iconColor = '';
11
+ this._collapsed = true;
12
+ }
13
+ ngAfterViewInit() {
14
+ if (this.contentDiv) {
15
+ this.contentObserver = new ResizeObserver(() => {
16
+ this.changeDetector.detectChanges();
17
+ });
18
+ this.contentObserver.observe(this.contentDiv.nativeElement);
19
+ }
20
+ }
21
+ set collapsed(value) {
22
+ this._collapsed = value;
23
+ }
24
+ get collapsed() {
25
+ return this._collapsed;
11
26
  }
12
27
  toggle() {
13
28
  this.collapsed = !this.collapsed;
14
- this.maxHeight = this.setMaxHeight();
15
29
  }
16
- setMaxHeight() {
17
- return `${this.collapsed ? '0' : this.contentDiv.nativeElement.scrollHeight}px`;
30
+ ngOnDestroy() {
31
+ if (this.contentObserver) {
32
+ this.contentObserver.disconnect();
33
+ }
18
34
  }
19
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ExpandablePanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
20
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ExpandablePanelComponent, isStandalone: true, selector: "gn-ui-expandable-panel", inputs: { title: "title", collapsed: "collapsed" }, viewQueries: [{ propertyName: "contentDiv", first: true, predicate: ["contentDiv"], descendants: true }], ngImport: i0, template: "<div\n class=\"group flex align-middle title border-b border-gray-100 cursor-pointer pt-2.5\"\n (click)=\"toggle()\"\n>\n <div class=\"grow font-medium text-black text-sm\">\n {{ title }}\n </div>\n <div\n class=\"w-8 opacity-25 text-primary group-hover:opacity-100 transition-opacity\"\n >\n <ng-icon name=\"matAdd\" *ngIf=\"collapsed\"></ng-icon>\n <ng-icon name=\"matRemove\" *ngIf=\"!collapsed\"></ng-icon>\n </div>\n</div>\n<div\n class=\"content overflow-hidden transition-[max-height] duration-300\"\n [ngClass]=\"collapsed ? 'ease-out' : 'ease-in'\"\n [style.maxHeight]=\"maxHeight\"\n #contentDiv\n>\n <ng-content></ng-content>\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: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], viewProviders: [provideIcons({ matAdd, matRemove })], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
35
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ExpandablePanelComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
36
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ExpandablePanelComponent, isStandalone: true, selector: "gn-ui-expandable-panel", inputs: { title: "title", iconColor: "iconColor", collapsed: "collapsed" }, queries: [{ propertyName: "titleTemplate", first: true, predicate: ["titleTemplate"], descendants: true }], viewQueries: [{ propertyName: "contentDiv", first: true, predicate: ["contentDiv"], descendants: true }], ngImport: i0, template: "<div\n class=\"group flex items-center justify-between title border-b border-gray-100 cursor-pointer\"\n (click)=\"toggle()\"\n data-cy=\"expandable-panel-header\"\n>\n <div class=\"grow py-2.5\">\n <ng-container *ngIf=\"titleTemplate; else simpleTitle\">\n <div data-cy=\"expandable-panel-custom-title\">\n <ng-container *ngTemplateOutlet=\"titleTemplate\"></ng-container>\n </div>\n </ng-container>\n <ng-template #simpleTitle>\n <div\n class=\"font-medium text-black text-sm\"\n data-cy=\"expandable-panel-title\"\n >\n {{ title }}\n </div>\n </ng-template>\n </div>\n <div\n class=\"w-8 opacity-25 text-primary group-hover:opacity-100 transition-opacity flex items-center shrink-0\"\n >\n <ng-icon\n [name]=\"collapsed ? 'matAdd' : 'matRemove'\"\n [style.color]=\"iconColor\"\n ></ng-icon>\n </div>\n</div>\n<div\n class=\"content overflow-hidden transition-all duration-300\"\n [ngClass]=\"collapsed ? 'ease-out' : 'ease-in'\"\n #contentDiv\n *ngIf=\"!collapsed\"\n data-cy=\"expandable-panel-content\"\n>\n <ng-content></ng-content>\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: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], viewProviders: [provideIcons({ matAdd, matRemove })], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
21
37
  }
22
38
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ExpandablePanelComponent, decorators: [{
23
39
  type: Component,
24
- args: [{ selector: 'gn-ui-expandable-panel', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, NgIcon], viewProviders: [provideIcons({ matAdd, matRemove })], template: "<div\n class=\"group flex align-middle title border-b border-gray-100 cursor-pointer pt-2.5\"\n (click)=\"toggle()\"\n>\n <div class=\"grow font-medium text-black text-sm\">\n {{ title }}\n </div>\n <div\n class=\"w-8 opacity-25 text-primary group-hover:opacity-100 transition-opacity\"\n >\n <ng-icon name=\"matAdd\" *ngIf=\"collapsed\"></ng-icon>\n <ng-icon name=\"matRemove\" *ngIf=\"!collapsed\"></ng-icon>\n </div>\n</div>\n<div\n class=\"content overflow-hidden transition-[max-height] duration-300\"\n [ngClass]=\"collapsed ? 'ease-out' : 'ease-in'\"\n [style.maxHeight]=\"maxHeight\"\n #contentDiv\n>\n <ng-content></ng-content>\n</div>\n" }]
25
- }], propDecorators: { title: [{
40
+ args: [{ selector: 'gn-ui-expandable-panel', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, NgIcon], viewProviders: [provideIcons({ matAdd, matRemove })], template: "<div\n class=\"group flex items-center justify-between title border-b border-gray-100 cursor-pointer\"\n (click)=\"toggle()\"\n data-cy=\"expandable-panel-header\"\n>\n <div class=\"grow py-2.5\">\n <ng-container *ngIf=\"titleTemplate; else simpleTitle\">\n <div data-cy=\"expandable-panel-custom-title\">\n <ng-container *ngTemplateOutlet=\"titleTemplate\"></ng-container>\n </div>\n </ng-container>\n <ng-template #simpleTitle>\n <div\n class=\"font-medium text-black text-sm\"\n data-cy=\"expandable-panel-title\"\n >\n {{ title }}\n </div>\n </ng-template>\n </div>\n <div\n class=\"w-8 opacity-25 text-primary group-hover:opacity-100 transition-opacity flex items-center shrink-0\"\n >\n <ng-icon\n [name]=\"collapsed ? 'matAdd' : 'matRemove'\"\n [style.color]=\"iconColor\"\n ></ng-icon>\n </div>\n</div>\n<div\n class=\"content overflow-hidden transition-all duration-300\"\n [ngClass]=\"collapsed ? 'ease-out' : 'ease-in'\"\n #contentDiv\n *ngIf=\"!collapsed\"\n data-cy=\"expandable-panel-content\"\n>\n <ng-content></ng-content>\n</div>\n" }]
41
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { title: [{
26
42
  type: Input
27
- }], collapsed: [{
43
+ }], iconColor: [{
28
44
  type: Input
45
+ }], titleTemplate: [{
46
+ type: ContentChild,
47
+ args: ['titleTemplate']
29
48
  }], contentDiv: [{
30
49
  type: ViewChild,
31
50
  args: ['contentDiv']
51
+ }], collapsed: [{
52
+ type: Input
32
53
  }] } });
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwYW5kYWJsZS1wYW5lbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2xheW91dC9zcmMvbGliL2V4cGFuZGFibGUtcGFuZWwvZXhwYW5kYWJsZS1wYW5lbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2xheW91dC9zcmMvbGliL2V4cGFuZGFibGUtcGFuZWwvZXhwYW5kYWJsZS1wYW5lbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUNMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLG1DQUFtQyxDQUFBOzs7QUFXckUsTUFBTSxPQUFPLHdCQUF3QjtJQVRyQztRQVdXLGNBQVMsR0FBRyxJQUFJLENBQUE7UUFFekIsY0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQTtLQVloQztJQVZDLE1BQU07UUFDSixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQTtRQUNoQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQTtJQUN0QyxDQUFDO0lBRUQsWUFBWTtRQUNWLE9BQU8sR0FDTCxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFlBQ3ZELElBQUksQ0FBQTtJQUNOLENBQUM7K0dBZlUsd0JBQXdCO21HQUF4Qix3QkFBd0IsZ1BDcEJyQyxncUJBc0JBLHlERExZLFlBQVksaU9BQUUsTUFBTSxrR0FDZixDQUFDLFlBQVksQ0FBQyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDOzs0RkFFekMsd0JBQXdCO2tCQVRwQyxTQUFTOytCQUNFLHdCQUF3QixtQkFHakIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLGlCQUNoQixDQUFDLFlBQVksQ0FBQyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDOzhCQUczQyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDbUIsVUFBVTtzQkFBbEMsU0FBUzt1QkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IE5nSWNvbiwgcHJvdmlkZUljb25zIH0gZnJvbSAnQG5nLWljb25zL2NvcmUnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBtYXRBZGQsIG1hdFJlbW92ZSB9IGZyb20gJ0BuZy1pY29ucy9tYXRlcmlhbC1pY29ucy9iYXNlbGluZSdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktZXhwYW5kYWJsZS1wYW5lbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9leHBhbmRhYmxlLXBhbmVsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZXhwYW5kYWJsZS1wYW5lbC5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBOZ0ljb25dLFxuICB2aWV3UHJvdmlkZXJzOiBbcHJvdmlkZUljb25zKHsgbWF0QWRkLCBtYXRSZW1vdmUgfSldLFxufSlcbmV4cG9ydCBjbGFzcyBFeHBhbmRhYmxlUGFuZWxDb21wb25lbnQge1xuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nXG4gIEBJbnB1dCgpIGNvbGxhcHNlZCA9IHRydWVcbiAgQFZpZXdDaGlsZCgnY29udGVudERpdicpIGNvbnRlbnREaXY6IEVsZW1lbnRSZWZcbiAgbWF4SGVpZ2h0ID0gdGhpcy5zZXRNYXhIZWlnaHQoKVxuXG4gIHRvZ2dsZSgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbGxhcHNlZCA9ICF0aGlzLmNvbGxhcHNlZFxuICAgIHRoaXMubWF4SGVpZ2h0ID0gdGhpcy5zZXRNYXhIZWlnaHQoKVxuICB9XG5cbiAgc2V0TWF4SGVpZ2h0KCkge1xuICAgIHJldHVybiBgJHtcbiAgICAgIHRoaXMuY29sbGFwc2VkID8gJzAnIDogdGhpcy5jb250ZW50RGl2Lm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSGVpZ2h0XG4gICAgfXB4YFxuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwiZ3JvdXAgZmxleCBhbGlnbi1taWRkbGUgdGl0bGUgYm9yZGVyLWIgYm9yZGVyLWdyYXktMTAwIGN1cnNvci1wb2ludGVyIHB0LTIuNVwiXG4gIChjbGljayk9XCJ0b2dnbGUoKVwiXG4+XG4gIDxkaXYgY2xhc3M9XCJncm93IGZvbnQtbWVkaXVtIHRleHQtYmxhY2sgdGV4dC1zbVwiPlxuICAgIHt7IHRpdGxlIH19XG4gIDwvZGl2PlxuICA8ZGl2XG4gICAgY2xhc3M9XCJ3LTggb3BhY2l0eS0yNSB0ZXh0LXByaW1hcnkgZ3JvdXAtaG92ZXI6b3BhY2l0eS0xMDAgdHJhbnNpdGlvbi1vcGFjaXR5XCJcbiAgPlxuICAgIDxuZy1pY29uIG5hbWU9XCJtYXRBZGRcIiAqbmdJZj1cImNvbGxhcHNlZFwiPjwvbmctaWNvbj5cbiAgICA8bmctaWNvbiBuYW1lPVwibWF0UmVtb3ZlXCIgKm5nSWY9XCIhY29sbGFwc2VkXCI+PC9uZy1pY29uPlxuICA8L2Rpdj5cbjwvZGl2PlxuPGRpdlxuICBjbGFzcz1cImNvbnRlbnQgb3ZlcmZsb3ctaGlkZGVuIHRyYW5zaXRpb24tW21heC1oZWlnaHRdIGR1cmF0aW9uLTMwMFwiXG4gIFtuZ0NsYXNzXT1cImNvbGxhcHNlZCA/ICdlYXNlLW91dCcgOiAnZWFzZS1pbidcIlxuICBbc3R5bGUubWF4SGVpZ2h0XT1cIm1heEhlaWdodFwiXG4gICNjb250ZW50RGl2XG4+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvZGl2PlxuIl19
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwYW5kYWJsZS1wYW5lbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2xheW91dC9zcmMvbGliL2V4cGFuZGFibGUtcGFuZWwvZXhwYW5kYWJsZS1wYW5lbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2xheW91dC9zcmMvbGliL2V4cGFuZGFibGUtcGFuZWwvZXhwYW5kYWJsZS1wYW5lbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFDTCxXQUFXLEVBQ1gsU0FBUyxFQUVULGlCQUFpQixHQUVsQixNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLG1DQUFtQyxDQUFBOzs7QUFXckUsTUFBTSxPQUFPLHdCQUF3QjtJQVNuQyxZQUE2QixjQUFpQztRQUFqQyxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFQckQsY0FBUyxHQUFJLEVBQUUsQ0FBQTtRQUloQixlQUFVLEdBQUcsSUFBSSxDQUFBO0lBR3dDLENBQUM7SUFFbEUsZUFBZTtRQUNiLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxjQUFjLENBQUMsR0FBRyxFQUFFO2dCQUM3QyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFBO1lBQ3JDLENBQUMsQ0FBQyxDQUFBO1lBQ0YsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQTtRQUM3RCxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQWEsU0FBUyxDQUFDLEtBQWM7UUFDbkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUE7SUFDekIsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQTtJQUN4QixDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFBO0lBQ2xDLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLEVBQUUsQ0FBQTtRQUNuQyxDQUFDO0lBQ0gsQ0FBQzsrR0FwQ1Usd0JBQXdCO21HQUF4Qix3QkFBd0Isb1hDekJyQyw0bkNBc0NBLHlERGhCWSxZQUFZLHdZQUFFLE1BQU0sa0dBQ2YsQ0FBQyxZQUFZLENBQUMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQzs7NEZBRXpDLHdCQUF3QjtrQkFUcEMsU0FBUzsrQkFDRSx3QkFBd0IsbUJBR2pCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxpQkFDaEIsQ0FBQyxZQUFZLENBQUMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztzRkFHM0MsS0FBSztzQkFBYixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ3lCLGFBQWE7c0JBQTNDLFlBQVk7dUJBQUMsZUFBZTtnQkFDSixVQUFVO3NCQUFsQyxTQUFTO3VCQUFDLFlBQVk7Z0JBZ0JWLFNBQVM7c0JBQXJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBPbkRlc3Ryb3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBBZnRlclZpZXdJbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgTmdJY29uLCBwcm92aWRlSWNvbnMgfSBmcm9tICdAbmctaWNvbnMvY29yZSdcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IG1hdEFkZCwgbWF0UmVtb3ZlIH0gZnJvbSAnQG5nLWljb25zL21hdGVyaWFsLWljb25zL2Jhc2VsaW5lJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1leHBhbmRhYmxlLXBhbmVsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2V4cGFuZGFibGUtcGFuZWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9leHBhbmRhYmxlLXBhbmVsLmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE5nSWNvbl0sXG4gIHZpZXdQcm92aWRlcnM6IFtwcm92aWRlSWNvbnMoeyBtYXRBZGQsIG1hdFJlbW92ZSB9KV0sXG59KVxuZXhwb3J0IGNsYXNzIEV4cGFuZGFibGVQYW5lbENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHRpdGxlPzogc3RyaW5nXG4gIEBJbnB1dCgpIGljb25Db2xvcj8gPSAnJ1xuICBAQ29udGVudENoaWxkKCd0aXRsZVRlbXBsYXRlJykgdGl0bGVUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50PlxuICBAVmlld0NoaWxkKCdjb250ZW50RGl2JykgY29udGVudERpdj86IEVsZW1lbnRSZWZcblxuICBwcml2YXRlIF9jb2xsYXBzZWQgPSB0cnVlXG4gIHByaXZhdGUgY29udGVudE9ic2VydmVyPzogUmVzaXplT2JzZXJ2ZXJcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgaWYgKHRoaXMuY29udGVudERpdikge1xuICAgICAgdGhpcy5jb250ZW50T2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKCkgPT4ge1xuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKVxuICAgICAgfSlcbiAgICAgIHRoaXMuY29udGVudE9ic2VydmVyLm9ic2VydmUodGhpcy5jb250ZW50RGl2Lm5hdGl2ZUVsZW1lbnQpXG4gICAgfVxuICB9XG5cbiAgQElucHV0KCkgc2V0IGNvbGxhcHNlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2NvbGxhcHNlZCA9IHZhbHVlXG4gIH1cblxuICBnZXQgY29sbGFwc2VkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9jb2xsYXBzZWRcbiAgfVxuXG4gIHRvZ2dsZSgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbGxhcHNlZCA9ICF0aGlzLmNvbGxhcHNlZFxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuY29udGVudE9ic2VydmVyKSB7XG4gICAgICB0aGlzLmNvbnRlbnRPYnNlcnZlci5kaXNjb25uZWN0KClcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJncm91cCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gdGl0bGUgYm9yZGVyLWIgYm9yZGVyLWdyYXktMTAwIGN1cnNvci1wb2ludGVyXCJcbiAgKGNsaWNrKT1cInRvZ2dsZSgpXCJcbiAgZGF0YS1jeT1cImV4cGFuZGFibGUtcGFuZWwtaGVhZGVyXCJcbj5cbiAgPGRpdiBjbGFzcz1cImdyb3cgcHktMi41XCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRpdGxlVGVtcGxhdGU7IGVsc2Ugc2ltcGxlVGl0bGVcIj5cbiAgICAgIDxkaXYgZGF0YS1jeT1cImV4cGFuZGFibGUtcGFuZWwtY3VzdG9tLXRpdGxlXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0aXRsZVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctdGVtcGxhdGUgI3NpbXBsZVRpdGxlPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImZvbnQtbWVkaXVtIHRleHQtYmxhY2sgdGV4dC1zbVwiXG4gICAgICAgIGRhdGEtY3k9XCJleHBhbmRhYmxlLXBhbmVsLXRpdGxlXCJcbiAgICAgID5cbiAgICAgICAge3sgdGl0bGUgfX1cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZGl2PlxuICA8ZGl2XG4gICAgY2xhc3M9XCJ3LTggb3BhY2l0eS0yNSB0ZXh0LXByaW1hcnkgZ3JvdXAtaG92ZXI6b3BhY2l0eS0xMDAgdHJhbnNpdGlvbi1vcGFjaXR5IGZsZXggaXRlbXMtY2VudGVyIHNocmluay0wXCJcbiAgPlxuICAgIDxuZy1pY29uXG4gICAgICBbbmFtZV09XCJjb2xsYXBzZWQgPyAnbWF0QWRkJyA6ICdtYXRSZW1vdmUnXCJcbiAgICAgIFtzdHlsZS5jb2xvcl09XCJpY29uQ29sb3JcIlxuICAgID48L25nLWljb24+XG4gIDwvZGl2PlxuPC9kaXY+XG48ZGl2XG4gIGNsYXNzPVwiY29udGVudCBvdmVyZmxvdy1oaWRkZW4gdHJhbnNpdGlvbi1hbGwgZHVyYXRpb24tMzAwXCJcbiAgW25nQ2xhc3NdPVwiY29sbGFwc2VkID8gJ2Vhc2Utb3V0JyA6ICdlYXNlLWluJ1wiXG4gICNjb250ZW50RGl2XG4gICpuZ0lmPVwiIWNvbGxhcHNlZFwiXG4gIGRhdGEtY3k9XCJleHBhbmRhYmxlLXBhbmVsLWNvbnRlbnRcIlxuPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbiJdfQ==
@@ -4,12 +4,18 @@ 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';
8
+ import { of } from 'rxjs';
7
9
  import * as i0 from "@angular/core";
8
10
  import * as i1 from "@angular/common";
9
11
  import * as i2 from "@ngx-translate/core";
12
+ marker('editor.record.lock.resourceType');
13
+ marker('editor.record.lock.harvested');
14
+ marker('editor.record.lock.owner');
10
15
  export class InteractiveTableComponent {
11
16
  constructor() {
12
17
  this.items = [];
18
+ this.canEditItem = () => of(true);
13
19
  this.isDraftPage = false;
14
20
  this.itemClick = new EventEmitter();
15
21
  }
@@ -24,23 +30,39 @@ export class InteractiveTableComponent {
24
30
  .join(' '),
25
31
  };
26
32
  }
33
+ getItemTitle(item) {
34
+ if (!this.isDraftPage) {
35
+ if (item.kind !== 'dataset') {
36
+ return 'editor.record.lock.resourceType';
37
+ }
38
+ else if (item.extras?.isHarvested) {
39
+ return 'editor.record.lock.harvested';
40
+ }
41
+ else if (!item.extras?.edit) {
42
+ return 'editor.record.lock.owner';
43
+ }
44
+ }
45
+ return '';
46
+ }
27
47
  handleRowClick(item) {
28
48
  this.itemClick.emit(item);
29
49
  }
30
50
  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 }); }
51
+ 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", canEditItem: "canEditItem", 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 [attr.data-cy-title]=\"item.title\"\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 (canEditItem(item) | async) === false,\n 'group-hover:text-main group-hover:bg-gray-50':\n canEditItem(item) | async,\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: "pipe", type: i1.AsyncPipe, name: "async" }, { 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
52
  }
33
53
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InteractiveTableComponent, decorators: [{
34
54
  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"] }]
55
+ 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 [attr.data-cy-title]=\"item.title\"\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 (canEditItem(item) | async) === false,\n 'group-hover:text-main group-hover:bg-gray-50':\n canEditItem(item) | async,\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
56
  }], propDecorators: { columns: [{
37
57
  type: ContentChildren,
38
58
  args: [InteractiveTableColumnComponent]
39
59
  }], items: [{
40
60
  type: Input
61
+ }], canEditItem: [{
62
+ type: Input
41
63
  }], isDraftPage: [{
42
64
  type: Input
43
65
  }], itemClick: [{
44
66
  type: Output
45
67
  }] } });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3RpdmUtdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9sYXlvdXQvc3JjL2xpYi9pbnRlcmFjdGl2ZS10YWJsZS9pbnRlcmFjdGl2ZS10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2xheW91dC9zcmMvbGliL2ludGVyYWN0aXZlLXRhYmxlL2ludGVyYWN0aXZlLXRhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULGVBQWUsRUFDZixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sK0RBQStELENBQUE7QUFDL0csT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDOUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDMUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFBOzs7O0FBV3JELE1BQU0sT0FBTyx5QkFBeUI7SUFUdEM7UUFhVyxVQUFLLEdBQWMsRUFBRSxDQUFBO1FBQ3JCLGdCQUFXLEdBQUcsS0FBSyxDQUFBO1FBQ2xCLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFBO0tBbUJsRDtJQWpCQyxJQUFJLFNBQVM7UUFDWCxPQUFPO1lBQ0wsdUJBQXVCLEVBQUUsSUFBSSxDQUFDLE9BQU87aUJBQ2xDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQ2QsTUFBTSxDQUFDLEtBQUs7Z0JBQ1YsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLO2dCQUNkLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSTtvQkFDWCxDQUFDLENBQUMsaUJBQWlCO29CQUNuQixDQUFDLENBQUMseUJBQXlCLENBQ2hDO2lCQUNBLElBQUksQ0FBQyxHQUFHLENBQUM7U0FDYixDQUFBO0lBQ0gsQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUFhO1FBQzFCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQzNCLENBQUM7K0dBeEJVLHlCQUF5QjttR0FBekIseUJBQXlCLG1LQUZ6QixDQUFDLFlBQVksQ0FBQyxFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxrREFHcEQsK0JBQStCLDZCQ3pCbEQsOHpFQWtFQSwyU0Q3Q1ksWUFBWSwwbEJBQUUsZUFBZSw0R0FBRSxlQUFlOzs0RkFHN0MseUJBQXlCO2tCQVRyQyxTQUFTOytCQUNFLHlCQUF5QixtQkFHbEIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsZUFBZSxFQUFFLGVBQWUsQ0FBQyxhQUM5QyxDQUFDLFlBQVksQ0FBQyxFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLENBQUMsQ0FBQzs4QkFJckUsT0FBTztzQkFETixlQUFlO3VCQUFDLCtCQUErQjtnQkFHdkMsS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0ksU0FBUztzQkFBbEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBJbnRlcmFjdGl2ZVRhYmxlQ29sdW1uQ29tcG9uZW50IH0gZnJvbSAnLi9pbnRlcmFjdGl2ZS10YWJsZS1jb2x1bW4vaW50ZXJhY3RpdmUtdGFibGUtY29sdW1uLmNvbXBvbmVudCdcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IE5nSWNvbkNvbXBvbmVudCwgcHJvdmlkZUljb25zIH0gZnJvbSAnQG5nLWljb25zL2NvcmUnXG5pbXBvcnQgeyBpY29ub2lyTmF2QXJyb3dEb3duLCBpY29ub2lyTmF2QXJyb3dVcCB9IGZyb20gJ0BuZy1pY29ucy9pY29ub2lyJ1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktaW50ZXJhY3RpdmUtdGFibGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vaW50ZXJhY3RpdmUtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pbnRlcmFjdGl2ZS10YWJsZS5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBOZ0ljb25Db21wb25lbnQsIFRyYW5zbGF0ZU1vZHVsZV0sXG4gIHByb3ZpZGVyczogW3Byb3ZpZGVJY29ucyh7IGljb25vaXJOYXZBcnJvd0Rvd24sIGljb25vaXJOYXZBcnJvd1VwIH0pXSxcbn0pXG5leHBvcnQgY2xhc3MgSW50ZXJhY3RpdmVUYWJsZUNvbXBvbmVudCB7XG4gIEBDb250ZW50Q2hpbGRyZW4oSW50ZXJhY3RpdmVUYWJsZUNvbHVtbkNvbXBvbmVudClcbiAgY29sdW1uczogUXVlcnlMaXN0PEludGVyYWN0aXZlVGFibGVDb2x1bW5Db21wb25lbnQ+XG5cbiAgQElucHV0KCkgaXRlbXM6IHVua25vd25bXSA9IFtdXG4gIEBJbnB1dCgpIGlzRHJhZnRQYWdlID0gZmFsc2VcbiAgQE91dHB1dCgpIGl0ZW1DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8dW5rbm93bj4oKVxuXG4gIGdldCBncmlkU3R5bGUoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICdncmlkLXRlbXBsYXRlLWNvbHVtbnMnOiB0aGlzLmNvbHVtbnNcbiAgICAgICAgLm1hcCgoY29sdW1uKSA9PlxuICAgICAgICAgIGNvbHVtbi53aWR0aFxuICAgICAgICAgICAgPyBjb2x1bW4ud2lkdGhcbiAgICAgICAgICAgIDogY29sdW1uLmdyb3dcbiAgICAgICAgICAgICAgPyBgbWlubWF4KDBweCwxZnIpYFxuICAgICAgICAgICAgICA6IGBtaW5tYXgoMHB4LG1heC1jb250ZW50KWBcbiAgICAgICAgKVxuICAgICAgICAuam9pbignICcpLFxuICAgIH1cbiAgfVxuXG4gIGhhbmRsZVJvd0NsaWNrKGl0ZW06IHVua25vd24pIHtcbiAgICB0aGlzLml0ZW1DbGljay5lbWl0KGl0ZW0pXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJncmlkIHctZnVsbFwiIFtuZ1N0eWxlXT1cImdyaWRTdHlsZVwiPlxuICA8ZGl2IGNsYXNzPVwiY29udGVudHMgdy1mdWxsXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnNcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgKm5nSWY9XCJjb2x1bW4uc29ydGFibGVcIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJ0YWJsZS1oZWFkZXItY2VsbCBnYXAtMVwiXG4gICAgICAgIChjbGljayk9XCJjb2x1bW4uc29ydGFibGUgJiYgY29sdW1uLmhhbmRsZVNvcnRDaGFuZ2UoKVwiXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb2x1bW4uaGVhZGVyXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzb3J0LWJ1dHRvbiBmbGV4IGZsZXgtY29sXCIgKm5nSWY9XCJjb2x1bW4uc29ydGFibGVcIj5cbiAgICAgICAgICA8bmctaWNvblxuICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LWdyYXktNjAwIC1tYi0yXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ3RleHQtbWFpbic6IGNvbHVtbi5hY3RpdmVTb3J0ID09PSAnYXNjJyB9XCJcbiAgICAgICAgICAgIG5hbWU9XCJpY29ub2lyTmF2QXJyb3dVcFwiXG4gICAgICAgICAgPjwvbmctaWNvbj5cbiAgICAgICAgICA8bmctaWNvblxuICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LWdyYXktNjAwXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ3RleHQtbWFpbic6IGNvbHVtbi5hY3RpdmVTb3J0ID09PSAnZGVzYycgfVwiXG4gICAgICAgICAgICBuYW1lPVwiaWNvbm9pck5hdkFycm93RG93blwiXG4gICAgICAgICAgPjwvbmctaWNvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxkaXYgKm5nSWY9XCIhY29sdW1uLnNvcnRhYmxlXCIgY2xhc3M9XCJ0YWJsZS1oZWFkZXItY2VsbFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29sdW1uLmhlYWRlclwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuICA8ZGl2XG4gICAgY2xhc3M9XCJjb250ZW50cyB0ZXh0LWdyYXktOTAwIGN1cnNvci1wb2ludGVyIGdyb3VwXCJcbiAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1wiXG4gICAgKGNsaWNrKT1cImhhbmRsZVJvd0NsaWNrKGl0ZW0pXCJcbiAgICBkYXRhLWN5PVwidGFibGUtcm93XCJcbiAgICBbdGl0bGVdPVwiXG4gICAgICAhaXRlbS5leHRyYXM/LmVkaXQgJiYgIWlzRHJhZnRQYWdlXG4gICAgICAgID8gKCdlZGl0b3IucmVjb3JkLmxvY2sucmVhc29uJyB8IHRyYW5zbGF0ZSlcbiAgICAgICAgOiAnJ1xuICAgIFwiXG4gID5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInJlbGF0aXZlIGgtMFwiXG4gICAgICBbbmdTdHlsZV09XCJ7ICdncmlkLWNvbHVtbic6ICdzcGFuICcgKyB0aGlzLmNvbHVtbnMubGVuZ3RoIH1cIlxuICAgID5cbiAgICAgIDwhLS0gdGhpcyBlbGVtZW50IGlzIG9ubHkgdXNlZCBpbiBrZXlib2FyZCBuYXZpZ2F0aW9uIC0tPlxuICAgICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJhYnNvbHV0ZSBpbnNldC14LTAgaC1bNTBweF0gYmctdHJhbnNwYXJlbnQgcG9pbnRlci1ldmVudHMtbm9uZVwiXG4gICAgICA+PC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnNcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJ0YWJsZS1yb3ctY2VsbCBweC0zIHB5LTEuNSBmbGV4IGl0ZW1zLWNlbnRlciBiZy13aGl0ZSB0cmFuc2l0aW9uLWNvbG9ycyBkdXJhdGlvbi03NSB0cnVuY2F0ZSBib3JkZXItYiBib3JkZXItZ3JheS0yMDBcIlxuICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgJ3RleHQtcHVycGxlLWxpZ2h0IGN1cnNvci1kZWZhdWx0JzpcbiAgICAgICAgICAgICFpdGVtLmV4dHJhcz8uZWRpdCAmJiAhaXNEcmFmdFBhZ2UsXG4gICAgICAgICAgJ2dyb3VwLWhvdmVyOnRleHQtbWFpbiBncm91cC1ob3ZlcjpiZy1ncmF5LTUwJzpcbiAgICAgICAgICAgIGl0ZW0uZXh0cmFzPy5lZGl0IHx8IGlzRHJhZnRQYWdlLFxuICAgICAgICB9XCJcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29sdW1uLmNlbGw7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtIH1cIlxuICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3RpdmUtdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9sYXlvdXQvc3JjL2xpYi9pbnRlcmFjdGl2ZS10YWJsZS9pbnRlcmFjdGl2ZS10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2xheW91dC9zcmMvbGliL2ludGVyYWN0aXZlLXRhYmxlL2ludGVyYWN0aXZlLXRhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULGVBQWUsRUFDZixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sK0RBQStELENBQUE7QUFDL0csT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDOUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDMUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3JELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUVoRSxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFBOzs7O0FBRXJDLE1BQU0sQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFBO0FBQ3pDLE1BQU0sQ0FBQyw4QkFBOEIsQ0FBQyxDQUFBO0FBQ3RDLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFBO0FBVWxDLE1BQU0sT0FBTyx5QkFBeUI7SUFUdEM7UUFhVyxVQUFLLEdBQWMsRUFBRSxDQUFBO1FBQ3JCLGdCQUFXLEdBQTJDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNwRSxnQkFBVyxHQUFHLEtBQUssQ0FBQTtRQUNsQixjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQTtLQWdDbEQ7SUE5QkMsSUFBSSxTQUFTO1FBQ1gsT0FBTztZQUNMLHVCQUF1QixFQUFFLElBQUksQ0FBQyxPQUFPO2lCQUNsQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUNkLE1BQU0sQ0FBQyxLQUFLO2dCQUNWLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSztnQkFDZCxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUk7b0JBQ1gsQ0FBQyxDQUFDLGlCQUFpQjtvQkFDbkIsQ0FBQyxDQUFDLHlCQUF5QixDQUNoQztpQkFDQSxJQUFJLENBQUMsR0FBRyxDQUFDO1NBQ2IsQ0FBQTtJQUNILENBQUM7SUFFRCxZQUFZLENBQUMsSUFBbUI7UUFDOUIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN0QixJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQzVCLE9BQU8saUNBQWlDLENBQUE7WUFDMUMsQ0FBQztpQkFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLENBQUM7Z0JBQ3BDLE9BQU8sOEJBQThCLENBQUE7WUFDdkMsQ0FBQztpQkFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQztnQkFDOUIsT0FBTywwQkFBMEIsQ0FBQTtZQUNuQyxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFBO0lBQ1gsQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUFhO1FBQzFCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQzNCLENBQUM7K0dBdENVLHlCQUF5QjttR0FBekIseUJBQXlCLCtMQUZ6QixDQUFDLFlBQVksQ0FBQyxFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxrREFHcEQsK0JBQStCLDZCQy9CbEQsOHdFQStEQSwyU0RwQ1ksWUFBWSwrb0JBQUUsZUFBZSw0R0FBRSxlQUFlOzs0RkFHN0MseUJBQXlCO2tCQVRyQyxTQUFTOytCQUNFLHlCQUF5QixtQkFHbEIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsZUFBZSxFQUFFLGVBQWUsQ0FBQyxhQUM5QyxDQUFDLFlBQVksQ0FBQyxFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLENBQUMsQ0FBQzs4QkFJckUsT0FBTztzQkFETixlQUFlO3VCQUFDLCtCQUErQjtnQkFHdkMsS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDSSxTQUFTO3NCQUFsQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IEludGVyYWN0aXZlVGFibGVDb2x1bW5Db21wb25lbnQgfSBmcm9tICcuL2ludGVyYWN0aXZlLXRhYmxlLWNvbHVtbi9pbnRlcmFjdGl2ZS10YWJsZS1jb2x1bW4uY29tcG9uZW50J1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgTmdJY29uQ29tcG9uZW50LCBwcm92aWRlSWNvbnMgfSBmcm9tICdAbmctaWNvbnMvY29yZSdcbmltcG9ydCB7IGljb25vaXJOYXZBcnJvd0Rvd24sIGljb25vaXJOYXZBcnJvd1VwIH0gZnJvbSAnQG5nLWljb25zL2ljb25vaXInXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgbWFya2VyIH0gZnJvbSAnQGJpZXNiamVyZy9uZ3gtdHJhbnNsYXRlLWV4dHJhY3QtbWFya2VyJ1xuaW1wb3J0IHsgQ2F0YWxvZ1JlY29yZCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcydcblxubWFya2VyKCdlZGl0b3IucmVjb3JkLmxvY2sucmVzb3VyY2VUeXBlJylcbm1hcmtlcignZWRpdG9yLnJlY29yZC5sb2NrLmhhcnZlc3RlZCcpXG5tYXJrZXIoJ2VkaXRvci5yZWNvcmQubG9jay5vd25lcicpXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1pbnRlcmFjdGl2ZS10YWJsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnRlcmFjdGl2ZS10YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ludGVyYWN0aXZlLXRhYmxlLmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE5nSWNvbkNvbXBvbmVudCwgVHJhbnNsYXRlTW9kdWxlXSxcbiAgcHJvdmlkZXJzOiBbcHJvdmlkZUljb25zKHsgaWNvbm9pck5hdkFycm93RG93biwgaWNvbm9pck5hdkFycm93VXAgfSldLFxufSlcbmV4cG9ydCBjbGFzcyBJbnRlcmFjdGl2ZVRhYmxlQ29tcG9uZW50IHtcbiAgQENvbnRlbnRDaGlsZHJlbihJbnRlcmFjdGl2ZVRhYmxlQ29sdW1uQ29tcG9uZW50KVxuICBjb2x1bW5zOiBRdWVyeUxpc3Q8SW50ZXJhY3RpdmVUYWJsZUNvbHVtbkNvbXBvbmVudD5cblxuICBASW5wdXQoKSBpdGVtczogdW5rbm93bltdID0gW11cbiAgQElucHV0KCkgY2FuRWRpdEl0ZW06IChpdGVtOiB1bmtub3duKSA9PiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gKCkgPT4gb2YodHJ1ZSlcbiAgQElucHV0KCkgaXNEcmFmdFBhZ2UgPSBmYWxzZVxuICBAT3V0cHV0KCkgaXRlbUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjx1bmtub3duPigpXG5cbiAgZ2V0IGdyaWRTdHlsZSgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgJ2dyaWQtdGVtcGxhdGUtY29sdW1ucyc6IHRoaXMuY29sdW1uc1xuICAgICAgICAubWFwKChjb2x1bW4pID0+XG4gICAgICAgICAgY29sdW1uLndpZHRoXG4gICAgICAgICAgICA/IGNvbHVtbi53aWR0aFxuICAgICAgICAgICAgOiBjb2x1bW4uZ3Jvd1xuICAgICAgICAgICAgICA/IGBtaW5tYXgoMHB4LDFmcilgXG4gICAgICAgICAgICAgIDogYG1pbm1heCgwcHgsbWF4LWNvbnRlbnQpYFxuICAgICAgICApXG4gICAgICAgIC5qb2luKCcgJyksXG4gICAgfVxuICB9XG5cbiAgZ2V0SXRlbVRpdGxlKGl0ZW06IENhdGFsb2dSZWNvcmQpIHtcbiAgICBpZiAoIXRoaXMuaXNEcmFmdFBhZ2UpIHtcbiAgICAgIGlmIChpdGVtLmtpbmQgIT09ICdkYXRhc2V0Jykge1xuICAgICAgICByZXR1cm4gJ2VkaXRvci5yZWNvcmQubG9jay5yZXNvdXJjZVR5cGUnXG4gICAgICB9IGVsc2UgaWYgKGl0ZW0uZXh0cmFzPy5pc0hhcnZlc3RlZCkge1xuICAgICAgICByZXR1cm4gJ2VkaXRvci5yZWNvcmQubG9jay5oYXJ2ZXN0ZWQnXG4gICAgICB9IGVsc2UgaWYgKCFpdGVtLmV4dHJhcz8uZWRpdCkge1xuICAgICAgICByZXR1cm4gJ2VkaXRvci5yZWNvcmQubG9jay5vd25lcidcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuICcnXG4gIH1cblxuICBoYW5kbGVSb3dDbGljayhpdGVtOiB1bmtub3duKSB7XG4gICAgdGhpcy5pdGVtQ2xpY2suZW1pdChpdGVtKVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZ3JpZCB3LWZ1bGxcIiBbbmdTdHlsZV09XCJncmlkU3R5bGVcIj5cbiAgPGRpdiBjbGFzcz1cImNvbnRlbnRzIHctZnVsbFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb2x1bW5zXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgICpuZ0lmPVwiY29sdW1uLnNvcnRhYmxlXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwidGFibGUtaGVhZGVyLWNlbGwgZ2FwLTFcIlxuICAgICAgICAoY2xpY2spPVwiY29sdW1uLnNvcnRhYmxlICYmIGNvbHVtbi5oYW5kbGVTb3J0Q2hhbmdlKClcIlxuICAgICAgPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29sdW1uLmhlYWRlclwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic29ydC1idXR0b24gZmxleCBmbGV4LWNvbFwiICpuZ0lmPVwiY29sdW1uLnNvcnRhYmxlXCI+XG4gICAgICAgICAgPG5nLWljb25cbiAgICAgICAgICAgIGNsYXNzPVwidGV4dC1ncmF5LTYwMCAtbWItMlwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICd0ZXh0LW1haW4nOiBjb2x1bW4uYWN0aXZlU29ydCA9PT0gJ2FzYycgfVwiXG4gICAgICAgICAgICBuYW1lPVwiaWNvbm9pck5hdkFycm93VXBcIlxuICAgICAgICAgID48L25nLWljb24+XG4gICAgICAgICAgPG5nLWljb25cbiAgICAgICAgICAgIGNsYXNzPVwidGV4dC1ncmF5LTYwMFwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICd0ZXh0LW1haW4nOiBjb2x1bW4uYWN0aXZlU29ydCA9PT0gJ2Rlc2MnIH1cIlxuICAgICAgICAgICAgbmFtZT1cImljb25vaXJOYXZBcnJvd0Rvd25cIlxuICAgICAgICAgID48L25nLWljb24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9idXR0b24+XG4gICAgICA8ZGl2ICpuZ0lmPVwiIWNvbHVtbi5zb3J0YWJsZVwiIGNsYXNzPVwidGFibGUtaGVhZGVyLWNlbGxcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbHVtbi5oZWFkZXJcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiY29udGVudHMgdGV4dC1ncmF5LTkwMCBjdXJzb3ItcG9pbnRlciBncm91cFwiXG4gICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXNcIlxuICAgIChjbGljayk9XCJoYW5kbGVSb3dDbGljayhpdGVtKVwiXG4gICAgZGF0YS1jeT1cInRhYmxlLXJvd1wiXG4gICAgW2F0dHIuZGF0YS1jeS10aXRsZV09XCJpdGVtLnRpdGxlXCJcbiAgICBbdGl0bGVdPVwiZ2V0SXRlbVRpdGxlKGl0ZW0pIHwgdHJhbnNsYXRlXCJcbiAgPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwicmVsYXRpdmUgaC0wXCJcbiAgICAgIFtuZ1N0eWxlXT1cInsgJ2dyaWQtY29sdW1uJzogJ3NwYW4gJyArIHRoaXMuY29sdW1ucy5sZW5ndGggfVwiXG4gICAgPlxuICAgICAgPCEtLSB0aGlzIGVsZW1lbnQgaXMgb25seSB1c2VkIGluIGtleWJvYXJkIG5hdmlnYXRpb24gLS0+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cImFic29sdXRlIGluc2V0LXgtMCBoLVs1MHB4XSBiZy10cmFuc3BhcmVudCBwb2ludGVyLWV2ZW50cy1ub25lXCJcbiAgICAgID48L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uc1wiPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInRhYmxlLXJvdy1jZWxsIHB4LTMgcHktMS41IGZsZXggaXRlbXMtY2VudGVyIGJnLXdoaXRlIHRyYW5zaXRpb24tY29sb3JzIGR1cmF0aW9uLTc1IHRydW5jYXRlIGJvcmRlci1iIGJvcmRlci1ncmF5LTIwMFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAndGV4dC1wdXJwbGUtbGlnaHQgY3Vyc29yLWRlZmF1bHQnOlxuICAgICAgICAgICAgKGNhbkVkaXRJdGVtKGl0ZW0pIHwgYXN5bmMpID09PSBmYWxzZSxcbiAgICAgICAgICAnZ3JvdXAtaG92ZXI6dGV4dC1tYWluIGdyb3VwLWhvdmVyOmJnLWdyYXktNTAnOlxuICAgICAgICAgICAgY2FuRWRpdEl0ZW0oaXRlbSkgfCBhc3luYyxcbiAgICAgICAgfVwiXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImNvbHVtbi5jZWxsOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogaXRlbSB9XCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -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,73 @@
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 } from '@ng-icons/iconoir';
5
+ import { TranslateModule } from '@ngx-translate/core';
6
+ import { MatButtonModule } from '@angular/material/button';
7
+ import { CdkScrollable, OverlayModule, } from '@angular/cdk/overlay';
8
+ import { ButtonComponent } from '../../../../../../libs/ui/inputs/src';
9
+ import { CellPopinComponent } from '../cell-popin/cell-popin.component';
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "@angular/common";
12
+ export class TruncatedTextComponent {
13
+ constructor(cd, ngZone) {
14
+ this.cd = cd;
15
+ this.ngZone = ngZone;
16
+ this.text = '';
17
+ this.extraClass = '';
18
+ this.isTextTruncated = false;
19
+ this.resizeObserver = new ResizeObserver(() => {
20
+ this.ngZone.run(() => this.checkTextTruncation());
21
+ });
22
+ this.mutationObserver = new MutationObserver(() => {
23
+ this.ngZone.run(() => {
24
+ this.checkTextTruncation();
25
+ });
26
+ });
27
+ }
28
+ ngAfterViewInit() {
29
+ const element = this.textElement.nativeElement;
30
+ this.resizeObserver?.observe(element);
31
+ this.mutationObserver?.observe(element.parentElement, {
32
+ attributes: true,
33
+ childList: true,
34
+ subtree: true,
35
+ });
36
+ this.checkTextTruncation();
37
+ }
38
+ ngOnDestroy() {
39
+ this.resizeObserver?.disconnect();
40
+ this.mutationObserver?.disconnect();
41
+ }
42
+ checkTextTruncation() {
43
+ const element = this.textElement.nativeElement;
44
+ this.isTextTruncated = element.scrollWidth > element.clientWidth;
45
+ this.cd.detectChanges();
46
+ }
47
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TruncatedTextComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
48
+ 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", scrollContainer: "scrollContainer", cdkScrollContainer: "cdkScrollContainer" }, providers: [provideIcons({ iconoirExpand })], viewQueries: [{ propertyName: "textElement", first: true, predicate: ["textElement"], descendants: true }], ngImport: i0, template: "<gn-ui-cell-popin\n #popinRef\n [activePopin]=\"isTextTruncated\"\n [scrollContainer]=\"scrollContainer\"\n [cdkScrollContainer]=\"cdkScrollContainer\"\n>\n <div\n cellContent\n class=\"flex items-center justify-between w-full gap-2\"\n [class]=\"extraClass\"\n >\n <span #textElement class=\"truncate py-3 px-2\">\n {{ text }}\n </span>\n <gn-ui-button\n *ngIf=\"isTextTruncated\"\n type=\"outline\"\n extraClass=\"w-10 h-8 border rounded-lg mr-2\"\n (buttonClick)=\"popinRef.openOverlay()\"\n >\n <ng-icon name=\"iconoirExpand\" size=\"24\"> </ng-icon>\n </gn-ui-button>\n </div>\n <div popinContent class=\"sm:w-64 xs:w-32 py-4 pl-6 pr-9\">\n <p>{{ text }}</p>\n </div>\n</gn-ui-cell-popin>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: OverlayModule }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: CellPopinComponent, selector: "gn-ui-cell-popin", inputs: ["extraClass", "cdkScrollContainer", "scrollContainer", "activePopin"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }] }); }
49
+ }
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TruncatedTextComponent, decorators: [{
51
+ type: Component,
52
+ args: [{ selector: 'gn-ui-truncated-text', standalone: true, imports: [
53
+ CommonModule,
54
+ TranslateModule,
55
+ MatButtonModule,
56
+ OverlayModule,
57
+ ButtonComponent,
58
+ CellPopinComponent,
59
+ NgIconComponent,
60
+ ], providers: [provideIcons({ iconoirExpand })], template: "<gn-ui-cell-popin\n #popinRef\n [activePopin]=\"isTextTruncated\"\n [scrollContainer]=\"scrollContainer\"\n [cdkScrollContainer]=\"cdkScrollContainer\"\n>\n <div\n cellContent\n class=\"flex items-center justify-between w-full gap-2\"\n [class]=\"extraClass\"\n >\n <span #textElement class=\"truncate py-3 px-2\">\n {{ text }}\n </span>\n <gn-ui-button\n *ngIf=\"isTextTruncated\"\n type=\"outline\"\n extraClass=\"w-10 h-8 border rounded-lg mr-2\"\n (buttonClick)=\"popinRef.openOverlay()\"\n >\n <ng-icon name=\"iconoirExpand\" size=\"24\"> </ng-icon>\n </gn-ui-button>\n </div>\n <div popinContent class=\"sm:w-64 xs:w-32 py-4 pl-6 pr-9\">\n <p>{{ text }}</p>\n </div>\n</gn-ui-cell-popin>\n" }]
61
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.NgZone }], propDecorators: { text: [{
62
+ type: Input
63
+ }], extraClass: [{
64
+ type: Input
65
+ }], scrollContainer: [{
66
+ type: Input
67
+ }], cdkScrollContainer: [{
68
+ type: Input
69
+ }], textElement: [{
70
+ type: ViewChild,
71
+ args: ['textElement']
72
+ }] } });
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1bmNhdGVkLXRleHQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9sYXlvdXQvc3JjL2xpYi90cnVuY2F0ZWQtdGV4dC90cnVuY2F0ZWQtdGV4dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2xheW91dC9zcmMvbGliL3RydW5jYXRlZC10ZXh0L3RydW5jYXRlZC10ZXh0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBRUwsU0FBUyxFQUNULE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUM5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUMxRCxPQUFPLEVBQ0wsYUFBYSxFQUNiLGFBQWEsR0FHZCxNQUFNLHNCQUFzQixDQUFBO0FBQzdCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQTtBQUN0RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQTs7O0FBa0J2RSxNQUFNLE9BQU8sc0JBQXNCO0lBYWpDLFlBQ21CLEVBQXFCLEVBQ3JCLE1BQWM7UUFEZCxPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBZHhCLFNBQUksR0FBRyxFQUFFLENBQUE7UUFDVCxlQUFVLEdBQUcsRUFBRSxDQUFBO1FBTXhCLG9CQUFlLEdBQUcsS0FBSyxDQUFBO1FBU3JCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQUMsR0FBRyxFQUFFO1lBQzVDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLENBQUE7UUFDbkQsQ0FBQyxDQUFDLENBQUE7UUFFRixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUU7WUFDaEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO2dCQUNuQixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQTtZQUM1QixDQUFDLENBQUMsQ0FBQTtRQUNKLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELGVBQWU7UUFDYixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQTtRQUM5QyxJQUFJLENBQUMsY0FBYyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUNyQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUU7WUFDcEQsVUFBVSxFQUFFLElBQUk7WUFDaEIsU0FBUyxFQUFFLElBQUk7WUFDZixPQUFPLEVBQUUsSUFBSTtTQUNkLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFBO0lBQzVCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGNBQWMsRUFBRSxVQUFVLEVBQUUsQ0FBQTtRQUNqQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLENBQUE7SUFDckMsQ0FBQztJQUVPLG1CQUFtQjtRQUN6QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQTtRQUU5QyxJQUFJLENBQUMsZUFBZSxHQUFHLE9BQU8sQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQTtRQUNoRSxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFBO0lBQ3pCLENBQUM7K0dBakRVLHNCQUFzQjttR0FBdEIsc0JBQXNCLHFNQUp0QixDQUFDLFlBQVksQ0FBQyxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUMsc0lDcEM5QywydkJBMkJBLDJDRENJLFlBQVksa0lBQ1osZUFBZSw4QkFDZixlQUFlLDhCQUNmLGFBQWEsK0JBQ2IsZUFBZSwrSEFDZixrQkFBa0IsNklBQ2xCLGVBQWU7OzRGQU1OLHNCQUFzQjtrQkFoQmxDLFNBQVM7K0JBQ0Usc0JBQXNCLGNBQ3BCLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixhQUFhO3dCQUNiLGVBQWU7d0JBQ2Ysa0JBQWtCO3dCQUNsQixlQUFlO3FCQUNoQixhQUNVLENBQUMsWUFBWSxDQUFDLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQzsyR0FLbkMsSUFBSTtzQkFBWixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBRW9CLFdBQVc7c0JBQXBDLFNBQVM7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIFZpZXdDaGlsZCxcbiAgTmdab25lLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgcHJvdmlkZUljb25zLCBOZ0ljb25Db21wb25lbnQgfSBmcm9tICdAbmctaWNvbnMvY29yZSdcbmltcG9ydCB7IGljb25vaXJFeHBhbmQgfSBmcm9tICdAbmctaWNvbnMvaWNvbm9pcidcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nXG5pbXBvcnQge1xuICBDZGtTY3JvbGxhYmxlLFxuICBPdmVybGF5TW9kdWxlLFxuICBWaWV3cG9ydFJ1bGVyLFxuICBDb25uZWN0ZWRQb3NpdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknXG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2lucHV0cy9zcmMnXG5pbXBvcnQgeyBDZWxsUG9waW5Db21wb25lbnQgfSBmcm9tICcuLi9jZWxsLXBvcGluL2NlbGwtcG9waW4uY29tcG9uZW50J1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS10cnVuY2F0ZWQtdGV4dCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBPdmVybGF5TW9kdWxlLFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBDZWxsUG9waW5Db21wb25lbnQsXG4gICAgTmdJY29uQ29tcG9uZW50LFxuICBdLFxuICBwcm92aWRlcnM6IFtwcm92aWRlSWNvbnMoeyBpY29ub2lyRXhwYW5kIH0pXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3RydW5jYXRlZC10ZXh0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgVHJ1bmNhdGVkVGV4dENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHRleHQgPSAnJ1xuICBASW5wdXQoKSBleHRyYUNsYXNzID0gJydcbiAgQElucHV0KCkgc2Nyb2xsQ29udGFpbmVyITogRWxlbWVudFJlZlxuICBASW5wdXQoKSBjZGtTY3JvbGxDb250YWluZXIhOiBDZGtTY3JvbGxhYmxlXG5cbiAgQFZpZXdDaGlsZCgndGV4dEVsZW1lbnQnKSB0ZXh0RWxlbWVudDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD5cblxuICBpc1RleHRUcnVuY2F0ZWQgPSBmYWxzZVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgcmVzaXplT2JzZXJ2ZXI6IFJlc2l6ZU9ic2VydmVyXG4gIHByaXZhdGUgcmVhZG9ubHkgbXV0YXRpb25PYnNlcnZlcjogTXV0YXRpb25PYnNlcnZlclxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbmdab25lOiBOZ1pvbmVcbiAgKSB7XG4gICAgdGhpcy5yZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PiB7XG4gICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4gdGhpcy5jaGVja1RleHRUcnVuY2F0aW9uKCkpXG4gICAgfSlcblxuICAgIHRoaXMubXV0YXRpb25PYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKCgpID0+IHtcbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgIHRoaXMuY2hlY2tUZXh0VHJ1bmNhdGlvbigpXG4gICAgICB9KVxuICAgIH0pXG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMudGV4dEVsZW1lbnQubmF0aXZlRWxlbWVudFxuICAgIHRoaXMucmVzaXplT2JzZXJ2ZXI/Lm9ic2VydmUoZWxlbWVudClcbiAgICB0aGlzLm11dGF0aW9uT2JzZXJ2ZXI/Lm9ic2VydmUoZWxlbWVudC5wYXJlbnRFbGVtZW50LCB7XG4gICAgICBhdHRyaWJ1dGVzOiB0cnVlLFxuICAgICAgY2hpbGRMaXN0OiB0cnVlLFxuICAgICAgc3VidHJlZTogdHJ1ZSxcbiAgICB9KVxuICAgIHRoaXMuY2hlY2tUZXh0VHJ1bmNhdGlvbigpXG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnJlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KClcbiAgICB0aGlzLm11dGF0aW9uT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKVxuICB9XG5cbiAgcHJpdmF0ZSBjaGVja1RleHRUcnVuY2F0aW9uKCkge1xuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLnRleHRFbGVtZW50Lm5hdGl2ZUVsZW1lbnRcblxuICAgIHRoaXMuaXNUZXh0VHJ1bmNhdGVkID0gZWxlbWVudC5zY3JvbGxXaWR0aCA+IGVsZW1lbnQuY2xpZW50V2lkdGhcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKVxuICB9XG59XG4iLCI8Z24tdWktY2VsbC1wb3BpblxuICAjcG9waW5SZWZcbiAgW2FjdGl2ZVBvcGluXT1cImlzVGV4dFRydW5jYXRlZFwiXG4gIFtzY3JvbGxDb250YWluZXJdPVwic2Nyb2xsQ29udGFpbmVyXCJcbiAgW2Nka1Njcm9sbENvbnRhaW5lcl09XCJjZGtTY3JvbGxDb250YWluZXJcIlxuPlxuICA8ZGl2XG4gICAgY2VsbENvbnRlbnRcbiAgICBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiB3LWZ1bGwgZ2FwLTJcIlxuICAgIFtjbGFzc109XCJleHRyYUNsYXNzXCJcbiAgPlxuICAgIDxzcGFuICN0ZXh0RWxlbWVudCBjbGFzcz1cInRydW5jYXRlIHB5LTMgcHgtMlwiPlxuICAgICAge3sgdGV4dCB9fVxuICAgIDwvc3Bhbj5cbiAgICA8Z24tdWktYnV0dG9uXG4gICAgICAqbmdJZj1cImlzVGV4dFRydW5jYXRlZFwiXG4gICAgICB0eXBlPVwib3V0bGluZVwiXG4gICAgICBleHRyYUNsYXNzPVwidy0xMCBoLTggYm9yZGVyIHJvdW5kZWQtbGcgbXItMlwiXG4gICAgICAoYnV0dG9uQ2xpY2spPVwicG9waW5SZWYub3Blbk92ZXJsYXkoKVwiXG4gICAgPlxuICAgICAgPG5nLWljb24gbmFtZT1cImljb25vaXJFeHBhbmRcIiBzaXplPVwiMjRcIj4gPC9uZy1pY29uPlxuICAgIDwvZ24tdWktYnV0dG9uPlxuICA8L2Rpdj5cbiAgPGRpdiBwb3BpbkNvbnRlbnQgY2xhc3M9XCJzbTp3LTY0IHhzOnctMzIgcHktNCBwbC02IHByLTlcIj5cbiAgICA8cD57eyB0ZXh0IH19PC9wPlxuICA8L2Rpdj5cbjwvZ24tdWktY2VsbC1wb3Bpbj5cbiJdfQ==