geonetwork-ui 2.6.0-dev.9df114cd4 → 2.6.0-dev.a0bd52a21

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 (504) 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 +42 -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 +45 -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 +25 -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 +33 -7
  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 +4 -4
  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 -1
  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 +3 -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/block-list/block-list.component.mjs +48 -11
  91. package/esm2022/libs/ui/layout/src/lib/carousel/carousel.component.mjs +3 -3
  92. package/esm2022/libs/ui/layout/src/lib/cell-popin/cell-popin.component.mjs +110 -0
  93. package/esm2022/libs/ui/layout/src/lib/expandable-panel/expandable-panel.component.mjs +34 -13
  94. package/esm2022/libs/ui/layout/src/lib/interactive-table/interactive-table.component.mjs +25 -3
  95. package/esm2022/libs/ui/layout/src/lib/max-lines/max-lines.component.mjs +3 -3
  96. package/esm2022/libs/ui/layout/src/lib/previous-next-buttons/previous-next-buttons.component.mjs +6 -6
  97. package/esm2022/libs/ui/layout/src/lib/truncated-text/truncated-text.component.mjs +73 -0
  98. package/esm2022/libs/ui/layout/src/lib/ui-layout.module.mjs +4 -12
  99. package/esm2022/libs/ui/map/src/index.mjs +2 -1
  100. package/esm2022/libs/ui/map/src/lib/components/feature-detail/feature-detail.component.mjs +29 -4
  101. package/esm2022/libs/ui/map/src/lib/components/spatial-extent/spatial-extent.component.mjs +80 -0
  102. package/esm2022/libs/ui/search/src/index.mjs +3 -1
  103. package/esm2022/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.mjs +4 -8
  104. package/esm2022/libs/ui/search/src/lib/results-hits-number/results-hits-number.component.mjs +3 -3
  105. package/esm2022/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.mjs +53 -0
  106. package/esm2022/libs/ui/search/src/lib/results-list/results-layout.config.mjs +2 -2
  107. package/esm2022/libs/ui/search/src/lib/results-list/results-list.component.mjs +3 -3
  108. package/esm2022/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.mjs +21 -12
  109. package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +39 -17
  110. package/esm2022/libs/ui/search/src/lib/ui-search.module.mjs +19 -5
  111. package/esm2022/libs/ui/widgets/src/lib/progress-bar/progress-bar.component.mjs +3 -3
  112. package/esm2022/libs/util/app-config/src/lib/app-config.mjs +2 -1
  113. package/esm2022/libs/util/app-config/src/lib/fixtures.mjs +2 -1
  114. package/esm2022/libs/util/i18n/src/lib/i18n.constants.mjs +42 -1
  115. package/esm2022/libs/util/i18n/src/lib/language-codes.mjs +24 -2
  116. package/esm2022/libs/util/shared/src/index.mjs +2 -1
  117. package/esm2022/libs/util/shared/src/lib/gn-ui-version.mjs +6 -0
  118. package/esm2022/libs/util/shared/src/lib/links/link-classifier.service.mjs +5 -1
  119. package/esm2022/libs/util/shared/src/lib/links/link-utils.mjs +16 -6
  120. package/esm2022/translations/de.json +75 -8
  121. package/esm2022/translations/en.json +77 -10
  122. package/esm2022/translations/es.json +74 -7
  123. package/esm2022/translations/fr.json +76 -9
  124. package/esm2022/translations/it.json +81 -14
  125. package/esm2022/translations/nl.json +74 -7
  126. package/esm2022/translations/pt.json +74 -7
  127. package/fesm2022/geonetwork-ui.mjs +3585 -1487
  128. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  129. package/libs/api/metadata-converter/src/index.d.ts +1 -0
  130. package/libs/api/metadata-converter/src/index.d.ts.map +1 -1
  131. package/libs/api/metadata-converter/src/lib/base.converter.d.ts.map +1 -1
  132. package/libs/api/metadata-converter/src/lib/common/distribution.mapper.d.ts.map +1 -1
  133. package/libs/api/metadata-converter/src/lib/common/resource-types.d.ts +21 -0
  134. package/libs/api/metadata-converter/src/lib/common/resource-types.d.ts.map +1 -1
  135. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
  136. package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts +0 -1
  137. package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts.map +1 -1
  138. package/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.d.ts +1 -0
  139. package/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.d.ts.map +1 -1
  140. package/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.d.ts.map +1 -1
  141. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts.map +1 -1
  142. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
  143. package/libs/api/repository/src/lib/gn4/elasticsearch/constant.d.ts.map +1 -1
  144. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts +1 -1
  145. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts.map +1 -1
  146. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts +13 -2
  147. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts.map +1 -1
  148. package/libs/api/repository/src/lib/gn4/gn4.provider.d.ts.map +1 -1
  149. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +2 -0
  150. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
  151. package/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.d.ts +1 -0
  152. package/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.d.ts.map +1 -1
  153. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +23 -17
  154. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
  155. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts +6 -0
  156. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts.map +1 -1
  157. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts +12 -8
  158. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts.map +1 -1
  159. package/libs/feature/dataviz/src/lib/service/data.service.d.ts +1 -0
  160. package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
  161. package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts +5 -2
  162. package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts.map +1 -1
  163. package/libs/feature/editor/src/index.d.ts +1 -0
  164. package/libs/feature/editor/src/index.d.ts.map +1 -1
  165. package/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.d.ts +52 -0
  166. package/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.d.ts.map +1 -0
  167. package/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.d.ts.map +1 -1
  168. package/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.d.ts +6 -6
  169. package/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.d.ts.map +1 -1
  170. 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
  171. package/libs/feature/record/src/index.d.ts +1 -3
  172. package/libs/feature/record/src/index.d.ts.map +1 -1
  173. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts +9 -1
  174. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts.map +1 -1
  175. package/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.d.ts +2 -3
  176. package/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.d.ts.map +1 -1
  177. package/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.d.ts +1 -2
  178. package/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.d.ts.map +1 -1
  179. package/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.d.ts +2 -1
  180. package/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.d.ts.map +1 -1
  181. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
  182. package/libs/feature/record/src/lib/record-meta/record-meta.component.d.ts +2 -2
  183. package/libs/feature/record/src/lib/state/mdview.actions.d.ts +10 -0
  184. package/libs/feature/record/src/lib/state/mdview.actions.d.ts.map +1 -1
  185. package/libs/feature/record/src/lib/state/mdview.effects.d.ts +9 -1
  186. package/libs/feature/record/src/lib/state/mdview.effects.d.ts.map +1 -1
  187. package/libs/feature/record/src/lib/state/mdview.facade.d.ts +28 -21
  188. package/libs/feature/record/src/lib/state/mdview.facade.d.ts.map +1 -1
  189. package/libs/feature/record/src/lib/state/mdview.reducer.d.ts +2 -0
  190. package/libs/feature/record/src/lib/state/mdview.reducer.d.ts.map +1 -1
  191. package/libs/feature/record/src/lib/state/mdview.selectors.d.ts +2 -0
  192. package/libs/feature/record/src/lib/state/mdview.selectors.d.ts.map +1 -1
  193. package/libs/feature/router/src/lib/default/constants.d.ts +2 -0
  194. package/libs/feature/router/src/lib/default/constants.d.ts.map +1 -1
  195. package/libs/feature/router/src/lib/default/router.config.d.ts +2 -0
  196. package/libs/feature/router/src/lib/default/router.config.d.ts.map +1 -1
  197. package/libs/feature/router/src/lib/default/router.service.d.ts.map +1 -1
  198. package/libs/feature/router/src/lib/default/state/router.facade.d.ts +5 -0
  199. package/libs/feature/router/src/lib/default/state/router.facade.d.ts.map +1 -1
  200. package/libs/feature/search/src/index.d.ts +1 -1
  201. package/libs/feature/search/src/index.d.ts.map +1 -1
  202. package/libs/feature/search/src/lib/constants.d.ts.map +1 -1
  203. package/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.d.ts.map +1 -1
  204. package/libs/feature/search/src/lib/feature-search.module.d.ts +4 -2
  205. package/libs/feature/search/src/lib/feature-search.module.d.ts.map +1 -1
  206. package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts +2 -1
  207. package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts.map +1 -1
  208. package/libs/feature/search/src/lib/record-url.token.d.ts +3 -1
  209. package/libs/feature/search/src/lib/record-url.token.d.ts.map +1 -1
  210. package/libs/feature/search/src/lib/results-hits/results-hits.container.component.d.ts +21 -0
  211. package/libs/feature/search/src/lib/results-hits/results-hits.container.component.d.ts.map +1 -0
  212. package/libs/feature/search/src/lib/results-list/results-list.container.component.d.ts +5 -3
  213. package/libs/feature/search/src/lib/results-list/results-list.container.component.d.ts.map +1 -1
  214. package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts +6 -5
  215. package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts.map +1 -1
  216. package/libs/feature/search/src/lib/utils/service/fields.d.ts +21 -0
  217. package/libs/feature/search/src/lib/utils/service/fields.d.ts.map +1 -1
  218. package/libs/feature/search/src/lib/utils/service/fields.service.d.ts.map +1 -1
  219. package/libs/ui/dataviz/src/lib/chart/chart.component.d.ts +2 -1
  220. package/libs/ui/dataviz/src/lib/chart/chart.component.d.ts.map +1 -1
  221. package/libs/ui/dataviz/src/lib/data-table/data-table.component.d.ts +6 -1
  222. package/libs/ui/dataviz/src/lib/data-table/data-table.component.d.ts.map +1 -1
  223. package/libs/ui/elements/src/index.d.ts +4 -0
  224. package/libs/ui/elements/src/index.d.ts.map +1 -1
  225. package/libs/ui/elements/src/lib/download-item/download-item.component.d.ts +1 -1
  226. package/libs/ui/elements/src/lib/download-item/download-item.component.d.ts.map +1 -1
  227. package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts +7 -1
  228. package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts.map +1 -1
  229. package/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.d.ts +15 -0
  230. package/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.d.ts.map +1 -0
  231. package/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.d.ts +6 -13
  232. package/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.d.ts.map +1 -1
  233. package/libs/ui/elements/src/lib/internal-link-card-contact/internal-link-card-contact.component.d.ts +14 -0
  234. package/libs/ui/elements/src/lib/internal-link-card-contact/internal-link-card-contact.component.d.ts.map +1 -0
  235. package/libs/ui/elements/src/lib/kind-badge/kind-badge.component.d.ts +13 -0
  236. package/libs/ui/elements/src/lib/kind-badge/kind-badge.component.d.ts.map +1 -0
  237. package/libs/ui/elements/src/lib/link-card/link-card.component.d.ts +1 -1
  238. package/libs/ui/elements/src/lib/link-card/link-card.component.d.ts.map +1 -1
  239. package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts +2 -2
  240. package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts.map +1 -1
  241. package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts +3 -0
  242. package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts.map +1 -1
  243. package/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.d.ts.map +1 -1
  244. package/libs/ui/elements/src/lib/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.d.ts +27 -0
  245. package/libs/ui/elements/src/lib/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.d.ts.map +1 -0
  246. package/libs/ui/elements/src/lib/related-record-card/related-record-card.component.d.ts +8 -1
  247. package/libs/ui/elements/src/lib/related-record-card/related-record-card.component.d.ts.map +1 -1
  248. package/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.d.ts +31 -0
  249. package/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.d.ts.map +1 -0
  250. package/libs/ui/elements/src/lib/ui-elements.module.d.ts +5 -1
  251. package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
  252. package/libs/ui/inputs/src/index.d.ts +2 -0
  253. package/libs/ui/inputs/src/index.d.ts.map +1 -1
  254. package/libs/ui/inputs/src/lib/button/button.component.d.ts +1 -1
  255. package/libs/ui/inputs/src/lib/button/button.component.d.ts.map +1 -1
  256. package/libs/ui/inputs/src/lib/inline-filter/inline-filter.component.d.ts +14 -0
  257. package/libs/ui/inputs/src/lib/inline-filter/inline-filter.component.d.ts.map +1 -0
  258. package/libs/ui/inputs/src/lib/inline-filter/inline-filter.model.d.ts +6 -0
  259. package/libs/ui/inputs/src/lib/inline-filter/inline-filter.model.d.ts.map +1 -0
  260. package/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.d.ts +17 -0
  261. package/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.d.ts.map +1 -0
  262. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +25 -24
  263. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts.map +1 -1
  264. package/libs/ui/layout/src/index.d.ts +2 -0
  265. package/libs/ui/layout/src/index.d.ts.map +1 -1
  266. package/libs/ui/layout/src/lib/block-list/block-list.component.d.ts +9 -2
  267. package/libs/ui/layout/src/lib/block-list/block-list.component.d.ts.map +1 -1
  268. package/libs/ui/layout/src/lib/cell-popin/cell-popin.component.d.ts +28 -0
  269. package/libs/ui/layout/src/lib/cell-popin/cell-popin.component.d.ts.map +1 -0
  270. package/libs/ui/layout/src/lib/expandable-panel/expandable-panel.component.d.ts +15 -8
  271. package/libs/ui/layout/src/lib/expandable-panel/expandable-panel.component.d.ts.map +1 -1
  272. package/libs/ui/layout/src/lib/interactive-table/interactive-table.component.d.ts +5 -1
  273. package/libs/ui/layout/src/lib/interactive-table/interactive-table.component.d.ts.map +1 -1
  274. package/libs/ui/layout/src/lib/truncated-text/truncated-text.component.d.ts +22 -0
  275. package/libs/ui/layout/src/lib/truncated-text/truncated-text.component.d.ts.map +1 -0
  276. package/libs/ui/layout/src/lib/ui-layout.module.d.ts.map +1 -1
  277. package/libs/ui/map/src/index.d.ts +1 -0
  278. package/libs/ui/map/src/index.d.ts.map +1 -1
  279. package/libs/ui/map/src/lib/components/feature-detail/feature-detail.component.d.ts +6 -2
  280. package/libs/ui/map/src/lib/components/feature-detail/feature-detail.component.d.ts.map +1 -1
  281. package/libs/ui/map/src/lib/components/spatial-extent/spatial-extent.component.d.ts +15 -0
  282. package/libs/ui/map/src/lib/components/spatial-extent/spatial-extent.component.d.ts.map +1 -0
  283. package/libs/ui/search/src/index.d.ts +2 -0
  284. package/libs/ui/search/src/index.d.ts.map +1 -1
  285. package/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.d.ts +17 -0
  286. package/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.d.ts.map +1 -0
  287. package/libs/ui/search/src/lib/results-list/results-list.component.d.ts.map +1 -1
  288. package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts +4 -3
  289. package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts.map +1 -1
  290. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts +10 -4
  291. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts.map +1 -1
  292. package/libs/ui/search/src/lib/ui-search.module.d.ts +22 -19
  293. package/libs/ui/search/src/lib/ui-search.module.d.ts.map +1 -1
  294. package/libs/util/app-config/src/lib/app-config.d.ts.map +1 -1
  295. package/libs/util/app-config/src/lib/fixtures.d.ts.map +1 -1
  296. package/libs/util/i18n/src/lib/i18n.constants.d.ts +1 -0
  297. package/libs/util/i18n/src/lib/i18n.constants.d.ts.map +1 -1
  298. package/libs/util/i18n/src/lib/language-codes.d.ts +23 -1
  299. package/libs/util/i18n/src/lib/language-codes.d.ts.map +1 -1
  300. package/libs/util/shared/src/index.d.ts +1 -0
  301. package/libs/util/shared/src/index.d.ts.map +1 -1
  302. package/libs/util/shared/src/lib/gn-ui-version.d.ts +3 -0
  303. package/libs/util/shared/src/lib/gn-ui-version.d.ts.map +1 -0
  304. package/libs/util/shared/src/lib/links/link-classifier.service.d.ts +3 -3
  305. package/libs/util/shared/src/lib/links/link-classifier.service.d.ts.map +1 -1
  306. package/libs/util/shared/src/lib/links/link-utils.d.ts +14 -7
  307. package/libs/util/shared/src/lib/links/link-utils.d.ts.map +1 -1
  308. package/package.json +2 -2
  309. package/src/libs/api/metadata-converter/src/index.ts +1 -0
  310. package/src/libs/api/metadata-converter/src/lib/base.converter.ts +1 -4
  311. package/src/libs/api/metadata-converter/src/lib/common/distribution.mapper.ts +1 -0
  312. package/src/libs/api/metadata-converter/src/lib/common/resource-types.ts +29 -15
  313. package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.service+eaux-usees.ts +2 -2
  314. package/src/libs/api/metadata-converter/src/lib/fixtures/geocat-ch.records.ts +3 -3
  315. package/src/libs/api/metadata-converter/src/lib/fixtures/metawal.records.ts +2 -2
  316. package/src/libs/api/metadata-converter/src/lib/fixtures/wallonie.records.service+napitswallonia.ts +2 -2
  317. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +64 -6
  318. package/src/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.ts +0 -1
  319. package/src/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.ts +13 -3
  320. package/src/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.ts +5 -1
  321. package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +10 -6
  322. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +7 -4
  323. package/src/libs/api/repository/src/lib/gn4/elasticsearch/constant.ts +2 -0
  324. package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +3 -11
  325. package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +118 -16
  326. package/src/libs/api/repository/src/lib/gn4/gn4.provider.ts +6 -0
  327. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +11 -0
  328. package/src/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.ts +3 -0
  329. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +24 -11
  330. package/src/libs/common/domain/src/lib/repository/records-repository.interface.ts +6 -0
  331. package/src/libs/common/fixtures/src/lib/elasticsearch/metadata-links.fixtures.ts +36 -26
  332. package/src/libs/common/fixtures/src/lib/link.fixtures.ts +16 -2
  333. package/src/libs/common/fixtures/src/lib/record-link.fixtures.ts +5 -5
  334. package/src/libs/common/fixtures/src/lib/records.fixtures.ts +64 -1
  335. package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.html +12 -9
  336. package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.ts +54 -10
  337. package/src/libs/feature/dataviz/src/lib/service/data.service.ts +37 -0
  338. package/src/libs/feature/dataviz/src/lib/table-view/table-view.component.html +1 -0
  339. package/src/libs/feature/dataviz/src/lib/table-view/table-view.component.ts +27 -1
  340. package/src/libs/feature/editor/src/index.ts +1 -0
  341. package/src/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.html +120 -0
  342. package/src/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.ts +325 -0
  343. package/src/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.ts +1 -2
  344. package/src/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.ts +2 -2
  345. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.html +2 -2
  346. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.ts +2 -2
  347. package/src/libs/feature/record/src/index.ts +1 -3
  348. package/src/libs/feature/record/src/lib/data-view/data-view.component.html +16 -10
  349. package/src/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.ts +2 -3
  350. package/src/libs/feature/record/src/lib/data-view-share/data-view-share.component.html +1 -1
  351. package/src/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.ts +4 -5
  352. package/src/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.html +2 -2
  353. package/src/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.ts +1 -0
  354. package/src/libs/feature/record/src/lib/map-view/map-view.component.html +25 -16
  355. package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +35 -4
  356. package/src/libs/feature/record/src/lib/record-meta/record-meta.component.ts +2 -2
  357. package/src/libs/feature/record/src/lib/state/mdview.actions.ts +10 -0
  358. package/src/libs/feature/record/src/lib/state/mdview.effects.ts +27 -3
  359. package/src/libs/feature/record/src/lib/state/mdview.facade.ts +21 -17
  360. package/src/libs/feature/record/src/lib/state/mdview.reducer.ts +12 -0
  361. package/src/libs/feature/record/src/lib/state/mdview.selectors.ts +9 -0
  362. package/src/libs/feature/router/src/lib/default/constants.ts +2 -0
  363. package/src/libs/feature/router/src/lib/default/router.config.ts +2 -0
  364. package/src/libs/feature/router/src/lib/default/router.service.ts +10 -0
  365. package/src/libs/feature/router/src/lib/default/state/router.facade.ts +10 -1
  366. package/src/libs/feature/search/src/index.ts +1 -1
  367. package/src/libs/feature/search/src/lib/constants.ts +3 -1
  368. package/src/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.ts +2 -2
  369. package/src/libs/feature/search/src/lib/feature-search.module.ts +9 -10
  370. package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.html +1 -1
  371. package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.ts +1 -0
  372. package/src/libs/feature/search/src/lib/record-url.token.ts +10 -1
  373. package/src/libs/feature/search/src/lib/results-hits/results-hits.container.component.css +0 -0
  374. package/src/libs/feature/search/src/lib/results-hits/results-hits.container.component.html +16 -0
  375. package/src/libs/feature/search/src/lib/results-hits/results-hits.container.component.ts +59 -0
  376. package/src/libs/feature/search/src/lib/results-list/results-list.container.component.html +1 -0
  377. package/src/libs/feature/search/src/lib/results-list/results-list.container.component.ts +26 -5
  378. package/src/libs/feature/search/src/lib/results-table/results-table-container.component.html +1 -0
  379. package/src/libs/feature/search/src/lib/results-table/results-table-container.component.ts +13 -3
  380. package/src/libs/feature/search/src/lib/utils/service/fields.service.ts +4 -5
  381. package/src/libs/feature/search/src/lib/utils/service/fields.ts +99 -0
  382. package/src/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.html +1 -1
  383. package/src/libs/ui/dataviz/src/lib/chart/chart.component.ts +2 -1
  384. package/src/libs/ui/dataviz/src/lib/data-table/data-table.component.html +6 -3
  385. package/src/libs/ui/dataviz/src/lib/data-table/data-table.component.ts +5 -4
  386. package/src/libs/ui/elements/src/index.ts +4 -0
  387. package/src/libs/ui/elements/src/lib/api-card/api-card.component.html +4 -4
  388. package/src/libs/ui/elements/src/lib/download-item/download-item.component.html +8 -5
  389. package/src/libs/ui/elements/src/lib/download-item/download-item.component.ts +2 -2
  390. package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.html +38 -7
  391. package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.ts +29 -2
  392. package/src/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.css +4 -0
  393. package/src/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.html +13 -0
  394. package/src/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.ts +54 -0
  395. package/src/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.html +1 -1
  396. package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.html +68 -141
  397. package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.ts +38 -97
  398. package/src/libs/ui/elements/src/lib/internal-link-card-contact/internal-link-card-contact.component.html +69 -0
  399. package/src/libs/ui/elements/src/lib/internal-link-card-contact/internal-link-card-contact.component.ts +61 -0
  400. package/src/libs/ui/elements/src/lib/kind-badge/kind-badge.component.css +6 -0
  401. package/src/libs/ui/elements/src/lib/kind-badge/kind-badge.component.html +11 -0
  402. package/src/libs/ui/elements/src/lib/kind-badge/kind-badge.component.ts +70 -0
  403. package/src/libs/ui/elements/src/lib/link-card/link-card.component.html +5 -2
  404. package/src/libs/ui/elements/src/lib/link-card/link-card.component.ts +3 -7
  405. package/src/libs/ui/elements/src/lib/metadata-catalog/metadata-catalog.component.html +3 -5
  406. package/src/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.html +12 -9
  407. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.css +9 -0
  408. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.html +24 -7
  409. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.ts +12 -4
  410. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.html +2 -3
  411. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.ts +48 -9
  412. package/src/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.ts +4 -0
  413. package/src/libs/ui/elements/src/lib/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.html +107 -0
  414. package/src/libs/ui/elements/src/lib/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.ts +83 -0
  415. package/src/libs/ui/elements/src/lib/related-record-card/related-record-card.component.html +8 -29
  416. package/src/libs/ui/elements/src/lib/related-record-card/related-record-card.component.ts +14 -1
  417. package/src/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.css +0 -0
  418. package/src/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.html +110 -0
  419. package/src/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.ts +191 -0
  420. package/src/libs/ui/elements/src/lib/ui-elements.module.ts +11 -1
  421. package/src/libs/ui/inputs/src/index.ts +2 -0
  422. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.html +1 -1
  423. package/src/libs/ui/inputs/src/lib/button/button.component.ts +2 -2
  424. package/src/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.html +1 -1
  425. package/src/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.html +1 -1
  426. package/src/libs/ui/inputs/src/lib/inline-filter/inline-filter.component.html +23 -0
  427. package/src/libs/ui/inputs/src/lib/inline-filter/inline-filter.component.ts +44 -0
  428. package/src/libs/ui/inputs/src/lib/inline-filter/inline-filter.model.ts +5 -0
  429. package/src/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.css +0 -0
  430. package/src/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.html +43 -0
  431. package/src/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.ts +77 -0
  432. package/src/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.html +3 -4
  433. package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +3 -3
  434. package/src/libs/ui/layout/src/index.ts +2 -0
  435. package/src/libs/ui/layout/src/lib/block-list/block-list.component.css +22 -0
  436. package/src/libs/ui/layout/src/lib/block-list/block-list.component.html +2 -2
  437. package/src/libs/ui/layout/src/lib/block-list/block-list.component.ts +43 -5
  438. package/src/libs/ui/layout/src/lib/carousel/carousel.component.css +0 -1
  439. package/src/libs/ui/layout/src/lib/carousel/carousel.component.html +1 -1
  440. package/src/libs/ui/layout/src/lib/cell-popin/cell-popin.component.html +40 -0
  441. package/src/libs/ui/layout/src/lib/cell-popin/cell-popin.component.ts +141 -0
  442. package/src/libs/ui/layout/src/lib/expandable-panel/expandable-panel.component.html +24 -8
  443. package/src/libs/ui/layout/src/lib/expandable-panel/expandable-panel.component.ts +36 -10
  444. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.html +4 -7
  445. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.ts +20 -0
  446. package/src/libs/ui/layout/src/lib/max-lines/max-lines.component.html +1 -1
  447. package/src/libs/ui/layout/src/lib/previous-next-buttons/previous-next-buttons.component.html +17 -5
  448. package/src/libs/ui/layout/src/lib/previous-next-buttons/previous-next-buttons.component.ts +3 -3
  449. package/src/libs/ui/layout/src/lib/truncated-text/truncated-text.component.html +27 -0
  450. package/src/libs/ui/layout/src/lib/truncated-text/truncated-text.component.ts +91 -0
  451. package/src/libs/ui/layout/src/lib/ui-layout.module.ts +2 -6
  452. package/src/libs/ui/map/src/index.ts +1 -0
  453. package/src/libs/ui/map/src/lib/components/feature-detail/feature-detail.component.html +3 -3
  454. package/src/libs/ui/map/src/lib/components/feature-detail/feature-detail.component.ts +27 -3
  455. package/src/libs/ui/map/src/lib/components/spatial-extent/spatial-extent.component.css +0 -0
  456. package/src/libs/ui/map/src/lib/components/spatial-extent/spatial-extent.component.html +4 -0
  457. 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
  458. package/src/libs/ui/search/src/index.ts +2 -0
  459. package/src/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.html +9 -81
  460. package/src/libs/ui/search/src/lib/results-hits-number/results-hits-number.component.html +1 -1
  461. package/src/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.html +25 -0
  462. package/src/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.ts +53 -0
  463. package/src/libs/ui/search/src/lib/results-list/results-layout.config.ts +2 -2
  464. package/src/libs/ui/search/src/lib/results-list/results-list.component.html +1 -0
  465. package/src/libs/ui/search/src/lib/results-list/results-list.component.ts +0 -1
  466. package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.html +16 -6
  467. package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.ts +15 -11
  468. package/src/libs/ui/search/src/lib/results-table/results-table.component.css +4 -0
  469. package/src/libs/ui/search/src/lib/results-table/results-table.component.html +31 -24
  470. package/src/libs/ui/search/src/lib/results-table/results-table.component.ts +33 -14
  471. package/src/libs/ui/search/src/lib/ui-search.module.ts +8 -0
  472. package/src/libs/ui/widgets/src/lib/progress-bar/progress-bar.component.html +2 -1
  473. package/src/libs/util/app-config/src/lib/app-config.ts +1 -0
  474. package/src/libs/util/app-config/src/lib/fixtures.ts +1 -0
  475. package/src/libs/util/i18n/src/lib/i18n.constants.ts +42 -0
  476. package/src/libs/util/i18n/src/lib/language-codes.ts +23 -1
  477. package/src/libs/util/shared/src/index.ts +1 -0
  478. package/src/libs/util/shared/src/lib/gn-ui-version.ts +8 -0
  479. package/src/libs/util/shared/src/lib/links/link-classifier.service.ts +15 -3
  480. package/src/libs/util/shared/src/lib/links/link-utils.ts +33 -12
  481. package/tailwind.base.config.js +3 -0
  482. package/tailwind.base.css +5 -17
  483. package/translations/de.json +75 -8
  484. package/translations/en.json +77 -10
  485. package/translations/es.json +74 -7
  486. package/translations/fr.json +76 -9
  487. package/translations/it.json +81 -14
  488. package/translations/nl.json +74 -7
  489. package/translations/pt.json +74 -7
  490. package/translations/sk.json +74 -7
  491. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.mjs +0 -79
  492. package/esm2022/libs/feature/record/src/lib/gn-ui-version.token.mjs +0 -3
  493. package/esm2022/libs/feature/search/src/lib/results-hits-number/results-hits.container.component.mjs +0 -18
  494. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.d.ts +0 -15
  495. 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
  496. package/libs/feature/record/src/lib/gn-ui-version.token.d.ts +0 -3
  497. package/libs/feature/record/src/lib/gn-ui-version.token.d.ts.map +0 -1
  498. package/libs/feature/search/src/lib/results-hits-number/results-hits.container.component.d.ts +0 -9
  499. package/libs/feature/search/src/lib/results-hits-number/results-hits.container.component.d.ts.map +0 -1
  500. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.html +0 -1
  501. package/src/libs/feature/record/src/lib/gn-ui-version.token.ts +0 -3
  502. package/src/libs/feature/search/src/lib/results-hits-number/results-hits.container.component.html +0 -4
  503. package/src/libs/feature/search/src/lib/results-hits-number/results-hits.container.component.ts +0 -10
  504. /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
