geonetwork-ui 2.6.0-dev.b306f1194 → 2.6.0-dev.d216c4dea
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.
- package/esm2022/libs/api/metadata-converter/src/lib/base.converter.mjs +1 -1
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +8 -3
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +3 -3
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +4 -4
- package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.mjs +2 -10
- package/esm2022/libs/api/repository/src/lib/gn4/gn4.provider.mjs +7 -1
- package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
- package/esm2022/libs/feature/dataviz/src/lib/chart-view/chart-view.component.mjs +5 -1
- package/esm2022/libs/feature/dataviz/src/lib/table-view/table-view.component.mjs +5 -1
- package/esm2022/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.mjs +2 -3
- package/esm2022/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.mjs +1 -1
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.mjs +5 -5
- package/esm2022/libs/feature/record/src/index.mjs +1 -2
- package/esm2022/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.mjs +5 -9
- package/esm2022/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.mjs +7 -11
- package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +6 -1
- package/esm2022/libs/feature/record/src/lib/record-meta/record-meta.component.mjs +1 -1
- package/esm2022/libs/feature/record/src/lib/state/mdview.effects.mjs +8 -5
- package/esm2022/libs/feature/record/src/lib/state/mdview.facade.mjs +4 -6
- package/esm2022/libs/feature/router/src/lib/default/constants.mjs +3 -1
- package/esm2022/libs/feature/router/src/lib/default/router.config.mjs +1 -1
- package/esm2022/libs/feature/router/src/lib/default/router.service.mjs +10 -2
- package/esm2022/libs/feature/router/src/lib/default/state/router.facade.mjs +9 -3
- package/esm2022/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.mjs +8 -7
- package/esm2022/libs/feature/search/src/lib/feature-search.module.mjs +2 -15
- package/esm2022/libs/feature/search/src/lib/record-url.token.mjs +4 -2
- package/esm2022/libs/feature/search/src/lib/results-list/results-list.container.component.mjs +26 -10
- package/esm2022/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.mjs +3 -3
- package/esm2022/libs/ui/elements/src/index.mjs +2 -1
- package/esm2022/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.mjs +3 -3
- package/esm2022/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.mjs +3 -3
- package/esm2022/libs/ui/elements/src/lib/metadata-info/metadata-info.component.mjs +8 -5
- package/esm2022/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.mjs +161 -0
- package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +10 -4
- package/esm2022/libs/ui/inputs/src/index.mjs +1 -2
- package/esm2022/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.mjs +4 -3
- package/esm2022/libs/ui/layout/src/lib/anchor-link/anchor-link.directive.mjs +43 -3
- package/esm2022/libs/ui/layout/src/lib/interactive-table/interactive-table.component.mjs +15 -3
- package/esm2022/libs/ui/map/src/index.mjs +2 -1
- package/esm2022/libs/ui/map/src/lib/components/spatial-extent/spatial-extent.component.mjs +79 -0
- package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +5 -4
- package/esm2022/libs/util/app-config/src/lib/app-config.mjs +2 -1
- package/esm2022/libs/util/app-config/src/lib/fixtures.mjs +2 -1
- package/esm2022/libs/util/shared/src/index.mjs +2 -1
- package/esm2022/libs/util/shared/src/lib/gn-ui-version.mjs +6 -0
- package/esm2022/libs/util/shared/src/lib/links/link-classifier.service.mjs +2 -1
- package/esm2022/libs/util/shared/src/lib/links/link-utils.mjs +13 -6
- package/esm2022/translations/de.json +27 -4
- package/esm2022/translations/en.json +28 -5
- package/esm2022/translations/es.json +27 -4
- package/esm2022/translations/fr.json +29 -6
- package/esm2022/translations/it.json +27 -4
- package/esm2022/translations/nl.json +27 -4
- package/esm2022/translations/pt.json +27 -4
- package/fesm2022/geonetwork-ui.mjs +969 -478
- package/fesm2022/geonetwork-ui.mjs.map +1 -1
- package/libs/api/metadata-converter/src/lib/base.converter.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/gn4.provider.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +5 -2
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
- package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts.map +1 -1
- package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts +1 -1
- package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.d.ts +6 -6
- package/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.d.ts.map +1 -1
- 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
- package/libs/feature/record/src/index.d.ts +0 -1
- package/libs/feature/record/src/index.d.ts.map +1 -1
- package/libs/feature/record/src/lib/data-view/data-view.component.d.ts +9 -1
- package/libs/feature/record/src/lib/data-view/data-view.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.d.ts +2 -3
- package/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.d.ts +1 -2
- package/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/record-meta/record-meta.component.d.ts +2 -2
- package/libs/feature/record/src/lib/state/mdview.effects.d.ts +3 -1
- package/libs/feature/record/src/lib/state/mdview.effects.d.ts.map +1 -1
- package/libs/feature/record/src/lib/state/mdview.facade.d.ts +7 -7
- package/libs/feature/record/src/lib/state/mdview.facade.d.ts.map +1 -1
- package/libs/feature/router/src/lib/default/constants.d.ts +2 -0
- package/libs/feature/router/src/lib/default/constants.d.ts.map +1 -1
- package/libs/feature/router/src/lib/default/router.config.d.ts +2 -0
- package/libs/feature/router/src/lib/default/router.config.d.ts.map +1 -1
- package/libs/feature/router/src/lib/default/router.service.d.ts.map +1 -1
- package/libs/feature/router/src/lib/default/state/router.facade.d.ts +5 -0
- package/libs/feature/router/src/lib/default/state/router.facade.d.ts.map +1 -1
- package/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.d.ts.map +1 -1
- package/libs/feature/search/src/lib/feature-search.module.d.ts.map +1 -1
- package/libs/feature/search/src/lib/record-url.token.d.ts +3 -1
- package/libs/feature/search/src/lib/record-url.token.d.ts.map +1 -1
- package/libs/feature/search/src/lib/results-list/results-list.container.component.d.ts +5 -3
- package/libs/feature/search/src/lib/results-list/results-list.container.component.d.ts.map +1 -1
- package/libs/ui/elements/src/index.d.ts +1 -0
- package/libs/ui/elements/src/index.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts +2 -2
- package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.d.ts +30 -0
- package/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.d.ts.map +1 -0
- package/libs/ui/elements/src/lib/ui-elements.module.d.ts +2 -1
- package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
- package/libs/ui/inputs/src/index.d.ts +0 -1
- package/libs/ui/inputs/src/index.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.d.ts.map +1 -1
- package/libs/ui/layout/src/lib/anchor-link/anchor-link.directive.d.ts +10 -3
- package/libs/ui/layout/src/lib/anchor-link/anchor-link.directive.d.ts.map +1 -1
- package/libs/ui/layout/src/lib/interactive-table/interactive-table.component.d.ts +2 -0
- package/libs/ui/layout/src/lib/interactive-table/interactive-table.component.d.ts.map +1 -1
- package/libs/ui/map/src/index.d.ts +1 -0
- package/libs/ui/map/src/index.d.ts.map +1 -1
- package/libs/ui/map/src/lib/components/spatial-extent/spatial-extent.component.d.ts +15 -0
- package/libs/ui/map/src/lib/components/spatial-extent/spatial-extent.component.d.ts.map +1 -0
- package/libs/ui/search/src/lib/results-table/results-table.component.d.ts.map +1 -1
- package/libs/util/app-config/src/lib/app-config.d.ts.map +1 -1
- package/libs/util/app-config/src/lib/fixtures.d.ts.map +1 -1
- package/libs/util/shared/src/index.d.ts +1 -0
- package/libs/util/shared/src/index.d.ts.map +1 -1
- package/libs/util/shared/src/lib/gn-ui-version.d.ts +3 -0
- package/libs/util/shared/src/lib/gn-ui-version.d.ts.map +1 -0
- package/libs/util/shared/src/lib/links/link-classifier.service.d.ts +3 -3
- package/libs/util/shared/src/lib/links/link-classifier.service.d.ts.map +1 -1
- package/libs/util/shared/src/lib/links/link-utils.d.ts +14 -7
- package/libs/util/shared/src/lib/links/link-utils.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/libs/api/metadata-converter/src/lib/base.converter.ts +1 -4
- package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.service+eaux-usees.ts +2 -2
- package/src/libs/api/metadata-converter/src/lib/fixtures/geocat-ch.records.ts +2 -2
- package/src/libs/api/metadata-converter/src/lib/fixtures/metawal.records.ts +2 -2
- package/src/libs/api/metadata-converter/src/lib/fixtures/wallonie.records.service+napitswallonia.ts +2 -2
- package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +8 -2
- package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +2 -2
- package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +3 -3
- package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +1 -9
- package/src/libs/api/repository/src/lib/gn4/gn4.provider.ts +6 -0
- package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +5 -2
- package/src/libs/common/fixtures/src/lib/elasticsearch/metadata-links.fixtures.ts +26 -26
- package/src/libs/common/fixtures/src/lib/link.fixtures.ts +2 -2
- package/src/libs/common/fixtures/src/lib/record-link.fixtures.ts +5 -5
- package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.ts +4 -0
- package/src/libs/feature/dataviz/src/lib/table-view/table-view.component.ts +4 -0
- package/src/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.ts +1 -2
- package/src/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.ts +2 -2
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.html +2 -2
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.ts +2 -2
- package/src/libs/feature/record/src/index.ts +0 -1
- package/src/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.ts +2 -3
- package/src/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.ts +4 -5
- package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +5 -0
- package/src/libs/feature/record/src/lib/record-meta/record-meta.component.ts +2 -2
- package/src/libs/feature/record/src/lib/state/mdview.effects.ts +5 -3
- package/src/libs/feature/record/src/lib/state/mdview.facade.ts +4 -7
- package/src/libs/feature/router/src/lib/default/constants.ts +2 -0
- package/src/libs/feature/router/src/lib/default/router.config.ts +2 -0
- package/src/libs/feature/router/src/lib/default/router.service.ts +10 -0
- package/src/libs/feature/router/src/lib/default/state/router.facade.ts +10 -1
- package/src/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.html +0 -6
- package/src/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.ts +16 -8
- package/src/libs/feature/search/src/lib/feature-search.module.ts +0 -8
- package/src/libs/feature/search/src/lib/record-url.token.ts +10 -1
- package/src/libs/feature/search/src/lib/results-list/results-list.container.component.css +6 -0
- package/src/libs/feature/search/src/lib/results-list/results-list.container.component.html +1 -0
- package/src/libs/feature/search/src/lib/results-list/results-list.container.component.ts +24 -5
- package/src/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.html +1 -1
- package/src/libs/ui/elements/src/index.ts +1 -0
- package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.ts +2 -2
- package/src/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.html +1 -1
- package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.css +9 -0
- package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.html +13 -4
- package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.ts +12 -4
- package/src/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.html +96 -0
- package/src/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.ts +183 -0
- package/src/libs/ui/elements/src/lib/ui-elements.module.ts +3 -0
- package/src/libs/ui/inputs/src/index.ts +0 -1
- package/src/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.html +5 -5
- package/src/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.ts +2 -1
- package/src/libs/ui/layout/src/lib/anchor-link/anchor-link.directive.ts +46 -2
- package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.html +3 -7
- package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.ts +13 -0
- package/src/libs/ui/map/src/index.ts +1 -0
- package/src/libs/ui/map/src/lib/components/spatial-extent/spatial-extent.component.css +0 -0
- package/src/libs/ui/map/src/lib/components/spatial-extent/spatial-extent.component.html +4 -0
- 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} +7 -8
- package/src/libs/ui/search/src/lib/results-table/results-table.component.html +7 -4
- package/src/libs/ui/search/src/lib/results-table/results-table.component.ts +2 -1
- package/src/libs/util/app-config/src/lib/app-config.ts +1 -0
- package/src/libs/util/app-config/src/lib/fixtures.ts +1 -0
- package/src/libs/util/shared/src/index.ts +1 -0
- package/src/libs/util/shared/src/lib/gn-ui-version.ts +8 -0
- package/src/libs/util/shared/src/lib/links/link-classifier.service.ts +12 -3
- package/src/libs/util/shared/src/lib/links/link-utils.ts +30 -12
- package/tailwind.base.css +18 -13
- package/translations/de.json +27 -4
- package/translations/en.json +28 -5
- package/translations/es.json +27 -4
- package/translations/fr.json +29 -6
- package/translations/it.json +27 -4
- package/translations/nl.json +27 -4
- package/translations/pt.json +27 -4
- package/translations/sk.json +27 -4
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.mjs +0 -79
- package/esm2022/libs/feature/record/src/lib/gn-ui-version.token.mjs +0 -3
- package/esm2022/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.mjs +0 -16
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.d.ts +0 -15
- 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
- package/libs/feature/record/src/lib/gn-ui-version.token.d.ts +0 -3
- package/libs/feature/record/src/lib/gn-ui-version.token.d.ts.map +0 -1
- package/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.d.ts +0 -8
- package/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.d.ts.map +0 -1
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.html +0 -1
- package/src/libs/feature/record/src/lib/gn-ui-version.token.ts +0 -3
- package/src/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.css +0 -3
- package/src/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.html +0 -9
- package/src/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.ts +0 -15
- /package/src/libs/{feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.css → ui/elements/src/lib/service-capabilities/service-capabilities.component.css} +0 -0
|
@@ -15,7 +15,6 @@ export * from './lib/dropdown-selector/dropdown-selector.model';
|
|
|
15
15
|
export * from './lib/editable-label/editable-label.directive';
|
|
16
16
|
export * from './lib/file-input/file-input.component';
|
|
17
17
|
export * from './lib/files-drop/files-drop.directive';
|
|
18
|
-
export * from './lib/navigation-button/navigation-button.component';
|
|
19
18
|
export * from './lib/search-input/search-input.component';
|
|
20
19
|
export * from './lib/star-toggle/star-toggle.component';
|
|
21
20
|
export * from './lib/switch-toggle/switch-toggle.component';
|
|
@@ -24,4 +23,4 @@ export * from './lib/text-input/text-input.component';
|
|
|
24
23
|
export * from './lib/ui-inputs.module';
|
|
25
24
|
export * from './lib/url-input/url-input.component';
|
|
26
25
|
export * from './lib/viewport-intersector/viewport-intersector.component';
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2lucHV0cy9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywyQ0FBMkMsQ0FBQTtBQUN6RCxjQUFjLDZCQUE2QixDQUFBO0FBQzNDLGNBQWMsK0JBQStCLENBQUE7QUFDN0MsY0FBYywyQ0FBMkMsQ0FBQTtBQUN6RCxjQUFjLG1DQUFtQyxDQUFBO0FBQ2pELGNBQWMsbURBQW1ELENBQUE7QUFDakUsY0FBYyx5Q0FBeUMsQ0FBQTtBQUN2RCxjQUFjLHlEQUF5RCxDQUFBO0FBQ3ZFLGNBQWMscURBQXFELENBQUE7QUFDbkUsY0FBYyxtRUFBbUUsQ0FBQTtBQUNqRixjQUFjLDJEQUEyRCxDQUFBO0FBQ3pFLGNBQWMsdURBQXVELENBQUE7QUFDckUsY0FBYyxxREFBcUQsQ0FBQTtBQUNuRSxjQUFjLGlEQUFpRCxDQUFBO0FBQy9ELGNBQWMsK0NBQStDLENBQUE7QUFDN0QsY0FBYyx1Q0FBdUMsQ0FBQTtBQUNyRCxjQUFjLHVDQUF1QyxDQUFBO0FBQ3JELGNBQWMsMkNBQTJDLENBQUE7QUFDekQsY0FBYyx5Q0FBeUMsQ0FBQTtBQUN2RCxjQUFjLDZDQUE2QyxDQUFBO0FBQzNELGNBQWMscUNBQXFDLENBQUE7QUFDbkQsY0FBYyx1Q0FBdUMsQ0FBQTtBQUNyRCxjQUFjLHdCQUF3QixDQUFBO0FBQ3RDLGNBQWMscUNBQXFDLENBQUE7QUFDbkQsY0FBYywyREFBMkQsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYmFkZ2UvYmFkZ2UuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jaGVjay10b2dnbGUvY2hlY2stdG9nZ2xlLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvcHktdGV4dC1idXR0b24vY29weS10ZXh0LWJ1dHRvbi5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYXRlLXJhbmdlLWRyb3Bkb3duL2RhdGUtcmFuZ2UtZHJvcGRvd24uY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGF0ZS1yYW5nZS1waWNrZXIvZGF0ZS1yYW5nZS1waWNrZXIuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZHJhZy1hbmQtZHJvcC1maWxlLWlucHV0L2RyYWctYW5kLWRyb3AtZmlsZS1pbnB1dC5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kcm9wZG93bi1tdWx0aXNlbGVjdC9kcm9wZG93bi1tdWx0aXNlbGVjdC5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kcm9wZG93bi1tdWx0aXNlbGVjdC9kcm9wZG93bi1tdWx0aXNlbGVjdC5tb2RlbCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Ryb3Bkb3duLXNlbGVjdG9yL2Ryb3Bkb3duLXNlbGVjdG9yLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Ryb3Bkb3duLXNlbGVjdG9yL2Ryb3Bkb3duLXNlbGVjdG9yLm1vZGVsJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZWRpdGFibGUtbGFiZWwvZWRpdGFibGUtbGFiZWwuZGlyZWN0aXZlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmlsZS1pbnB1dC9maWxlLWlucHV0LmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpbGVzLWRyb3AvZmlsZXMtZHJvcC5kaXJlY3RpdmUnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZWFyY2gtaW5wdXQvc2VhcmNoLWlucHV0LmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N0YXItdG9nZ2xlL3N0YXItdG9nZ2xlLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N3aXRjaC10b2dnbGUvc3dpdGNoLXRvZ2dsZS5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZXh0LWFyZWEvdGV4dC1hcmVhLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RleHQtaW5wdXQvdGV4dC1pbnB1dC5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi91aS1pbnB1dHMubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXJsLWlucHV0L3VybC1pbnB1dC5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi92aWV3cG9ydC1pbnRlcnNlY3Rvci92aWV3cG9ydC1pbnRlcnNlY3Rvci5jb21wb25lbnQnXG4iXX0=
|
|
@@ -3,6 +3,7 @@ import { propagateToDocumentOnly } from '../../../../../../libs/util/shared/src'
|
|
|
3
3
|
import { NgIcon, provideIcons } from '@ng-icons/core';
|
|
4
4
|
import { CommonModule } from '@angular/common';
|
|
5
5
|
import { matStar, matStarBorder } from '@ng-icons/material-icons/baseline';
|
|
6
|
+
import { ButtonComponent } from '../button/button.component';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
8
|
import * as i1 from "@angular/common";
|
|
8
9
|
export class StarToggleComponent {
|
|
@@ -24,11 +25,11 @@ export class StarToggleComponent {
|
|
|
24
25
|
event.preventDefault();
|
|
25
26
|
}
|
|
26
27
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StarToggleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: StarToggleComponent, isStandalone: true, selector: "gn-ui-star-toggle", inputs: { toggled: "toggled", disabled: "disabled" }, outputs: { newValue: "newValue" }, viewQueries: [{ propertyName: "overlay", first: true, predicate: ["starOverlay"], descendants: true }], ngImport: i0, template: "<div class=\"inline-block relative align-middle\" style=\"line-height: 0.7em\">\n <button\n type=\"
|
|
28
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: StarToggleComponent, isStandalone: true, selector: "gn-ui-star-toggle", inputs: { toggled: "toggled", disabled: "disabled" }, outputs: { newValue: "newValue" }, viewQueries: [{ propertyName: "overlay", first: true, predicate: ["starOverlay"], descendants: true }], ngImport: i0, template: "<div class=\"inline-block relative align-middle\" style=\"line-height: 0.7em\">\n <gn-ui-button\n [type]=\"'outline'\"\n class=\"-m-[8px] p-[8px]\"\n (buttonClick)=\"toggle($event)\"\n [ngClass]=\"{\n enabled: toggled,\n disabled: !toggled,\n 'transition hover:scale-125 will-change-transform': !disabled,\n 'cursor-default': disabled,\n }\"\n >\n <ng-icon [name]=\"toggled ? 'matStar' : 'matStarBorder'\"></ng-icon>\n </gn-ui-button>\n <svg\n #starOverlay\n class=\"star-toggle-overlay\"\n width=\"40px\"\n height=\"40px\"\n viewBox=\"-15 -15 30 30\"\n >\n <g>\n <path d=\"M 0,13.229167 V 0\" />\n <path d=\"M -12.484186,4.0880377 0,0\" />\n <path d=\"M -7.6784102,-10.70262 0,0\" />\n <path d=\"M 7.8734079,-10.70262 0,0\" />\n <path d=\"M 12.679184,4.0880376 0,0\" />\n </g>\n </svg>\n</div>\n", styles: ["button.enabled{color:var(--star-toggle-enabled-color, var(--color-secondary))}button.disabled{color:var(--star-toggle-disabled-color, var(--color-primary))}.star-filled{font-variation-settings:\"FILL\" 1}.star-toggle-overlay{stroke:var(--color-secondary);stroke-width:3.5px;stroke-linecap:round;position:absolute;top:50%;left:50%;width:2.5em;height:2.5em;transform:translate(-50%,-50%);pointer-events:none;stroke-dasharray:5 20;stroke-dashoffset:-15;animation:overlay-dash .8s cubic-bezier(.16,.66,.44,.96) forwards;animation-play-state:paused}@keyframes overlay-dash{to{stroke-dashoffset:7}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }], viewProviders: [provideIcons({ matStar, matStarBorder })], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
28
29
|
}
|
|
29
30
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StarToggleComponent, decorators: [{
|
|
30
31
|
type: Component,
|
|
31
|
-
args: [{ selector: 'gn-ui-star-toggle', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, NgIcon], viewProviders: [provideIcons({ matStar, matStarBorder })], template: "<div class=\"inline-block relative align-middle\" style=\"line-height: 0.7em\">\n <button\n type=\"
|
|
32
|
+
args: [{ selector: 'gn-ui-star-toggle', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, NgIcon, ButtonComponent], viewProviders: [provideIcons({ matStar, matStarBorder })], template: "<div class=\"inline-block relative align-middle\" style=\"line-height: 0.7em\">\n <gn-ui-button\n [type]=\"'outline'\"\n class=\"-m-[8px] p-[8px]\"\n (buttonClick)=\"toggle($event)\"\n [ngClass]=\"{\n enabled: toggled,\n disabled: !toggled,\n 'transition hover:scale-125 will-change-transform': !disabled,\n 'cursor-default': disabled,\n }\"\n >\n <ng-icon [name]=\"toggled ? 'matStar' : 'matStarBorder'\"></ng-icon>\n </gn-ui-button>\n <svg\n #starOverlay\n class=\"star-toggle-overlay\"\n width=\"40px\"\n height=\"40px\"\n viewBox=\"-15 -15 30 30\"\n >\n <g>\n <path d=\"M 0,13.229167 V 0\" />\n <path d=\"M -12.484186,4.0880377 0,0\" />\n <path d=\"M -7.6784102,-10.70262 0,0\" />\n <path d=\"M 7.8734079,-10.70262 0,0\" />\n <path d=\"M 12.679184,4.0880376 0,0\" />\n </g>\n </svg>\n</div>\n", styles: ["button.enabled{color:var(--star-toggle-enabled-color, var(--color-secondary))}button.disabled{color:var(--star-toggle-disabled-color, var(--color-primary))}.star-filled{font-variation-settings:\"FILL\" 1}.star-toggle-overlay{stroke:var(--color-secondary);stroke-width:3.5px;stroke-linecap:round;position:absolute;top:50%;left:50%;width:2.5em;height:2.5em;transform:translate(-50%,-50%);pointer-events:none;stroke-dasharray:5 20;stroke-dashoffset:-15;animation:overlay-dash .8s cubic-bezier(.16,.66,.44,.96) forwards;animation-play-state:paused}@keyframes overlay-dash{to{stroke-dashoffset:7}}\n"] }]
|
|
32
33
|
}], propDecorators: { toggled: [{
|
|
33
34
|
type: Input
|
|
34
35
|
}], disabled: [{
|
|
@@ -39,4 +40,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
39
40
|
type: ViewChild,
|
|
40
41
|
args: ['starOverlay']
|
|
41
42
|
}] } });
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Rhci10b2dnbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9pbnB1dHMvc3JjL2xpYi9zdGFyLXRvZ2dsZS9zdGFyLXRvZ2dsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2lucHV0cy9zcmMvbGliL3N0YXItdG9nZ2xlL3N0YXItdG9nZ2xlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0NBQXdDLENBQUE7QUFDaEYsT0FBTyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUMxRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUE7OztBQVc1RCxNQUFNLE9BQU8sbUJBQW1CO0lBVGhDO1FBV1csYUFBUSxHQUFHLEtBQUssQ0FBQTtRQUNmLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFBO0tBZ0JqRDtJQWJDLE1BQU0sQ0FBQyxLQUFZO1FBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUE7WUFDNUIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ2pCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO2dCQUMxRCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUE7Z0JBQ2IsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFBO1lBQ2IsQ0FBQztZQUNELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUNsQyxDQUFDO1FBQ0QsdUJBQXVCLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDOUIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFBO0lBQ3hCLENBQUM7K0dBbEJVLG1CQUFtQjttR0FBbkIsbUJBQW1CLDhRQ3hCaEMsdzNCQThCQSwyb0JEVFksWUFBWSw2SEFBRSxNQUFNLDZHQUFFLGVBQWUsb0hBQ2hDLENBQUMsWUFBWSxDQUFDLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUM7OzRGQUU5QyxtQkFBbUI7a0JBVC9CLFNBQVM7K0JBQ0UsbUJBQW1CLG1CQUdaLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxlQUFlLENBQUMsaUJBQ2pDLENBQUMsWUFBWSxDQUFDLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUM7OEJBR2hELE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNJLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ21CLE9BQU87c0JBQWhDLFNBQVM7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgcHJvcGFnYXRlVG9Eb2N1bWVudE9ubHkgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYydcbmltcG9ydCB7IE5nSWNvbiwgcHJvdmlkZUljb25zIH0gZnJvbSAnQG5nLWljb25zL2NvcmUnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBtYXRTdGFyLCBtYXRTdGFyQm9yZGVyIH0gZnJvbSAnQG5nLWljb25zL21hdGVyaWFsLWljb25zL2Jhc2VsaW5lJ1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLXN0YXItdG9nZ2xlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3N0YXItdG9nZ2xlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc3Rhci10b2dnbGUuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTmdJY29uLCBCdXR0b25Db21wb25lbnRdLFxuICB2aWV3UHJvdmlkZXJzOiBbcHJvdmlkZUljb25zKHsgbWF0U3RhciwgbWF0U3RhckJvcmRlciB9KV0sXG59KVxuZXhwb3J0IGNsYXNzIFN0YXJUb2dnbGVDb21wb25lbnQge1xuICBASW5wdXQoKSB0b2dnbGVkITogYm9vbGVhblxuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlXG4gIEBPdXRwdXQoKSBuZXdWYWx1ZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKVxuICBAVmlld0NoaWxkKCdzdGFyT3ZlcmxheScpIG92ZXJsYXk6IEVsZW1lbnRSZWZcblxuICB0b2dnbGUoZXZlbnQ6IEV2ZW50KSB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLnRvZ2dsZWQgPSAhdGhpcy50b2dnbGVkXG4gICAgICBpZiAodGhpcy50b2dnbGVkKSB7XG4gICAgICAgIGNvbnN0IGFuaW0gPSB0aGlzLm92ZXJsYXkubmF0aXZlRWxlbWVudC5nZXRBbmltYXRpb25zKClbMF1cbiAgICAgICAgYW5pbS5jYW5jZWwoKVxuICAgICAgICBhbmltLnBsYXkoKVxuICAgICAgfVxuICAgICAgdGhpcy5uZXdWYWx1ZS5lbWl0KHRoaXMudG9nZ2xlZClcbiAgICB9XG4gICAgcHJvcGFnYXRlVG9Eb2N1bWVudE9ubHkoZXZlbnQpXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiaW5saW5lLWJsb2NrIHJlbGF0aXZlIGFsaWduLW1pZGRsZVwiIHN0eWxlPVwibGluZS1oZWlnaHQ6IDAuN2VtXCI+XG4gIDxnbi11aS1idXR0b25cbiAgICBbdHlwZV09XCInb3V0bGluZSdcIlxuICAgIGNsYXNzPVwiLW0tWzhweF0gcC1bOHB4XVwiXG4gICAgKGJ1dHRvbkNsaWNrKT1cInRvZ2dsZSgkZXZlbnQpXCJcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICBlbmFibGVkOiB0b2dnbGVkLFxuICAgICAgZGlzYWJsZWQ6ICF0b2dnbGVkLFxuICAgICAgJ3RyYW5zaXRpb24gaG92ZXI6c2NhbGUtMTI1IHdpbGwtY2hhbmdlLXRyYW5zZm9ybSc6ICFkaXNhYmxlZCxcbiAgICAgICdjdXJzb3ItZGVmYXVsdCc6IGRpc2FibGVkLFxuICAgIH1cIlxuICA+XG4gICAgPG5nLWljb24gW25hbWVdPVwidG9nZ2xlZCA/ICdtYXRTdGFyJyA6ICdtYXRTdGFyQm9yZGVyJ1wiPjwvbmctaWNvbj5cbiAgPC9nbi11aS1idXR0b24+XG4gIDxzdmdcbiAgICAjc3Rhck92ZXJsYXlcbiAgICBjbGFzcz1cInN0YXItdG9nZ2xlLW92ZXJsYXlcIlxuICAgIHdpZHRoPVwiNDBweFwiXG4gICAgaGVpZ2h0PVwiNDBweFwiXG4gICAgdmlld0JveD1cIi0xNSAtMTUgMzAgMzBcIlxuICA+XG4gICAgPGc+XG4gICAgICA8cGF0aCBkPVwiTSAwLDEzLjIyOTE2NyBWIDBcIiAvPlxuICAgICAgPHBhdGggZD1cIk0gLTEyLjQ4NDE4Niw0LjA4ODAzNzcgMCwwXCIgLz5cbiAgICAgIDxwYXRoIGQ9XCJNIC03LjY3ODQxMDIsLTEwLjcwMjYyIDAsMFwiIC8+XG4gICAgICA8cGF0aCBkPVwiTSA3Ljg3MzQwNzksLTEwLjcwMjYyIDAsMFwiIC8+XG4gICAgICA8cGF0aCBkPVwiTSAxMi42NzkxODQsNC4wODgwMzc2IDAsMFwiIC8+XG4gICAgPC9nPlxuICA8L3N2Zz5cbjwvZGl2PlxuIl19
|
|
@@ -2,7 +2,15 @@ import { ChangeDetectorRef, Directive, HostBinding, HostListener, Input, } from
|
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export class AnchorLinkDirective {
|
|
4
4
|
get elementClass() {
|
|
5
|
-
|
|
5
|
+
if (this.disabled) {
|
|
6
|
+
return this.disabledClass;
|
|
7
|
+
}
|
|
8
|
+
if (this.inView) {
|
|
9
|
+
return `${this.inViewClass} ${this.enabledClass}`;
|
|
10
|
+
}
|
|
11
|
+
else {
|
|
12
|
+
return `${this.outOfViewClass} ${this.enabledClass}`;
|
|
13
|
+
}
|
|
6
14
|
}
|
|
7
15
|
constructor(changeDetector) {
|
|
8
16
|
this.changeDetector = changeDetector;
|
|
@@ -10,6 +18,8 @@ export class AnchorLinkDirective {
|
|
|
10
18
|
this.observer = new MutationObserver(() => {
|
|
11
19
|
this.refreshDisabledState();
|
|
12
20
|
});
|
|
21
|
+
this.inView = false;
|
|
22
|
+
this.initialized = false;
|
|
13
23
|
}
|
|
14
24
|
ngOnInit() {
|
|
15
25
|
this.observer.observe(document.body, {
|
|
@@ -18,8 +28,32 @@ export class AnchorLinkDirective {
|
|
|
18
28
|
});
|
|
19
29
|
this.refreshDisabledState();
|
|
20
30
|
}
|
|
31
|
+
ngAfterViewChecked() {
|
|
32
|
+
if (!this.initialized && !this.disabled) {
|
|
33
|
+
const target = document.getElementById(this.targetId);
|
|
34
|
+
if (target) {
|
|
35
|
+
this.initializeIntersectionObserver(target);
|
|
36
|
+
this.initialized = true;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
initializeIntersectionObserver(target) {
|
|
41
|
+
this.intersectionObserver = new IntersectionObserver((entries) => {
|
|
42
|
+
entries.forEach((entry) => {
|
|
43
|
+
this.inView = entry.isIntersecting;
|
|
44
|
+
this.changeDetector.detectChanges();
|
|
45
|
+
});
|
|
46
|
+
}, {
|
|
47
|
+
root: null,
|
|
48
|
+
rootMargin: '-30% 0% -60% 0%',
|
|
49
|
+
});
|
|
50
|
+
this.intersectionObserver.observe(target);
|
|
51
|
+
}
|
|
21
52
|
ngOnDestroy() {
|
|
22
53
|
this.observer.disconnect();
|
|
54
|
+
if (this.intersectionObserver) {
|
|
55
|
+
this.intersectionObserver.disconnect();
|
|
56
|
+
}
|
|
23
57
|
}
|
|
24
58
|
refreshDisabledState() {
|
|
25
59
|
const targetNotPresent = !document.getElementById(this.targetId);
|
|
@@ -38,7 +72,7 @@ export class AnchorLinkDirective {
|
|
|
38
72
|
});
|
|
39
73
|
}
|
|
40
74
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AnchorLinkDirective, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
41
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: AnchorLinkDirective, selector: "[gnUiAnchorLink]", inputs: { targetId: ["gnUiAnchorLink", "targetId"], disabledClass: ["gnUiAnchorLinkDisabledClass", "disabledClass"], enabledClass: ["gnUiAnchorLinkEnabledClass", "enabledClass"] }, host: { listeners: { "click": "scrollToTarget()" }, properties: { "class": "this.elementClass" } }, ngImport: i0 }); }
|
|
75
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: AnchorLinkDirective, selector: "[gnUiAnchorLink]", inputs: { targetId: ["gnUiAnchorLink", "targetId"], disabledClass: ["gnUiAnchorLinkDisabledClass", "disabledClass"], enabledClass: ["gnUiAnchorLinkEnabledClass", "enabledClass"], inViewClass: ["gnUiAnchorLinkInViewClass", "inViewClass"], outOfViewClass: ["gnUiAnchorLinkOutOfViewClass", "outOfViewClass"] }, host: { listeners: { "click": "scrollToTarget()" }, properties: { "class": "this.elementClass" } }, ngImport: i0 }); }
|
|
42
76
|
}
|
|
43
77
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AnchorLinkDirective, decorators: [{
|
|
44
78
|
type: Directive,
|
|
@@ -54,6 +88,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
54
88
|
}], enabledClass: [{
|
|
55
89
|
type: Input,
|
|
56
90
|
args: ['gnUiAnchorLinkEnabledClass']
|
|
91
|
+
}], inViewClass: [{
|
|
92
|
+
type: Input,
|
|
93
|
+
args: ['gnUiAnchorLinkInViewClass']
|
|
94
|
+
}], outOfViewClass: [{
|
|
95
|
+
type: Input,
|
|
96
|
+
args: ['gnUiAnchorLinkOutOfViewClass']
|
|
57
97
|
}], elementClass: [{
|
|
58
98
|
type: HostBinding,
|
|
59
99
|
args: ['class']
|
|
@@ -61,4 +101,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
61
101
|
type: HostListener,
|
|
62
102
|
args: ['click']
|
|
63
103
|
}] } });
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
104
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5jaG9yLWxpbmsuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9sYXlvdXQvc3JjL2xpYi9hbmNob3ItbGluay9hbmNob3ItbGluay5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEdBR04sTUFBTSxlQUFlLENBQUE7O0FBS3RCLE1BQU0sT0FBTyxtQkFBbUI7SUFTOUIsSUFDSSxZQUFZO1FBQ2QsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFBO1FBQzNCLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNoQixPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUE7UUFDbkQsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLEdBQUcsSUFBSSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUE7UUFDdEQsQ0FBQztJQUNILENBQUM7SUFVRCxZQUFvQixjQUFpQztRQUFqQyxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFSckQsYUFBUSxHQUFHLEtBQUssQ0FBQTtRQUNoQixhQUFRLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUU7WUFDbkMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUE7UUFDN0IsQ0FBQyxDQUFDLENBQUE7UUFDRixXQUFNLEdBQUcsS0FBSyxDQUFBO1FBRWQsZ0JBQVcsR0FBRyxLQUFLLENBQUE7SUFFcUMsQ0FBQztJQUV6RCxRQUFRO1FBQ04sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRTtZQUNuQyxTQUFTLEVBQUUsSUFBSTtZQUNmLE9BQU8sRUFBRSxJQUFJO1NBQ2QsQ0FBQyxDQUFBO1FBQ0YsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUE7SUFDN0IsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN4QyxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtZQUNyRCxJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUNYLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxNQUFNLENBQUMsQ0FBQTtnQkFDM0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUE7WUFDekIsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsOEJBQThCLENBQUMsTUFBbUI7UUFDaEQsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksb0JBQW9CLENBQ2xELENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDVixPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ3hCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLGNBQWMsQ0FBQTtnQkFDbEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsQ0FBQTtZQUNyQyxDQUFDLENBQUMsQ0FBQTtRQUNKLENBQUMsRUFDRDtZQUNFLElBQUksRUFBRSxJQUFJO1lBQ1YsVUFBVSxFQUFFLGlCQUFpQjtTQUM5QixDQUNGLENBQUE7UUFDRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQzNDLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQTtRQUMxQixJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLEVBQUUsQ0FBQTtRQUN4QyxDQUFDO0lBQ0gsQ0FBQztJQUVELG9CQUFvQjtRQUNsQixNQUFNLGdCQUFnQixHQUFHLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDaEUsSUFBSSxnQkFBZ0IsS0FBSyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDdkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQTtZQUNoQyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFBO1FBQ3JDLENBQUM7SUFDSCxDQUFDO0lBRXNCLGNBQWM7UUFDbkMsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDckQsSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFNO1FBQ25CLE1BQU0sQ0FBQyxjQUFjLENBQUM7WUFDcEIsUUFBUSxFQUFFLFFBQVE7WUFDbEIsS0FBSyxFQUFFLE9BQU87U0FDZixDQUFDLENBQUE7SUFDSixDQUFDOytHQXZGVSxtQkFBbUI7bUdBQW5CLG1CQUFtQjs7NEZBQW5CLG1CQUFtQjtrQkFIL0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsa0JBQWtCO2lCQUM3QjtzRkFJMEIsUUFBUTtzQkFBaEMsS0FBSzt1QkFBQyxnQkFBZ0I7Z0JBQ2UsYUFBYTtzQkFBbEQsS0FBSzt1QkFBQyw2QkFBNkI7Z0JBQ0MsWUFBWTtzQkFBaEQsS0FBSzt1QkFBQyw0QkFBNEI7Z0JBQ0MsV0FBVztzQkFBOUMsS0FBSzt1QkFBQywyQkFBMkI7Z0JBQ0ssY0FBYztzQkFBcEQsS0FBSzt1QkFBQyw4QkFBOEI7Z0JBR2pDLFlBQVk7c0JBRGYsV0FBVzt1QkFBQyxPQUFPO2dCQXVFRyxjQUFjO3NCQUFwQyxZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdDaGVja2VkLFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgRGlyZWN0aXZlLFxuICBIb3N0QmluZGluZyxcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tnblVpQW5jaG9yTGlua10nLFxufSlcbmV4cG9ydCBjbGFzcyBBbmNob3JMaW5rRGlyZWN0aXZlXG4gIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdDaGVja2VkLCBPbkRlc3Ryb3lcbntcbiAgQElucHV0KCdnblVpQW5jaG9yTGluaycpIHRhcmdldElkOiBzdHJpbmdcbiAgQElucHV0KCdnblVpQW5jaG9yTGlua0Rpc2FibGVkQ2xhc3MnKSBkaXNhYmxlZENsYXNzOiBzdHJpbmdcbiAgQElucHV0KCdnblVpQW5jaG9yTGlua0VuYWJsZWRDbGFzcycpIGVuYWJsZWRDbGFzczogc3RyaW5nXG4gIEBJbnB1dCgnZ25VaUFuY2hvckxpbmtJblZpZXdDbGFzcycpIGluVmlld0NsYXNzOiBzdHJpbmdcbiAgQElucHV0KCdnblVpQW5jaG9yTGlua091dE9mVmlld0NsYXNzJykgb3V0T2ZWaWV3Q2xhc3M6IHN0cmluZ1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBnZXQgZWxlbWVudENsYXNzKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLmRpc2FibGVkQ2xhc3NcbiAgICB9XG4gICAgaWYgKHRoaXMuaW5WaWV3KSB7XG4gICAgICByZXR1cm4gYCR7dGhpcy5pblZpZXdDbGFzc30gJHt0aGlzLmVuYWJsZWRDbGFzc31gXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBgJHt0aGlzLm91dE9mVmlld0NsYXNzfSAke3RoaXMuZW5hYmxlZENsYXNzfWBcbiAgICB9XG4gIH1cblxuICBkaXNhYmxlZCA9IGZhbHNlXG4gIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKCkgPT4ge1xuICAgIHRoaXMucmVmcmVzaERpc2FibGVkU3RhdGUoKVxuICB9KVxuICBpblZpZXcgPSBmYWxzZVxuICBpbnRlcnNlY3Rpb25PYnNlcnZlcjogSW50ZXJzZWN0aW9uT2JzZXJ2ZXJcbiAgaW5pdGlhbGl6ZWQgPSBmYWxzZVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMub2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudC5ib2R5LCB7XG4gICAgICBjaGlsZExpc3Q6IHRydWUsXG4gICAgICBzdWJ0cmVlOiB0cnVlLFxuICAgIH0pXG4gICAgdGhpcy5yZWZyZXNoRGlzYWJsZWRTdGF0ZSgpXG4gIH1cblxuICBuZ0FmdGVyVmlld0NoZWNrZWQoKSB7XG4gICAgaWYgKCF0aGlzLmluaXRpYWxpemVkICYmICF0aGlzLmRpc2FibGVkKSB7XG4gICAgICBjb25zdCB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLnRhcmdldElkKVxuICAgICAgaWYgKHRhcmdldCkge1xuICAgICAgICB0aGlzLmluaXRpYWxpemVJbnRlcnNlY3Rpb25PYnNlcnZlcih0YXJnZXQpXG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaW5pdGlhbGl6ZUludGVyc2VjdGlvbk9ic2VydmVyKHRhcmdldDogSFRNTEVsZW1lbnQpIHtcbiAgICB0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKFxuICAgICAgKGVudHJpZXMpID0+IHtcbiAgICAgICAgZW50cmllcy5mb3JFYWNoKChlbnRyeSkgPT4ge1xuICAgICAgICAgIHRoaXMuaW5WaWV3ID0gZW50cnkuaXNJbnRlcnNlY3RpbmdcbiAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKVxuICAgICAgICB9KVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcm9vdDogbnVsbCxcbiAgICAgICAgcm9vdE1hcmdpbjogJy0zMCUgMCUgLTYwJSAwJScsXG4gICAgICB9XG4gICAgKVxuICAgIHRoaXMuaW50ZXJzZWN0aW9uT2JzZXJ2ZXIub2JzZXJ2ZSh0YXJnZXQpXG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLm9ic2VydmVyLmRpc2Nvbm5lY3QoKVxuICAgIGlmICh0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyKSB7XG4gICAgICB0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyLmRpc2Nvbm5lY3QoKVxuICAgIH1cbiAgfVxuXG4gIHJlZnJlc2hEaXNhYmxlZFN0YXRlKCkge1xuICAgIGNvbnN0IHRhcmdldE5vdFByZXNlbnQgPSAhZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy50YXJnZXRJZClcbiAgICBpZiAodGFyZ2V0Tm90UHJlc2VudCAhPT0gdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5kaXNhYmxlZCA9IHRhcmdldE5vdFByZXNlbnRcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpXG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snKSBzY3JvbGxUb1RhcmdldCgpIHtcbiAgICBjb25zdCB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLnRhcmdldElkKVxuICAgIGlmICghdGFyZ2V0KSByZXR1cm5cbiAgICB0YXJnZXQuc2Nyb2xsSW50b1ZpZXcoe1xuICAgICAgYmVoYXZpb3I6ICdzbW9vdGgnLFxuICAgICAgYmxvY2s6ICdzdGFydCcsXG4gICAgfSlcbiAgfVxufVxuIl19
|
|
@@ -4,9 +4,12 @@ import { CommonModule } from '@angular/common';
|
|
|
4
4
|
import { NgIconComponent, provideIcons } from '@ng-icons/core';
|
|
5
5
|
import { iconoirNavArrowDown, iconoirNavArrowUp } from '@ng-icons/iconoir';
|
|
6
6
|
import { TranslateModule } from '@ngx-translate/core';
|
|
7
|
+
import { marker } from '@biesbjerg/ngx-translate-extract-marker';
|
|
7
8
|
import * as i0 from "@angular/core";
|
|
8
9
|
import * as i1 from "@angular/common";
|
|
9
10
|
import * as i2 from "@ngx-translate/core";
|
|
11
|
+
marker('editor.record.lock.reason');
|
|
12
|
+
marker('editor.record.lock.format');
|
|
10
13
|
export class InteractiveTableComponent {
|
|
11
14
|
constructor() {
|
|
12
15
|
this.items = [];
|
|
@@ -24,15 +27,24 @@ export class InteractiveTableComponent {
|
|
|
24
27
|
.join(' '),
|
|
25
28
|
};
|
|
26
29
|
}
|
|
30
|
+
getItemTitle(item) {
|
|
31
|
+
if (!item.extras?.edit && !this.isDraftPage && item.kind === 'dataset') {
|
|
32
|
+
return 'editor.record.lock.reason';
|
|
33
|
+
}
|
|
34
|
+
else if (item.kind !== 'dataset') {
|
|
35
|
+
return 'editor.record.lock.format';
|
|
36
|
+
}
|
|
37
|
+
return '';
|
|
38
|
+
}
|
|
27
39
|
handleRowClick(item) {
|
|
28
40
|
this.itemClick.emit(item);
|
|
29
41
|
}
|
|
30
42
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InteractiveTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
31
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: InteractiveTableComponent, isStandalone: true, selector: "gn-ui-interactive-table", inputs: { items: "items", isDraftPage: "isDraftPage" }, outputs: { itemClick: "itemClick" }, providers: [provideIcons({ iconoirNavArrowDown, iconoirNavArrowUp })], queries: [{ propertyName: "columns", predicate: InteractiveTableColumnComponent }], ngImport: i0, template: "<div class=\"grid w-full\" [ngStyle]=\"gridStyle\">\n <div class=\"contents w-full\">\n <ng-container *ngFor=\"let column of columns\">\n <button\n *ngIf=\"column.sortable\"\n type=\"button\"\n class=\"table-header-cell gap-1\"\n (click)=\"column.sortable && column.handleSortChange()\"\n >\n <ng-container *ngTemplateOutlet=\"column.header\"></ng-container>\n <div class=\"sort-button flex flex-col\" *ngIf=\"column.sortable\">\n <ng-icon\n class=\"text-gray-600 -mb-2\"\n [ngClass]=\"{ 'text-main': column.activeSort === 'asc' }\"\n name=\"iconoirNavArrowUp\"\n ></ng-icon>\n <ng-icon\n class=\"text-gray-600\"\n [ngClass]=\"{ 'text-main': column.activeSort === 'desc' }\"\n name=\"iconoirNavArrowDown\"\n ></ng-icon>\n </div>\n </button>\n <div *ngIf=\"!column.sortable\" class=\"table-header-cell\">\n <ng-container *ngTemplateOutlet=\"column.header\"></ng-container>\n </div>\n </ng-container>\n </div>\n <div\n class=\"contents text-gray-900 cursor-pointer group\"\n *ngFor=\"let item of items\"\n (click)=\"handleRowClick(item)\"\n data-cy=\"table-row\"\n [title]=\"
|
|
43
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: InteractiveTableComponent, isStandalone: true, selector: "gn-ui-interactive-table", inputs: { items: "items", isDraftPage: "isDraftPage" }, outputs: { itemClick: "itemClick" }, providers: [provideIcons({ iconoirNavArrowDown, iconoirNavArrowUp })], queries: [{ propertyName: "columns", predicate: InteractiveTableColumnComponent }], ngImport: i0, template: "<div class=\"grid w-full\" [ngStyle]=\"gridStyle\">\n <div class=\"contents w-full\">\n <ng-container *ngFor=\"let column of columns\">\n <button\n *ngIf=\"column.sortable\"\n type=\"button\"\n class=\"table-header-cell gap-1\"\n (click)=\"column.sortable && column.handleSortChange()\"\n >\n <ng-container *ngTemplateOutlet=\"column.header\"></ng-container>\n <div class=\"sort-button flex flex-col\" *ngIf=\"column.sortable\">\n <ng-icon\n class=\"text-gray-600 -mb-2\"\n [ngClass]=\"{ 'text-main': column.activeSort === 'asc' }\"\n name=\"iconoirNavArrowUp\"\n ></ng-icon>\n <ng-icon\n class=\"text-gray-600\"\n [ngClass]=\"{ 'text-main': column.activeSort === 'desc' }\"\n name=\"iconoirNavArrowDown\"\n ></ng-icon>\n </div>\n </button>\n <div *ngIf=\"!column.sortable\" class=\"table-header-cell\">\n <ng-container *ngTemplateOutlet=\"column.header\"></ng-container>\n </div>\n </ng-container>\n </div>\n <div\n class=\"contents text-gray-900 cursor-pointer group\"\n *ngFor=\"let item of items\"\n (click)=\"handleRowClick(item)\"\n data-cy=\"table-row\"\n [title]=\"getItemTitle(item) | translate\"\n >\n <div\n class=\"relative h-0\"\n [ngStyle]=\"{ 'grid-column': 'span ' + this.columns.length }\"\n >\n <!-- this element is only used in keyboard navigation -->\n <button\n type=\"button\"\n class=\"absolute inset-x-0 h-[50px] bg-transparent pointer-events-none\"\n ></button>\n </div>\n <ng-container *ngFor=\"let column of columns\">\n <div\n class=\"table-row-cell px-3 py-1.5 flex items-center bg-white transition-colors duration-75 truncate border-b border-gray-200\"\n [ngClass]=\"{\n 'text-purple-light cursor-default':\n (!item.extras?.edit && !isDraftPage) || item.kind !== 'dataset',\n 'group-hover:text-main group-hover:bg-gray-50':\n (item.extras?.edit || isDraftPage) && item.kind === 'dataset',\n }\"\n >\n <ng-container\n *ngTemplateOutlet=\"column.cell; context: { $implicit: item }\"\n ></ng-container>\n </div>\n </ng-container>\n </div>\n</div>\n", styles: [".table-header-cell{@apply text-gray-700 px-3 py-3 flex items-center truncate bg-white;}button.table-header-cell{@apply transition-colors duration-75 hover:text-main hover:bg-gray-50 focus:text-main focus:bg-gray-50;}ng-icon{@apply w-4 h-4;}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
32
44
|
}
|
|
33
45
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InteractiveTableComponent, decorators: [{
|
|
34
46
|
type: Component,
|
|
35
|
-
args: [{ selector: 'gn-ui-interactive-table', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, NgIconComponent, TranslateModule], providers: [provideIcons({ iconoirNavArrowDown, iconoirNavArrowUp })], template: "<div class=\"grid w-full\" [ngStyle]=\"gridStyle\">\n <div class=\"contents w-full\">\n <ng-container *ngFor=\"let column of columns\">\n <button\n *ngIf=\"column.sortable\"\n type=\"button\"\n class=\"table-header-cell gap-1\"\n (click)=\"column.sortable && column.handleSortChange()\"\n >\n <ng-container *ngTemplateOutlet=\"column.header\"></ng-container>\n <div class=\"sort-button flex flex-col\" *ngIf=\"column.sortable\">\n <ng-icon\n class=\"text-gray-600 -mb-2\"\n [ngClass]=\"{ 'text-main': column.activeSort === 'asc' }\"\n name=\"iconoirNavArrowUp\"\n ></ng-icon>\n <ng-icon\n class=\"text-gray-600\"\n [ngClass]=\"{ 'text-main': column.activeSort === 'desc' }\"\n name=\"iconoirNavArrowDown\"\n ></ng-icon>\n </div>\n </button>\n <div *ngIf=\"!column.sortable\" class=\"table-header-cell\">\n <ng-container *ngTemplateOutlet=\"column.header\"></ng-container>\n </div>\n </ng-container>\n </div>\n <div\n class=\"contents text-gray-900 cursor-pointer group\"\n *ngFor=\"let item of items\"\n (click)=\"handleRowClick(item)\"\n data-cy=\"table-row\"\n [title]=\"
|
|
47
|
+
args: [{ selector: 'gn-ui-interactive-table', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, NgIconComponent, TranslateModule], providers: [provideIcons({ iconoirNavArrowDown, iconoirNavArrowUp })], template: "<div class=\"grid w-full\" [ngStyle]=\"gridStyle\">\n <div class=\"contents w-full\">\n <ng-container *ngFor=\"let column of columns\">\n <button\n *ngIf=\"column.sortable\"\n type=\"button\"\n class=\"table-header-cell gap-1\"\n (click)=\"column.sortable && column.handleSortChange()\"\n >\n <ng-container *ngTemplateOutlet=\"column.header\"></ng-container>\n <div class=\"sort-button flex flex-col\" *ngIf=\"column.sortable\">\n <ng-icon\n class=\"text-gray-600 -mb-2\"\n [ngClass]=\"{ 'text-main': column.activeSort === 'asc' }\"\n name=\"iconoirNavArrowUp\"\n ></ng-icon>\n <ng-icon\n class=\"text-gray-600\"\n [ngClass]=\"{ 'text-main': column.activeSort === 'desc' }\"\n name=\"iconoirNavArrowDown\"\n ></ng-icon>\n </div>\n </button>\n <div *ngIf=\"!column.sortable\" class=\"table-header-cell\">\n <ng-container *ngTemplateOutlet=\"column.header\"></ng-container>\n </div>\n </ng-container>\n </div>\n <div\n class=\"contents text-gray-900 cursor-pointer group\"\n *ngFor=\"let item of items\"\n (click)=\"handleRowClick(item)\"\n data-cy=\"table-row\"\n [title]=\"getItemTitle(item) | translate\"\n >\n <div\n class=\"relative h-0\"\n [ngStyle]=\"{ 'grid-column': 'span ' + this.columns.length }\"\n >\n <!-- this element is only used in keyboard navigation -->\n <button\n type=\"button\"\n class=\"absolute inset-x-0 h-[50px] bg-transparent pointer-events-none\"\n ></button>\n </div>\n <ng-container *ngFor=\"let column of columns\">\n <div\n class=\"table-row-cell px-3 py-1.5 flex items-center bg-white transition-colors duration-75 truncate border-b border-gray-200\"\n [ngClass]=\"{\n 'text-purple-light cursor-default':\n (!item.extras?.edit && !isDraftPage) || item.kind !== 'dataset',\n 'group-hover:text-main group-hover:bg-gray-50':\n (item.extras?.edit || isDraftPage) && item.kind === 'dataset',\n }\"\n >\n <ng-container\n *ngTemplateOutlet=\"column.cell; context: { $implicit: item }\"\n ></ng-container>\n </div>\n </ng-container>\n </div>\n</div>\n", styles: [".table-header-cell{@apply text-gray-700 px-3 py-3 flex items-center truncate bg-white;}button.table-header-cell{@apply transition-colors duration-75 hover:text-main hover:bg-gray-50 focus:text-main focus:bg-gray-50;}ng-icon{@apply w-4 h-4;}\n"] }]
|
|
36
48
|
}], propDecorators: { columns: [{
|
|
37
49
|
type: ContentChildren,
|
|
38
50
|
args: [InteractiveTableColumnComponent]
|
|
@@ -43,4 +55,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
43
55
|
}], itemClick: [{
|
|
44
56
|
type: Output
|
|
45
57
|
}] } });
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3RpdmUtdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9sYXlvdXQvc3JjL2xpYi9pbnRlcmFjdGl2ZS10YWJsZS9pbnRlcmFjdGl2ZS10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2xheW91dC9zcmMvbGliL2ludGVyYWN0aXZlLXRhYmxlL2ludGVyYWN0aXZlLXRhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULGVBQWUsRUFDZixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sK0RBQStELENBQUE7QUFDL0csT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDOUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDMUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3JELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTs7OztBQUdoRSxNQUFNLENBQUMsMkJBQTJCLENBQUMsQ0FBQTtBQUNuQyxNQUFNLENBQUMsMkJBQTJCLENBQUMsQ0FBQTtBQVVuQyxNQUFNLE9BQU8seUJBQXlCO0lBVHRDO1FBYVcsVUFBSyxHQUFjLEVBQUUsQ0FBQTtRQUNyQixnQkFBVyxHQUFHLEtBQUssQ0FBQTtRQUNsQixjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQTtLQTRCbEQ7SUExQkMsSUFBSSxTQUFTO1FBQ1gsT0FBTztZQUNMLHVCQUF1QixFQUFFLElBQUksQ0FBQyxPQUFPO2lCQUNsQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUNkLE1BQU0sQ0FBQyxLQUFLO2dCQUNWLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSztnQkFDZCxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUk7b0JBQ1gsQ0FBQyxDQUFDLGlCQUFpQjtvQkFDbkIsQ0FBQyxDQUFDLHlCQUF5QixDQUNoQztpQkFDQSxJQUFJLENBQUMsR0FBRyxDQUFDO1NBQ2IsQ0FBQTtJQUNILENBQUM7SUFFRCxZQUFZLENBQUMsSUFBbUI7UUFDOUIsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3ZFLE9BQU8sMkJBQTJCLENBQUE7UUFDcEMsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNuQyxPQUFPLDJCQUEyQixDQUFBO1FBQ3BDLENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQTtJQUNYLENBQUM7SUFFRCxjQUFjLENBQUMsSUFBYTtRQUMxQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUMzQixDQUFDOytHQWpDVSx5QkFBeUI7bUdBQXpCLHlCQUF5QixtS0FGekIsQ0FBQyxZQUFZLENBQUMsRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxDQUFDLENBQUMsa0RBR3BELCtCQUErQiw2QkM3QmxELG15RUE4REEsMlNEckNZLFlBQVksMGxCQUFFLGVBQWUsNEdBQUUsZUFBZTs7NEZBRzdDLHlCQUF5QjtrQkFUckMsU0FBUzsrQkFDRSx5QkFBeUIsbUJBR2xCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGVBQWUsRUFBRSxlQUFlLENBQUMsYUFDOUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxDQUFDLENBQUM7OEJBSXJFLE9BQU87c0JBRE4sZUFBZTt1QkFBQywrQkFBK0I7Z0JBR3ZDLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNJLFNBQVM7c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgSW50ZXJhY3RpdmVUYWJsZUNvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4vaW50ZXJhY3RpdmUtdGFibGUtY29sdW1uL2ludGVyYWN0aXZlLXRhYmxlLWNvbHVtbi5jb21wb25lbnQnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBOZ0ljb25Db21wb25lbnQsIHByb3ZpZGVJY29ucyB9IGZyb20gJ0BuZy1pY29ucy9jb3JlJ1xuaW1wb3J0IHsgaWNvbm9pck5hdkFycm93RG93biwgaWNvbm9pck5hdkFycm93VXAgfSBmcm9tICdAbmctaWNvbnMvaWNvbm9pcidcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBtYXJrZXIgfSBmcm9tICdAYmllc2JqZXJnL25neC10cmFuc2xhdGUtZXh0cmFjdC1tYXJrZXInXG5pbXBvcnQgeyBDYXRhbG9nUmVjb3JkIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuXG5tYXJrZXIoJ2VkaXRvci5yZWNvcmQubG9jay5yZWFzb24nKVxubWFya2VyKCdlZGl0b3IucmVjb3JkLmxvY2suZm9ybWF0JylcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLWludGVyYWN0aXZlLXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ludGVyYWN0aXZlLXRhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaW50ZXJhY3RpdmUtdGFibGUuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTmdJY29uQ29tcG9uZW50LCBUcmFuc2xhdGVNb2R1bGVdLFxuICBwcm92aWRlcnM6IFtwcm92aWRlSWNvbnMoeyBpY29ub2lyTmF2QXJyb3dEb3duLCBpY29ub2lyTmF2QXJyb3dVcCB9KV0sXG59KVxuZXhwb3J0IGNsYXNzIEludGVyYWN0aXZlVGFibGVDb21wb25lbnQge1xuICBAQ29udGVudENoaWxkcmVuKEludGVyYWN0aXZlVGFibGVDb2x1bW5Db21wb25lbnQpXG4gIGNvbHVtbnM6IFF1ZXJ5TGlzdDxJbnRlcmFjdGl2ZVRhYmxlQ29sdW1uQ29tcG9uZW50PlxuXG4gIEBJbnB1dCgpIGl0ZW1zOiB1bmtub3duW10gPSBbXVxuICBASW5wdXQoKSBpc0RyYWZ0UGFnZSA9IGZhbHNlXG4gIEBPdXRwdXQoKSBpdGVtQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHVua25vd24+KClcblxuICBnZXQgZ3JpZFN0eWxlKCkge1xuICAgIHJldHVybiB7XG4gICAgICAnZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zJzogdGhpcy5jb2x1bW5zXG4gICAgICAgIC5tYXAoKGNvbHVtbikgPT5cbiAgICAgICAgICBjb2x1bW4ud2lkdGhcbiAgICAgICAgICAgID8gY29sdW1uLndpZHRoXG4gICAgICAgICAgICA6IGNvbHVtbi5ncm93XG4gICAgICAgICAgICAgID8gYG1pbm1heCgwcHgsMWZyKWBcbiAgICAgICAgICAgICAgOiBgbWlubWF4KDBweCxtYXgtY29udGVudClgXG4gICAgICAgIClcbiAgICAgICAgLmpvaW4oJyAnKSxcbiAgICB9XG4gIH1cblxuICBnZXRJdGVtVGl0bGUoaXRlbTogQ2F0YWxvZ1JlY29yZCkge1xuICAgIGlmICghaXRlbS5leHRyYXM/LmVkaXQgJiYgIXRoaXMuaXNEcmFmdFBhZ2UgJiYgaXRlbS5raW5kID09PSAnZGF0YXNldCcpIHtcbiAgICAgIHJldHVybiAnZWRpdG9yLnJlY29yZC5sb2NrLnJlYXNvbidcbiAgICB9IGVsc2UgaWYgKGl0ZW0ua2luZCAhPT0gJ2RhdGFzZXQnKSB7XG4gICAgICByZXR1cm4gJ2VkaXRvci5yZWNvcmQubG9jay5mb3JtYXQnXG4gICAgfVxuICAgIHJldHVybiAnJ1xuICB9XG5cbiAgaGFuZGxlUm93Q2xpY2soaXRlbTogdW5rbm93bikge1xuICAgIHRoaXMuaXRlbUNsaWNrLmVtaXQoaXRlbSlcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImdyaWQgdy1mdWxsXCIgW25nU3R5bGVdPVwiZ3JpZFN0eWxlXCI+XG4gIDxkaXYgY2xhc3M9XCJjb250ZW50cyB3LWZ1bGxcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uc1wiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICAqbmdJZj1cImNvbHVtbi5zb3J0YWJsZVwiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cInRhYmxlLWhlYWRlci1jZWxsIGdhcC0xXCJcbiAgICAgICAgKGNsaWNrKT1cImNvbHVtbi5zb3J0YWJsZSAmJiBjb2x1bW4uaGFuZGxlU29ydENoYW5nZSgpXCJcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbHVtbi5oZWFkZXJcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNvcnQtYnV0dG9uIGZsZXggZmxleC1jb2xcIiAqbmdJZj1cImNvbHVtbi5zb3J0YWJsZVwiPlxuICAgICAgICAgIDxuZy1pY29uXG4gICAgICAgICAgICBjbGFzcz1cInRleHQtZ3JheS02MDAgLW1iLTJcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAndGV4dC1tYWluJzogY29sdW1uLmFjdGl2ZVNvcnQgPT09ICdhc2MnIH1cIlxuICAgICAgICAgICAgbmFtZT1cImljb25vaXJOYXZBcnJvd1VwXCJcbiAgICAgICAgICA+PC9uZy1pY29uPlxuICAgICAgICAgIDxuZy1pY29uXG4gICAgICAgICAgICBjbGFzcz1cInRleHQtZ3JheS02MDBcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAndGV4dC1tYWluJzogY29sdW1uLmFjdGl2ZVNvcnQgPT09ICdkZXNjJyB9XCJcbiAgICAgICAgICAgIG5hbWU9XCJpY29ub2lyTmF2QXJyb3dEb3duXCJcbiAgICAgICAgICA+PC9uZy1pY29uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGRpdiAqbmdJZj1cIiFjb2x1bW4uc29ydGFibGVcIiBjbGFzcz1cInRhYmxlLWhlYWRlci1jZWxsXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb2x1bW4uaGVhZGVyXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICBjbGFzcz1cImNvbnRlbnRzIHRleHQtZ3JheS05MDAgY3Vyc29yLXBvaW50ZXIgZ3JvdXBcIlxuICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zXCJcbiAgICAoY2xpY2spPVwiaGFuZGxlUm93Q2xpY2soaXRlbSlcIlxuICAgIGRhdGEtY3k9XCJ0YWJsZS1yb3dcIlxuICAgIFt0aXRsZV09XCJnZXRJdGVtVGl0bGUoaXRlbSkgfCB0cmFuc2xhdGVcIlxuICA+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJyZWxhdGl2ZSBoLTBcIlxuICAgICAgW25nU3R5bGVdPVwieyAnZ3JpZC1jb2x1bW4nOiAnc3BhbiAnICsgdGhpcy5jb2x1bW5zLmxlbmd0aCB9XCJcbiAgICA+XG4gICAgICA8IS0tIHRoaXMgZWxlbWVudCBpcyBvbmx5IHVzZWQgaW4ga2V5Ym9hcmQgbmF2aWdhdGlvbiAtLT5cbiAgICAgIDxidXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwiYWJzb2x1dGUgaW5zZXQteC0wIGgtWzUwcHhdIGJnLXRyYW5zcGFyZW50IHBvaW50ZXItZXZlbnRzLW5vbmVcIlxuICAgICAgPjwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb2x1bW5zXCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwidGFibGUtcm93LWNlbGwgcHgtMyBweS0xLjUgZmxleCBpdGVtcy1jZW50ZXIgYmctd2hpdGUgdHJhbnNpdGlvbi1jb2xvcnMgZHVyYXRpb24tNzUgdHJ1bmNhdGUgYm9yZGVyLWIgYm9yZGVyLWdyYXktMjAwXCJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICd0ZXh0LXB1cnBsZS1saWdodCBjdXJzb3ItZGVmYXVsdCc6XG4gICAgICAgICAgICAoIWl0ZW0uZXh0cmFzPy5lZGl0ICYmICFpc0RyYWZ0UGFnZSkgfHwgaXRlbS5raW5kICE9PSAnZGF0YXNldCcsXG4gICAgICAgICAgJ2dyb3VwLWhvdmVyOnRleHQtbWFpbiBncm91cC1ob3ZlcjpiZy1ncmF5LTUwJzpcbiAgICAgICAgICAgIChpdGVtLmV4dHJhcz8uZWRpdCB8fCBpc0RyYWZ0UGFnZSkgJiYgaXRlbS5raW5kID09PSAnZGF0YXNldCcsXG4gICAgICAgIH1cIlxuICAgICAgPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb2x1bW4uY2VsbDsgY29udGV4dDogeyAkaW1wbGljaXQ6IGl0ZW0gfVwiXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -3,4 +3,5 @@ export * from './lib/components/map-container/map-settings.token';
|
|
|
3
3
|
export * from './lib/components/feature-detail/feature-detail.component';
|
|
4
4
|
export * from './lib/components/map-legend/map-legend.component';
|
|
5
5
|
export * from './lib/map-utils';
|
|
6
|
-
|
|
6
|
+
export * from './lib/components/spatial-extent/spatial-extent.component';
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL21hcC9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx3REFBd0QsQ0FBQTtBQUN0RSxjQUFjLG1EQUFtRCxDQUFBO0FBQ2pFLGNBQWMsMERBQTBELENBQUE7QUFDeEUsY0FBYyxrREFBa0QsQ0FBQTtBQUNoRSxjQUFjLGlCQUFpQixDQUFBO0FBQy9CLGNBQWMsMERBQTBELENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21hcC1jb250YWluZXIvbWFwLWNvbnRhaW5lci5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21hcC1jb250YWluZXIvbWFwLXNldHRpbmdzLnRva2VuJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9mZWF0dXJlLWRldGFpbC9mZWF0dXJlLWRldGFpbC5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21hcC1sZWdlbmQvbWFwLWxlZ2VuZC5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXAtdXRpbHMnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3NwYXRpYWwtZXh0ZW50L3NwYXRpYWwtZXh0ZW50LmNvbXBvbmVudCdcbiJdfQ==
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import GeoJSON from 'ol/format/GeoJSON';
|
|
4
|
+
import { Polygon } from 'ol/geom';
|
|
5
|
+
import { createViewFromLayer, } from '@geospatial-sdk/core';
|
|
6
|
+
import { MapContainerComponent } from '../map-container/map-container.component';
|
|
7
|
+
import { BehaviorSubject } from 'rxjs';
|
|
8
|
+
import { switchMap } from 'rxjs/operators';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "@angular/common";
|
|
11
|
+
export class SpatialExtentComponent {
|
|
12
|
+
constructor() {
|
|
13
|
+
this.spatialExtents$ = new BehaviorSubject([]);
|
|
14
|
+
this.mapContext$ = this.spatialExtents$.pipe(switchMap(async (extents) => {
|
|
15
|
+
if (extents.length === 0) {
|
|
16
|
+
return null; // null extent means default view
|
|
17
|
+
}
|
|
18
|
+
const featureCollection = {
|
|
19
|
+
type: 'FeatureCollection',
|
|
20
|
+
features: [],
|
|
21
|
+
};
|
|
22
|
+
extents.forEach((extent) => {
|
|
23
|
+
if (extent.geometry) {
|
|
24
|
+
featureCollection.features.push({
|
|
25
|
+
type: 'Feature',
|
|
26
|
+
properties: {},
|
|
27
|
+
geometry: extent.geometry,
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
else if (extent.bbox?.length >= 0) {
|
|
31
|
+
featureCollection.features.push({
|
|
32
|
+
type: 'Feature',
|
|
33
|
+
properties: {},
|
|
34
|
+
geometry: this.bboxCoordsToGeometry(extent.bbox),
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
const layer = {
|
|
39
|
+
type: 'geojson',
|
|
40
|
+
data: featureCollection,
|
|
41
|
+
label: 'Spatial extents',
|
|
42
|
+
style: {
|
|
43
|
+
'stroke-color': 'black',
|
|
44
|
+
'stroke-width': 2,
|
|
45
|
+
},
|
|
46
|
+
};
|
|
47
|
+
const view = await createViewFromLayer(layer);
|
|
48
|
+
return {
|
|
49
|
+
view,
|
|
50
|
+
layers: [layer],
|
|
51
|
+
};
|
|
52
|
+
}));
|
|
53
|
+
this.error = '';
|
|
54
|
+
}
|
|
55
|
+
set spatialExtents(value) {
|
|
56
|
+
this.spatialExtents$.next(value);
|
|
57
|
+
}
|
|
58
|
+
bboxCoordsToGeometry(bbox) {
|
|
59
|
+
const geometry = new Polygon([
|
|
60
|
+
[
|
|
61
|
+
[bbox[0], bbox[1]],
|
|
62
|
+
[bbox[0], bbox[3]],
|
|
63
|
+
[bbox[2], bbox[3]],
|
|
64
|
+
[bbox[2], bbox[1]],
|
|
65
|
+
[bbox[0], bbox[1]],
|
|
66
|
+
],
|
|
67
|
+
]);
|
|
68
|
+
return new GeoJSON().writeGeometryObject(geometry);
|
|
69
|
+
}
|
|
70
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpatialExtentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
71
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SpatialExtentComponent, isStandalone: true, selector: "gn-ui-spatial-extent", inputs: { spatialExtents: "spatialExtents" }, ngImport: i0, template: "<gn-ui-map-container\n class=\"h-full w-full\"\n [context]=\"mapContext$ | async\"\n></gn-ui-map-container>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "component", type: MapContainerComponent, selector: "gn-ui-map-container", inputs: ["context"], outputs: ["featuresClick", "featuresHover", "mapClick", "sourceLoadError"] }] }); }
|
|
72
|
+
}
|
|
73
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpatialExtentComponent, decorators: [{
|
|
74
|
+
type: Component,
|
|
75
|
+
args: [{ selector: 'gn-ui-spatial-extent', standalone: true, imports: [CommonModule, MapContainerComponent], template: "<gn-ui-map-container\n class=\"h-full w-full\"\n [context]=\"mapContext$ | async\"\n></gn-ui-map-container>\n" }]
|
|
76
|
+
}], propDecorators: { spatialExtents: [{
|
|
77
|
+
type: Input
|
|
78
|
+
}] } });
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BhdGlhbC1leHRlbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9tYXAvc3JjL2xpYi9jb21wb25lbnRzL3NwYXRpYWwtZXh0ZW50L3NwYXRpYWwtZXh0ZW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvbWFwL3NyYy9saWIvY29tcG9uZW50cy9zcGF0aWFsLWV4dGVudC9zcGF0aWFsLWV4dGVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFFOUMsT0FBTyxPQUFxQyxNQUFNLG1CQUFtQixDQUFBO0FBQ3JFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxTQUFTLENBQUE7QUFDakMsT0FBTyxFQUNMLG1CQUFtQixHQUdwQixNQUFNLHNCQUFzQixDQUFBO0FBQzdCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFBO0FBQ2hGLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUE7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFBOzs7QUFVMUMsTUFBTSxPQUFPLHNCQUFzQjtJQVBuQztRQVdFLG9CQUFlLEdBQUcsSUFBSSxlQUFlLENBQXlCLEVBQUUsQ0FBQyxDQUFBO1FBQ2pFLGdCQUFXLEdBQTJCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUM3RCxTQUFTLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO1lBQzFCLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDekIsT0FBTyxJQUFJLENBQUEsQ0FBQyxpQ0FBaUM7WUFDL0MsQ0FBQztZQUNELE1BQU0saUJBQWlCLEdBQTZCO2dCQUNsRCxJQUFJLEVBQUUsbUJBQW1CO2dCQUN6QixRQUFRLEVBQUUsRUFBRTthQUNiLENBQUE7WUFDRCxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ3pCLElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUNwQixpQkFBaUIsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO3dCQUM5QixJQUFJLEVBQUUsU0FBUzt3QkFDZixVQUFVLEVBQUUsRUFBRTt3QkFDZCxRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVE7cUJBQzFCLENBQUMsQ0FBQTtnQkFDSixDQUFDO3FCQUFNLElBQUksTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUM7b0JBQ3BDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7d0JBQzlCLElBQUksRUFBRSxTQUFTO3dCQUNmLFVBQVUsRUFBRSxFQUFFO3dCQUNkLFFBQVEsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztxQkFDakQsQ0FBQyxDQUFBO2dCQUNKLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQTtZQUVGLE1BQU0sS0FBSyxHQUFvQjtnQkFDN0IsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsSUFBSSxFQUFFLGlCQUFpQjtnQkFDdkIsS0FBSyxFQUFFLGlCQUFpQjtnQkFDeEIsS0FBSyxFQUFFO29CQUNMLGNBQWMsRUFBRSxPQUFPO29CQUN2QixjQUFjLEVBQUUsQ0FBQztpQkFDbEI7YUFDRixDQUFBO1lBQ0QsTUFBTSxJQUFJLEdBQUcsTUFBTSxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQTtZQUM3QyxPQUFPO2dCQUNMLElBQUk7Z0JBQ0osTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDO2FBQ2hCLENBQUE7UUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFBO1FBRUQsVUFBSyxHQUFHLEVBQUUsQ0FBQTtLQWVYO0lBN0RDLElBQWEsY0FBYyxDQUFDLEtBQTZCO1FBQ3ZELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUE4Q0Qsb0JBQW9CLENBQUMsSUFBc0M7UUFDekQsTUFBTSxRQUFRLEdBQUcsSUFBSSxPQUFPLENBQUM7WUFDM0I7Z0JBQ0UsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNsQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2xCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDbEIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNsQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDbkI7U0FDRixDQUFDLENBQUE7UUFFRixPQUFPLElBQUksT0FBTyxFQUFFLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDcEQsQ0FBQzsrR0E3RFUsc0JBQXNCO21HQUF0QixzQkFBc0IsOEhDdEJuQyxpSEFJQSx5RERjWSxZQUFZLG9GQUFFLHFCQUFxQjs7NEZBSWxDLHNCQUFzQjtrQkFQbEMsU0FBUzsrQkFDRSxzQkFBc0IsY0FDcEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLHFCQUFxQixDQUFDOzhCQUtqQyxjQUFjO3NCQUExQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBHZW9tZXRyeSB9IGZyb20gJ2dlb2pzb24nXG5pbXBvcnQgR2VvSlNPTiwgeyBHZW9KU09ORmVhdHVyZUNvbGxlY3Rpb24gfSBmcm9tICdvbC9mb3JtYXQvR2VvSlNPTidcbmltcG9ydCB7IFBvbHlnb24gfSBmcm9tICdvbC9nZW9tJ1xuaW1wb3J0IHtcbiAgY3JlYXRlVmlld0Zyb21MYXllcixcbiAgTWFwQ29udGV4dCxcbiAgTWFwQ29udGV4dExheWVyLFxufSBmcm9tICdAZ2Vvc3BhdGlhbC1zZGsvY29yZSdcbmltcG9ydCB7IE1hcENvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4uL21hcC1jb250YWluZXIvbWFwLWNvbnRhaW5lci5jb21wb25lbnQnXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQgeyBEYXRhc2V0U3BhdGlhbEV4dGVudCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktc3BhdGlhbC1leHRlbnQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXBDb250YWluZXJDb21wb25lbnRdLFxuICB0ZW1wbGF0ZVVybDogJy4vc3BhdGlhbC1leHRlbnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vc3BhdGlhbC1leHRlbnQuY29tcG9uZW50LmNzcycsXG59KVxuZXhwb3J0IGNsYXNzIFNwYXRpYWxFeHRlbnRDb21wb25lbnQge1xuICBASW5wdXQoKSBzZXQgc3BhdGlhbEV4dGVudHModmFsdWU6IERhdGFzZXRTcGF0aWFsRXh0ZW50W10pIHtcbiAgICB0aGlzLnNwYXRpYWxFeHRlbnRzJC5uZXh0KHZhbHVlKVxuICB9XG4gIHNwYXRpYWxFeHRlbnRzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RGF0YXNldFNwYXRpYWxFeHRlbnRbXT4oW10pXG4gIG1hcENvbnRleHQkOiBPYnNlcnZhYmxlPE1hcENvbnRleHQ+ID0gdGhpcy5zcGF0aWFsRXh0ZW50cyQucGlwZShcbiAgICBzd2l0Y2hNYXAoYXN5bmMgKGV4dGVudHMpID0+IHtcbiAgICAgIGlmIChleHRlbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gbnVsbCAvLyBudWxsIGV4dGVudCBtZWFucyBkZWZhdWx0IHZpZXdcbiAgICAgIH1cbiAgICAgIGNvbnN0IGZlYXR1cmVDb2xsZWN0aW9uOiBHZW9KU09ORmVhdHVyZUNvbGxlY3Rpb24gPSB7XG4gICAgICAgIHR5cGU6ICdGZWF0dXJlQ29sbGVjdGlvbicsXG4gICAgICAgIGZlYXR1cmVzOiBbXSxcbiAgICAgIH1cbiAgICAgIGV4dGVudHMuZm9yRWFjaCgoZXh0ZW50KSA9PiB7XG4gICAgICAgIGlmIChleHRlbnQuZ2VvbWV0cnkpIHtcbiAgICAgICAgICBmZWF0dXJlQ29sbGVjdGlvbi5mZWF0dXJlcy5wdXNoKHtcbiAgICAgICAgICAgIHR5cGU6ICdGZWF0dXJlJyxcbiAgICAgICAgICAgIHByb3BlcnRpZXM6IHt9LFxuICAgICAgICAgICAgZ2VvbWV0cnk6IGV4dGVudC5nZW9tZXRyeSxcbiAgICAgICAgICB9KVxuICAgICAgICB9IGVsc2UgaWYgKGV4dGVudC5iYm94Py5sZW5ndGggPj0gMCkge1xuICAgICAgICAgIGZlYXR1cmVDb2xsZWN0aW9uLmZlYXR1cmVzLnB1c2goe1xuICAgICAgICAgICAgdHlwZTogJ0ZlYXR1cmUnLFxuICAgICAgICAgICAgcHJvcGVydGllczoge30sXG4gICAgICAgICAgICBnZW9tZXRyeTogdGhpcy5iYm94Q29vcmRzVG9HZW9tZXRyeShleHRlbnQuYmJveCksXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfSlcblxuICAgICAgY29uc3QgbGF5ZXI6IE1hcENvbnRleHRMYXllciA9IHtcbiAgICAgICAgdHlwZTogJ2dlb2pzb24nLFxuICAgICAgICBkYXRhOiBmZWF0dXJlQ29sbGVjdGlvbixcbiAgICAgICAgbGFiZWw6ICdTcGF0aWFsIGV4dGVudHMnLFxuICAgICAgICBzdHlsZToge1xuICAgICAgICAgICdzdHJva2UtY29sb3InOiAnYmxhY2snLFxuICAgICAgICAgICdzdHJva2Utd2lkdGgnOiAyLFxuICAgICAgICB9LFxuICAgICAgfVxuICAgICAgY29uc3QgdmlldyA9IGF3YWl0IGNyZWF0ZVZpZXdGcm9tTGF5ZXIobGF5ZXIpXG4gICAgICByZXR1cm4ge1xuICAgICAgICB2aWV3LFxuICAgICAgICBsYXllcnM6IFtsYXllcl0sXG4gICAgICB9XG4gICAgfSlcbiAgKVxuXG4gIGVycm9yID0gJydcblxuICBiYm94Q29vcmRzVG9HZW9tZXRyeShiYm94OiBbbnVtYmVyLCBudW1iZXIsIG51bWJlciwgbnVtYmVyXSk6IEdlb21ldHJ5IHtcbiAgICBjb25zdCBnZW9tZXRyeSA9IG5ldyBQb2x5Z29uKFtcbiAgICAgIFtcbiAgICAgICAgW2Jib3hbMF0sIGJib3hbMV1dLFxuICAgICAgICBbYmJveFswXSwgYmJveFszXV0sXG4gICAgICAgIFtiYm94WzJdLCBiYm94WzNdXSxcbiAgICAgICAgW2Jib3hbMl0sIGJib3hbMV1dLFxuICAgICAgICBbYmJveFswXSwgYmJveFsxXV0sXG4gICAgICBdLFxuICAgIF0pXG5cbiAgICByZXR1cm4gbmV3IEdlb0pTT04oKS53cml0ZUdlb21ldHJ5T2JqZWN0KGdlb21ldHJ5KVxuICB9XG59XG4iLCI8Z24tdWktbWFwLWNvbnRhaW5lclxuICBjbGFzcz1cImgtZnVsbCB3LWZ1bGxcIlxuICBbY29udGV4dF09XCJtYXBDb250ZXh0JCB8IGFzeW5jXCJcbj48L2duLXVpLW1hcC1jb250YWluZXI+XG4iXX0=
|