geonetwork-ui 2.4.0-dev.cec60ff1 → 2.4.0-dev.e079151e
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/index.mjs +2 -1
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/atomic-operations.mjs +2 -1
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.mjs +1 -1
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.mjs +5 -5
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +30 -2
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/geometry.mjs +31 -0
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +23 -1
- package/esm2022/libs/api/metadata-converter/src/lib/xml-utils.mjs +6 -1
- package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +12 -1
- package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
- package/esm2022/libs/common/domain/src/lib/repository/records-repository.interface.mjs +1 -1
- package/esm2022/libs/data-access/gn4/src/openapi/api/records.api.service.mjs +2 -6
- package/esm2022/libs/feature/editor/src/lib/+state/editor.actions.mjs +2 -1
- package/esm2022/libs/feature/editor/src/lib/+state/editor.effects.mjs +3 -3
- package/esm2022/libs/feature/editor/src/lib/+state/editor.facade.mjs +7 -2
- package/esm2022/libs/feature/editor/src/lib/+state/editor.models.mjs +1 -1
- package/esm2022/libs/feature/editor/src/lib/+state/editor.reducer.mjs +7 -3
- package/esm2022/libs/feature/editor/src/lib/+state/editor.selectors.mjs +16 -6
- package/esm2022/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.mjs +138 -0
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.mjs +21 -0
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.mjs +19 -9
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/index.mjs +1 -2
- package/esm2022/libs/feature/editor/src/lib/components/record-form/record-form.component.mjs +12 -7
- package/esm2022/libs/feature/editor/src/lib/expressions.mjs +1 -1
- package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +153 -60
- package/esm2022/libs/feature/editor/src/lib/models/editor-config.model.mjs +2 -0
- package/esm2022/libs/feature/editor/src/lib/models/index.mjs +2 -1
- package/esm2022/libs/feature/editor/src/lib/services/editor.service.mjs +4 -3
- package/esm2022/libs/feature/map/src/lib/utils/map-utils.service.mjs +3 -4
- package/esm2022/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.mjs +42 -23
- package/esm2022/libs/feature/record/src/lib/data-view-share/data-view-share.component.mjs +13 -5
- package/esm2022/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.mjs +49 -15
- package/esm2022/libs/feature/search/src/lib/results-table/results-table-container.component.mjs +9 -3
- package/esm2022/libs/ui/elements/src/lib/api-card/api-card.component.mjs +3 -3
- package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +5 -11
- package/esm2022/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.mjs +3 -3
- package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +5 -2
- package/esm2022/libs/ui/elements/src/lib/user-preview/user-preview.component.mjs +3 -3
- package/esm2022/libs/ui/inputs/src/lib/image-input/image-input.component.mjs +11 -5
- package/esm2022/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.mjs +29 -0
- package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +15 -7
- package/esm2022/libs/ui/widgets/src/index.mjs +2 -1
- package/esm2022/libs/ui/widgets/src/lib/popover/popover.component.mjs +68 -0
- package/esm2022/translations/de.json +58 -32
- package/esm2022/translations/en.json +34 -8
- package/esm2022/translations/es.json +31 -5
- package/esm2022/translations/fr.json +34 -8
- package/esm2022/translations/it.json +32 -6
- package/esm2022/translations/nl.json +31 -5
- package/esm2022/translations/pt.json +31 -5
- package/fesm2022/geonetwork-ui.mjs +937 -236
- package/fesm2022/geonetwork-ui.mjs.map +1 -1
- package/libs/api/metadata-converter/src/index.d.ts +1 -0
- package/libs/api/metadata-converter/src/index.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/atomic-operations.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts +1 -0
- package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts +8 -1
- package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19139/utils/geometry.d.ts +5 -0
- package/libs/api/metadata-converter/src/lib/iso19139/utils/geometry.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts +3 -1
- package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/xml-utils.d.ts +1 -0
- package/libs/api/metadata-converter/src/lib/xml-utils.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts +1 -0
- package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +2 -1
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
- package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts +9 -0
- package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts.map +1 -1
- package/libs/data-access/gn4/src/openapi/api/records.api.service.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/+state/editor.actions.d.ts +5 -0
- package/libs/feature/editor/src/lib/+state/editor.actions.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/+state/editor.facade.d.ts +4 -4
- package/libs/feature/editor/src/lib/+state/editor.facade.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/+state/editor.models.d.ts +8 -0
- package/libs/feature/editor/src/lib/+state/editor.models.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/+state/editor.reducer.d.ts +4 -3
- package/libs/feature/editor/src/lib/+state/editor.reducer.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/+state/editor.selectors.d.ts +4 -8
- package/libs/feature/editor/src/lib/+state/editor.selectors.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.d.ts +27 -0
- package/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.d.ts +11 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts +6 -2
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts +0 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/record-form.component.d.ts +5 -7
- package/libs/feature/editor/src/lib/components/record-form/record-form.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/expressions.d.ts +1 -1
- package/libs/feature/editor/src/lib/expressions.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/fields.config.d.ts +39 -2
- package/libs/feature/editor/src/lib/fields.config.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/models/editor-config.model.d.ts +36 -0
- package/libs/feature/editor/src/lib/models/editor-config.model.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/models/index.d.ts +1 -0
- package/libs/feature/editor/src/lib/models/index.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/services/editor.service.d.ts +2 -2
- package/libs/feature/editor/src/lib/services/editor.service.d.ts.map +1 -1
- package/libs/feature/map/src/lib/utils/map-utils.service.d.ts.map +1 -1
- package/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.d.ts +4 -1
- 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-share/data-view-share.component.d.ts +4 -1
- package/libs/feature/record/src/lib/data-view-share/data-view-share.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.d.ts +4 -1
- package/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.d.ts.map +1 -1
- package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts +3 -1
- package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts +1 -1
- package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts +0 -3
- package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts +1 -1
- package/libs/ui/elements/src/lib/ui-elements.module.d.ts +7 -6
- package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/image-input/image-input.component.d.ts +4 -2
- package/libs/ui/inputs/src/lib/image-input/image-input.component.d.ts.map +1 -1
- package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts +11 -0
- package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts.map +1 -0
- package/libs/ui/search/src/lib/results-table/results-table.component.d.ts +4 -2
- package/libs/ui/search/src/lib/results-table/results-table.component.d.ts.map +1 -1
- package/libs/ui/widgets/src/index.d.ts +1 -0
- package/libs/ui/widgets/src/index.d.ts.map +1 -1
- package/libs/ui/widgets/src/lib/popover/popover.component.d.ts +19 -0
- package/libs/ui/widgets/src/lib/popover/popover.component.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/libs/api/metadata-converter/src/index.ts +1 -0
- package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.ts +5 -1
- package/src/libs/api/metadata-converter/src/lib/fixtures/geocat-ch.records.ts +37 -12
- package/src/libs/api/metadata-converter/src/lib/fixtures/metawal.records.ts +5 -1
- package/src/libs/api/metadata-converter/src/lib/gn4/atomic-operations.ts +1 -0
- package/src/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.ts +1 -0
- package/src/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.ts +4 -2
- package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +72 -2
- package/src/libs/api/metadata-converter/src/lib/iso19139/utils/geometry.ts +39 -0
- package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +70 -1
- package/src/libs/api/metadata-converter/src/lib/xml-utils.ts +8 -0
- package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +20 -0
- package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +2 -1
- package/src/libs/common/domain/src/lib/repository/records-repository.interface.ts +12 -0
- package/src/libs/common/fixtures/src/index.ts +2 -0
- package/src/libs/common/fixtures/src/lib/editor/editor.fixtures.ts +156 -0
- package/src/libs/common/fixtures/src/lib/editor/index.ts +1 -0
- package/src/libs/data-access/gn4/src/openapi/api/records.api.service.ts +1 -5
- package/src/libs/data-access/gn4/src/spec.yaml +0 -8
- package/src/libs/feature/editor/src/lib/+state/editor.actions.ts +5 -0
- package/src/libs/feature/editor/src/lib/+state/editor.effects.ts +2 -2
- package/src/libs/feature/editor/src/lib/+state/editor.facade.ts +9 -1
- package/src/libs/feature/editor/src/lib/+state/editor.models.ts +11 -0
- package/src/libs/feature/editor/src/lib/+state/editor.reducer.ts +11 -5
- package/src/libs/feature/editor/src/lib/+state/editor.selectors.ts +22 -8
- package/src/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.html +3 -1
- package/src/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.ts +117 -21
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.css +0 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.html +5 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.ts +22 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html +15 -9
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +15 -2
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/index.ts +0 -1
- package/src/libs/feature/editor/src/lib/components/record-form/record-form.component.html +51 -11
- package/src/libs/feature/editor/src/lib/components/record-form/record-form.component.ts +16 -8
- package/src/libs/feature/editor/src/lib/expressions.ts +1 -1
- package/src/libs/feature/editor/src/lib/fields.config.ts +186 -61
- package/src/libs/feature/editor/src/lib/models/editor-config.model.ts +53 -0
- package/src/libs/feature/editor/src/lib/models/index.ts +1 -0
- package/src/libs/feature/editor/src/lib/services/editor.service.ts +8 -4
- package/src/libs/feature/map/src/lib/utils/map-utils.service.ts +2 -3
- package/src/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.ts +36 -19
- package/src/libs/feature/record/src/lib/data-view-share/data-view-share.component.html +6 -2
- package/src/libs/feature/record/src/lib/data-view-share/data-view-share.component.ts +11 -0
- package/src/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.ts +59 -12
- package/src/libs/feature/search/src/lib/results-table/results-table-container.component.html +1 -0
- package/src/libs/feature/search/src/lib/results-table/results-table-container.component.ts +5 -0
- package/src/libs/ui/elements/src/lib/api-card/api-card.component.html +29 -29
- package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.html +14 -20
- package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.ts +0 -10
- package/src/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.html +1 -1
- package/src/libs/ui/elements/src/lib/ui-elements.module.ts +2 -1
- package/src/libs/ui/elements/src/lib/user-preview/user-preview.component.html +1 -1
- package/src/libs/ui/inputs/src/lib/image-input/image-input.component.html +1 -1
- package/src/libs/ui/inputs/src/lib/image-input/image-input.component.ts +7 -2
- package/src/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.css +31 -0
- package/src/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.html +15 -0
- package/src/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.ts +38 -0
- package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.css +0 -0
- package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.html +17 -0
- package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.ts +22 -0
- package/src/libs/ui/search/src/lib/results-table/results-table.component.html +9 -0
- package/src/libs/ui/search/src/lib/results-table/results-table.component.ts +26 -12
- package/src/libs/ui/widgets/src/index.ts +1 -0
- package/src/libs/ui/widgets/src/lib/popover/popover.component.css +0 -0
- package/src/libs/ui/widgets/src/lib/popover/popover.component.html +3 -0
- package/src/libs/ui/widgets/src/lib/popover/popover.component.ts +85 -0
- package/tailwind.base.css +2 -1
- package/translations/de.json +58 -32
- package/translations/en.json +34 -8
- package/translations/es.json +31 -5
- package/translations/fr.json +34 -8
- package/translations/it.json +32 -6
- package/translations/nl.json +31 -5
- package/translations/pt.json +31 -5
- package/translations/sk.json +32 -6
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.model.mjs +0 -2
- package/esm2022/libs/feature/editor/src/lib/models/fields.model.mjs +0 -2
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.model.d.ts +0 -26
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.model.d.ts.map +0 -1
- package/libs/feature/editor/src/lib/models/fields.model.d.ts +0 -15
- package/libs/feature/editor/src/lib/models/fields.model.d.ts.map +0 -1
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.model.ts +0 -43
- package/src/libs/feature/editor/src/lib/models/fields.model.ts +0 -29
package/src/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.ts
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
ChangeDetectionStrategy,
|
|
3
|
+
Component,
|
|
4
|
+
Inject,
|
|
5
|
+
Input,
|
|
6
|
+
} from '@angular/core'
|
|
2
7
|
import { Configuration } from '../../../../../../libs/data-access/gn4/src'
|
|
3
8
|
import { MdViewFacade } from '../state'
|
|
4
|
-
import { combineLatest, map } from 'rxjs'
|
|
9
|
+
import { BehaviorSubject, combineLatest, map } from 'rxjs'
|
|
5
10
|
import { GN_UI_VERSION } from '../gn-ui-version.token'
|
|
6
11
|
|
|
7
12
|
@Component({
|
|
@@ -11,35 +16,77 @@ import { GN_UI_VERSION } from '../gn-ui-version.token'
|
|
|
11
16
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
12
17
|
})
|
|
13
18
|
export class DataViewWebComponentComponent {
|
|
19
|
+
viewType$ = new BehaviorSubject<string>('map')
|
|
20
|
+
@Input()
|
|
21
|
+
set viewType(value: string) {
|
|
22
|
+
this.viewType$.next(value)
|
|
23
|
+
}
|
|
14
24
|
webComponentHtml$ = combineLatest(
|
|
25
|
+
this.viewType$,
|
|
15
26
|
this.facade.chartConfig$,
|
|
16
27
|
this.facade.metadata$
|
|
17
28
|
).pipe(
|
|
18
|
-
map(([config, metadata]) => {
|
|
19
|
-
if (
|
|
20
|
-
|
|
29
|
+
map(([viewType, config, metadata]) => {
|
|
30
|
+
if (viewType === 'chart') {
|
|
31
|
+
if (config) {
|
|
32
|
+
const { aggregation, xProperty, yProperty, chartType } = config
|
|
33
|
+
return `<script src="https://cdn.jsdelivr.net/gh/geonetwork/geonetwork-ui@wc-dist-${
|
|
34
|
+
this.version
|
|
35
|
+
}/gn-wc.js"></script>
|
|
36
|
+
<gn-dataset-view-chart
|
|
37
|
+
api-url="${new URL(
|
|
38
|
+
this.config.basePath,
|
|
39
|
+
window.location.origin
|
|
40
|
+
).toString()}"
|
|
41
|
+
dataset-id="${metadata.uniqueIdentifier}"
|
|
42
|
+
aggregation="${aggregation}"
|
|
43
|
+
x-property="${xProperty}"
|
|
44
|
+
y-property="${yProperty}"
|
|
45
|
+
chart-type="${chartType}"
|
|
46
|
+
primary-color="#0f4395"
|
|
47
|
+
secondary-color="#8bc832"
|
|
48
|
+
main-color="#555"
|
|
49
|
+
background-color="#fdfbff"
|
|
50
|
+
main-font="'Inter', sans-serif"
|
|
51
|
+
title-font="'DM Serif Display', serif"
|
|
52
|
+
></gn-dataset-view-chart>`
|
|
53
|
+
}
|
|
54
|
+
return ''
|
|
55
|
+
} else if (viewType === 'table') {
|
|
21
56
|
return `<script src="https://cdn.jsdelivr.net/gh/geonetwork/geonetwork-ui@wc-dist-${
|
|
22
57
|
this.version
|
|
23
58
|
}/gn-wc.js"></script>
|
|
24
|
-
<gn-dataset-view-
|
|
59
|
+
<gn-dataset-view-table
|
|
60
|
+
api-url="${new URL(
|
|
61
|
+
this.config.basePath,
|
|
62
|
+
window.location.origin
|
|
63
|
+
).toString()}"
|
|
64
|
+
dataset-id="${metadata.uniqueIdentifier}"
|
|
65
|
+
primary-color="#0f4395"
|
|
66
|
+
secondary-color="#8bc832"
|
|
67
|
+
main-color="#555"
|
|
68
|
+
background-color="#fdfbff"
|
|
69
|
+
main-font="'Inter', sans-serif"
|
|
70
|
+
title-font="'DM Serif Display', serif"
|
|
71
|
+
></gn-dataset-view-table>`
|
|
72
|
+
} else {
|
|
73
|
+
return `<script src="https://cdn.jsdelivr.net/gh/geonetwork/geonetwork-ui@wc-dist-${
|
|
74
|
+
this.version
|
|
75
|
+
}/gn-wc.js"></script>
|
|
76
|
+
<gn-dataset-view-map
|
|
25
77
|
api-url="${new URL(
|
|
26
78
|
this.config.basePath,
|
|
27
79
|
window.location.origin
|
|
28
80
|
).toString()}"
|
|
29
81
|
dataset-id="${metadata.uniqueIdentifier}"
|
|
30
|
-
aggregation="${aggregation}"
|
|
31
|
-
x-property="${xProperty}"
|
|
32
|
-
y-property="${yProperty}"
|
|
33
|
-
chart-type="${chartType}"
|
|
34
82
|
primary-color="#0f4395"
|
|
35
83
|
secondary-color="#8bc832"
|
|
36
84
|
main-color="#555"
|
|
37
85
|
background-color="#fdfbff"
|
|
38
86
|
main-font="'Inter', sans-serif"
|
|
39
87
|
title-font="'DM Serif Display', serif"
|
|
40
|
-
></gn-dataset-view-
|
|
88
|
+
></gn-dataset-view-map>`
|
|
41
89
|
}
|
|
42
|
-
return ''
|
|
43
90
|
})
|
|
44
91
|
)
|
|
45
92
|
|
package/src/libs/feature/search/src/lib/results-table/results-table-container.component.html
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
[selectedRecordsIdentifiers]="selectedRecords$ | async"
|
|
5
5
|
[sortOrder]="sortBy$ | async"
|
|
6
6
|
(recordClick)="handleRecordClick($event)"
|
|
7
|
+
(duplicateRecord)="handleDuplicateRecord($event)"
|
|
7
8
|
(recordsSelectedChange)="handleRecordsSelectedChange($event[0], $event[1])"
|
|
8
9
|
(sortByChange)="handleSortByChange($event[0], $event[1])"
|
|
9
10
|
></gn-ui-results-table>
|
|
@@ -16,6 +16,7 @@ import { CommonModule } from '@angular/common'
|
|
|
16
16
|
})
|
|
17
17
|
export class ResultsTableContainerComponent {
|
|
18
18
|
@Output() recordClick = new EventEmitter<CatalogRecord>()
|
|
19
|
+
@Output() duplicateRecord = new EventEmitter<CatalogRecord>()
|
|
19
20
|
|
|
20
21
|
records$ = this.searchFacade.results$
|
|
21
22
|
selectedRecords$ = this.selectionService.selectedRecordsIdentifiers$
|
|
@@ -35,6 +36,10 @@ export class ResultsTableContainerComponent {
|
|
|
35
36
|
this.recordClick.emit(item as CatalogRecord)
|
|
36
37
|
}
|
|
37
38
|
|
|
39
|
+
handleDuplicateRecord(item: unknown) {
|
|
40
|
+
this.duplicateRecord.emit(item as CatalogRecord)
|
|
41
|
+
}
|
|
42
|
+
|
|
38
43
|
handleSortByChange(col: string, order: 'asc' | 'desc') {
|
|
39
44
|
this.searchService.setSortBy([order, col])
|
|
40
45
|
}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
<div
|
|
2
|
-
class="group flex flex-col justify-between h-40 pt-5 pb-6 px-7 rounded filter overflow-hidden"
|
|
3
|
-
[ngClass]="{ 'cursor-pointer': displayApiFormButton }"
|
|
4
|
-
(click)="openRecordApiFormPanel()"
|
|
2
|
+
class="group flex flex-col justify-between h-40 pt-5 pb-6 px-7 rounded filter overflow-hidden cursor-default"
|
|
5
3
|
>
|
|
6
4
|
<div
|
|
7
5
|
class="font-title font-medium text-21 text-black text-ellipsis overflow-hidden break-words pb-5 h-[4.5rem]"
|
|
@@ -17,35 +15,37 @@
|
|
|
17
15
|
}"
|
|
18
16
|
>{{ link.accessServiceProtocol }}</span
|
|
19
17
|
>
|
|
20
|
-
<
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
[ngClass]="{
|
|
30
|
-
'py-2 px-4 rounded-r-md bg-gray-400 hover:bg-gray-600 focus:bg-gray-800 text-white':
|
|
31
|
-
displayText
|
|
32
|
-
}"
|
|
33
|
-
mat-raised-button
|
|
34
|
-
[matTooltip]="
|
|
35
|
-
!currentlyActive
|
|
36
|
-
? ('record.metadata.api.form.openForm' | translate)
|
|
37
|
-
: ('record.metadata.api.form.closeForm' | translate)
|
|
38
|
-
"
|
|
39
|
-
matTooltipPosition="above"
|
|
40
|
-
>
|
|
41
|
-
<mat-icon
|
|
42
|
-
class="material-symbols-outlined pointer-events-none align-middle card-icon"
|
|
18
|
+
<div class="flex flex-row gap-2 items-center">
|
|
19
|
+
<gn-ui-copy-text-button
|
|
20
|
+
[text]="link.url"
|
|
21
|
+
[tooltipText]="'tooltip.url.copy' | translate"
|
|
22
|
+
[displayText]="false"
|
|
23
|
+
></gn-ui-copy-text-button>
|
|
24
|
+
<button
|
|
25
|
+
*ngIf="displayApiFormButton"
|
|
26
|
+
type="button"
|
|
43
27
|
[ngClass]="{
|
|
44
|
-
'
|
|
28
|
+
'py-2 px-4 rounded-r-md bg-gray-400 hover:bg-gray-600 focus:bg-gray-800 text-white':
|
|
29
|
+
displayText
|
|
45
30
|
}"
|
|
46
|
-
|
|
31
|
+
mat-raised-button
|
|
32
|
+
[matTooltip]="
|
|
33
|
+
!currentlyActive
|
|
34
|
+
? ('record.metadata.api.form.openForm' | translate)
|
|
35
|
+
: ('record.metadata.api.form.closeForm' | translate)
|
|
36
|
+
"
|
|
37
|
+
matTooltipPosition="above"
|
|
38
|
+
(click)="openRecordApiFormPanel()"
|
|
47
39
|
>
|
|
48
|
-
|
|
40
|
+
<mat-icon
|
|
41
|
+
class="material-symbols-outlined pointer-events-none align-middle card-icon"
|
|
42
|
+
[ngClass]="{
|
|
43
|
+
'text-secondary opacity-100': currentlyActive
|
|
44
|
+
}"
|
|
45
|
+
>more_horiz</mat-icon
|
|
46
|
+
>
|
|
47
|
+
</button>
|
|
48
|
+
</div>
|
|
49
49
|
</div>
|
|
50
50
|
</div>
|
|
51
51
|
</div>
|
|
@@ -1,22 +1,16 @@
|
|
|
1
|
-
<div
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
></gn-ui-progress-bar>
|
|
15
|
-
</div>
|
|
16
|
-
<div
|
|
17
|
-
class="absolute z-10 bg-white border border-black border-opacity-35 rounded-lg shadow-lg p-5 whitespace-nowrap"
|
|
18
|
-
[class]="isMenuShown ? 'block' : 'hidden'"
|
|
19
|
-
>
|
|
1
|
+
<div *ngIf="metadataQualityDisplay" class="mb-6 metadata-quality">
|
|
2
|
+
<gn-ui-popover [content]="popoverItems" theme="light-border">
|
|
3
|
+
<div class="min-w-[200px]" [class]="smaller ? 'leading-[8px]' : ''">
|
|
4
|
+
<gn-ui-progress-bar
|
|
5
|
+
tabindex="0"
|
|
6
|
+
[value]="qualityScore"
|
|
7
|
+
type="primary"
|
|
8
|
+
></gn-ui-progress-bar>
|
|
9
|
+
</div>
|
|
10
|
+
</gn-ui-popover>
|
|
11
|
+
</div>
|
|
12
|
+
<ng-template #popoverItems>
|
|
13
|
+
<div class="p-2 py-4">
|
|
20
14
|
<div class="mb-4 font-bold" translate>record.metadata.quality.details</div>
|
|
21
15
|
<gn-ui-metadata-quality-item
|
|
22
16
|
*ngFor="let e of items"
|
|
@@ -24,4 +18,4 @@
|
|
|
24
18
|
[value]="e.value"
|
|
25
19
|
></gn-ui-metadata-quality-item>
|
|
26
20
|
</div>
|
|
27
|
-
</
|
|
21
|
+
</ng-template>
|
|
@@ -21,8 +21,6 @@ export class MetadataQualityComponent implements OnChanges {
|
|
|
21
21
|
|
|
22
22
|
items: MetadataQualityItem[] = []
|
|
23
23
|
|
|
24
|
-
isMenuShown = false
|
|
25
|
-
|
|
26
24
|
get qualityScore() {
|
|
27
25
|
const qualityScore = this.metadata?.extras?.qualityScore
|
|
28
26
|
return typeof qualityScore === 'number'
|
|
@@ -36,14 +34,6 @@ export class MetadataQualityComponent implements OnChanges {
|
|
|
36
34
|
)
|
|
37
35
|
}
|
|
38
36
|
|
|
39
|
-
showMenu() {
|
|
40
|
-
this.isMenuShown = true
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
hideMenu() {
|
|
44
|
-
this.isMenuShown = false
|
|
45
|
-
}
|
|
46
|
-
|
|
47
37
|
private add(name: string, value: boolean) {
|
|
48
38
|
if (this.metadataQualityDisplay?.[name] !== false) {
|
|
49
39
|
this.items.push({ name, value })
|
|
@@ -9,7 +9,7 @@ import { ContentGhostComponent } from './content-ghost/content-ghost.component'
|
|
|
9
9
|
import { DownloadItemComponent } from './download-item/download-item.component'
|
|
10
10
|
import { DownloadsListComponent } from './downloads-list/downloads-list.component'
|
|
11
11
|
import { ApiCardComponent } from './api-card/api-card.component'
|
|
12
|
-
import { UiWidgetsModule } from '../../../../../libs/ui/widgets/src'
|
|
12
|
+
import { PopoverComponent, UiWidgetsModule } from '../../../../../libs/ui/widgets/src'
|
|
13
13
|
import { MaxLinesComponent, UiLayoutModule } from '../../../../../libs/ui/layout/src'
|
|
14
14
|
import { TranslateModule } from '@ngx-translate/core'
|
|
15
15
|
import { RelatedRecordCardComponent } from './related-record-card/related-record-card.component'
|
|
@@ -45,6 +45,7 @@ import { TimeSincePipe } from './user-feedback-item/time-since.pipe'
|
|
|
45
45
|
UiInputsModule,
|
|
46
46
|
FormsModule,
|
|
47
47
|
NgOptimizedImage,
|
|
48
|
+
PopoverComponent,
|
|
48
49
|
MarkdownParserComponent,
|
|
49
50
|
ThumbnailComponent,
|
|
50
51
|
TimeSincePipe,
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
<div class="w-full h-full flex flex-col gap-2">
|
|
52
52
|
<label
|
|
53
53
|
gnUiFilesDrop
|
|
54
|
-
class="block flex-1 border-2 border-dashed border-gray-300 rounded-lg p-6 flex flex-col items-center justify-center gap-4"
|
|
54
|
+
class="block flex-1 border-2 border-dashed border-gray-300 rounded-lg p-6 flex flex-col items-center justify-center gap-4 hover:cursor-pointer"
|
|
55
55
|
(dragFilesOver)="handleDragFilesOver($event)"
|
|
56
56
|
(dropFiles)="handleDropFiles($event)"
|
|
57
57
|
>
|
|
@@ -16,6 +16,7 @@ import { ButtonComponent } from '../button/button.component'
|
|
|
16
16
|
import { FilesDropDirective } from '../files-drop/files-drop.directive'
|
|
17
17
|
import { TranslateModule } from '@ngx-translate/core'
|
|
18
18
|
import { marker } from '@biesbjerg/ngx-translate-extract-marker'
|
|
19
|
+
import { FormControl, ReactiveFormsModule } from '@angular/forms'
|
|
19
20
|
|
|
20
21
|
@Component({
|
|
21
22
|
selector: 'gn-ui-image-input',
|
|
@@ -30,11 +31,13 @@ import { marker } from '@biesbjerg/ngx-translate-extract-marker'
|
|
|
30
31
|
FilesDropDirective,
|
|
31
32
|
MatProgressSpinnerModule,
|
|
32
33
|
TranslateModule,
|
|
34
|
+
ReactiveFormsModule,
|
|
33
35
|
],
|
|
34
36
|
})
|
|
35
37
|
export class ImageInputComponent {
|
|
38
|
+
@Input() formControl!: FormControl
|
|
36
39
|
@Input() maxSizeMB: number
|
|
37
|
-
@Input() previewUrl?:
|
|
40
|
+
@Input() previewUrl?: URL
|
|
38
41
|
@Input() altText?: string
|
|
39
42
|
@Input() uploadProgress?: number
|
|
40
43
|
@Input() uploadError?: boolean
|
|
@@ -127,7 +130,8 @@ export class ImageInputComponent {
|
|
|
127
130
|
const file = new File([blob], name)
|
|
128
131
|
this.fileChange.emit(file)
|
|
129
132
|
},
|
|
130
|
-
error: () => {
|
|
133
|
+
error: (error) => {
|
|
134
|
+
console.error(error)
|
|
131
135
|
this.downloadError = true
|
|
132
136
|
this.cd.markForCheck()
|
|
133
137
|
this.urlChange.emit(this.urlInputValue)
|
|
@@ -165,6 +169,7 @@ export class ImageInputComponent {
|
|
|
165
169
|
}
|
|
166
170
|
|
|
167
171
|
handleDelete() {
|
|
172
|
+
this.formControl.markAsDirty()
|
|
168
173
|
this.delete.emit()
|
|
169
174
|
}
|
|
170
175
|
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
:host {
|
|
2
|
+
--mat-standard-button-toggle-height: 32px;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
.mat-button-toggle-group-appearance-standard {
|
|
6
|
+
background-color: var(--color-gray-200);
|
|
7
|
+
padding: 4px;
|
|
8
|
+
display: flex;
|
|
9
|
+
gap: 4px;
|
|
10
|
+
border-radius: 8px;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.mat-button-toggle-appearance-standard {
|
|
14
|
+
color: var(--color-main);
|
|
15
|
+
background-color: var(--color-gray-200);
|
|
16
|
+
border-radius: 4px;
|
|
17
|
+
border-left: none;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.mat-button-toggle-appearance-standard.mat-button-toggle-checked {
|
|
21
|
+
background-color: var(--color-main);
|
|
22
|
+
color: var(--color-primary-white);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
button.mat-button-toggle-button.mat-focus-indicator.mat-button-toggle-label-content {
|
|
26
|
+
line-height: 32px;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.mat-button-toggle-label-content {
|
|
30
|
+
line-height: 32px;
|
|
31
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<mat-button-toggle-group
|
|
2
|
+
#group="matButtonToggleGroup"
|
|
3
|
+
multiple="false"
|
|
4
|
+
class="flex w-full"
|
|
5
|
+
>
|
|
6
|
+
<mat-button-toggle
|
|
7
|
+
*ngFor="let option of options"
|
|
8
|
+
[aria-label]="option.label"
|
|
9
|
+
[value]="option.value"
|
|
10
|
+
[checked]="option.checked"
|
|
11
|
+
(change)="onChange(option)"
|
|
12
|
+
[class]="extraClasses"
|
|
13
|
+
>{{ option.label }}</mat-button-toggle
|
|
14
|
+
>
|
|
15
|
+
</mat-button-toggle-group>
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common'
|
|
2
|
+
import {
|
|
3
|
+
ChangeDetectionStrategy,
|
|
4
|
+
Component,
|
|
5
|
+
EventEmitter,
|
|
6
|
+
Input,
|
|
7
|
+
Output,
|
|
8
|
+
} from '@angular/core'
|
|
9
|
+
import { MatButtonToggleModule } from '@angular/material/button-toggle'
|
|
10
|
+
|
|
11
|
+
export type SwitchToggleOption = {
|
|
12
|
+
label: string
|
|
13
|
+
value: string
|
|
14
|
+
checked: boolean
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
@Component({
|
|
18
|
+
selector: 'gn-ui-switch-toggle',
|
|
19
|
+
templateUrl: './switch-toggle.component.html',
|
|
20
|
+
styleUrls: ['./switch-toggle.component.css'],
|
|
21
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
22
|
+
standalone: true,
|
|
23
|
+
imports: [MatButtonToggleModule, CommonModule],
|
|
24
|
+
})
|
|
25
|
+
export class SwitchToggleComponent {
|
|
26
|
+
@Input() options: SwitchToggleOption[]
|
|
27
|
+
@Input() ariaLabel? = ''
|
|
28
|
+
@Input() extraClasses? = ''
|
|
29
|
+
@Output() selectedValue = new EventEmitter<SwitchToggleOption>()
|
|
30
|
+
|
|
31
|
+
onChange(selectedOption: SwitchToggleOption) {
|
|
32
|
+
this.options.find(
|
|
33
|
+
(option) => option.value === selectedOption.value
|
|
34
|
+
).checked = true
|
|
35
|
+
|
|
36
|
+
this.selectedValue.emit(selectedOption)
|
|
37
|
+
}
|
|
38
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<gn-ui-button
|
|
2
|
+
type="outline"
|
|
3
|
+
[matMenuTriggerFor]="menu"
|
|
4
|
+
(buttonClick)="openMenu()"
|
|
5
|
+
data-test="record-menu-button"
|
|
6
|
+
>
|
|
7
|
+
<mat-icon class="material-symbols-outlined">more_vert</mat-icon>
|
|
8
|
+
</gn-ui-button>
|
|
9
|
+
<mat-menu #menu="matMenu">
|
|
10
|
+
<button
|
|
11
|
+
mat-menu-item
|
|
12
|
+
(click)="duplicate.emit()"
|
|
13
|
+
data-test="record-menu-duplicate-button"
|
|
14
|
+
>
|
|
15
|
+
<span translate>record.action.duplicate</span>
|
|
16
|
+
</button>
|
|
17
|
+
</mat-menu>
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Component, EventEmitter, Output, ViewChild } from '@angular/core'
|
|
2
|
+
import { MatIconModule } from '@angular/material/icon'
|
|
3
|
+
import { MatMenuModule, MatMenuTrigger } from '@angular/material/menu'
|
|
4
|
+
import { ButtonComponent } from '../../../../../../../libs/ui/inputs/src'
|
|
5
|
+
import { TranslateModule } from '@ngx-translate/core'
|
|
6
|
+
|
|
7
|
+
@Component({
|
|
8
|
+
selector: 'gn-ui-action-menu',
|
|
9
|
+
templateUrl: './action-menu.component.html',
|
|
10
|
+
styleUrls: ['./action-menu.component.css'],
|
|
11
|
+
standalone: true,
|
|
12
|
+
imports: [MatIconModule, ButtonComponent, MatMenuModule, TranslateModule],
|
|
13
|
+
})
|
|
14
|
+
export class ActionMenuComponent {
|
|
15
|
+
@Output() duplicate = new EventEmitter<void>()
|
|
16
|
+
|
|
17
|
+
@ViewChild(MatMenuTrigger) trigger: MatMenuTrigger
|
|
18
|
+
|
|
19
|
+
openMenu() {
|
|
20
|
+
this.trigger.openMenu()
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -120,4 +120,13 @@
|
|
|
120
120
|
{{ dateToString(item.recordUpdated) }}
|
|
121
121
|
</ng-template>
|
|
122
122
|
</gn-ui-interactive-table-column>
|
|
123
|
+
|
|
124
|
+
<!-- ACTION MENU COLUMN -->
|
|
125
|
+
<gn-ui-interactive-table-column>
|
|
126
|
+
<ng-template #header> </ng-template>
|
|
127
|
+
<ng-template #cell let-item>
|
|
128
|
+
<gn-ui-action-menu (duplicate)="handleDuplicate(item)">
|
|
129
|
+
</gn-ui-action-menu>
|
|
130
|
+
</ng-template>
|
|
131
|
+
</gn-ui-interactive-table-column>
|
|
123
132
|
</gn-ui-interactive-table>
|
|
@@ -1,23 +1,31 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CommonModule } from '@angular/common'
|
|
2
|
+
import {
|
|
3
|
+
Component,
|
|
4
|
+
EventEmitter,
|
|
5
|
+
Input,
|
|
6
|
+
Output,
|
|
7
|
+
ViewChild,
|
|
8
|
+
} from '@angular/core'
|
|
9
|
+
import { MatIconModule } from '@angular/material/icon'
|
|
10
|
+
import { MatMenuModule, MatMenuTrigger } from '@angular/material/menu'
|
|
2
11
|
import { CatalogRecord } from '../../../../../../libs/common/domain/src/lib/model/record'
|
|
3
12
|
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
getFormatPriority,
|
|
8
|
-
} from '../../../../../../libs/util/shared/src'
|
|
13
|
+
FieldSort,
|
|
14
|
+
SortByField,
|
|
15
|
+
} from '../../../../../../libs/common/domain/src/lib/model/search'
|
|
9
16
|
import { BadgeComponent, UiInputsModule } from '../../../../../../libs/ui/inputs/src'
|
|
10
17
|
import {
|
|
11
18
|
InteractiveTableColumnComponent,
|
|
12
19
|
InteractiveTableComponent,
|
|
13
20
|
} from '../../../../../../libs/ui/layout/src'
|
|
14
|
-
import { MatIconModule } from '@angular/material/icon'
|
|
15
|
-
import { TranslateModule } from '@ngx-translate/core'
|
|
16
|
-
import { CommonModule } from '@angular/common'
|
|
17
21
|
import {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
22
|
+
FileFormat,
|
|
23
|
+
getBadgeColor,
|
|
24
|
+
getFileFormat,
|
|
25
|
+
getFormatPriority,
|
|
26
|
+
} from '../../../../../../libs/util/shared/src'
|
|
27
|
+
import { TranslateModule } from '@ngx-translate/core'
|
|
28
|
+
import { ActionMenuComponent } from './action-menu/action-menu.component'
|
|
21
29
|
|
|
22
30
|
@Component({
|
|
23
31
|
selector: 'gn-ui-results-table',
|
|
@@ -32,6 +40,7 @@ import {
|
|
|
32
40
|
MatIconModule,
|
|
33
41
|
TranslateModule,
|
|
34
42
|
BadgeComponent,
|
|
43
|
+
ActionMenuComponent,
|
|
35
44
|
],
|
|
36
45
|
})
|
|
37
46
|
export class ResultsTableComponent {
|
|
@@ -43,6 +52,7 @@ export class ResultsTableComponent {
|
|
|
43
52
|
// emits the column (field) as well as the order
|
|
44
53
|
@Output() sortByChange = new EventEmitter<[string, 'asc' | 'desc']>()
|
|
45
54
|
@Output() recordClick = new EventEmitter<CatalogRecord>()
|
|
55
|
+
@Output() duplicateRecord = new EventEmitter<CatalogRecord>()
|
|
46
56
|
@Output() recordsSelectedChange = new EventEmitter<
|
|
47
57
|
[CatalogRecord[], boolean]
|
|
48
58
|
>()
|
|
@@ -89,6 +99,10 @@ export class ResultsTableComponent {
|
|
|
89
99
|
this.recordClick.emit(item as CatalogRecord)
|
|
90
100
|
}
|
|
91
101
|
|
|
102
|
+
handleDuplicate(item: unknown) {
|
|
103
|
+
this.duplicateRecord.emit(item as CatalogRecord)
|
|
104
|
+
}
|
|
105
|
+
|
|
92
106
|
setSortBy(col: string, order: 'asc' | 'desc') {
|
|
93
107
|
this.sortByChange.emit([col, order])
|
|
94
108
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export * from './lib/ui-widgets.module'
|
|
2
2
|
export * from './lib/progress-bar/progress-bar.component'
|
|
3
|
+
export * from './lib/popover/popover.component'
|
|
3
4
|
export * from './lib/loading-mask/loading-mask.component'
|
|
4
5
|
export * from './lib/color-scale/color-scale.component'
|
|
5
6
|
export * from './lib/popup-alert/popup-alert.component'
|
|
File without changes
|