@@ -1,4 +1,4 @@
1
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, ElementRef, Input, QueryList, ViewChild, } from '@angular/core';
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, ElementRef, EventEmitter, Input, Output, QueryList, ViewChild, } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import { PaginationDotsComponent } from '../pagination-dots/pagination-dots.component';
4
4
  import * as i0 from "@angular/core";
@@ -17,14 +17,16 @@ export class BlockListComponent {
17
17
  return this.blocks ? Math.ceil(this.blocks.length / this.pageSize) : 1;
18
18
  }
19
19
  get currentPage() {
20
- return this.currentPage_ + 1; // this is 1-based
20
+ return this.currentPage_ + 1;
21
21
  }
22
22
  constructor(changeDetector) {
23
23
  this.changeDetector = changeDetector;
24
- this.pageSize = 5;
24
+ this.pageSize = 4;
25
25
  this.containerClass = '';
26
26
  this.paginationContainerClass = 'w-full bottom-0 top-auto';
27
27
  this.minHeight = 0;
28
+ this.listChanges = new EventEmitter();
29
+ this.subComponentSize = 'M';
28
30
  this.currentPage_ = 0;
29
31
  this.refreshBlocksVisibility = () => {
30
32
  this.blocks.forEach((block, index) => {
@@ -37,13 +39,48 @@ export class BlockListComponent {
37
39
  };
38
40
  }
39
41
  ngAfterViewInit() {
40
- this.blocks.changes.subscribe(this.refreshBlocksVisibility);
42
+ this.blocks.changes.subscribe(() => {
43
+ this.updateSizes();
44
+ this.refreshBlocksVisibility();
45
+ this.goToPage(1);
46
+ this.changeDetector.detectChanges();
47
+ this.listChanges.emit(this);
48
+ });
49
+ this.updateSizes();
41
50
  this.refreshBlocksVisibility();
42
51
  // we store the first height as the min-height of the list container
43
52
  this.minHeight = this.blockContainer.nativeElement.clientHeight;
44
53
  this.changeDetector.detectChanges();
54
+ this.listChanges.emit(this);
55
+ }
56
+ updateSizes() {
57
+ this.subComponentSize = this.computeSubComponentSize();
58
+ this.pageSize = this.computePageSize();
59
+ }
60
+ computeSubComponentSize() {
61
+ if (!this.blocks)
62
+ return 'M';
63
+ const subComponentsCount = this.blocks.length;
64
+ if (subComponentsCount <= 3)
65
+ return 'L';
66
+ if (subComponentsCount <= 12)
67
+ return 'M';
68
+ if (subComponentsCount <= 18)
69
+ return 'S';
70
+ return 'XS';
71
+ }
72
+ computePageSize() {
73
+ switch (this.subComponentSize) {
74
+ case 'L':
75
+ return 3;
76
+ case 'S':
77
+ return 6;
78
+ case 'XS':
79
+ return 8;
80
+ default:
81
+ return 4;
82
+ }
45
83
  }
46
- // pageIndex is 1-based
47
84
  goToPage(pageIndex) {
48
85
  this.currentPage_ = Math.max(Math.min(pageIndex - 1, this.pagesCount - 1), 0);
49
86
  this.changeDetector.detectChanges();
@@ -60,14 +97,12 @@ export class BlockListComponent {
60
97
  this.goToPage(this.currentPage + 1);
61
98
  }
62
99
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BlockListComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
63
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BlockListComponent, isStandalone: true, selector: "gn-ui-block-list", inputs: { pageSize: "pageSize", containerClass: "containerClass", paginationContainerClass: "paginationContainerClass" }, queries: [{ propertyName: "blocks", predicate: ["block"], read: ElementRef }], viewQueries: [{ propertyName: "blockContainer", first: true, predicate: ["blockContainer"], descendants: true }], ngImport: i0, template: "<div\n class=\"block-list-container flex flex-col\"\n #blockContainer\n [ngClass]=\"containerClass\"\n [ngStyle]=\"{ minHeight: minHeight + 'px' }\"\n>\n <ng-content></ng-content>\n</div>\n<gn-ui-pagination-dots\n [containerClass]=\"'absolute ' + paginationContainerClass\"\n [listComponent]=\"this\"\n></gn-ui-pagination-dots>\n", styles: [":host .block-list-container ::ng-deep>*{flex-shrink:0}:host{position:relative}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: PaginationDotsComponent, selector: "gn-ui-pagination-dots", inputs: ["listComponent", "containerClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
100
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BlockListComponent, isStandalone: true, selector: "gn-ui-block-list", inputs: { containerClass: "containerClass", paginationContainerClass: "paginationContainerClass" }, outputs: { listChanges: "listChanges" }, queries: [{ propertyName: "blocks", predicate: ["block"], read: ElementRef }], viewQueries: [{ propertyName: "blockContainer", first: true, predicate: ["blockContainer"], descendants: true }], ngImport: i0, template: "<div\n class=\"grid gap-4 w-full md:grid-cols-2\"\n #blockContainer\n [ngClass]=\"[containerClass, 'size-' + subComponentSize]\"\n [ngStyle]=\"{ minHeight: minHeight + 'px' }\"\n>\n <ng-content></ng-content>\n</div>\n<gn-ui-pagination-dots\n [containerClass]=\"'absolute ' + paginationContainerClass\"\n [listComponent]=\"this\"\n></gn-ui-pagination-dots>\n", styles: [":host .block-list-container ::ng-deep>*{flex-shrink:0}:host{position:relative}@media screen and (min-width: 769px){.size-L{grid-template-columns:repeat(1,minmax(0,1fr));grid-auto-rows:minmax(0,min-content)}.size-M{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(0,min-content)}.size-S{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:minmax(0,min-content)}.size-XS{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(0,min-content)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: PaginationDotsComponent, selector: "gn-ui-pagination-dots", inputs: ["listComponent", "containerClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
64
101
  }
65
102
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BlockListComponent, decorators: [{
66
103
  type: Component,
67
- args: [{ selector: 'gn-ui-block-list', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, PaginationDotsComponent], template: "<div\n class=\"block-list-container flex flex-col\"\n #blockContainer\n [ngClass]=\"containerClass\"\n [ngStyle]=\"{ minHeight: minHeight + 'px' }\"\n>\n <ng-content></ng-content>\n</div>\n<gn-ui-pagination-dots\n [containerClass]=\"'absolute ' + paginationContainerClass\"\n [listComponent]=\"this\"\n></gn-ui-pagination-dots>\n", styles: [":host .block-list-container ::ng-deep>*{flex-shrink:0}:host{position:relative}\n"] }]
68
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { pageSize: [{
69
- type: Input
70
- }], containerClass: [{
104
+ args: [{ selector: 'gn-ui-block-list', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, PaginationDotsComponent], template: "<div\n class=\"grid gap-4 w-full md:grid-cols-2\"\n #blockContainer\n [ngClass]=\"[containerClass, 'size-' + subComponentSize]\"\n [ngStyle]=\"{ minHeight: minHeight + 'px' }\"\n>\n <ng-content></ng-content>\n</div>\n<gn-ui-pagination-dots\n [containerClass]=\"'absolute ' + paginationContainerClass\"\n [listComponent]=\"this\"\n></gn-ui-pagination-dots>\n", styles: [":host .block-list-container ::ng-deep>*{flex-shrink:0}:host{position:relative}@media screen and (min-width: 769px){.size-L{grid-template-columns:repeat(1,minmax(0,1fr));grid-auto-rows:minmax(0,min-content)}.size-M{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(0,min-content)}.size-S{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:minmax(0,min-content)}.size-XS{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(0,min-content)}}\n"] }]
105
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { containerClass: [{
71
106
  type: Input
72
107
  }], paginationContainerClass: [{
73
108
  type: Input
@@ -77,5 +112,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
77
112
  }], blockContainer: [{
78
113
  type: ViewChild,
79
114
  args: ['blockContainer']
115
+ }], listChanges: [{
116
+ type: Output
80
117
  }] } });
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2stbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2xheW91dC9zcmMvbGliL2Jsb2NrLWxpc3QvYmxvY2stbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2xheW91dC9zcmMvbGliL2Jsb2NrLWxpc3QvYmxvY2stbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsZUFBZSxFQUNmLFVBQVUsRUFDVixLQUFLLEVBQ0wsU0FBUyxFQUNULFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFFOUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOENBQThDLENBQUE7OztBQVV0RixNQUFNLE9BQU8sa0JBQWtCO0lBWTdCLElBQWMsS0FBSztRQUNqQixPQUFPLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDNUQsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksS0FBSyxDQUFDLENBQUE7SUFDaEMsQ0FBQztJQUNELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFlBQVksS0FBSyxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQTtJQUNsRCxDQUFDO0lBQ0QsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFN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WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgUXVlcnlMaXN0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBQYWdpbmFibGUgfSBmcm9tICcuLi9wYWdpbmFibGUuaW50ZXJmYWNlJ1xuaW1wb3J0IHsgUGFnaW5hdGlvbkRvdHNDb21wb25lbnQgfSBmcm9tICcuLi9wYWdpbmF0aW9uLWRvdHMvcGFnaW5hdGlvbi1kb3RzLmNvbXBvbmVudCdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktYmxvY2stbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9ibG9jay1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYmxvY2stbGlzdC5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBQYWdpbmF0aW9uRG90c0NvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIEJsb2NrTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIFBhZ2luYWJsZSB7XG4gIEBJbnB1dCgpIHBhZ2VTaXplID0gNVxuICBASW5wdXQoKSBjb250YWluZXJDbGFzcyA9ICcnXG4gIEBJbnB1dCgpIHBhZ2luYXRpb25Db250YWluZXJDbGFzcyA9ICd3LWZ1bGwgYm90dG9tLTAgdG9wLWF1dG8nXG4gIEBDb250ZW50Q2hpbGRyZW4oJ2Jsb2NrJywgeyByZWFkOiBFbGVtZW50UmVmIH0pIGJsb2NrczogUXVlcnlMaXN0PFxuICAgIEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+XG4gID5cbiAgQFZpZXdDaGlsZCgnYmxvY2tDb250YWluZXInKSBibG9ja0NvbnRhaW5lcjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD5cblxuICBwcm90ZWN0ZWQgbWluSGVpZ2h0ID0gMFxuXG4gIHByb3RlY3RlZCBjdXJyZW50UGFnZV8gPSAwXG4gIHByb3RlY3RlZCBnZXQgcGFnZXMoKSB7XG4gICAgcmV0dXJuIG5ldyBBcnJheSh0aGlzLnBhZ2VzQ291bnQpLmZpbGwoMCkubWFwKChfLCBpKSA9PiBpKVxuICB9XG5cbiAgZ2V0IGlzRmlyc3RQYWdlKCkge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRQYWdlXyA9PT0gMFxuICB9XG4gIGdldCBpc0xhc3RQYWdlKCkge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRQYWdlXyA9PT0gdGhpcy5wYWdlc0NvdW50IC0gMVxuICB9XG4gIGdldCBwYWdlc0NvdW50KCkge1xuICAgIHJldHVybiB0aGlzLmJsb2NrcyA/IE1hdGguY2VpbCh0aGlzLmJsb2Nrcy5sZW5ndGggLyB0aGlzLnBhZ2VTaXplKSA6IDFcbiAgfVxuICBnZXQgY3VycmVudFBhZ2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFBhZ2VfICsgMSAvLyB0aGlzIGlzIDEtYmFzZWRcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLmJsb2Nrcy5jaGFuZ2VzLnN1YnNjcmliZSh0aGlzLnJlZnJlc2hCbG9ja3NWaXNpYmlsaXR5KVxuICAgIHRoaXMucmVmcmVzaEJsb2Nrc1Zpc2liaWxpdHkoKVxuXG4gICAgLy8gd2Ugc3RvcmUgdGhlIGZpcnN0IGhlaWdodCBhcyB0aGUgbWluLWhlaWdodCBvZiB0aGUgbGlzdCBjb250YWluZXJcbiAgICB0aGlzLm1pbkhlaWdodCA9IHRoaXMuYmxvY2tDb250YWluZXIubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHRcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKVxuICB9XG5cbiAgcHJvdGVjdGVkIHJlZnJlc2hCbG9ja3NWaXNpYmlsaXR5ID0gKCkgPT4ge1xuICAgIHRoaXMuYmxvY2tzLmZvckVhY2goKGJsb2NrLCBpbmRleCkgPT4ge1xuICAgICAgYmxvY2submF0aXZlRWxlbWVudC5zdHlsZS5kaXNwbGF5ID1cbiAgICAgICAgaW5kZXggPj0gdGhpcy5jdXJyZW50UGFnZV8gKiB0aGlzLnBhZ2VTaXplICYmXG4gICAgICAgIGluZGV4IDwgKHRoaXMuY3VycmVudFBhZ2VfICsgMSkgKiB0aGlzLnBhZ2VTaXplXG4gICAgICAgICAgPyBudWxsXG4gICAgICAgICAgOiAnbm9uZSdcbiAgICB9KVxuICB9XG5cbiAgLy8gcGFnZUluZGV4IGlzIDEtYmFzZWRcbiAgcHVibGljIGdvVG9QYWdlKHBhZ2VJbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5jdXJyZW50UGFnZV8gPSBNYXRoLm1heChcbiAgICAgIE1hdGgubWluKHBhZ2VJbmRleCAtIDEsIHRoaXMucGFnZXNDb3VudCAtIDEpLFxuICAgICAgMFxuICAgIClcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKVxuICAgIHRoaXMucmVmcmVzaEJsb2Nrc1Zpc2liaWxpdHkoKVxuICB9XG5cbiAgcHVibGljIGdvVG9QcmV2UGFnZSgpIHtcbiAgICBpZiAodGhpcy5pc0ZpcnN0UGFnZSkgcmV0dXJuXG4gICAgdGhpcy5nb1RvUGFnZSh0aGlzLmN1cnJlbnRQYWdlIC0gMSlcbiAgfVxuXG4gIHB1YmxpYyBnb1RvTmV4dFBhZ2UoKSB7XG4gICAgaWYgKHRoaXMuaXNMYXN0UGFnZSkgcmV0dXJuXG4gICAgdGhpcy5nb1RvUGFnZSh0aGlzLmN1cnJlbnRQYWdlICsgMSlcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cImJsb2NrLWxpc3QtY29udGFpbmVyIGZsZXggZmxleC1jb2xcIlxuICAjYmxvY2tDb250YWluZXJcbiAgW25nQ2xhc3NdPVwiY29udGFpbmVyQ2xhc3NcIlxuICBbbmdTdHlsZV09XCJ7IG1pbkhlaWdodDogbWluSGVpZ2h0ICsgJ3B4JyB9XCJcbj5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9kaXY+XG48Z24tdWktcGFnaW5hdGlvbi1kb3RzXG4gIFtjb250YWluZXJDbGFzc109XCInYWJzb2x1dGUgJyArIHBhZ2luYXRpb25Db250YWluZXJDbGFzc1wiXG4gIFtsaXN0Q29tcG9uZW50XT1cInRoaXNcIlxuPjwvZ24tdWktcGFnaW5hdGlvbi1kb3RzPlxuIl19
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2stbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2xheW91dC9zcmMvbGliL2Jsb2NrLWxpc3QvYmxvY2stbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2xheW91dC9zcmMvbGliL2Jsb2NrLWxpc3QvYmxvY2stbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsZUFBZSxFQUNmLFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUU5QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQTs7O0FBV3RGLE1BQU0sT0FBTyxrQkFBa0I7SUFhN0IsSUFBYyxLQUFLO1FBQ2pCLE9BQU8sSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUM1RCxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxLQUFLLENBQUMsQ0FBQTtJQUNoQyxDQUFDO0lBQ0QsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsWUFBWSxLQUFLLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFBO0lBQ2xELENBQUM7SUFDRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJ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c0JBQTFDLFNBQVM7dUJBQUMsZ0JBQWdCO2dCQUVqQixXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IFBhZ2luYWJsZSB9IGZyb20gJy4uL3BhZ2luYWJsZS5pbnRlcmZhY2UnXG5pbXBvcnQgeyBQYWdpbmF0aW9uRG90c0NvbXBvbmVudCB9IGZyb20gJy4uL3BhZ2luYXRpb24tZG90cy9wYWdpbmF0aW9uLWRvdHMuY29tcG9uZW50J1xuXG50eXBlIENvbXBvbmVudFNpemUgPSAnTCcgfCAnTScgfCAnUycgfCAnWFMnXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1ibG9jay1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Jsb2NrLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9ibG9jay1saXN0LmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFBhZ2luYXRpb25Eb3RzQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgQmxvY2tMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgUGFnaW5hYmxlIHtcbiAgcGFnZVNpemUgPSA0XG4gIEBJbnB1dCgpIGNvbnRhaW5lckNsYXNzID0gJydcbiAgQElucHV0KCkgcGFnaW5hdGlvbkNvbnRhaW5lckNsYXNzID0gJ3ctZnVsbCBib3R0b20tMCB0b3AtYXV0bydcbiAgQENvbnRlbnRDaGlsZHJlbignYmxvY2snLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgYmxvY2tzOiBRdWVyeUxpc3Q8XG4gICAgRWxlbWVudFJlZjxIVE1MRWxlbWVudD5cbiAgPlxuICBAVmlld0NoaWxkKCdibG9ja0NvbnRhaW5lcicpIGJsb2NrQ29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PlxuICBwcm90ZWN0ZWQgbWluSGVpZ2h0ID0gMFxuICBAT3V0cHV0KCkgbGlzdENoYW5nZXMgPSBuZXcgRXZlbnRFbWl0dGVyPEJsb2NrTGlzdENvbXBvbmVudD4oKVxuICBzdWJDb21wb25lbnRTaXplOiBDb21wb25lbnRTaXplID0gJ00nXG5cbiAgcHJvdGVjdGVkIGN1cnJlbnRQYWdlXyA9IDBcbiAgcHJvdGVjdGVkIGdldCBwYWdlcygpIHtcbiAgICByZXR1cm4gbmV3IEFycmF5KHRoaXMucGFnZXNDb3VudCkuZmlsbCgwKS5tYXAoKF8sIGkpID0+IGkpXG4gIH1cblxuICBnZXQgaXNGaXJzdFBhZ2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFBhZ2VfID09PSAwXG4gIH1cbiAgZ2V0IGlzTGFzdFBhZ2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFBhZ2VfID09PSB0aGlzLnBhZ2VzQ291bnQgLSAxXG4gIH1cbiAgZ2V0IHBhZ2VzQ291bnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuYmxvY2tzID8gTWF0aC5jZWlsKHRoaXMuYmxvY2tzLmxlbmd0aCAvIHRoaXMucGFnZVNpemUpIDogMVxuICB9XG4gIGdldCBjdXJyZW50UGFnZSgpIHtcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50UGFnZV8gKyAxXG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5ibG9ja3MuY2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy51cGRhdGVTaXplcygpXG4gICAgICB0aGlzLnJlZnJlc2hCbG9ja3NWaXNpYmlsaXR5KClcbiAgICAgIHRoaXMuZ29Ub1BhZ2UoMSlcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpXG4gICAgICB0aGlzLmxpc3RDaGFuZ2VzLmVtaXQodGhpcylcbiAgICB9KVxuICAgIHRoaXMudXBkYXRlU2l6ZXMoKVxuICAgIHRoaXMucmVmcmVzaEJsb2Nrc1Zpc2liaWxpdHkoKVxuXG4gICAgLy8gd2Ugc3RvcmUgdGhlIGZpcnN0IGhlaWdodCBhcyB0aGUgbWluLWhlaWdodCBvZiB0aGUgbGlzdCBjb250YWluZXJcbiAgICB0aGlzLm1pbkhlaWdodCA9IHRoaXMuYmxvY2tDb250YWluZXIubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHRcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKVxuICAgIHRoaXMubGlzdENoYW5nZXMuZW1pdCh0aGlzKVxuICB9XG5cbiAgcHJvdGVjdGVkIHJlZnJlc2hCbG9ja3NWaXNpYmlsaXR5ID0gKCkgPT4ge1xuICAgIHRoaXMuYmxvY2tzLmZvckVhY2goKGJsb2NrLCBpbmRleCkgPT4ge1xuICAgICAgYmxvY2submF0aXZlRWxlbWVudC5zdHlsZS5kaXNwbGF5ID1cbiAgICAgICAgaW5kZXggPj0gdGhpcy5jdXJyZW50UGFnZV8gKiB0aGlzLnBhZ2VTaXplICYmXG4gICAgICAgIGluZGV4IDwgKHRoaXMuY3VycmVudFBhZ2VfICsgMSkgKiB0aGlzLnBhZ2VTaXplXG4gICAgICAgICAgPyBudWxsXG4gICAgICAgICAgOiAnbm9uZSdcbiAgICB9KVxuICB9XG5cbiAgcHJvdGVjdGVkIHVwZGF0ZVNpemVzKCkge1xuICAgIHRoaXMuc3ViQ29tcG9uZW50U2l6ZSA9IHRoaXMuY29tcHV0ZVN1YkNvbXBvbmVudFNpemUoKVxuICAgIHRoaXMucGFnZVNpemUgPSB0aGlzLmNvbXB1dGVQYWdlU2l6ZSgpXG4gIH1cblxuICBwcm90ZWN0ZWQgY29tcHV0ZVN1YkNvbXBvbmVudFNpemUoKTogQ29tcG9uZW50U2l6ZSB7XG4gICAgaWYgKCF0aGlzLmJsb2NrcykgcmV0dXJuICdNJ1xuICAgIGNvbnN0IHN1YkNvbXBvbmVudHNDb3VudCA9IHRoaXMuYmxvY2tzLmxlbmd0aFxuICAgIGlmIChzdWJDb21wb25lbnRzQ291bnQgPD0gMykgcmV0dXJuICdMJ1xuICAgIGlmIChzdWJDb21wb25lbnRzQ291bnQgPD0gMTIpIHJldHVybiAnTSdcbiAgICBpZiAoc3ViQ29tcG9uZW50c0NvdW50IDw9IDE4KSByZXR1cm4gJ1MnXG4gICAgcmV0dXJuICdYUydcbiAgfVxuXG4gIHByb3RlY3RlZCBjb21wdXRlUGFnZVNpemUoKTogbnVtYmVyIHtcbiAgICBzd2l0Y2ggKHRoaXMuc3ViQ29tcG9uZW50U2l6ZSkge1xuICAgICAgY2FzZSAnTCc6XG4gICAgICAgIHJldHVybiAzXG4gICAgICBjYXNlICdTJzpcbiAgICAgICAgcmV0dXJuIDZcbiAgICAgIGNhc2UgJ1hTJzpcbiAgICAgICAgcmV0dXJuIDhcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiA0XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdvVG9QYWdlKHBhZ2VJbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5jdXJyZW50UGFnZV8gPSBNYXRoLm1heChcbiAgICAgIE1hdGgubWluKHBhZ2VJbmRleCAtIDEsIHRoaXMucGFnZXNDb3VudCAtIDEpLFxuICAgICAgMFxuICAgIClcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKVxuICAgIHRoaXMucmVmcmVzaEJsb2Nrc1Zpc2liaWxpdHkoKVxuICB9XG5cbiAgcHVibGljIGdvVG9QcmV2UGFnZSgpIHtcbiAgICBpZiAodGhpcy5pc0ZpcnN0UGFnZSkgcmV0dXJuXG4gICAgdGhpcy5nb1RvUGFnZSh0aGlzLmN1cnJlbnRQYWdlIC0gMSlcbiAgfVxuXG4gIHB1YmxpYyBnb1RvTmV4dFBhZ2UoKSB7XG4gICAgaWYgKHRoaXMuaXNMYXN0UGFnZSkgcmV0dXJuXG4gICAgdGhpcy5nb1RvUGFnZSh0aGlzLmN1cnJlbnRQYWdlICsgMSlcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cImdyaWQgZ2FwLTQgdy1mdWxsIG1kOmdyaWQtY29scy0yXCJcbiAgI2Jsb2NrQ29udGFpbmVyXG4gIFtuZ0NsYXNzXT1cIltjb250YWluZXJDbGFzcywgJ3NpemUtJyArIHN1YkNvbXBvbmVudFNpemVdXCJcbiAgW25nU3R5bGVdPVwieyBtaW5IZWlnaHQ6IG1pbkhlaWdodCArICdweCcgfVwiXG4+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvZGl2PlxuPGduLXVpLXBhZ2luYXRpb24tZG90c1xuICBbY29udGFpbmVyQ2xhc3NdPVwiJ2Fic29sdXRlICcgKyBwYWdpbmF0aW9uQ29udGFpbmVyQ2xhc3NcIlxuICBbbGlzdENvbXBvbmVudF09XCJ0aGlzXCJcbj48L2duLXVpLXBhZ2luYXRpb24tZG90cz5cbiJdfQ==
@@ -55,11 +55,11 @@ export class CarouselComponent {
55
55
  .on('select', this.refreshSteps);
56
56
  }
57
57
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CarouselComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
58
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CarouselComponent, isStandalone: true, selector: "gn-ui-carousel", inputs: { containerClass: "containerClass", stepsContainerClass: "stepsContainerClass" }, outputs: { currentStepChange: "currentStepChange" }, viewQueries: [{ propertyName: "carouselOverflowContainer", first: true, predicate: ["carouselOverflowContainer"], descendants: true }], ngImport: i0, template: "<div #carouselOverflowContainer class=\"w-full\">\n <div class=\"carousel-container flex\" [ngClass]=\"containerClass\">\n <ng-content></ng-content>\n </div>\n</div>\n<gn-ui-pagination-dots\n [containerClass]=\"'absolute ' + stepsContainerClass\"\n [listComponent]=\"this\"\n></gn-ui-pagination-dots>\n", styles: [":host{position:relative;display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: PaginationDotsComponent, selector: "gn-ui-pagination-dots", inputs: ["listComponent", "containerClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
58
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CarouselComponent, isStandalone: true, selector: "gn-ui-carousel", inputs: { containerClass: "containerClass", stepsContainerClass: "stepsContainerClass" }, outputs: { currentStepChange: "currentStepChange" }, viewQueries: [{ propertyName: "carouselOverflowContainer", first: true, predicate: ["carouselOverflowContainer"], descendants: true }], ngImport: i0, template: "<div #carouselOverflowContainer class=\"w-full block\">\n <div class=\"carousel-container flex\" [ngClass]=\"containerClass\">\n <ng-content></ng-content>\n </div>\n</div>\n<gn-ui-pagination-dots\n [containerClass]=\"'absolute ' + stepsContainerClass\"\n [listComponent]=\"this\"\n></gn-ui-pagination-dots>\n", styles: [":host{position:relative}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: PaginationDotsComponent, selector: "gn-ui-pagination-dots", inputs: ["listComponent", "containerClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
59
59
  }
60
60
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CarouselComponent, decorators: [{
61
61
  type: Component,
62
- args: [{ selector: 'gn-ui-carousel', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, PaginationDotsComponent], template: "<div #carouselOverflowContainer class=\"w-full\">\n <div class=\"carousel-container flex\" [ngClass]=\"containerClass\">\n <ng-content></ng-content>\n </div>\n</div>\n<gn-ui-pagination-dots\n [containerClass]=\"'absolute ' + stepsContainerClass\"\n [listComponent]=\"this\"\n></gn-ui-pagination-dots>\n", styles: [":host{position:relative;display:block}\n"] }]
62
+ args: [{ selector: 'gn-ui-carousel', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, PaginationDotsComponent], template: "<div #carouselOverflowContainer class=\"w-full block\">\n <div class=\"carousel-container flex\" [ngClass]=\"containerClass\">\n <ng-content></ng-content>\n </div>\n</div>\n<gn-ui-pagination-dots\n [containerClass]=\"'absolute ' + stepsContainerClass\"\n [listComponent]=\"this\"\n></gn-ui-pagination-dots>\n", styles: [":host{position:relative}\n"] }]
63
63
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { carouselOverflowContainer: [{
64
64
  type: ViewChild,
65
65
  args: ['carouselOverflowContainer']
@@ -70,4 +70,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
70
70
  }], currentStepChange: [{
71
71
  type: Output
72
72
  }] } });
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9sYXlvdXQvc3JjL2xpYi9jYXJvdXNlbC9jYXJvdXNlbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2xheW91dC9zcmMvbGliL2Nhcm91c2VsL2Nhcm91c2VsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sYUFBb0MsTUFBTSxnQkFBZ0IsQ0FBQTtBQUNqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFFOUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOENBQThDLENBQUE7OztBQVV0RixNQUFNLE9BQU8saUJBQWlCO0lBa0I1QixnQkFBZ0I7SUFDaEIsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsV0FBVyxLQUFLLENBQUMsQ0FBQTtJQUMvQixDQUFDO0lBQ0QsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsV0FBVyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQTtJQUNuRCxDQUFDO0lBQ0QsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQSxDQUFDLGtCQUFrQjtJQUNoRCxDQUFDO0lBQ0QsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQTtJQUMxQixDQUFDO0lBQ00sUUFBUSxDQUFDLFNBQWlCO1FBQy9CLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQSxDQUFDLGtCQUFrQjtJQUMxRCxDQUFDO0lBQ00sWUFBWTtRQUNqQixJQUFJLElBQUksQ0FBQyxXQUFXO1lBQUUsT0FBTTtRQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFBO0lBQzVCLENBQUM7SUFDTSxZQUFZO1FBQ2pCLElBQUksSUFBSSxDQUFDLFVBQVU7WUFBRSxPQUFNO1FBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUE7SUFDNUIsQ0FBQztJQUVELFlBQW9CLGNBQWlDO1FBQWpDLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQXhDNUMsbUJBQWMsR0FBRyxFQUFFLENBQUE7UUFDbkIsd0JBQW1CLEdBQUcsMEJBQTBCLENBQUE7UUFDL0Msc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQTtRQUU5QyxVQUFLLEdBQWEsRUFBRSxDQUFBO1FBRXBCLGdCQUFXLEdBQUcsQ0FBQyxDQUFBO1FBRWYsaUJBQVksR0FBRyxHQUFHLEVBQUU7WUFDNUIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsRUFBRSxDQUFBO1lBQzNDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsRUFBRSxDQUFBO1lBQ3JELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFBO1lBQzdDLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLENBQUE7UUFDckMsQ0FBQyxDQUFBO0lBMkJ1RCxDQUFDO0lBRXpELGVBQWU7UUFDYixJQUFJLENBQUMsUUFBUSxHQUFHLGFBQWEsQ0FDM0IsSUFBSSxDQUFDLHlCQUF5QixDQUFDLGFBQWEsRUFDNUM7WUFDRSxRQUFRLEVBQUUsRUFBRTtTQUNiLENBQ0YsQ0FBQTtRQUVELElBQUksQ0FBQyxRQUFRO2FBQ1YsRUFBRSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDO2FBQzdCLEVBQUUsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQzthQUMvQixFQUFFLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQTtJQUNwQyxDQUFDOytHQXpEVSxpQkFBaUI7bUdBQWpCLGlCQUFpQixpV0N4QjlCLHVUQVNBLGlHRGFZLFlBQVksNkhBQUUsdUJBQXVCOzs0RkFFcEMsaUJBQWlCO2tCQVI3QixTQUFTOytCQUNFLGdCQUFnQixtQkFHVCx1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSx1QkFBdUIsQ0FBQztzRkFHUix5QkFBeUI7c0JBQWhFLFNBQVM7dUJBQUMsMkJBQTJCO2dCQUU3QixjQUFjO3NCQUF0QixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDSSxpQkFBaUI7c0JBQTFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgRW1ibGFDYXJvdXNlbCwgeyBFbWJsYUNhcm91c2VsVHlwZSB9IGZyb20gJ2VtYmxhLWNhcm91c2VsJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgUGFnaW5hYmxlIH0gZnJvbSAnLi4vcGFnaW5hYmxlLmludGVyZmFjZSdcbmltcG9ydCB7IFBhZ2luYXRpb25Eb3RzQ29tcG9uZW50IH0gZnJvbSAnLi4vcGFnaW5hdGlvbi1kb3RzL3BhZ2luYXRpb24tZG90cy5jb21wb25lbnQnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLWNhcm91c2VsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Nhcm91c2VsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2Fyb3VzZWwuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUGFnaW5hdGlvbkRvdHNDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBDYXJvdXNlbENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIFBhZ2luYWJsZSB7XG4gIEBWaWV3Q2hpbGQoJ2Nhcm91c2VsT3ZlcmZsb3dDb250YWluZXInKSBjYXJvdXNlbE92ZXJmbG93Q29udGFpbmVyOiBFbGVtZW50UmVmXG5cbiAgQElucHV0KCkgY29udGFpbmVyQ2xhc3MgPSAnJ1xuICBASW5wdXQoKSBzdGVwc0NvbnRhaW5lckNsYXNzID0gJ3ctZnVsbCBib3R0b20tMCB0b3AtYXV0bydcbiAgQE91dHB1dCgpIGN1cnJlbnRTdGVwQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KClcblxuICBwcm90ZWN0ZWQgc3RlcHM6IG51bWJlcltdID0gW11cbiAgcHJvdGVjdGVkIGVtYmxhQXBpOiBFbWJsYUNhcm91c2VsVHlwZVxuICBwcm90ZWN0ZWQgY3VycmVudFN0ZXAgPSAwXG5cbiAgcHJvdGVjdGVkIHJlZnJlc2hTdGVwcyA9ICgpID0+IHtcbiAgICB0aGlzLnN0ZXBzID0gdGhpcy5lbWJsYUFwaS5zY3JvbGxTbmFwTGlzdCgpXG4gICAgdGhpcy5jdXJyZW50U3RlcCA9IHRoaXMuZW1ibGFBcGkuc2VsZWN0ZWRTY3JvbGxTbmFwKClcbiAgICB0aGlzLmN1cnJlbnRTdGVwQ2hhbmdlLmVtaXQodGhpcy5jdXJyZW50U3RlcClcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKVxuICB9XG5cbiAgLy8gUGFnaW5hYmxlIEFQSVxuICBnZXQgaXNGaXJzdFBhZ2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFN0ZXAgPT09IDBcbiAgfVxuICBnZXQgaXNMYXN0UGFnZSgpIHtcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50U3RlcCA9PT0gdGhpcy5zdGVwcy5sZW5ndGggLSAxXG4gIH1cbiAgZ2V0IGN1cnJlbnRQYWdlKCkge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRTdGVwICsgMSAvLyB0aGlzIGlzIDEtYmFzZWRcbiAgfVxuICBnZXQgcGFnZXNDb3VudCgpIHtcbiAgICByZXR1cm4gdGhpcy5zdGVwcy5sZW5ndGhcbiAgfVxuICBwdWJsaWMgZ29Ub1BhZ2Uoc3RlcEluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLmVtYmxhQXBpLnNjcm9sbFRvKHN0ZXBJbmRleCAtIDEpIC8vIHRoaXMgaXMgMC1iYXNlZFxuICB9XG4gIHB1YmxpYyBnb1RvUHJldlBhZ2UoKSB7XG4gICAgaWYgKHRoaXMuaXNGaXJzdFBhZ2UpIHJldHVyblxuICAgIHRoaXMuZW1ibGFBcGkuc2Nyb2xsUHJldigpXG4gIH1cbiAgcHVibGljIGdvVG9OZXh0UGFnZSgpIHtcbiAgICBpZiAodGhpcy5pc0xhc3RQYWdlKSByZXR1cm5cbiAgICB0aGlzLmVtYmxhQXBpLnNjcm9sbE5leHQoKVxuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuZW1ibGFBcGkgPSBFbWJsYUNhcm91c2VsKFxuICAgICAgdGhpcy5jYXJvdXNlbE92ZXJmbG93Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQsXG4gICAgICB7XG4gICAgICAgIGR1cmF0aW9uOiAxNSxcbiAgICAgIH1cbiAgICApXG5cbiAgICB0aGlzLmVtYmxhQXBpXG4gICAgICAub24oJ2luaXQnLCB0aGlzLnJlZnJlc2hTdGVwcylcbiAgICAgIC5vbigncmVJbml0JywgdGhpcy5yZWZyZXNoU3RlcHMpXG4gICAgICAub24oJ3NlbGVjdCcsIHRoaXMucmVmcmVzaFN0ZXBzKVxuICB9XG59XG4iLCI8ZGl2ICNjYXJvdXNlbE92ZXJmbG93Q29udGFpbmVyIGNsYXNzPVwidy1mdWxsXCI+XG4gIDxkaXYgY2xhc3M9XCJjYXJvdXNlbC1jb250YWluZXIgZmxleFwiIFtuZ0NsYXNzXT1cImNvbnRhaW5lckNsYXNzXCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbjwvZGl2PlxuPGduLXVpLXBhZ2luYXRpb24tZG90c1xuICBbY29udGFpbmVyQ2xhc3NdPVwiJ2Fic29sdXRlICcgKyBzdGVwc0NvbnRhaW5lckNsYXNzXCJcbiAgW2xpc3RDb21wb25lbnRdPVwidGhpc1wiXG4+PC9nbi11aS1wYWdpbmF0aW9uLWRvdHM+XG4iXX0=
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9sYXlvdXQvc3JjL2xpYi9jYXJvdXNlbC9jYXJvdXNlbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2xheW91dC9zcmMvbGliL2Nhcm91c2VsL2Nhcm91c2VsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sYUFBb0MsTUFBTSxnQkFBZ0IsQ0FBQTtBQUNqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFFOUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOENBQThDLENBQUE7OztBQVV0RixNQUFNLE9BQU8saUJBQWlCO0lBa0I1QixnQkFBZ0I7SUFDaEIsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsV0FBVyxLQUFLLENBQUMsQ0FBQTtJQUMvQixDQUFDO0lBQ0QsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsV0FBVyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQTtJQUNuRCxDQUFDO0lBQ0QsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQSxDQUFDLGtCQUFrQjtJQUNoRCxDQUFDO0lBQ0QsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQTtJQUMxQixDQUFDO0lBQ00sUUFBUSxDQUFDLFNBQWlCO1FBQy9CLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQSxDQUFDLGtCQUFrQjtJQUMxRCxDQUFDO0lBQ00sWUFBWTtRQUNqQixJQUFJLElBQUksQ0FBQyxXQUFXO1lBQUUsT0FBTTtRQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFBO0lBQzVCLENBQUM7SUFDTSxZQUFZO1FBQ2pCLElBQUksSUFBSSxDQUFDLFVBQVU7WUFBRSxPQUFNO1FBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUE7SUFDNUIsQ0FBQztJQUVELFlBQW9CLGNBQWlDO1FBQWpDLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQXhDNUMsbUJBQWMsR0FBRyxFQUFFLENBQUE7UUFDbkIsd0JBQW1CLEdBQUcsMEJBQTBCLENBQUE7UUFDL0Msc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQTtRQUU5QyxVQUFLLEdBQWEsRUFBRSxDQUFBO1FBRXBCLGdCQUFXLEdBQUcsQ0FBQyxDQUFBO1FBRWYsaUJBQVksR0FBRyxHQUFHLEVBQUU7WUFDNUIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsRUFBRSxDQUFBO1lBQzNDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsRUFBRSxDQUFBO1lBQ3JELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFBO1lBQzdDLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLENBQUE7UUFDckMsQ0FBQyxDQUFBO0lBMkJ1RCxDQUFDO0lBRXpELGVBQWU7UUFDYixJQUFJLENBQUMsUUFBUSxHQUFHLGFBQWEsQ0FDM0IsSUFBSSxDQUFDLHlCQUF5QixDQUFDLGFBQWEsRUFDNUM7WUFDRSxRQUFRLEVBQUUsRUFBRTtTQUNiLENBQ0YsQ0FBQTtRQUVELElBQUksQ0FBQyxRQUFRO2FBQ1YsRUFBRSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDO2FBQzdCLEVBQUUsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQzthQUMvQixFQUFFLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQTtJQUNwQyxDQUFDOytHQXpEVSxpQkFBaUI7bUdBQWpCLGlCQUFpQixpV0N4QjlCLDZUQVNBLG1GRGFZLFlBQVksNkhBQUUsdUJBQXVCOzs0RkFFcEMsaUJBQWlCO2tCQVI3QixTQUFTOytCQUNFLGdCQUFnQixtQkFHVCx1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSx1QkFBdUIsQ0FBQztzRkFHUix5QkFBeUI7c0JBQWhFLFNBQVM7dUJBQUMsMkJBQTJCO2dCQUU3QixjQUFjO3NCQUF0QixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDSSxpQkFBaUI7c0JBQTFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgRW1ibGFDYXJvdXNlbCwgeyBFbWJsYUNhcm91c2VsVHlwZSB9IGZyb20gJ2VtYmxhLWNhcm91c2VsJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgUGFnaW5hYmxlIH0gZnJvbSAnLi4vcGFnaW5hYmxlLmludGVyZmFjZSdcbmltcG9ydCB7IFBhZ2luYXRpb25Eb3RzQ29tcG9uZW50IH0gZnJvbSAnLi4vcGFnaW5hdGlvbi1kb3RzL3BhZ2luYXRpb24tZG90cy5jb21wb25lbnQnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLWNhcm91c2VsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Nhcm91c2VsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2Fyb3VzZWwuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUGFnaW5hdGlvbkRvdHNDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBDYXJvdXNlbENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIFBhZ2luYWJsZSB7XG4gIEBWaWV3Q2hpbGQoJ2Nhcm91c2VsT3ZlcmZsb3dDb250YWluZXInKSBjYXJvdXNlbE92ZXJmbG93Q29udGFpbmVyOiBFbGVtZW50UmVmXG5cbiAgQElucHV0KCkgY29udGFpbmVyQ2xhc3MgPSAnJ1xuICBASW5wdXQoKSBzdGVwc0NvbnRhaW5lckNsYXNzID0gJ3ctZnVsbCBib3R0b20tMCB0b3AtYXV0bydcbiAgQE91dHB1dCgpIGN1cnJlbnRTdGVwQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KClcblxuICBwcm90ZWN0ZWQgc3RlcHM6IG51bWJlcltdID0gW11cbiAgcHJvdGVjdGVkIGVtYmxhQXBpOiBFbWJsYUNhcm91c2VsVHlwZVxuICBwcm90ZWN0ZWQgY3VycmVudFN0ZXAgPSAwXG5cbiAgcHJvdGVjdGVkIHJlZnJlc2hTdGVwcyA9ICgpID0+IHtcbiAgICB0aGlzLnN0ZXBzID0gdGhpcy5lbWJsYUFwaS5zY3JvbGxTbmFwTGlzdCgpXG4gICAgdGhpcy5jdXJyZW50U3RlcCA9IHRoaXMuZW1ibGFBcGkuc2VsZWN0ZWRTY3JvbGxTbmFwKClcbiAgICB0aGlzLmN1cnJlbnRTdGVwQ2hhbmdlLmVtaXQodGhpcy5jdXJyZW50U3RlcClcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKVxuICB9XG5cbiAgLy8gUGFnaW5hYmxlIEFQSVxuICBnZXQgaXNGaXJzdFBhZ2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFN0ZXAgPT09IDBcbiAgfVxuICBnZXQgaXNMYXN0UGFnZSgpIHtcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50U3RlcCA9PT0gdGhpcy5zdGVwcy5sZW5ndGggLSAxXG4gIH1cbiAgZ2V0IGN1cnJlbnRQYWdlKCkge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRTdGVwICsgMSAvLyB0aGlzIGlzIDEtYmFzZWRcbiAgfVxuICBnZXQgcGFnZXNDb3VudCgpIHtcbiAgICByZXR1cm4gdGhpcy5zdGVwcy5sZW5ndGhcbiAgfVxuICBwdWJsaWMgZ29Ub1BhZ2Uoc3RlcEluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLmVtYmxhQXBpLnNjcm9sbFRvKHN0ZXBJbmRleCAtIDEpIC8vIHRoaXMgaXMgMC1iYXNlZFxuICB9XG4gIHB1YmxpYyBnb1RvUHJldlBhZ2UoKSB7XG4gICAgaWYgKHRoaXMuaXNGaXJzdFBhZ2UpIHJldHVyblxuICAgIHRoaXMuZW1ibGFBcGkuc2Nyb2xsUHJldigpXG4gIH1cbiAgcHVibGljIGdvVG9OZXh0UGFnZSgpIHtcbiAgICBpZiAodGhpcy5pc0xhc3RQYWdlKSByZXR1cm5cbiAgICB0aGlzLmVtYmxhQXBpLnNjcm9sbE5leHQoKVxuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuZW1ibGFBcGkgPSBFbWJsYUNhcm91c2VsKFxuICAgICAgdGhpcy5jYXJvdXNlbE92ZXJmbG93Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQsXG4gICAgICB7XG4gICAgICAgIGR1cmF0aW9uOiAxNSxcbiAgICAgIH1cbiAgICApXG5cbiAgICB0aGlzLmVtYmxhQXBpXG4gICAgICAub24oJ2luaXQnLCB0aGlzLnJlZnJlc2hTdGVwcylcbiAgICAgIC5vbigncmVJbml0JywgdGhpcy5yZWZyZXNoU3RlcHMpXG4gICAgICAub24oJ3NlbGVjdCcsIHRoaXMucmVmcmVzaFN0ZXBzKVxuICB9XG59XG4iLCI8ZGl2ICNjYXJvdXNlbE92ZXJmbG93Q29udGFpbmVyIGNsYXNzPVwidy1mdWxsIGJsb2NrXCI+XG4gIDxkaXYgY2xhc3M9XCJjYXJvdXNlbC1jb250YWluZXIgZmxleFwiIFtuZ0NsYXNzXT1cImNvbnRhaW5lckNsYXNzXCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbjwvZGl2PlxuPGduLXVpLXBhZ2luYXRpb24tZG90c1xuICBbY29udGFpbmVyQ2xhc3NdPVwiJ2Fic29sdXRlICcgKyBzdGVwc0NvbnRhaW5lckNsYXNzXCJcbiAgW2xpc3RDb21wb25lbnRdPVwidGhpc1wiXG4+PC9nbi11aS1wYWdpbmF0aW9uLWRvdHM+XG4iXX0=
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1wb3Bpbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2xheW91dC9zcmMvbGliL2NlbGwtcG9waW4vY2VsbC1wb3Bpbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2xheW91dC9zcmMvbGliL2NlbGwtcG9waW4vY2VsbC1wb3Bpbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULEtBQUssRUFFTCxVQUFVLEVBRVYsU0FBUyxFQUVULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUM5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBQzFELE9BQU8sRUFDTCxhQUFhLEVBRWIsZ0JBQWdCLEVBQ2hCLGFBQWEsR0FHZCxNQUFNLHNCQUFzQixDQUFBO0FBQzdCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQTs7OztBQWV0RSxNQUFNLE9BQU8sa0JBQWtCO0lBNkI3QixJQUNJLFdBQVcsQ0FBQyxNQUEyQjtRQUN6QyxJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUE7UUFDNUIsSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUE7SUFDbkMsQ0FBQztJQUNELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQTtJQUMxQixDQUFDO0lBRUQsWUFDVSxnQkFBa0MsRUFDbEMsR0FBc0I7UUFEdEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFr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QWtCO2tCQWQ5QixTQUFTOytCQUNFLGtCQUFrQixjQUNoQixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixlQUFlO3FCQUNoQixhQUNVLENBQUMsWUFBWSxDQUFDLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQztxSEFLbkMsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFFa0IsU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXO2dCQXlCbEIsV0FBVztzQkFEZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBFbGVtZW50UmVmLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBJbmplY3RvcixcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBwcm92aWRlSWNvbnMsIE5nSWNvbkNvbXBvbmVudCB9IGZyb20gJ0BuZy1pY29ucy9jb3JlJ1xuaW1wb3J0IHsgaWNvbm9pclJlZHVjZSB9IGZyb20gJ0BuZy1pY29ucy9pY29ub2lyJ1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJ1xuaW1wb3J0IHtcbiAgT3ZlcmxheU1vZHVsZSxcbiAgQ29ubmVjdGVkUG9zaXRpb24sXG4gIFNjcm9sbERpc3BhdGNoZXIsXG4gIENka1Njcm9sbGFibGUsXG4gIENka0Nvbm5lY3RlZE92ZXJsYXksXG4gIE92ZXJsYXlDb250YWluZXIsXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5J1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9pbnB1dHMvc3JjJ1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktY2VsbC1wb3BpbicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE92ZXJsYXlNb2R1bGUsXG4gICAgQnV0dG9uQ29tcG9uZW50LFxuICAgIE5nSWNvbkNvbXBvbmVudCxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbcHJvdmlkZUljb25zKHsgaWNvbm9pclJlZHVjZSB9KV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9jZWxsLXBvcGluLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2VsbFBvcGluQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgZXh0cmFDbGFzcyA9ICcnXG4gIEBJbnB1dCgpIGNka1Njcm9sbENvbnRhaW5lciE6IENka1Njcm9sbGFibGVcbiAgQElucHV0KCkgc2Nyb2xsQ29udGFpbmVyITogRWxlbWVudFJlZlxuXG4gIEBWaWV3Q2hpbGQoJ2FuY2hvclJlZicpIGFuY2hvclJlZiE6IEVsZW1lbnRSZWZcblxuICBwcm90ZWN0ZWQgaXNPcGVuID0gZmFsc2VcbiAgcHJvdGVjdGVkIGlzVmlzaWJsZSA9IHRydWVcbiAgcHJvdGVjdGVkIG92ZXJsYXlQb3NpdGlvbnM6IENvbm5lY3RlZFBvc2l0aW9uW10gPSBbXG4gICAge1xuICAgICAgb3JpZ2luWDogJ2VuZCcsXG4gICAgICBvcmlnaW5ZOiAndG9wJyxcbiAgICAgIG92ZXJsYXlYOiAnZW5kJyxcbiAgICAgIG92ZXJsYXlZOiAndG9wJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIG9yaWdpblg6ICdzdGFydCcsXG4gICAgICBvcmlnaW5ZOiAndG9wJyxcbiAgICAgIG92ZXJsYXlYOiAnc3RhcnQnLFxuICAgICAgb3ZlcmxheVk6ICd0b3AnLFxuICAgIH0sXG4gIF1cblxuICBwcml2YXRlIGZpcnN0Q2hlY2sgPSB0cnVlXG4gIHByaXZhdGUgaW50ZXJzZWN0aW9uT2JzZXJ2ZXI6IEludGVyc2VjdGlvbk9ic2VydmVyXG5cbiAgcHJpdmF0ZSBfYWN0aXZlUG9waW4gPSB0cnVlXG5cbiAgQElucHV0KClcbiAgc2V0IGFjdGl2ZVBvcGluKGFjdGl2ZTogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX2FjdGl2ZVBvcGluID0gISFhY3RpdmVcbiAgICB0aGlzLnVwZGF0ZUludGVyc2VjdGlvbk9ic2VydmVyKClcbiAgfVxuICBnZXQgYWN0aXZlUG9waW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZVBvcGluXG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHNjcm9sbERpc3BhdGNoZXI6IFNjcm9sbERpc3BhdGNoZXIsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICkge31cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgaWYgKCF0aGlzLmFjdGl2ZVBvcGluKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAodGhpcy5jZGtTY3JvbGxDb250YWluZXIpIHtcbiAgICAgIHRoaXMuc2Nyb2xsRGlzcGF0Y2hlci5yZWdpc3Rlcih0aGlzLmNka1Njcm9sbENvbnRhaW5lcilcbiAgICB9XG5cbiAgICB0aGlzLnVwZGF0ZUludGVyc2VjdGlvbk9ic2VydmVyKClcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuaW50ZXJzZWN0aW9uT2JzZXJ2ZXI/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=