@provoly/dashboard 0.14.8 → 0.14.10
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/admin/components/admin-layout/admin-layout.component.d.ts +5 -3
- package/admin/components/admin-metadata-user/admin-metadata-user.component.d.ts +1 -1
- package/admin/components/admin-metadata-user/store/admin-metadata-user.action.d.ts +0 -11
- package/admin/components/admin-metadata-user/store/admin-metadata-user.effects.d.ts +2 -7
- package/admin/components/admin-metadata-user/store/admin-metadata-user.reducer.d.ts +1 -3
- package/admin/components/admin-metadata-user/store/admin-metadata-user.selector.d.ts +1 -4
- package/admin/components/admin-user/store/admin-user.action.d.ts +1 -52
- package/admin/components/admin-user/store/admin-user.effects.d.ts +0 -28
- package/admin/components/admin-user/store/admin-user.reducer.d.ts +1 -2
- package/admin/components/admin-user/store/admin-user.selector.d.ts +0 -1
- package/admin/store/admin.service.d.ts +1 -4
- package/assets/svgs/map.svg +1 -1
- package/components/metadata-editor/metadata-editor.component.d.ts +6 -6
- package/components/metadata-editor/metadata-editor.module.d.ts +7 -6
- package/components/metadata-editor/public-api.d.ts +1 -0
- package/components/metadata-editor/store/metadata.action.d.ts +63 -1
- package/components/metadata-editor/store/metadata.effects.d.ts +33 -0
- package/components/metadata-editor/store/metadata.reducer.d.ts +3 -1
- package/components/metadata-editor/store/metadata.selector.d.ts +2 -0
- package/components/metadata-editor/store/metadata.service.d.ts +5 -1
- package/components/metadata-editor/style/_o-metadata-editor.scss +15 -0
- package/components/metadata-editor/style/css.component.d.ts +5 -0
- package/esm2022/admin/components/admin-abac-rules/admin-abac-rules-edit/admin-abac-rules-edit.component.mjs +2 -3
- package/esm2022/admin/components/admin-abac-rules/admin-abac-rules-new/admin-abac-rules-new.component.mjs +2 -3
- package/esm2022/admin/components/admin-abac-rules/components/metadata-condition/metadata-condition.component.mjs +2 -3
- package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-edit/admin-attributes-edit.component.mjs +1 -1
- package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-form/admin-attributes-form.component.mjs +4 -4
- package/esm2022/admin/components/admin-dataset/admin-select-dataset/admin-select-dataset.component.mjs +3 -3
- package/esm2022/admin/components/admin-layout/admin-layout.component.mjs +10 -7
- package/esm2022/admin/components/admin-metadata/shared/form-metadata/form-metadata.component.mjs +2 -3
- package/esm2022/admin/components/admin-metadata-rules/shared/admin-form-metadata-rules/admin-form-metadata-rules.component.mjs +3 -5
- package/esm2022/admin/components/admin-metadata-user/admin-metadata-user.component.mjs +9 -10
- package/esm2022/admin/components/admin-metadata-user/admin-user-edit-metadata/admin-user-edit-metadata.component.mjs +4 -4
- package/esm2022/admin/components/admin-metadata-user/admin-user-select-metadata/admin-user-select-metadata.component.mjs +7 -3
- package/esm2022/admin/components/admin-metadata-user/store/admin-metadata-user.action.mjs +1 -4
- package/esm2022/admin/components/admin-metadata-user/store/admin-metadata-user.effects.mjs +4 -4
- package/esm2022/admin/components/admin-metadata-user/store/admin-metadata-user.reducer.mjs +8 -28
- package/esm2022/admin/components/admin-metadata-user/store/admin-metadata-user.selector.mjs +2 -6
- package/esm2022/admin/components/admin-user/admin-user-select/admin-user-select.component.mjs +9 -10
- package/esm2022/admin/components/admin-user/admin-user.component.mjs +1 -1
- package/esm2022/admin/components/admin-user/store/admin-user.action.mjs +2 -11
- package/esm2022/admin/components/admin-user/store/admin-user.effects.mjs +1 -19
- package/esm2022/admin/components/admin-user/store/admin-user.reducer.mjs +2 -7
- package/esm2022/admin/components/admin-user/store/admin-user.selector.mjs +1 -3
- package/esm2022/admin/i18n/en.translations.mjs +2 -2
- package/esm2022/admin/i18n/fr.translations.mjs +4 -4
- package/esm2022/admin/store/admin.effects.mjs +1 -1
- package/esm2022/admin/store/admin.service.mjs +1 -16
- package/esm2022/components/metadata-editor/metadata-editor.component.mjs +40 -45
- package/esm2022/components/metadata-editor/metadata-editor.module.mjs +5 -4
- package/esm2022/components/metadata-editor/public-api.mjs +2 -1
- package/esm2022/components/metadata-editor/store/metadata.action.mjs +14 -2
- package/esm2022/components/metadata-editor/store/metadata.effects.mjs +21 -1
- package/esm2022/components/metadata-editor/store/metadata.reducer.mjs +18 -2
- package/esm2022/components/metadata-editor/store/metadata.selector.mjs +6 -2
- package/esm2022/components/metadata-editor/store/metadata.service.mjs +21 -1
- package/esm2022/components/metadata-editor/style/css.component.mjs +11 -0
- package/esm2022/dataset/i18n/fr.translations.mjs +2 -2
- package/esm2022/import/i18n/en.translations.mjs +4 -1
- package/esm2022/import/i18n/fr.translations.mjs +4 -1
- package/esm2022/import/store/import.effects.mjs +8 -1
- package/esm2022/lib/core/components/about/about.component.mjs +29 -0
- package/esm2022/lib/core/components/about/pry-about.module.mjs +21 -0
- package/esm2022/lib/core/components/icon/icon.component.mjs +5 -1
- package/esm2022/lib/core/components/modal-status/modal-status.component.mjs +10 -6
- package/esm2022/lib/core/components/snackbar/snackbar.service.mjs +1 -1
- package/esm2022/lib/core/i18n/en.translations.mjs +14 -3
- package/esm2022/lib/core/i18n/fr.translations.mjs +14 -3
- package/esm2022/lib/core/i18n/i18n.pipe.mjs +4 -3
- package/esm2022/lib/core/i18n/i18n.service.mjs +5 -5
- package/esm2022/lib/core/model/display-options.interface.mjs +1 -1
- package/esm2022/lib/core/model/manifest.interface.mjs +1 -1
- package/esm2022/lib/core/model/public-api.mjs +2 -1
- package/esm2022/lib/core/model/widget-map-manifest.interface.mjs +1 -1
- package/esm2022/lib/core/model/widget-vega-manifest.interface.mjs +2 -0
- package/esm2022/lib/core/public-api.mjs +3 -1
- package/esm2022/lib/core/store/class/class.effects.mjs +1 -1
- package/esm2022/lib/core/store/config/config.actions.mjs +5 -2
- package/esm2022/lib/core/store/config/config.effects.mjs +4 -1
- package/esm2022/lib/core/store/config/config.reducer.mjs +9 -2
- package/esm2022/lib/core/store/config/config.selectors.mjs +6 -4
- package/esm2022/lib/core/store/config/config.service.mjs +36 -2
- package/esm2022/lib/core/store/config/versions.interface.mjs +2 -0
- package/esm2022/lib/core/toolbox/toolbox-menu.service.mjs +1 -16
- package/esm2022/lib/dashboard/components/manifests/manifests.component.mjs +3 -1
- package/esm2022/lib/dashboard/components/widgets/base-widget.component.mjs +3 -2
- package/esm2022/lib/dashboard/store/dashboard.actions.mjs +3 -3
- package/esm2022/lib/dashboard/store/dashboard.effects.mjs +15 -6
- package/esm2022/lib/dashboard/store/dashboard.reducers.mjs +10 -2
- package/esm2022/lib/dashboard/store/dashboard.selectors.mjs +3 -4
- package/esm2022/lib/dashboard/store/manifest.service.mjs +2 -3
- package/esm2022/notification/store/notification.effects.mjs +3 -3
- package/esm2022/presentation/components/add-edit-presentation/add-edit-presentation.component.mjs +23 -18
- package/esm2022/presentation/components/presentation.component.mjs +18 -18
- package/esm2022/presentation/style/css.component.mjs +2 -2
- package/esm2022/restitution/components/restitution-list/restitution-list.component.mjs +3 -3
- package/esm2022/restitution/components/restitution-list-item/restitution-list-item.component.mjs +6 -3
- package/esm2022/supervision/components/supervision-integration-errors/supervision-integration-errors-select/supervision-integration-errors-select.component.mjs +6 -3
- package/esm2022/supervision/components/supervision-integration-errors/supervision-integration-errors.component.mjs +2 -2
- package/esm2022/supervision/components/supervision-layout/supervision-layout.component.mjs +2 -2
- package/esm2022/supervision/components/supervision.component.mjs +2 -2
- package/esm2022/supervision/store/supervision.actions.mjs +1 -1
- package/esm2022/supervision/store/supervision.reducer.mjs +3 -2
- package/esm2022/supervision/store/supervision.selectors.mjs +2 -2
- package/esm2022/toolbox/components/save-view/save-view.component.mjs +4 -4
- package/esm2022/tooltips/attribute/attribute-tooltip.component.mjs +18 -11
- package/esm2022/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.mjs +20 -6
- package/esm2022/widgets/widget-aggregated-chart/i18n/fr.translations.mjs +1 -2
- package/esm2022/widgets/widget-map/component/widget-map-layer.service.mjs +4 -2
- package/esm2022/widgets/widget-map/component/widget-map.component.mjs +15 -9
- package/esm2022/widgets/widget-map/utils/cql-utils.class.mjs +5 -5
- package/esm2022/widgets/widget-map/utils/xml-utils.class.mjs +23 -1
- package/esm2022/widgets/widget-vega/component/widget-vega.component.mjs +139 -0
- package/esm2022/widgets/widget-vega/i18n/en.translations.mjs +11 -0
- package/esm2022/widgets/widget-vega/i18n/fr.translations.mjs +11 -0
- package/esm2022/widgets/widget-vega/provoly-dashboard-widgets-widget-vega.mjs +5 -0
- package/esm2022/widgets/widget-vega/public-api.mjs +3 -0
- package/esm2022/widgets/widget-vega/style/css.component.mjs +11 -0
- package/esm2022/widgets/widget-vega/widget-vega.module.mjs +68 -0
- package/fesm2022/provoly-dashboard-admin.mjs +134 -206
- package/fesm2022/provoly-dashboard-admin.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-components-metadata-editor.mjs +127 -52
- package/fesm2022/provoly-dashboard-components-metadata-editor.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-dataset.mjs +1 -1
- package/fesm2022/provoly-dashboard-dataset.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-import.mjs +13 -0
- package/fesm2022/provoly-dashboard-import.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-notification.mjs +2 -2
- package/fesm2022/provoly-dashboard-notification.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-presentation.mjs +41 -37
- package/fesm2022/provoly-dashboard-presentation.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-restitution.mjs +7 -4
- package/fesm2022/provoly-dashboard-restitution.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-supervision.mjs +11 -8
- package/fesm2022/provoly-dashboard-supervision.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-toolbox.mjs +3 -3
- package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-tooltips-attribute.mjs +17 -10
- package/fesm2022/provoly-dashboard-tooltips-attribute.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs +19 -6
- package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +43 -14
- package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-vega.mjs +235 -0
- package/fesm2022/provoly-dashboard-widgets-widget-vega.mjs.map +1 -0
- package/fesm2022/provoly-dashboard.mjs +188 -68
- package/fesm2022/provoly-dashboard.mjs.map +1 -1
- package/import/i18n/en.translations.d.ts +3 -0
- package/import/i18n/fr.translations.d.ts +3 -0
- package/lib/core/components/about/about.component.d.ts +12 -0
- package/lib/core/components/about/pry-about.module.d.ts +10 -0
- package/lib/core/i18n/en.translations.d.ts +11 -0
- package/lib/core/i18n/fr.translations.d.ts +11 -0
- package/lib/core/i18n/i18n.service.d.ts +2 -2
- package/lib/core/model/display-options.interface.d.ts +1 -1
- package/lib/core/model/manifest.interface.d.ts +2 -1
- package/lib/core/model/public-api.d.ts +1 -0
- package/lib/core/model/widget-map-manifest.interface.d.ts +2 -0
- package/lib/core/model/widget-vega-manifest.interface.d.ts +5 -0
- package/lib/core/public-api.d.ts +2 -0
- package/lib/core/store/config/config.actions.d.ts +12 -0
- package/lib/core/store/config/config.effects.d.ts +6 -0
- package/lib/core/store/config/config.reducer.d.ts +2 -0
- package/lib/core/store/config/config.selectors.d.ts +1 -0
- package/lib/core/store/config/config.service.d.ts +2 -0
- package/lib/core/store/config/versions.interface.d.ts +10 -0
- package/lib/dashboard/store/dashboard.actions.d.ts +10 -8
- package/lib/dashboard/store/dashboard.effects.d.ts +2 -0
- package/lib/dashboard/store/dashboard.selectors.d.ts +1 -1
- package/lib/dashboard/store/manifest.service.d.ts +1 -1
- package/package.json +31 -25
- package/presentation/components/add-edit-presentation/add-edit-presentation.component.d.ts +4 -3
- package/presentation/components/presentation.component.d.ts +2 -2
- package/presentation/style/_o-pry-new-presentation.scss +7 -0
- package/restitution/components/restitution-list-item/restitution-list-item.component.d.ts +3 -2
- package/schematics/ng-add/index.js +7 -1
- package/schematics/ng-add/index.js.map +1 -1
- package/schematics/ng-add/schema.json +2 -1
- package/styles/components/_o-tabs.scss +1 -7
- package/styles/layout/_o-base-layout.scss +8 -1
- package/supervision/components/supervision-integration-errors/supervision-integration-errors-select/supervision-integration-errors-select.component.d.ts +1 -1
- package/supervision/store/supervision.actions.d.ts +2 -2
- package/supervision/store/supervision.reducer.d.ts +1 -1
- package/supervision/store/supervision.selectors.d.ts +1 -1
- package/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.d.ts +7 -0
- package/widgets/widget-aggregated-chart/i18n/fr.translations.d.ts +0 -1
- package/widgets/widget-map/component/widget-map.component.d.ts +3 -1
- package/widgets/widget-map/utils/xml-utils.class.d.ts +2 -0
- package/widgets/widget-vega/component/widget-vega.component.d.ts +37 -0
- package/widgets/widget-vega/i18n/en.translations.d.ts +10 -0
- package/widgets/widget-vega/i18n/fr.translations.d.ts +10 -0
- package/widgets/widget-vega/index.d.ts +5 -0
- package/widgets/widget-vega/public-api.d.ts +2 -0
- package/widgets/widget-vega/style/_o-widget-vega.scss +6 -0
- package/widgets/widget-vega/style/css.component.d.ts +5 -0
- package/widgets/widget-vega/widget-vega.module.d.ts +19 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as i3 from '@angular/common';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
|
-
import {
|
|
4
|
+
import { Component, ViewEncapsulation, EventEmitter, Input, Output, Injectable, NgModule } from '@angular/core';
|
|
5
5
|
import * as i2 from '@angular/forms';
|
|
6
6
|
import { Validators, ReactiveFormsModule } from '@angular/forms';
|
|
7
7
|
import * as i1$2 from '@ngrx/effects';
|
|
@@ -37,7 +37,19 @@ const MetadataActions = {
|
|
|
37
37
|
isEditable: createAction(`[Metadata] Is editable`, props()),
|
|
38
38
|
loadDatasetMetadata: createAction(`[Metadata] Load Metadata of selected Datasets`, props()),
|
|
39
39
|
loadDatasetMetadataSuccess: createAction(`[Metadata] Load Metadata of selected Datasets Success`, props()),
|
|
40
|
-
loadDatasetMetadataFailure: createAction(`[Metadata] Load Metadata of selected Datasets Failure`, props())
|
|
40
|
+
loadDatasetMetadataFailure: createAction(`[Metadata] Load Metadata of selected Datasets Failure`, props()),
|
|
41
|
+
loadMetadataUser: createAction(`[Metadata/User] Load Metadata of selected Users`, props()),
|
|
42
|
+
loadMetadataUserSuccess: createAction(`[Metadata/User] Load Metadata of selected Users Success`, props()),
|
|
43
|
+
loadMetadataUserFailure: createAction(`[Metadata/User] Load Metadata of selected Users Failure`, props()),
|
|
44
|
+
addMetadataUser: createAction(`[Metadata/User] Add Metadata of selected Users`, props()),
|
|
45
|
+
addMetadataUserSuccess: createAction(`[Metadata/User] Add Metadata of selected Users Success`, props()),
|
|
46
|
+
addMetadataUserFailure: createAction(`[Metadata/User] Add Metadata of selected Users Failure`, props()),
|
|
47
|
+
deleteMetadataUser: createAction(`[Metadata/User] Delete Metadata of selected Users`, props()),
|
|
48
|
+
deleteMetadataUserSuccess: createAction(`[Metadata/User] Delete Metadata of selected Users Success`, props()),
|
|
49
|
+
deleteMetadataUserFailure: createAction(`[Metadata/User] Delete Metadata of selected Users Failure`, props()),
|
|
50
|
+
loadUserProfile: createAction(`[Metadata/User] Load Metadata`),
|
|
51
|
+
loadUserProfileSuccess: createAction(`[Metadata/User] Load Success`, props()),
|
|
52
|
+
loadUserProfileFailure: createAction(`[Metadata/User] Load Failure`, props())
|
|
41
53
|
};
|
|
42
54
|
|
|
43
55
|
const metadataFeatureKey = '@pry/metadata';
|
|
@@ -46,7 +58,9 @@ const initialMetadataState = {
|
|
|
46
58
|
selectedMetadata: null,
|
|
47
59
|
loading: false,
|
|
48
60
|
errors: null,
|
|
49
|
-
editable: false
|
|
61
|
+
editable: false,
|
|
62
|
+
selectedUserProfile: [],
|
|
63
|
+
userProfile: []
|
|
50
64
|
};
|
|
51
65
|
/**
|
|
52
66
|
* @TODO merge this store with admin user store ?
|
|
@@ -75,6 +89,20 @@ const metadataReducer = createReducer(initialMetadataState, on(MetadataActions.l
|
|
|
75
89
|
})), on(MetadataActions.isEditable, (state, action) => ({
|
|
76
90
|
...state,
|
|
77
91
|
editable: action.editable
|
|
92
|
+
})), on(MetadataActions.loadMetadataUserSuccess, (state, action) => ({
|
|
93
|
+
...state,
|
|
94
|
+
selectedUserProfile: action.metadata
|
|
95
|
+
})), on(MetadataActions.loadUserProfile, (state) => ({
|
|
96
|
+
...state,
|
|
97
|
+
loading: true
|
|
98
|
+
})), on(MetadataActions.loadUserProfileSuccess, (state, action) => ({
|
|
99
|
+
...state,
|
|
100
|
+
userProfile: [...action.userProfile],
|
|
101
|
+
loading: false
|
|
102
|
+
})), on(MetadataActions.loadUserProfileFailure, (state, action) => ({
|
|
103
|
+
...state,
|
|
104
|
+
loading: false,
|
|
105
|
+
errors: action.error
|
|
78
106
|
})));
|
|
79
107
|
|
|
80
108
|
const feature = createFeatureSelector(metadataFeatureKey);
|
|
@@ -84,6 +112,8 @@ const selectedMetadata = createSelector(feature, (state) => state?.metadata.find
|
|
|
84
112
|
const selectedMetadataId = createSelector(selectedMetadata, (metadata) => metadata?.id);
|
|
85
113
|
const selectMetadataById = (id) => createSelector(metadata, (metadata) => metadata?.find((m) => m.id === id));
|
|
86
114
|
const editable = createSelector(feature, (state) => state.editable);
|
|
115
|
+
const selectedUserProfile = createSelector(feature, (state) => state?.selectedUserProfile);
|
|
116
|
+
const userProfile = createSelector(feature, (state) => state?.userProfile ?? []);
|
|
87
117
|
const MetadataSelectors = {
|
|
88
118
|
feature,
|
|
89
119
|
loading,
|
|
@@ -91,69 +121,68 @@ const MetadataSelectors = {
|
|
|
91
121
|
selectedMetadata,
|
|
92
122
|
selectedMetadataId,
|
|
93
123
|
selectMetadataById,
|
|
94
|
-
editable
|
|
124
|
+
editable,
|
|
125
|
+
selectedUserProfile,
|
|
126
|
+
userProfile
|
|
95
127
|
};
|
|
96
128
|
|
|
129
|
+
class PryMetadataEditorCssComponent {
|
|
130
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryMetadataEditorCssComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
131
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: PryMetadataEditorCssComponent, selector: "pry-metadata-editor-css", ngImport: i0, template: '', isInline: true, styles: [".o-metadata-editor ng-select{position:absolute;width:80%}.o-metadata-editor__container{min-height:3.4375rem}\n"], encapsulation: i0.ViewEncapsulation.None }); }
|
|
132
|
+
}
|
|
133
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryMetadataEditorCssComponent, decorators: [{
|
|
134
|
+
type: Component,
|
|
135
|
+
args: [{ selector: 'pry-metadata-editor-css', template: '', encapsulation: ViewEncapsulation.None, styles: [".o-metadata-editor ng-select{position:absolute;width:80%}.o-metadata-editor__container{min-height:3.4375rem}\n"] }]
|
|
136
|
+
}] });
|
|
137
|
+
|
|
97
138
|
const INTEGER_REGEXP_PATTERN = '^[+-]?[0-9]*$';
|
|
98
139
|
const DOUBLE_REGEXP_PATTERN = '[+-]?([0-9]*[.])?[0-9]+';
|
|
99
140
|
class PryMetadataEditorComponent extends SubscriptionnerDirective {
|
|
141
|
+
set type(type) {
|
|
142
|
+
this._type$.next(type);
|
|
143
|
+
}
|
|
100
144
|
set metadata(metadata) {
|
|
101
|
-
// @ts-ignore
|
|
102
|
-
const isUserProfile = metadata.length >= 1 && metadata[0].userProfile !== undefined;
|
|
103
|
-
if (isUserProfile) {
|
|
104
|
-
this.type = 'user';
|
|
105
|
-
}
|
|
106
|
-
else {
|
|
107
|
-
this.type = 'meta';
|
|
108
|
-
}
|
|
109
145
|
this._metadata$.next(metadata);
|
|
110
146
|
}
|
|
111
|
-
set initialMetadataSelection(metadataName) {
|
|
112
|
-
this._initialMetadataSelection$.next(metadataName);
|
|
113
|
-
}
|
|
114
147
|
constructor(store, formBuilder) {
|
|
115
148
|
super();
|
|
116
149
|
this.store = store;
|
|
117
150
|
this.formBuilder = formBuilder;
|
|
118
151
|
this._metadata$ = new BehaviorSubject([]);
|
|
119
|
-
this._initialMetadataSelection$ = new BehaviorSubject('');
|
|
120
152
|
this.isSubmitted = false;
|
|
121
|
-
this.
|
|
122
|
-
this.
|
|
123
|
-
this.type = 'meta';
|
|
153
|
+
this.isModification = false;
|
|
154
|
+
this._type$ = new BehaviorSubject('meta');
|
|
124
155
|
this.addMeta = new EventEmitter();
|
|
125
156
|
this.removeMeta = new EventEmitter();
|
|
157
|
+
this.targetId = '';
|
|
126
158
|
this.form = this.formBuilder.group({
|
|
127
159
|
metadata: [{}, [Validators.required]],
|
|
128
160
|
value: ['', [Validators.required, Validators.pattern(INTEGER_REGEXP_PATTERN)]]
|
|
129
161
|
});
|
|
130
162
|
this.metadataDefs$ = this.store.select(MetadataSelectors.metadata);
|
|
131
|
-
this.
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
}));
|
|
135
|
-
this.subscriptions.add(combineLatest([
|
|
136
|
-
this.metadataDefs$,
|
|
137
|
-
this.availableMetadata$,
|
|
163
|
+
this.userProfileDefs$ = this.store.select(MetadataSelectors.userProfile);
|
|
164
|
+
this.availableMetadata$ = combineLatest([
|
|
165
|
+
this._type$,
|
|
138
166
|
this._metadata$,
|
|
139
|
-
this.
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
if (
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
});
|
|
146
|
-
this.onMetaChange(initiallySelectedMetaAvailable ?? availableMeta[0]);
|
|
147
|
-
this.form.patchValue({ value: '' });
|
|
167
|
+
this.metadataDefs$,
|
|
168
|
+
this.userProfileDefs$
|
|
169
|
+
]).pipe(map(([type, metadata, metaDefs, userProfileDefs]) => {
|
|
170
|
+
if (type === 'meta') {
|
|
171
|
+
let datasetMetadataIds = metadata?.map((u) => u.metadataDef.id);
|
|
172
|
+
return metaDefs.filter((meta) => !datasetMetadataIds?.includes(meta.id));
|
|
148
173
|
}
|
|
149
174
|
else {
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
metadata: allMeta.find((metadata) => metadata.name === initiallySelectedMeta),
|
|
153
|
-
value: inputMeta.find((meta) => this.metaDefinition(meta).name === initiallySelectedMeta)?.value
|
|
154
|
-
});
|
|
175
|
+
let userProfileIds = metadata?.map((u) => u.userProfile.id);
|
|
176
|
+
return (userProfileDefs ?? []).filter((meta) => !userProfileIds?.includes(meta.id));
|
|
155
177
|
}
|
|
156
178
|
}));
|
|
179
|
+
this.subscriptions.add(this.availableMetadata$.subscribe((meta) => {
|
|
180
|
+
this.form.patchValue({
|
|
181
|
+
metadata: meta[0]
|
|
182
|
+
});
|
|
183
|
+
this.onMetaChange(meta[0]);
|
|
184
|
+
this.form.patchValue({ value: '' });
|
|
185
|
+
}));
|
|
157
186
|
}
|
|
158
187
|
onMetaChange(metadata) {
|
|
159
188
|
if (metadata) {
|
|
@@ -166,6 +195,10 @@ class PryMetadataEditorComponent extends SubscriptionnerDirective {
|
|
|
166
195
|
else {
|
|
167
196
|
this.form.controls['value'].setValidators([Validators.required]);
|
|
168
197
|
}
|
|
198
|
+
this.isModification = true;
|
|
199
|
+
}
|
|
200
|
+
else {
|
|
201
|
+
this.isModification = false;
|
|
169
202
|
}
|
|
170
203
|
}
|
|
171
204
|
editMetadata(currentMetadata) {
|
|
@@ -179,7 +212,9 @@ class PryMetadataEditorComponent extends SubscriptionnerDirective {
|
|
|
179
212
|
this.onMetaChange(datasetMetadataDef);
|
|
180
213
|
}
|
|
181
214
|
metaDefinition(metadata) {
|
|
182
|
-
return this.
|
|
215
|
+
return this._type$.getValue() === 'user'
|
|
216
|
+
? metadata.userProfile
|
|
217
|
+
: metadata.metadataDef;
|
|
183
218
|
}
|
|
184
219
|
removeMetadata(metadata) {
|
|
185
220
|
this.removeMeta.emit({ id: this.targetId, metadataId: this.metaDefinition(metadata).id });
|
|
@@ -196,22 +231,22 @@ class PryMetadataEditorComponent extends SubscriptionnerDirective {
|
|
|
196
231
|
}
|
|
197
232
|
}
|
|
198
233
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryMetadataEditorComponent, deps: [{ token: i1.Store }, { token: i2.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
199
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: PryMetadataEditorComponent, selector: "pry-metadata-editor", inputs: {
|
|
234
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: PryMetadataEditorComponent, selector: "pry-metadata-editor", inputs: { isModification: "isModification", targetId: "targetId", type: "type", metadata: "metadata" }, outputs: { addMeta: "addMeta", removeMeta: "removeMeta" }, usesInheritance: true, ngImport: i0, template: "<pry-metadata-editor-css></pry-metadata-editor-css>\n<div *ngFor=\"let metadata of (_metadata$ | async) ?? []\">\n <div class=\"o-tabs__panel__content__actions\">\n <div class=\"o-tabs__panel__content__actions__text\">\n <span class=\"o-tabs__panel__content__actions__text__label\">{{ metaDefinition(metadata).name }} :</span>\n <span class=\"o-tabs__panel__content__actions__text__value\">{{ metadata.value }}</span>\n </div>\n\n <div class=\"o-tabs__panel__content__actions__buttons\">\n <ng-container *pryAccess=\"{ module: 'admin', page: 'dataset', action: 'write' }\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" aria-pressed=\"false\">\n <span class=\"u-visually-hidden\">{{ '@pry.action.edit' | i18n }} {{ metaDefinition(metadata).name }}</span>\n <pry-icon\n class=\"edit-icon\"\n iconSvg=\"edit\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"editMetadata(metadata)\"\n ></pry-icon>\n </button>\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" aria-pressed=\"false\">\n <span class=\"u-visually-hidden\">{{ '@pry.action.delete' | i18n }} {{ metaDefinition(metadata).name }}</span>\n <pry-icon\n class=\"delete-icon\"\n iconSvg=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"removeMetadata(metadata)\"\n ></pry-icon>\n </button>\n </ng-container>\n </div>\n </div>\n</div>\n\n<ng-container *pryAccess=\"{ module: 'admin', page: 'dataset', action: 'write' }\">\n <form class=\"o-form -border-top\" [formGroup]=\"form\" (ngSubmit)=\"addDatasetMetadata()\">\n <fieldset>\n <legend class=\"u-visually-hidden\">{{ '@pry.action.editProfil' | i18n }}</legend>\n\n <div class=\"m-form-label-field o-metadata-editor__container\">\n <label for=\"metadata\" id=\"metadata-label\" class=\"a-label\">Data</label>\n <pry-select\n id=\"metadata\"\n class=\"a-pry-select o-metadata-editor\"\n formControlName=\"metadata\"\n [items]=\"availableMetadata$ | async\"\n (ngModelChange)=\"onMetaChange($event)\"\n [isForm]=\"true\"\n [itemsAsOption]=\"true\"\n bindLabel=\"name\"\n [attr.aria-labelledby]=\"\n isSubmitted && form.get('metadata')?.invalid ? 'metadata-label metadata-error' : 'metadata-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && form.get('metadata')?.invalid\"\n >\n </pry-select>\n <label\n *ngIf=\"isSubmitted && form.get('metadata')?.invalid\"\n id=\"metadata-error\"\n for=\"metadata\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n\n <ng-container *ngIf=\"form.value.metadata\">\n <ng-container *ngIf=\"form.value['metadata']['type'] === 'DATE'; else inputList\">\n <div class=\"m-form-label-field\">\n <label id=\"form_date-label\" for=\"form_date\" class=\"a-label\">\n {{ '@pry.action.selectDate' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"form_date\"\n type=\"date\"\n class=\"a-form-field\"\n formControlName=\"value\"\n [attr.aria-labelledby]=\"\n isSubmitted && form.get('value')?.invalid ? 'form-date-label form-date-error' : 'form-date-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && form.get('value')?.invalid\"\n required\n />\n <label\n *ngIf=\"isSubmitted && form.get('value')?.invalid\"\n id=\"form_date-error\"\n for=\"form_date\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n </ng-container>\n\n <ng-template #inputList>\n <ng-container *ngIf=\"form.value['metadata']['type'] === 'LIST'; else inputText\">\n <div class=\"m-form-label-field\">\n <label id=\"list-label\" class=\"a-label\" for=\"list\">{{ '@pry.action.choiceInList' | i18n }}</label>\n <pry-select\n id=\"list\"\n class=\"a-pry-select\"\n formControlName=\"value\"\n [items]=\"form.value['metadata']['allowedValues']\"\n [isForm]=\"true\"\n aria-labelledby=\"list-label\"\n ></pry-select>\n </div>\n </ng-container>\n </ng-template>\n\n <ng-template #inputText>\n <div class=\"m-form-label-field\">\n <label id=\"text-label\" class=\"a-label\" for=\"text\">\n {{ '@pry.action.text' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"text\"\n type=\"text\"\n class=\"a-form-field\"\n formControlName=\"value\"\n [attr.aria-labelledby]=\"\n isSubmitted && form.get('value')?.invalid ? 'text-label text-error' : 'text-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && form.get('value')?.invalid\"\n required\n />\n <label\n *ngIf=\"isSubmitted && form.get('value')?.invalid\"\n id=\"test-error\"\n for=\"text\"\n class=\"a-label a-label--help -error\"\n >\n <span *ngIf=\"form.get('value')?.hasError('required')\">{{ '@pry.admin.required' | i18n }}</span>\n <ng-container *ngIf=\"form.get('value')?.hasError('pattern')\">\n <span *ngIf=\"form.value['metadata']['type'] === 'DOUBLE'\">\n {{ '@pry.admin.environment.formatDouble' | i18n }}\n </span>\n <span *ngIf=\"form.value['metadata']['type'] === 'INTEGER'\">\n {{ '@pry.admin.environment.formatInt' | i18n }}\n </span>\n </ng-container>\n </label>\n </div>\n </ng-template>\n </ng-container>\n </fieldset>\n\n <div class=\"m-btn-group -end\">\n <button type=\"submit\" class=\"a-btn a-btn--primary\">\n {{ (isModification ? '@pry.action.editMetadata' : '@pry.action.addMetadata') | i18n }}\n </button>\n </div>\n </form>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.PrySelectComponent, selector: "pry-select", inputs: ["labelTranslate", "baseTranslate", "translationFn", "translationFnArgs", "clearable", "multiple", "multipleClearRight", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "items", "itemsAsOption", "bindData", "bindValue", "bindLabel", "bindIcon", "iconSize", "templateLabel", "templateOption", "autocomplete"] }, { kind: "component", type: i4.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: PryMetadataEditorCssComponent, selector: "pry-metadata-editor-css" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
|
|
200
235
|
}
|
|
201
236
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryMetadataEditorComponent, decorators: [{
|
|
202
237
|
type: Component,
|
|
203
|
-
args: [{ selector: 'pry-metadata-editor', template: "<div *ngFor=\"let metadata of (_metadata$ | async) ?? []\">\n <div class=\"o-tabs__panel__content__actions\">\n <div class=\"o-tabs__panel__content__actions__text\">\n <span class=\"o-tabs__panel__content__actions__text__label\">{{ metaDefinition(metadata).name }} :</span>\n <span class=\"o-tabs__panel__content__actions__text__value\">{{ metadata.value }}</span>\n </div>\n\n <div class=\"o-tabs__panel__content__actions__buttons\">\n <ng-container *pryAccess=\"{ module: 'admin', page: 'dataset', action: 'write' }\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" aria-pressed=\"false\">\n <span class=\"u-visually-hidden\">{{ '@pry.action.edit' | i18n }} {{ metaDefinition(metadata).name }}</span>\n <pry-icon\n class=\"edit-icon\"\n iconSvg=\"edit\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"editMetadata(metadata)\"\n ></pry-icon>\n </button>\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" aria-pressed=\"false\">\n <span class=\"u-visually-hidden\">{{ '@pry.action.delete' | i18n }} {{ metaDefinition(metadata).name }}</span>\n <pry-icon\n class=\"delete-icon\"\n iconSvg=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"removeMetadata(metadata)\"\n ></pry-icon>\n </button>\n </ng-container>\n </div>\n </div>\n</div>\n\n<ng-container *pryAccess=\"{ module: 'admin', page: 'dataset', action: 'write' }\">\n <
|
|
204
|
-
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.FormBuilder }]; }, propDecorators: {
|
|
205
|
-
type: Input
|
|
206
|
-
}], editable: [{
|
|
238
|
+
args: [{ selector: 'pry-metadata-editor', template: "<pry-metadata-editor-css></pry-metadata-editor-css>\n<div *ngFor=\"let metadata of (_metadata$ | async) ?? []\">\n <div class=\"o-tabs__panel__content__actions\">\n <div class=\"o-tabs__panel__content__actions__text\">\n <span class=\"o-tabs__panel__content__actions__text__label\">{{ metaDefinition(metadata).name }} :</span>\n <span class=\"o-tabs__panel__content__actions__text__value\">{{ metadata.value }}</span>\n </div>\n\n <div class=\"o-tabs__panel__content__actions__buttons\">\n <ng-container *pryAccess=\"{ module: 'admin', page: 'dataset', action: 'write' }\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" aria-pressed=\"false\">\n <span class=\"u-visually-hidden\">{{ '@pry.action.edit' | i18n }} {{ metaDefinition(metadata).name }}</span>\n <pry-icon\n class=\"edit-icon\"\n iconSvg=\"edit\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"editMetadata(metadata)\"\n ></pry-icon>\n </button>\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" aria-pressed=\"false\">\n <span class=\"u-visually-hidden\">{{ '@pry.action.delete' | i18n }} {{ metaDefinition(metadata).name }}</span>\n <pry-icon\n class=\"delete-icon\"\n iconSvg=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"removeMetadata(metadata)\"\n ></pry-icon>\n </button>\n </ng-container>\n </div>\n </div>\n</div>\n\n<ng-container *pryAccess=\"{ module: 'admin', page: 'dataset', action: 'write' }\">\n <form class=\"o-form -border-top\" [formGroup]=\"form\" (ngSubmit)=\"addDatasetMetadata()\">\n <fieldset>\n <legend class=\"u-visually-hidden\">{{ '@pry.action.editProfil' | i18n }}</legend>\n\n <div class=\"m-form-label-field o-metadata-editor__container\">\n <label for=\"metadata\" id=\"metadata-label\" class=\"a-label\">Data</label>\n <pry-select\n id=\"metadata\"\n class=\"a-pry-select o-metadata-editor\"\n formControlName=\"metadata\"\n [items]=\"availableMetadata$ | async\"\n (ngModelChange)=\"onMetaChange($event)\"\n [isForm]=\"true\"\n [itemsAsOption]=\"true\"\n bindLabel=\"name\"\n [attr.aria-labelledby]=\"\n isSubmitted && form.get('metadata')?.invalid ? 'metadata-label metadata-error' : 'metadata-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && form.get('metadata')?.invalid\"\n >\n </pry-select>\n <label\n *ngIf=\"isSubmitted && form.get('metadata')?.invalid\"\n id=\"metadata-error\"\n for=\"metadata\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n\n <ng-container *ngIf=\"form.value.metadata\">\n <ng-container *ngIf=\"form.value['metadata']['type'] === 'DATE'; else inputList\">\n <div class=\"m-form-label-field\">\n <label id=\"form_date-label\" for=\"form_date\" class=\"a-label\">\n {{ '@pry.action.selectDate' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"form_date\"\n type=\"date\"\n class=\"a-form-field\"\n formControlName=\"value\"\n [attr.aria-labelledby]=\"\n isSubmitted && form.get('value')?.invalid ? 'form-date-label form-date-error' : 'form-date-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && form.get('value')?.invalid\"\n required\n />\n <label\n *ngIf=\"isSubmitted && form.get('value')?.invalid\"\n id=\"form_date-error\"\n for=\"form_date\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n </ng-container>\n\n <ng-template #inputList>\n <ng-container *ngIf=\"form.value['metadata']['type'] === 'LIST'; else inputText\">\n <div class=\"m-form-label-field\">\n <label id=\"list-label\" class=\"a-label\" for=\"list\">{{ '@pry.action.choiceInList' | i18n }}</label>\n <pry-select\n id=\"list\"\n class=\"a-pry-select\"\n formControlName=\"value\"\n [items]=\"form.value['metadata']['allowedValues']\"\n [isForm]=\"true\"\n aria-labelledby=\"list-label\"\n ></pry-select>\n </div>\n </ng-container>\n </ng-template>\n\n <ng-template #inputText>\n <div class=\"m-form-label-field\">\n <label id=\"text-label\" class=\"a-label\" for=\"text\">\n {{ '@pry.action.text' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"text\"\n type=\"text\"\n class=\"a-form-field\"\n formControlName=\"value\"\n [attr.aria-labelledby]=\"\n isSubmitted && form.get('value')?.invalid ? 'text-label text-error' : 'text-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && form.get('value')?.invalid\"\n required\n />\n <label\n *ngIf=\"isSubmitted && form.get('value')?.invalid\"\n id=\"test-error\"\n for=\"text\"\n class=\"a-label a-label--help -error\"\n >\n <span *ngIf=\"form.get('value')?.hasError('required')\">{{ '@pry.admin.required' | i18n }}</span>\n <ng-container *ngIf=\"form.get('value')?.hasError('pattern')\">\n <span *ngIf=\"form.value['metadata']['type'] === 'DOUBLE'\">\n {{ '@pry.admin.environment.formatDouble' | i18n }}\n </span>\n <span *ngIf=\"form.value['metadata']['type'] === 'INTEGER'\">\n {{ '@pry.admin.environment.formatInt' | i18n }}\n </span>\n </ng-container>\n </label>\n </div>\n </ng-template>\n </ng-container>\n </fieldset>\n\n <div class=\"m-btn-group -end\">\n <button type=\"submit\" class=\"a-btn a-btn--primary\">\n {{ (isModification ? '@pry.action.editMetadata' : '@pry.action.addMetadata') | i18n }}\n </button>\n </div>\n </form>\n</ng-container>\n" }]
|
|
239
|
+
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.FormBuilder }]; }, propDecorators: { isModification: [{
|
|
207
240
|
type: Input
|
|
208
241
|
}], addMeta: [{
|
|
209
242
|
type: Output
|
|
210
243
|
}], removeMeta: [{
|
|
211
244
|
type: Output
|
|
212
|
-
}],
|
|
245
|
+
}], targetId: [{
|
|
213
246
|
type: Input
|
|
214
|
-
}],
|
|
247
|
+
}], type: [{
|
|
248
|
+
type: Input
|
|
249
|
+
}], metadata: [{
|
|
215
250
|
type: Input
|
|
216
251
|
}] } });
|
|
217
252
|
|
|
@@ -235,6 +270,26 @@ class MetadataService {
|
|
|
235
270
|
.select(ConfigSelectors.refUrl)
|
|
236
271
|
.pipe(mergeMap((url) => this.httpClient.post(`${url}/metadata`, metadata)));
|
|
237
272
|
}
|
|
273
|
+
getMetadataUser(userId) {
|
|
274
|
+
return this.store
|
|
275
|
+
.select(ConfigSelectors.refUrl)
|
|
276
|
+
.pipe(mergeMap((url) => this.httpClient.get(`${url}/users/id/${userId}/metadata`)));
|
|
277
|
+
}
|
|
278
|
+
addMetadataUser(userId, metaId, value) {
|
|
279
|
+
return this.store.select(ConfigSelectors.refUrl).pipe(mergeMap((url) => this.httpClient.put(encodeURI(`${url}/users/id/${userId}/metadata/id/${metaId}`), {
|
|
280
|
+
value: value
|
|
281
|
+
})));
|
|
282
|
+
}
|
|
283
|
+
deleteMetadataUser(userId, metaId) {
|
|
284
|
+
return this.store
|
|
285
|
+
.select(ConfigSelectors.refUrl)
|
|
286
|
+
.pipe(mergeMap((url) => this.httpClient.delete(encodeURI(`${url}/users/id/${userId}/metadata/id/${metaId}`))));
|
|
287
|
+
}
|
|
288
|
+
getUserMetadata() {
|
|
289
|
+
return this.store
|
|
290
|
+
.select(ConfigSelectors.refUrl)
|
|
291
|
+
.pipe(mergeMap((url) => this.httpClient.get(`${url}/users/metadata`)));
|
|
292
|
+
}
|
|
238
293
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: MetadataService, deps: [{ token: i1$1.HttpClient }, { token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
239
294
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: MetadataService, providedIn: 'root' }); }
|
|
240
295
|
}
|
|
@@ -272,6 +327,26 @@ class MetadataEffects {
|
|
|
272
327
|
DataSourceActions.dataset.loadDataset()
|
|
273
328
|
];
|
|
274
329
|
})));
|
|
330
|
+
this.loadMetadataUser$ = createEffect(() => this.actions$.pipe(ofType(MetadataActions.loadMetadataUser), mergeMap$1((action) => this.service.getMetadataUser(action.userId).pipe(map$1((metadata) => MetadataActions.loadMetadataUserSuccess({ metadata })), catchError((error) => [MetadataActions.loadMetadataUserFailure({ error })])))));
|
|
331
|
+
this.selectUser$ = createEffect(() => this.actions$.pipe(ofType('[Admin/User] Select User'), map$1((action) => {
|
|
332
|
+
// @ts-ignore
|
|
333
|
+
return MetadataActions.loadMetadataUser({ userId: action.userId });
|
|
334
|
+
})));
|
|
335
|
+
this.addMetadataUser$ = createEffect(() => this.actions$.pipe(ofType(MetadataActions.addMetadataUser), mergeMap$1((action) => this.service.addMetadataUser(action.userId, action.metaId, action.value).pipe(map$1(() => MetadataActions.addMetadataUserSuccess({ userId: action.userId })), catchError((error) => [MetadataActions.addMetadataUserFailure({ error })])))));
|
|
336
|
+
this.addMetadataUserSuccess$ = createEffect(() => this.actions$.pipe(ofType(MetadataActions.addMetadataUserSuccess), mergeMap$1((action) => {
|
|
337
|
+
return [
|
|
338
|
+
MetadataActions.loadMetadataUser({ userId: action.userId }),
|
|
339
|
+
MetadataActions.isEditable({ editable: false })
|
|
340
|
+
];
|
|
341
|
+
})));
|
|
342
|
+
this.deleteMetadataUser$ = createEffect(() => this.actions$.pipe(ofType(MetadataActions.deleteMetadataUser), mergeMap$1((action) => this.service.deleteMetadataUser(action.userId, action.metadataId).pipe(map$1(() => MetadataActions.deleteMetadataUserSuccess({ userId: action.userId })), catchError((error) => [MetadataActions.deleteMetadataUserFailure({ error })])))));
|
|
343
|
+
this.deleteMetadataUserSuccess$ = createEffect(() => this.actions$.pipe(ofType(MetadataActions.deleteMetadataUserSuccess), mergeMap$1((action) => {
|
|
344
|
+
return [
|
|
345
|
+
MetadataActions.loadMetadataUser({ userId: action.userId }),
|
|
346
|
+
MetadataActions.isEditable({ editable: false })
|
|
347
|
+
];
|
|
348
|
+
})));
|
|
349
|
+
this.loadUserProfile$ = createEffect(() => this.actions$.pipe(ofType(MetadataActions.loadUserProfile), mergeMap$1((_) => this.service.getUserMetadata().pipe(map$1((metadata) => MetadataActions.loadUserProfileSuccess({ userProfile: metadata })), catchError((error) => [MetadataActions.loadUserProfileFailure({ error: error })])))));
|
|
275
350
|
}
|
|
276
351
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: MetadataEffects, deps: [{ token: i1$2.Actions }, { token: MetadataService }, { token: i4.DataSourceService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
277
352
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: MetadataEffects }); }
|
|
@@ -280,14 +355,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
|
|
|
280
355
|
type: Injectable
|
|
281
356
|
}], ctorParameters: function () { return [{ type: i1$2.Actions }, { type: MetadataService }, { type: i4.DataSourceService }]; } });
|
|
282
357
|
|
|
283
|
-
const PRY_METADATA_EDITOR_COMPONENTS = [PryMetadataEditorComponent];
|
|
358
|
+
const PRY_METADATA_EDITOR_COMPONENTS = [PryMetadataEditorComponent, PryMetadataEditorCssComponent];
|
|
284
359
|
class PryExpandPanelModule {
|
|
285
360
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryExpandPanelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
286
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.6", ngImport: i0, type: PryExpandPanelModule, declarations: [PryMetadataEditorComponent], imports: [CommonModule, i1.StoreFeatureModule, i1$2.EffectsFeatureModule, PryCoreModule,
|
|
361
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.6", ngImport: i0, type: PryExpandPanelModule, declarations: [PryMetadataEditorComponent, PryMetadataEditorCssComponent], imports: [CommonModule, i1.StoreFeatureModule, i1$2.EffectsFeatureModule, PryCoreModule,
|
|
287
362
|
PryI18nModule,
|
|
288
363
|
ReactiveFormsModule,
|
|
289
364
|
PrySelectModule,
|
|
290
|
-
PryIconModule], exports: [PryMetadataEditorComponent] }); }
|
|
365
|
+
PryIconModule], exports: [PryMetadataEditorComponent, PryMetadataEditorCssComponent] }); }
|
|
291
366
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryExpandPanelModule, imports: [CommonModule,
|
|
292
367
|
StoreModule.forFeature(metadataFeatureKey, metadataReducer),
|
|
293
368
|
EffectsModule.forFeature([MetadataEffects]),
|
|
@@ -319,5 +394,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
|
|
|
319
394
|
* Generated bundle index. Do not edit.
|
|
320
395
|
*/
|
|
321
396
|
|
|
322
|
-
export { DOUBLE_REGEXP_PATTERN, INTEGER_REGEXP_PATTERN, MetadataActions, MetadataEffects, MetadataSelectors, MetadataService, PryExpandPanelModule, PryMetadataEditorComponent, initialMetadataState, metadataFeatureKey, metadataReducer };
|
|
397
|
+
export { DOUBLE_REGEXP_PATTERN, INTEGER_REGEXP_PATTERN, MetadataActions, MetadataEffects, MetadataSelectors, MetadataService, PryExpandPanelModule, PryMetadataEditorComponent, PryMetadataEditorCssComponent, initialMetadataState, metadataFeatureKey, metadataReducer };
|
|
323
398
|
//# sourceMappingURL=provoly-dashboard-components-metadata-editor.mjs.map
|